public ActionResult PCDs(MOE.Common.Models.ViewModel.LinkPivotPCDOptions pcdOptions) { if (ModelState.IsValid) { LinkPivotServiceReference.LinkPivotServiceClient client = new LinkPivotServiceReference.LinkPivotServiceClient(); LinkPivotServiceReference.DisplayObject display = new LinkPivotServiceReference.DisplayObject(); pcdOptions.SelectedEndDate = Convert.ToDateTime(pcdOptions.SelectedStartDate[0].ToShortDateString() + " " + pcdOptions.EndDate.ToShortTimeString()); DateTime pcdEndDate = Convert.ToDateTime(pcdOptions.SelectedStartDate[0].ToShortDateString() + " " + pcdOptions.SelectedEndDate.TimeOfDay.ToString()); client.Open(); display = client.DisplayLinkPivotPCD(pcdOptions.SignalId, pcdOptions.UpstreamDirection, pcdOptions.DownSignalId, pcdOptions.DownDirection, pcdOptions.Delta, pcdOptions.SelectedStartDate[0], pcdEndDate, pcdOptions.YAxis); client.Close(); MOE.Common.Models.ViewModel.LinkPivotPCDsViewModel pcdModel = new MOE.Common.Models.ViewModel.LinkPivotPCDsViewModel(); string imagePath = ConfigurationManager.AppSettings["SPMImageLocation"] + "LinkPivot/"; pcdModel.ExistingChart = imagePath + display.UpstreamBeforePCDPath; pcdModel.PredictedChart = imagePath + display.UpstreamAfterPCDPath; pcdModel.ExistingDownChart = imagePath + display.DownstreamBeforePCDPath; pcdModel.PredictedDownChart = imagePath + display.DownstreamAfterPCDPath; pcdModel.ExistingAog = Convert.ToInt32(display.ExistingAOG); pcdModel.ExistingAogPercent = Math.Round(display.ExistingPAOG * 100); pcdModel.PredictedAog = Convert.ToInt32(display.PredictedAOG); pcdModel.PredictedAogPercent = Math.Round(display.PredictedPAOG * 100); pcdModel.DownstreamBeforeTitle = display.DownstreamBeforeTitle; pcdModel.UpstreamBeforeTitle = display.UpstreamBeforeTitle; pcdModel.DownstreamAfterTitle = display.DownstreamAfterTitle; pcdModel.UpstreamAfterTitle = display.UpstreamAfterTitle; return(PartialView("PCDs", pcdModel)); } else { return(View()); } }
public ActionResult PCDs(MOE.Common.Models.ViewModel.LinkPivotPCDOptions pcdOptions) { if (ModelState.IsValid) { LinkPivotServiceReference.LinkPivotServiceClient client = new LinkPivotServiceReference.LinkPivotServiceClient(); LinkPivotServiceReference.DisplayObject display = new LinkPivotServiceReference.DisplayObject(); pcdOptions.SelectedEndDate = Convert.ToDateTime(pcdOptions.SelectedStartDate[0].ToShortDateString() + " " + pcdOptions.EndDate.ToShortTimeString()); DateTime pcdEndDate = Convert.ToDateTime(pcdOptions.SelectedStartDate[0].ToShortDateString() + " " + pcdOptions.SelectedEndDate.Value.TimeOfDay.ToString()); client.Open(); display = client.DisplayLinkPivotPCD(pcdOptions.SignalId, pcdOptions.UpstreamDirection, pcdOptions.DownSignalId, pcdOptions.DownDirection, pcdOptions.Delta, pcdOptions.SelectedStartDate[0], pcdEndDate, pcdOptions.YAxis); client.Close(); MOE.Common.Models.ViewModel.LinkPivotPCDsViewModel pcdModel = new MOE.Common.Models.ViewModel.LinkPivotPCDsViewModel(); var settingsRepository = MOE.Common.Models.Repositories.ApplicationSettingsRepositoryFactory.Create(); GeneralSettings settings = settingsRepository.GetGeneralSettings(); string imagePath = settings.ImagePath; pcdModel.ExistingChart = display.UpstreamBeforePCDPath; pcdModel.PredictedChart = display.UpstreamAfterPCDPath; pcdModel.ExistingDownChart = display.DownstreamBeforePCDPath; pcdModel.PredictedDownChart = display.DownstreamAfterPCDPath; pcdModel.ExistingAog = Convert.ToInt32(display.ExistingAOG); pcdModel.ExistingAogPercent = Math.Round(display.ExistingPAOG * 100); pcdModel.PredictedAog = Convert.ToInt32(display.PredictedAOG); pcdModel.PredictedAogPercent = Math.Round(display.PredictedPAOG * 100); pcdModel.DownstreamBeforeTitle = display.DownstreamBeforeTitle; pcdModel.UpstreamBeforeTitle = display.UpstreamBeforeTitle; pcdModel.DownstreamAfterTitle = display.DownstreamAfterTitle; pcdModel.UpstreamAfterTitle = display.UpstreamAfterTitle; return(PartialView("PCDs", pcdModel)); } return(View()); }
public ActionResult LinkPivotResult(MOE.Common.Models.ViewModel.LinkPivotViewModel lpvm) { if (ModelState.IsValid) { DateTime _StartDate = Convert.ToDateTime(lpvm.StartDate.ToShortDateString() + " " + lpvm.StartTime + " " + lpvm.StartAMPM); DateTime _EndDate = Convert.ToDateTime(lpvm.EndDate.ToShortDateString() + " " + lpvm.EndTime + " " + lpvm.EndAMPM); LinkPivotServiceReference.LinkPivotServiceClient client = new LinkPivotServiceReference.LinkPivotServiceClient(); //TestLinkPivot.LinkPivotServiceClient client = // new TestLinkPivot.LinkPivotServiceClient(); LinkPivotServiceReference.AdjustmentObject[] adjustments; //MOEWcfServiceLibrary.AdjustmentObject[] adjustments; client.Open(); //Based on the starting point selected by the user Create the link pivot object if (lpvm.StartingPoint == "Downstream") { adjustments = client.GetLinkPivot( lpvm.SelectedApproachRouteId, _StartDate, _EndDate, lpvm.CycleLength, ConfigurationManager.AppSettings["LinkPivotImageLocation"], "Downstream", lpvm.Bias, lpvm.BiasUpDownStream, lpvm.PostedDays.DayIDs.Contains("0"), //Sunday, lpvm.PostedDays.DayIDs.Contains("1"), //Monday lpvm.PostedDays.DayIDs.Contains("2"), //Tuesday lpvm.PostedDays.DayIDs.Contains("3"), //Wednesday lpvm.PostedDays.DayIDs.Contains("4"), //Thursday lpvm.PostedDays.DayIDs.Contains("5"), //Friday lpvm.PostedDays.DayIDs.Contains("6")); //Saturday } else { adjustments = client.GetLinkPivot( lpvm.SelectedApproachRouteId, _StartDate, _EndDate, lpvm.CycleLength, ConfigurationManager.AppSettings["LinkPivotImageLocation"], "Upstream", lpvm.Bias, lpvm.BiasUpDownStream, lpvm.PostedDays.DayIDs.Contains("0"), //Sunday, lpvm.PostedDays.DayIDs.Contains("1"), //Monday lpvm.PostedDays.DayIDs.Contains("2"), //Tuesday lpvm.PostedDays.DayIDs.Contains("3"), //Wednesday lpvm.PostedDays.DayIDs.Contains("4"), //Thursday lpvm.PostedDays.DayIDs.Contains("5"), //Friday lpvm.PostedDays.DayIDs.Contains("6")); //Saturday } client.Close(); MOE.Common.Models.ViewModel.LinkPivotResultViewModel lprvm = new MOE.Common.Models.ViewModel.LinkPivotResultViewModel(); double totalVolume = 0; double totalDownstreamVolume = 0; double totalUpstreamVolume = 0; foreach (LinkPivotServiceReference.AdjustmentObject a in adjustments) { lprvm.Adjustments.Add(new MOE.Common.Models.ViewModel.LinkPivotAdjustment(a.LinkNumber, a.SignalId, a.Location, a.Delta, a.Adjustment)); lprvm.ApproachLinks.Add(new MOE.Common.Models.ViewModel.LinkPivotApproachLink(a.SignalId, a.Location, a.UpstreamApproachDirection, a.DownSignalId, a.DownstreamLocation, a.DownstreamApproachDirection, a.PAOGUpstreamBefore, a.PAOGUpstreamPredicted, a.PAOGDownstreamBefore, a.PAOGDownstreamPredicted, a.AOGUpstreamBefore, a.AOGUpstreamPredicted, a.AOGDownstreamBefore, a.AOGDownstreamPredicted, a.Delta, a.ResultChartLocation, a.AogTotalBefore, a.PAogTotalBefore, a.AogTotalPredicted, a.PAogTotalPredicted, a.LinkNumber )); totalVolume = totalVolume + a.DownstreamVolume + a.UpstreamVolume; totalDownstreamVolume = totalDownstreamVolume + a.DownstreamVolume; totalUpstreamVolume = totalUpstreamVolume + a.UpstreamVolume; } //Remove the last row from approch links because it will always be 0 lprvm.ApproachLinks.RemoveAt(lprvm.ApproachLinks.Count - 1); //Get the totals lprvm.TotalAogDownstreamBefore = adjustments.Sum(a => a.AOGDownstreamBefore); lprvm.TotalPaogDownstreamBefore = Math.Round((adjustments.Sum(a => a.AOGDownstreamBefore) / totalDownstreamVolume) * 100); lprvm.TotalAogDownstreamPredicted = adjustments.Sum(a => a.AOGDownstreamPredicted); lprvm.TotalPaogDownstreamPredicted = Math.Round((adjustments.Sum(a => a.AOGDownstreamPredicted) / totalDownstreamVolume) * 100); lprvm.TotalAogUpstreamBefore = adjustments.Sum(a => a.AOGUpstreamBefore); lprvm.TotalPaogUpstreamBefore = Math.Round((adjustments.Sum(a => a.AOGUpstreamBefore) / totalUpstreamVolume) * 100); lprvm.TotalAogUpstreamPredicted = adjustments.Sum(a => a.AOGUpstreamPredicted); lprvm.TotalPaogUpstreamPredicted = Math.Round((adjustments.Sum(a => a.AOGUpstreamPredicted) / totalUpstreamVolume) * 100); lprvm.TotalAogBefore = lprvm.TotalAogUpstreamBefore + lprvm.TotalAogDownstreamBefore; lprvm.TotalPaogBefore = Math.Round((lprvm.TotalAogBefore / totalVolume) * 100); lprvm.TotalAogPredicted = lprvm.TotalAogUpstreamPredicted + lprvm.TotalAogDownstreamPredicted; lprvm.TotalPaogPredicted = Math.Round((lprvm.TotalAogPredicted / totalVolume) * 100); //once all the data has been set we get the summary info. lprvm.SetSummary(); return(PartialView("LinkPivotResult", lprvm)); } else { return(View(lpvm)); } }