private ChartDataVm.DataSet GetPortfolioOpenPositionsChartData(PortfolioChartDataQueryParam queryParams) { var result = new ChartDataVm.DataSet(); var accountId = _tradeAccountRepository.Query() .FirstOrDefault(acc => acc.AccountName == queryParams.AccountName)?.Id; var query = _tradeAccountRepository.QueryTradeNav(); var periods = queryParams.Periods.ToPeriodList().ToList(); try { periods.ForEach(period => { var value = query.Where(nav => nav.TradeAccountId == accountId && nav.ReportDate >= period.FromDate && nav.ReportDate < period.ToDate) .OrderByDescending(nav => nav.ReportDate) .Sum(nav => (decimal?)nav.StockLong + (decimal?)nav.StockShort + (decimal?)nav.OptionsLong + (decimal?)nav.OptionsShort + (decimal?)nav.CommoditiesLong + (decimal?)nav.CommoditiesShort) ?? 0; result.Data.Add(Math.Abs(value)); }); } catch (Exception e) { Console.WriteLine(e); } return(result); }
private ChartDataVm.DataSet GetPortfolioNavChartData(PortfolioChartDataQueryParam queryParams) { var result = new ChartDataVm.DataSet(); var accountId = _tradeAccountRepository.Query() .FirstOrDefault(acc => acc.AccountName == queryParams.AccountName)?.Id; var query = _tradeAccountRepository.QueryTradeNav(); var periods = queryParams.Periods.ToPeriodList().ToList(); periods.ForEach(period => { var value = query.Where(nav => nav.TradeAccountId == accountId && nav.ReportDate >= period.FromDate && nav.ReportDate < period.ToDate) .OrderByDescending(nav => nav.ReportDate) .FirstOrDefault()?.Total; result.Data.Add(value ?? 0); }); return(result); }
private ChartDataVm.DataSet GetPortfolioTotalUnChartData(PortfolioChartDataQueryParam queryParams) { var result = new ChartDataVm.DataSet(); var accountId = _tradeAccountRepository.Query() .FirstOrDefault(acc => acc.AccountName == queryParams.AccountName)?.Id; var query = _tradeAccountRepository.QueryOpenPositions(); var periods = queryParams.Periods.ToPeriodList().ToList(); periods.ForEach(period => { var value = query.Where(nav => nav.TradeAccountId == accountId && nav.ReportDate >= period.FromDate && nav.ReportDate < period.ToDate) .OrderByDescending(nav => nav.ReportDate) .Sum(nav => (decimal?)nav.FifoPnlUnrealized) ?? 0; result.Data.Add(value); }); return(result); }
public ChartDataVm GetChartData(AnalyticsChartDataParams @params) { var result = new ChartDataVm(); var impQuery = ImportRepository.ImportedFilesQuery(); var delQuery = ImportRepository.FileUploadQuery().Include(f => f.ImportedFile); if (@params.MasterAccountId != 0) { impQuery = impQuery.Where(f => f.MasterAccountId == @params.MasterAccountId); delQuery = delQuery.Where(f => f.ImportedFile.MasterAccountId == @params.MasterAccountId); } if (@params.FtpCredentialId != 0) { impQuery = impQuery.Where(f => f.FtpCredentialId == @params.FtpCredentialId); delQuery = delQuery.Where(f => f.ImportedFile.FtpCredentialId == @params.FtpCredentialId); } var srcFilesData = new ChartDataVm.DataSet { Label = "Source files" }; var impFilesData = new ChartDataVm.DataSet { Label = "Imported files" }; var delFilesData = new ChartDataVm.DataSet { Label = "ZOHO files" }; var sentFilesData = new ChartDataVm.DataSet { Label = "Sent ZOHO files" }; var periods = @params.Periods.ToPeriodList().ToList(); periods.ToList().ForEach(period => { var srcFiles = impQuery.Count(f => DbFunctions.TruncateTime(f.FileCreateDate) >= DbFunctions.TruncateTime(period.FromDate) && DbFunctions.TruncateTime(f.FileCreateDate) <= DbFunctions.TruncateTime(period.ToDate)); var impFiles = impQuery.Count(f => DbFunctions.TruncateTime(f.FileCreateDate) >= DbFunctions.TruncateTime(period.FromDate) && DbFunctions.TruncateTime(f.FileCreateDate) <= DbFunctions.TruncateTime(period.ToDate) && f.ImportedDate != null); var delFiles = delQuery.Count(f => DbFunctions.TruncateTime(f.ImportedFile.FileCreateDate) >= DbFunctions.TruncateTime(period.FromDate) && DbFunctions.TruncateTime(f.ImportedFile.FileCreateDate) <= DbFunctions.TruncateTime(period.ToDate)); var sentFiles = delQuery.Count(f => f.IsSent && DbFunctions.TruncateTime(f.ImportedFile.FileCreateDate) >= DbFunctions.TruncateTime(period.FromDate) && DbFunctions.TruncateTime(f.ImportedFile.FileCreateDate) <= DbFunctions.TruncateTime(period.ToDate)); srcFilesData.Data.Add(srcFiles); impFilesData.Data.Add(impFiles); delFilesData.Data.Add(delFiles); sentFilesData.Data.Add(sentFiles); }); result.Data = new[] { srcFilesData, impFilesData, delFilesData, sentFilesData }; result.Labels = TradeUtils.GetPeriodLabels(periods).ToArray(); return(result); }