@using EnVisage.Models.Scenarios @model CompareModel @{ var optimalColNumber = Model.OptimalScenarioIndex + 2; //First column is for property names } @for (int i = 0; i < Model.Scenarios.Count(); i++) { } @*@foreach (var item in Model.Scenarios) { }*@ @RenderPropertyRow("", x => x.Name, "{0}", true) @RenderMagnifyRow() @RenderPropertyRow("Calculated Net Impact", x => x.CalculatedNetImpact, "{0:c}") @RenderPropertyRow("Bottom-Up Expense", x => x.BottomUpExpense, "{0:c}") @RenderPropertyRow("Cost Savings", x => x.CostSavings, "{0:c}") @RenderPropertyRow("Projected Revenue", x => x.ProjectedRevenue, "{0:c}") @RenderPropertyRow("Expected Margin", x => x.ExpectedMargin, "{0:P0}") @RenderPropertyRow("Calculated Margin", x => x.CalculatedMargin, "{0:P0}") @RenderPropertyRow("Duration (in weeks)", x => x.Weeks, "{0:N0}") @RenderPropertyRow("Scenario Dates", x => ScenarioDates(x.StartDate, x.EndDate)) @foreach (var item in Model.Scenarios) { var disabled = item.IsActive ? "disabled" : ""; var hint = item.IsActive ? "Scenario is active" : ""; //TODO: hint is not shown when button is disabled var scenarioStartDate = item.StartDate.HasValue ? item.StartDate.Value.ToShortDateString() : null; var scenarioEndDate = item.EndDate.HasValue ? item.EndDate.Value.ToShortDateString() : null; }
@helper RenderMagnifyRow() { @foreach (var item in Model.Scenarios) {
} } @helper ScenarioDates(DateTime? startDate, DateTime? endDate) { var start = startDate.HasValue ? startDate.Value.ToString("d") : "N/A"; var end = endDate.HasValue ? endDate.Value.ToString("d") : "N/A"; @:@start – @end } @helper RenderPropertyRow(string label, Func getter, string format = "{0}", bool bold = false) { @label @foreach (var item in Model.Scenarios) { var value = getter(item); var valueStr = value != null ? string.Format(format, value) : ""; if (bold) { valueStr = "" + valueStr + ""; } @Html.Raw(valueStr) } }