diff --git a/MarketDataServer/Controllers/GainLossController.cs b/MarketDataServer/Controllers/GainLossController.cs
index b78b6e0..5726046 100755
--- a/MarketDataServer/Controllers/GainLossController.cs
+++ b/MarketDataServer/Controllers/GainLossController.cs
@@ -240,108 +240,6 @@ namespace MarketDataServer.Controllers
}
}
- // ///
- // /// GetGainLossWithDetailByDate - Optimizing calls to DA methods
- // ///
- // ///
- // ///
- // ///
- // [HttpGet]
- // public IEnumerable GetGainLossWithDetailByDate1(String token,DateTime selectedDate)
- // {
- // Profiler profiler = new Profiler();
- // try
- // {
- // MDTrace.WriteLine(LogLevel.DEBUG,$"Start");
- // if (!Authorizations.GetInstance().IsAuthorized(token)) return null;
- // GLPriceCache.GetInstance().Refresh();
- // PortfolioTrades portfolioTrades = PortfolioDA.GetTrades();
- // PortfolioTrades tradesOnOrBefore = portfolioTrades.GetTradesOnOrBefore(selectedDate);
- // GainLossSummaryItemCollection gainLossSummaryItems = new GainLossSummaryItemCollection(tradesOnOrBefore, selectedDate);
- // List symbols = gainLossSummaryItems.Select(x => x.Symbol).ToList();
- // Dictionary latestDates = PricingDA.GetLatestDates(symbols);
-
- // List gainLossSummaryItemDetailCollection = new List();
- // foreach (GainLossSummaryItem gainLossSummaryItem in gainLossSummaryItems)
- // {
- // GainLossSummaryItemDetail gainLossSummaryItemDetail = new GainLossSummaryItemDetail(gainLossSummaryItem);
- // portfolioTrades = PortfolioDA.GetOpenTradesSymbol(gainLossSummaryItem.Symbol);
- // double weightAdjustedDividendYield = portfolioTrades.GetWeightAdjustedDividendYield();
- // DateTime currentDate = latestDates[gainLossSummaryItem.Symbol];
- // if (null == portfolioTrades || 0 == portfolioTrades.Count) continue;
- // double shares = (from PortfolioTrade portfolioTrade in portfolioTrades select portfolioTrade.Shares).Sum();
- // double exposure = portfolioTrades.Sum(x => x.Exposure());
- // if(null==gainLossGenerator) gainLossGenerator=new ActiveGainLossGenerator();
- // GainLossCollection gainLoss=gainLossGenerator.GenerateGainLoss(portfolioTrades); // gainLoss contains the gain/loss from active positions. Never includes dividends .. just positions
- // GainLossItem gainLossItem = gainLoss.OrderByDescending(x => x.GainLossPercent).FirstOrDefault();
- // gainLossSummaryItemDetail.Lots = portfolioTrades.Count;
- // gainLossSummaryItemDetail.Shares = shares;
- // gainLossSummaryItemDetail.Exposure = exposure;
- // if (!double.IsNaN(weightAdjustedDividendYield))
- // {
- // gainLossSummaryItemDetail.DividendYield = weightAdjustedDividendYield;
- // gainLossSummaryItemDetail.AnnualDividend = exposure * weightAdjustedDividendYield;
- // }
- // Prices prices = GLPriceCache.GetInstance().GetPrices(gainLossSummaryItem.Symbol, currentDate, 3); // cache should be refreshed after GainLossSummaryItemCollection
- // Price p1 = prices.Count>0?prices[0]:default;
- // Price p2 = prices.Count>1?prices[1]:default;
- // PortfolioTrades symbolTrades = new PortfolioTrades(portfolioTrades.Where(x=>x.Symbol.Equals(gainLossSummaryItem.Symbol)).ToList());
- // ParityElement parityElement = ParityGenerator.GenerateBreakEven(symbolTrades, p1);
- // gainLossSummaryItemDetail.ParityElement = parityElement;
- // if (null != parityElement)
- // {
- // gainLossSummaryItemDetail.AllTimeGainLossPercent = gainLossItem.GainLossPercent;
- // gainLossSummaryItemDetail.PercentDistanceFromAllTimeGainLossPercent = parityElement.ParityOffsetPercent - (gainLossItem.GainLossPercent / 100);
- // }
- // if (null != p1 && null != p2)
- // {
- // double change = (p1.Close - p2.Close) / p2.Close;
- // gainLossSummaryItemDetail.LatestPrice = p1;
- // gainLossSummaryItemDetail.PriceChange = change;
- // }
- // gainLossSummaryItemDetailCollection.Add(gainLossSummaryItemDetail);
- // }
-
- // // **** Add an aggregate entry
- // GainLossSummaryItemDetail gainLossSummaryTotals = new GainLossSummaryItemDetail();
- // gainLossSummaryTotals.Symbol = "";
- // gainLossSummaryTotals.CompanyName = "Account Summary";
- // if (null != gainLossSummaryItemDetailCollection && gainLossSummaryItemDetailCollection.Count > 0)
- // {
- // gainLossSummaryTotals.Date = gainLossSummaryItemDetailCollection.Min(x => x.Date);
- // gainLossSummaryTotals.Exposure = gainLossSummaryItemDetailCollection.Sum(x => x.Exposure);
- // gainLossSummaryTotals.Change = gainLossSummaryItemDetailCollection.Sum(x => x.Change);
- // gainLossSummaryTotals.CurrentGainLoss = gainLossSummaryItemDetailCollection.Sum(x => x.CurrentGainLoss);
- // gainLossSummaryTotals.PreviousGainLoss = gainLossSummaryItemDetailCollection.Sum(x => x.PreviousGainLoss);
- // gainLossSummaryTotals.ChangePercent = ((gainLossSummaryTotals.CurrentGainLoss - gainLossSummaryTotals.PreviousGainLoss) / Math.Abs(gainLossSummaryTotals.PreviousGainLoss)) * 100.00;
- // gainLossSummaryTotals.LatestPrice = new Price();
- // gainLossSummaryTotals.PriceChange = 0;
- // }
- // else
- // {
- // gainLossSummaryTotals.Date = selectedDate;
- // gainLossSummaryTotals.Change = 0.00;
- // gainLossSummaryTotals.CurrentGainLoss = 0.00;
- // gainLossSummaryTotals.PreviousGainLoss = 0.00;
- // gainLossSummaryTotals.ChangePercent = 0.00;
- // gainLossSummaryTotals.LatestPrice = new Price();
- // gainLossSummaryTotals.PriceChange = 0;
- // }
- // gainLossSummaryItemDetailCollection.Insert(0, gainLossSummaryTotals);
- // // ****
- // return gainLossSummaryItemDetailCollection;
- // }
- // catch(Exception exception)
- // {
- // MDTrace.WriteLine(LogLevel.DEBUG,$"Exception:{exception.ToString()}");
- // return null;
- // }
- // finally
- // {
- // MDTrace.WriteLine(LogLevel.DEBUG,$"Done, total took {profiler.End()} (ms)");
- // }
- // }
-
[HttpGet]
public IEnumerable GetGainLossWithDetailByDateAndAccount(String token, DateTime selectedDate, String account)
{
@@ -461,103 +359,6 @@ namespace MarketDataServer.Controllers
}
}
- // [HttpGet]
- // public IEnumerable GetGainLossWithDetailByDateAndAccount(String token, DateTime selectedDate, String account)
- // {
- // Profiler profiler = new Profiler();
- // try
- // {
- // MDTrace.WriteLine(LogLevel.DEBUG,$"Start");
- // if (!Authorizations.GetInstance().IsAuthorized(token)) return null;
- // GLPriceCache.GetInstance().Refresh();
- // PortfolioTrades portfolioTrades = PortfolioDA.GetTrades();
- // portfolioTrades = new PortfolioTrades(portfolioTrades.Where(x => x.Account.Equals(account)).ToList());
- // PortfolioTrades tradesOnOrBefore = portfolioTrades.GetTradesOnOrBefore(selectedDate);
- // GainLossSummaryItemCollection gainLossSummaryItems = new GainLossSummaryItemCollection(tradesOnOrBefore, selectedDate);
- // List symbols = gainLossSummaryItems.Select(x => x.Symbol).ToList();
- // Dictionary latestDates = PricingDA.GetLatestDates(symbols);
-
- // List gainLossSummaryItemDetailCollection=new List();
- // foreach(GainLossSummaryItem gainLossSummaryItem in gainLossSummaryItems)
- // {
- // GainLossSummaryItemDetail gainLossSummaryItemDetail = new GainLossSummaryItemDetail(gainLossSummaryItem);
- // portfolioTrades = PortfolioDA.GetOpenTradesSymbol(gainLossSummaryItem.Symbol);
- // double weightAdjustedDividendYield = portfolioTrades.GetWeightAdjustedDividendYield();
- // DateTime currentDate = latestDates[gainLossSummaryItem.Symbol];
- // if(null==portfolioTrades||0==portfolioTrades.Count)continue;
- // double shares = (from PortfolioTrade portfolioTrade in portfolioTrades select portfolioTrade.Shares).Sum();
- // double exposure = portfolioTrades.Sum(x => x.Exposure());
- // if(null==gainLossGenerator) gainLossGenerator=new ActiveGainLossGenerator();
- // GainLossCollection gainLoss = gainLossGenerator.GenerateGainLoss(portfolioTrades); // gainLoss contains the gain/loss from active positions. Never includes dividends .. just positions
- // GainLossItem gainLossItem = gainLoss.OrderByDescending(x => x.GainLossPercent).FirstOrDefault();
- // gainLossSummaryItemDetail.Lots=portfolioTrades.Count;
- // gainLossSummaryItemDetail.Shares=shares;
- // gainLossSummaryItemDetail.Exposure=exposure;
- // if (!double.IsNaN(weightAdjustedDividendYield))
- // {
- // gainLossSummaryItemDetail.DividendYield=weightAdjustedDividendYield;
- // gainLossSummaryItemDetail.AnnualDividend=exposure * weightAdjustedDividendYield;
- // }
- // Prices prices = GLPriceCache.GetInstance().GetPrices(gainLossSummaryItem.Symbol, currentDate, 3); // cache should be refreshed after GainLossSummaryItemCollection
- // Price p1 = prices.Count>0?prices[0]:default;
- // Price p2 = prices.Count>1?prices[1]:default;
- // PortfolioTrades symbolTrades = new PortfolioTrades(portfolioTrades.Where(x=>x.Symbol.Equals(gainLossSummaryItem.Symbol)).ToList());
- // ParityElement parityElement = ParityGenerator.GenerateBreakEven(symbolTrades, p1);
- // gainLossSummaryItemDetail.ParityElement=parityElement;
- // if (null != parityElement)
- // {
- // gainLossSummaryItemDetail.AllTimeGainLossPercent=gainLossItem.GainLossPercent;
- // gainLossSummaryItemDetail.PercentDistanceFromAllTimeGainLossPercent=parityElement.ParityOffsetPercent - (gainLossItem.GainLossPercent / 100);
- // }
- // if(null!=p1 && null!=p2)
- // {
- // double change = (p1.Close - p2.Close) / p2.Close;
- // gainLossSummaryItemDetail.LatestPrice=p1;
- // gainLossSummaryItemDetail.PriceChange=change;
- // }
- // gainLossSummaryItemDetailCollection.Add(gainLossSummaryItemDetail);
- // }
-
- // // **** Add an aggregate entry
- // GainLossSummaryItemDetail gainLossSummaryTotals = new GainLossSummaryItemDetail();
- // gainLossSummaryTotals.Symbol = "";
- // gainLossSummaryTotals.CompanyName = "Account Summary";
- // if (null != gainLossSummaryItemDetailCollection && gainLossSummaryItemDetailCollection.Count > 0)
- // {
- // gainLossSummaryTotals.Date = gainLossSummaryItemDetailCollection.Min(x => x.Date);
- // gainLossSummaryTotals.Exposure=gainLossSummaryItemDetailCollection.Sum(x=>x.Exposure);
- // gainLossSummaryTotals.Change = gainLossSummaryItemDetailCollection.Sum(x => x.Change);
- // gainLossSummaryTotals.CurrentGainLoss = gainLossSummaryItemDetailCollection.Sum(x => x.CurrentGainLoss);
- // gainLossSummaryTotals.PreviousGainLoss = gainLossSummaryItemDetailCollection.Sum(x => x.PreviousGainLoss);
- // gainLossSummaryTotals.ChangePercent = ((gainLossSummaryTotals.CurrentGainLoss - gainLossSummaryTotals.PreviousGainLoss) / Math.Abs(gainLossSummaryTotals.PreviousGainLoss)) * 100.00;
- // gainLossSummaryTotals.LatestPrice=new Price();
- // gainLossSummaryTotals.PriceChange=0;
- // }
- // else
- // {
- // gainLossSummaryTotals.Date = selectedDate;
- // gainLossSummaryTotals.Change = 0.00;
- // gainLossSummaryTotals.CurrentGainLoss = 0.00;
- // gainLossSummaryTotals.PreviousGainLoss = 0.00;
- // gainLossSummaryTotals.ChangePercent = 0.00;
- // gainLossSummaryTotals.LatestPrice = new Price();
- // gainLossSummaryTotals.PriceChange = 0;
- // }
- // gainLossSummaryItemDetailCollection.Insert(0, gainLossSummaryTotals);
- // // ****
- // return gainLossSummaryItemDetailCollection;
- // }
- // catch(Exception exception)
- // {
- // MDTrace.WriteLine(LogLevel.DEBUG,$"Exception:{exception.ToString()}");
- // return null;
- // }
- // finally
- // {
- // MDTrace.WriteLine(LogLevel.DEBUG,$"Done, total took {profiler.End()} (ms)");
- // }
- // }
-
[HttpGet(Name = "GetCompoundGainLoss")]
public GainLossCompoundModelCollection GetCompoundGainLoss(String token, int selectedDays, bool includeDividends)
{