public IHttpActionResult UpdateSimulationAnalysis([FromBody] SimulationAnalysisModel model) { UserInformationModel userInformation = ESECSecurity.GetUserInformation(Request); SimulationAnalysisUpdateMethods[userInformation.Role](model, userInformation); return(Ok()); }
/// <summary> /// Updates a simulation's analysis data /// </summary> /// <param name="model">SimulationAnalysisModel</param> /// <param name="db">BridgeCareContext</param> public void UpdateSimulationAnalysis(SimulationAnalysisModel model, BridgeCareContext db) { if (!db.Simulations.Any(s => s.SIMULATIONID == model.Id)) { throw new RowNotInTableException($"No scenario found with id {model.Id}"); } var simulation = db.Simulations.Single(s => s.SIMULATIONID == model.Id); model.UpdateSimulationAnalysis(simulation); db.SaveChanges(); }
private void FillAnalysisDetails(ExcelWorksheet worksheet, SimulationAnalysisModel investmentPeriod) { excelHelper.MergeCells(worksheet, 6, 12, 6, 15); excelHelper.MergeCells(worksheet, 8, 12, 8, 13); excelHelper.MergeCells(worksheet, 10, 12, 10, 13); excelHelper.MergeCells(worksheet, 12, 12, 12, 13); excelHelper.MergeCells(worksheet, 14, 12, 14, 13); excelHelper.ApplyBorder(worksheet.Cells[6, 12, 14, 15]); excelHelper.MergeCells(worksheet, 8, 14, 8, 15); excelHelper.MergeCells(worksheet, 10, 14, 10, 15, false); excelHelper.MergeCells(worksheet, 12, 14, 12, 15, false); excelHelper.MergeCells(worksheet, 14, 14, 14, 15, false); excelHelper.ApplyBorder(worksheet.Cells[8, 14, 14, 15]); worksheet.Cells["L6:O6"].Value = "Analysis:"; excelHelper.ApplyColor(worksheet.Cells[6, 12, 6, 15], Color.Gray); worksheet.Cells["L8:M8"].Value = "Optimization:"; worksheet.Cells["L10:M10"].Value = "Budget:"; worksheet.Cells["L12:M12"].Value = "Weighting:"; worksheet.Cells["L14:M14"].Value = "Benefit:"; var optimization = worksheet.DataValidations.AddListValidation("N8:O8"); optimization.Formula.Values.Add("Incremental Benefit/Cost"); optimization.Formula.Values.Add("Maximum Benefit"); optimization.Formula.Values.Add("Remaining Life/Cost"); optimization.Formula.Values.Add("Maximum Remaining Life"); optimization.Formula.Values.Add("Multi-year Incremental Benefit/Cost"); optimization.Formula.Values.Add("Multi-year Maximum Benefit"); optimization.Formula.Values.Add("Multi-year Remaining Life/Cost"); optimization.Formula.Values.Add("Multi-year Maximum Life"); optimization.AllowBlank = false; worksheet.Cells["N8:O8"].Value = investmentPeriod.OptimizationType; var budgets = worksheet.DataValidations.AddListValidation("N10:O10"); budgets.Formula.Values.Add("No Spending"); budgets.Formula.Values.Add("As Budget Permits"); budgets.Formula.Values.Add("Until Targets Met"); budgets.Formula.Values.Add("Until Deficient Met"); budgets.Formula.Values.Add("Targets/Deficient Met"); budgets.Formula.Values.Add("Unlimited"); worksheet.Cells["N10:O10"].Value = investmentPeriod.BudgetType; worksheet.Cells["N12:O12"].Value = investmentPeriod.WeightingAttribute; worksheet.Cells["N14:O14"].Value = investmentPeriod.BenefitAttribute; }
public void PartialUpdatePermittedSimulationAnalysis(SimulationAnalysisModel model, BridgeCareContext db, string username, bool updateWeighting = true) { if (!db.Simulations.Any(s => s.SIMULATIONID == model.Id)) { throw new RowNotInTableException($"No scenario found with id {model.Id}"); } if (!db.Simulations.Include(s => s.USERS).First(s => s.SIMULATIONID == model.Id).UserCanModify(username)) { throw new UnauthorizedAccessException("You are not authorized to modify this scenario's analysis."); } var simulation = db.Simulations.Single(s => s.SIMULATIONID == model.Id); model.PartialUpdateSimulationAnalysis(simulation, updateWeighting); db.SaveChanges(); }
private void FillSimulationDetails(ExcelWorksheet worksheet, SimulationAnalysisModel investmentPeriod, double?inflationRate, int yearCount) { excelHelper.MergeCells(worksheet, 6, 6, 6, 8); excelHelper.MergeCells(worksheet, 8, 6, 8, 7); excelHelper.MergeCells(worksheet, 10, 6, 10, 7); excelHelper.MergeCells(worksheet, 12, 6, 12, 7); excelHelper.ApplyColor(worksheet.Cells[6, 6, 6, 8], Color.Gray); worksheet.Cells["F6:H6"].Value = "Investment:"; worksheet.Cells["F8:G8"].Value = "Start Year:"; worksheet.Cells["F10:G10"].Value = "Analysis Period:"; worksheet.Cells["F12:G12"].Value = "Inflation Rate:"; excelHelper.ApplyBorder(worksheet.Cells[6, 6, 12, 8]); worksheet.Cells["H8"].Value = investmentPeriod.StartYear; worksheet.Cells["H10"].Value = yearCount; worksheet.Cells["H12"].Value = inflationRate; excelHelper.ApplyBorder(worksheet.Cells[8, 8, 12, 8]); }
public IHttpActionResult UpdateSimulationAnalysis([FromBody] SimulationAnalysisModel model) { repo.UpdateSimulationAnalysis(model, db); return(Ok()); }