public ValuationViewModel GenerateValuationViewModel(ValuationSummary summary, Highcharts chart)
        {
            ValuationViewModel model = new ValuationViewModel();

            //set the valuation summary
            model.ValuationSummary = summary;
            model.Chart            = chart;
            //set the intraday change by getting the last value from the dictionary
            model.IntradayChange   = Math.Round(summary.IntraDayChangeValuationDetailSummary.Values.Last(), 2).ToString();
            model.PercentageChange = Math.Round(((summary.IntraDayChangeValuationDetailSummary.Values.Last() / summary.ValuationDetailSummary.Values.Last()) * 100), 2).ToString();
            model.PortfolioValue   = summary.ValuationDetailSummary.Values.Last().ToString();
            model.IntradayHigh     = Math.Round(summary.IntraDayChangeValuationDetailSummary.Values.Max(), 2).ToString();
            model.IntradayLow      = Math.Round(summary.IntraDayChangeValuationDetailSummary.Values.Min(), 2).ToString();

            return(model);
        }
        public async Task <IHttpActionResult> Intraday(int valuationId, int portfolioId, DateTime begtime, DateTime endtime)
        {
            ValuationSummary summary = new ValuationSummary();

            summary.BegTime = begtime;
            summary.EndTime = endtime;

            summary.Portfolio = await portfoliolRepo.GetPortoflioAsync(portfolioId);

            summary.ValuationDetail = await valuationDetailRepo.GetValuationDetailsAsync(portfolioId, valuationId, begtime, endtime);

            summary.ValuationDetailSummary = summary.ValuationDetail.GroupBy(x => x.ValuationTime).ToDictionary(x => x.Key, x => x.Sum(global => global.PositionValue));
            // summary.IntraDayChangeValuationDetailSummary = GenerateIntraDayChangeValuationDetailSummary(summary.ValuationDetailSummary);
            summary.IntraDayChangeValuationDetailSummary = summary.ValuationDetail.GroupBy(x => x.ValuationTime).ToDictionary(x => x.Key, x => x.Sum(y => y.Quantity * y.IntradayChange));
            if (summary == null)
            {
                return(NotFound());
            }

            return(Ok(summary));
        }