using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MarketData.Utils;

namespace MarketData.MarketDataModel
{
 public class PortfolioTrade
  {
    private int tradeId=-1;
    private String symbol;
    private DateTime tradeDate;
    private double shares;
    private double price;
    private double commission;
    private String buySell;
    private String account;
    private String status;
    private double sellPrice=double.NaN;
    private DateTime sellDate=Utility.Epoch;

    public int TradeId
    {
      get {return tradeId ;}
      set { tradeId = value; ;}
    }
    public String Symbol
    {
      get { return symbol; }
      set { symbol = value; }
    }
    public DateTime TradeDate
    {
      get { return tradeDate; }
      set { tradeDate = value; }
    }
    public double Shares
    {
      get { return shares; }
      set { shares = value; }
    }
    public double Exposure()
    {
      return Price*Shares;
    }
    public String BuySell
    {
      get { return buySell; }
      set { buySell = value; }
    }
    public String Status
    {
      get { return status; }
      set { status = value; }
    }
    public bool IsOpen
    {
      get { return status.ToUpper().Equals("OPEN"); }
    }
    public bool IsClosed
    {
      get { return !IsOpen; }
    }
    public String Account
    {
      get { return account; }
      set{account=value;}
    }
    public DateTime SellDate
    {
      get { return sellDate; }
      set { sellDate = value; }
    }
    public double SellPrice
    {
      get { return sellPrice;}
      set { sellPrice = value;}
    }
    public double Price
    {
      get { return price; }
      set { price = value; }
    }
    public double Commission
    {
      get { return commission; }
      set { commission = value; }
    }
  }
}
