Ejemplo n.º 1
0
        private int AddCostsOfCommittedWork(ExcelWorksheet worksheet, List <int> simulationYears, CurrentCell currentCell,
                                            List <WorkSummaryByBudgetModel> comittedProjectsData)
        {
            var startYear = simulationYears[0];
            int startRow, startColumn, row, column;

            bridgeWorkSummaryCommon.SetRowColumns(currentCell, out startRow, out startColumn, out row, out column);
            currentCell.Column = column;
            var committedTotalRow = 0;

            var uniqueTreatments  = new Dictionary <string, int>();
            var costForTreatments = new Dictionary <string, double>();

            foreach (var data in comittedProjectsData)
            {
                if (data.YEARS < startYear || data.TREATMENT.ToLower() == "no treatment")
                {
                    continue;
                }
                if (!uniqueTreatments.ContainsKey(data.TREATMENT))
                {
                    uniqueTreatments.Add(data.TREATMENT, currentCell.Row);
                    worksheet.Cells[currentCell.Row, currentCell.Column].Value = data.TREATMENT;
                    var cellToEnterCost = data.YEARS - startYear;
                    worksheet.Cells[uniqueTreatments[data.TREATMENT], currentCell.Column + cellToEnterCost + 2].Value = data.CostPerTreatmentPerYear;
                    costForTreatments.Add(data.TREATMENT, data.CostPerTreatmentPerYear);
                    currentCell.Row += 1;
                }
                else
                {
                    var cellToEnterCost = data.YEARS - startYear;
                    worksheet.Cells[uniqueTreatments[data.TREATMENT], currentCell.Column + cellToEnterCost + 2].Value = data.CostPerTreatmentPerYear;
                }
            }
            row    = currentCell.Row;
            column = currentCell.Column;
            worksheet.Cells[row, column].Value = Properties.Resources.CommittedTotal;
            column++;
            var fromColumn = column + 1;

            foreach (var year in simulationYears)
            {
                var yearlyBudget           = comittedProjectsData.FindAll(_ => _.YEARS == year);
                var aggregateAmountPerYear = yearlyBudget.Sum(s => s.CostPerTreatmentPerYear);
                column = ++column;

                worksheet.Cells[row, column].Value = aggregateAmountPerYear;
                TotalCommittedSpent.Add(year, aggregateAmountPerYear);
                committedTotalRow = row;
            }
            excelHelper.ApplyBorder(worksheet.Cells[startRow, startColumn, row, column]);
            excelHelper.SetCustomFormat(worksheet.Cells[startRow, fromColumn, row, column], "NegativeCurrency");
            excelHelper.ApplyColor(worksheet.Cells[startRow, fromColumn, row, column], Color.FromArgb(198, 224, 180));
            excelHelper.ApplyColor(worksheet.Cells[committedTotalRow, fromColumn, committedTotalRow, column], Color.FromArgb(84, 130, 53));
            excelHelper.SetTextColor(worksheet.Cells[committedTotalRow, fromColumn, committedTotalRow, column], Color.White);
            bridgeWorkSummaryCommon.UpdateCurrentCell(currentCell, ++row, column);
            return(committedTotalRow);
        }
Ejemplo n.º 2
0
        private void AddDetailsForTotalDeckArea(ExcelWorksheet worksheet, CurrentCell currentCell, List <int> simulationYears, List <SimulationDataModel> simulationDataModels)
        {
            int startRow, startColumn, row, column;

            bridgeWorkSummaryCommon.InitializeLabelCells(worksheet, currentCell, out startRow, out startColumn, out row, out column);
            AddTotalDeckArea(worksheet, simulationDataModels, startRow, column, 0);
            foreach (var year in simulationYears)
            {
                row    = startRow;
                column = ++column;
                AddTotalDeckArea(worksheet, simulationDataModels, row, column, year);
            }
            excelHelper.ApplyBorder(worksheet.Cells[startRow, startColumn, row + 2, column]);
            excelHelper.SetCustomFormat(worksheet.Cells[startRow, startColumn + 1, row + 2, column], "Number");
            excelHelper.ApplyColor(worksheet.Cells[row + 2, startColumn + 1, row + 2, column], Color.Khaki);
            bridgeWorkSummaryCommon.UpdateCurrentCell(currentCell, row + 3, column);
        }
Ejemplo n.º 3
0
        private void AddCountsOfCulvertsWorkedOn(ExcelWorksheet worksheet, List <SimulationDataModel> simulationDataModels, List <int> simulationYears, CurrentCell currentCell, ProjectRowNumberModel projectRowNumberModel)
        {
            int startRow, startColumn, row, column;

            bridgeWorkSummaryCommon.SetRowColumns(currentCell, out startRow, out startColumn, out row, out column);
            worksheet.Cells[row++, column].Value = Properties.Resources.NoTreatment;
            worksheet.Cells[row++, column].Value = Properties.Resources.Preservation;
            worksheet.Cells[row++, column].Value = Properties.Resources.PreservationPoorFix;
            worksheet.Cells[row++, column].Value = Properties.Resources.Rehabilitation;
            worksheet.Cells[row++, column].Value = Properties.Resources.Replacement;
            worksheet.Cells[row++, column].Value = Properties.Resources.Total;
            column++;
            var fromColumn = column + 1;

            foreach (var year in simulationYears)
            {
                row    = startRow;
                column = ++column;

                var noTreatmentCount = bridgeWorkSummaryComputationHelper.CalculateNoTreatmentCountForCulverts(simulationDataModels, year);
                worksheet.Cells[row, column].Value           = noTreatmentCount;
                projectRowNumberModel.CulvertsNoTreatmentRow = row;

                int preservationPoorFixrow   = row + 2;
                var preservationPoorFixCount = bridgeWorkSummaryComputationHelper.CalculatePreservationPoorFixCount(simulationDataModels, year);
                worksheet.Cells[preservationPoorFixrow, column].Value = preservationPoorFixCount;

                var preservationCount = bridgeWorkSummaryComputationHelper.CalculateCountByProject(simulationDataModels, year, Properties.Resources.CulvertPreservation) - preservationPoorFixCount;
                worksheet.Cells[++row, column].Value          = preservationCount;
                projectRowNumberModel.CulvertsPreservationRow = row;

                row = preservationPoorFixrow + 1;
                var rehabilitationCount = bridgeWorkSummaryComputationHelper.CalculateCountByProject(simulationDataModels, year, Properties.Resources.CulvertRehabilitation);
                worksheet.Cells[row, column].Value = rehabilitationCount;
                projectRowNumberModel.CulvertsRehabilitationRow = row;

                var replacementCount = bridgeWorkSummaryComputationHelper.CalculateCountByProject(simulationDataModels, year, Properties.Resources.CulvertReplacement);
                worksheet.Cells[++row, column].Value         = replacementCount;
                projectRowNumberModel.CulvertsReplacementRow = row;

                worksheet.Cells[++row, column].Value = preservationCount + preservationPoorFixCount + rehabilitationCount + replacementCount;
            }
            excelHelper.ApplyBorder(worksheet.Cells[startRow, startColumn, row, column]);
            excelHelper.ApplyColor(worksheet.Cells[startRow, fromColumn, row, column], Color.LightSteelBlue);
            bridgeWorkSummaryCommon.UpdateCurrentCell(currentCell, ++row, column);
        }
Ejemplo n.º 4
0
        private void AddCountsOfCulvertsWorkedOn(ExcelWorksheet worksheet, List <SimulationDataModel> simulationDataModels, List <int> simulationYears, CurrentCell currentCell, ProjectRowNumberModel projectRowNumberModel, List <string> treatments)
        {
            int startRow, startColumn, row, column;

            bridgeWorkSummaryCommon.SetRowColumns(currentCell, out startRow, out startColumn, out row, out column);
            foreach (var item in treatments)
            {
                if (item.ToLower().Contains("culvert"))
                {
                    worksheet.Cells[row++, column].Value = item;
                }
            }
            worksheet.Cells[row++, column].Value = Properties.Resources.Total;
            column++;
            var fromColumn = column + 1;

            foreach (var year in simulationYears)
            {
                row    = startRow;
                column = ++column;
                double culvertTotalCount = 0;

                foreach (var item in treatments)
                {
                    if (item.ToLower().Contains("culvert"))
                    {
                        var culvertCount = bridgeWorkSummaryComputationHelper.CalculateCountByProject(simulationDataModels, year, item);
                        worksheet.Cells[row, column].Value = culvertCount;
                        projectRowNumberModel.TreatmentsCount.Add(item + "_" + year, row);
                        row++;
                        culvertTotalCount += culvertCount;
                    }
                }
                worksheet.Cells[row, column].Value = culvertTotalCount;
            }
            excelHelper.ApplyBorder(worksheet.Cells[startRow, startColumn, row, column]);
            excelHelper.ApplyColor(worksheet.Cells[startRow, fromColumn, row, column], Color.LightSteelBlue);
            bridgeWorkSummaryCommon.UpdateCurrentCell(currentCell, ++row, column);
        }
Ejemplo n.º 5
0
        private int AddCostsOfCulvertWork(ExcelWorksheet worksheet, List <SimulationDataModel> simulationDataModels, List <int> simulationYears, CurrentCell currentCell)
        {
            int startRow, startColumn, row, column;

            bridgeWorkSummaryCommon.SetRowColumns(currentCell, out startRow, out startColumn, out row, out column);
            int culvertTotalRow = 0;

            worksheet.Cells[row++, column].Value = Properties.Resources.Preservation;
            worksheet.Cells[row++, column].Value = Properties.Resources.Rehabilitation;
            worksheet.Cells[row++, column].Value = Properties.Resources.Replacement;
            worksheet.Cells[row++, column].Value = Properties.Resources.CulvertTotal;
            column++;
            var fromColumn = column + 1;

            foreach (var year in simulationYears)
            {
                row    = startRow;
                column = ++column;

                var preservationCost = bridgeWorkSummaryComputationHelper.CalculateCost(simulationDataModels, year, Properties.Resources.CulvertPreservation);
                worksheet.Cells[row, column].Value = preservationCost;

                var rehabilitationCost = bridgeWorkSummaryComputationHelper.CalculateCost(simulationDataModels, year, Properties.Resources.CulvertRehabilitation);
                worksheet.Cells[++row, column].Value = rehabilitationCost;

                var replacementCost = bridgeWorkSummaryComputationHelper.CalculateCost(simulationDataModels, year, Properties.Resources.CulvertReplacement);
                worksheet.Cells[++row, column].Value = replacementCost;

                worksheet.Cells[++row, column].Value = preservationCost + rehabilitationCost + replacementCost;
                culvertTotalRow = row;
            }
            excelHelper.ApplyBorder(worksheet.Cells[startRow, startColumn, row, column]);
            excelHelper.SetCustomFormat(worksheet.Cells[startRow, fromColumn, row, column], "NegativeCurrency");
            excelHelper.ApplyColor(worksheet.Cells[startRow, fromColumn, row, column], Color.DarkSeaGreen);
            bridgeWorkSummaryCommon.UpdateCurrentCell(currentCell, ++row, column);
            return(culvertTotalRow);
        }
Ejemplo n.º 6
0
        private void AddDynamicDataCells(ExcelWorksheet worksheet, List <Section> sectionsForSummaryReport, List <SimulationDataModel> simulationDataModels,
                                         List <BridgeDataModel> bridgeDataModels, CurrentCell currentCell, int columnForRiskScore)
        {
            var row                       = 4; // Data starts here
            var startingRow               = row;
            var column                    = currentCell.Column;
            int totalColumn               = 0;
            int totalColumnValue          = 0;
            var abbreviatedTreatmentNames = ShortNamesForTreatments.GetShortNamesForTreatments();

            // making dictionary to remove if else, which was used to enter value for MinC
            valueForMinC = new Dictionary <MinCValue, Func <ExcelWorksheet, int, int, YearsData, int> >();
            valueForMinC.Add(MinCValue.defaultValue, new Func <ExcelWorksheet, int, int, YearsData, int>(EnterDefaultMinCValue));
            valueForMinC.Add(MinCValue.valueEqualsCulv, new Func <ExcelWorksheet, int, int, YearsData, int>(EnterValueEqualsCulv));
            valueForMinC.Add(MinCValue.minOfDeckSubSuper, new Func <ExcelWorksheet, int, int, YearsData, int>(EnterMinDeckSuperSub));
            valueForMinC.Add(MinCValue.minOfCulvDeckSubSuper, new Func <ExcelWorksheet, int, int, YearsData, int>(EnterMinDeckSuperSubCulv));

            foreach (var bridgeDataModel in bridgeDataModels)
            {
                if (row % 2 == 0)
                {
                    excelHelper.ApplyColor(worksheet.Cells[row, 1, row, worksheet.Dimension.Columns], Color.LightGray);
                }
                column = currentCell.Column;
                var brKey                = bridgeDataModel.BRKey;
                var familyId             = bridgeDataModel.BridgeFamily;
                var workDoneMoreThanOnce = 0;
                var section              = sectionsForSummaryReport.Where(s => Convert.ToInt32(s.FACILITY) == brKey).FirstOrDefault();
                var simulationDataModel  = simulationDataModels.Where(s => s.SectionId == section.SECTIONID).FirstOrDefault();
                // Save DeckArea for further use
                simulationDataModel.DeckArea = bridgeDataModel.DeckArea;
                simulationDataModel.BRKey    = brKey;
                bridgeDataModel.RiskScore    = simulationDataModel.RiskScore;
                worksheet.Cells[row, columnForRiskScore].Value = simulationDataModel.RiskScore;
                var yearsData         = simulationDataModel.YearsData;
                var projectPickByYear = new Dictionary <int, int>();
                // Add work done cells
                for (var index = 1; index < yearsData.Count(); index++)
                {
                    var cost  = yearsData[index].Cost;
                    var range = worksheet.Cells[row, ++column];
                    projectPickByYear.Add(yearsData[index].Year, yearsData[index].ProjectPickType);
                    setColor(bridgeDataModel.ParallelBridge, yearsData[index].Treatment, projectPickByYear,
                             yearsData[index].Year, index, yearsData[index].Project, worksheet, row, column);
                    if (abbreviatedTreatmentNames.ContainsKey(yearsData[index].Treatment))
                    {
                        range.Value = string.IsNullOrEmpty(abbreviatedTreatmentNames[yearsData[index].Treatment]) ? "--" : abbreviatedTreatmentNames[yearsData[index].Treatment];
                    }
                    else
                    {
                        range.Value = string.IsNullOrEmpty(yearsData[index].Treatment) ? "--" : yearsData[index].Treatment;
                    }
                    workDoneMoreThanOnce = !range.Value.Equals("--") ? workDoneMoreThanOnce + 1 : workDoneMoreThanOnce;
                }
                worksheet.Cells[row, ++column].Value = workDoneMoreThanOnce > 1 ? "Yes" : "--";
                totalColumnValue = workDoneMoreThanOnce > 1 ? totalColumnValue + 1 : totalColumnValue;

                // Empty Total column
                column++;
                // Add Total of count of Work done more than once column cells if "Yes"
                totalColumn = column;

                // Add Poor On/Off Rate column: Formula (prev yr MinC < 5 and  curr yr Minc >= 5 then "Off"), (prev yr MinC >= 5 and curr ye MinC < 5 then "On")
                for (var index = 1; index < yearsData.Count(); index++)
                {
                    var prevYrMinc = yearsData[index - 1].MinC;
                    var thisYrMinc = yearsData[index].MinC;
                    worksheet.Cells[row, ++column].Value = prevYrMinc < 5 ? (thisYrMinc >= 5 ? "Off" : "--") : (thisYrMinc < 5 ? "On" : "--");
                    yearsData[index].PoorOnOffRate       = worksheet.Cells[row, column].Value.ToString();
                }

                // Empty column
                column++;

                worksheet.Column(column).Style.Fill.PatternType = ExcelFillStyle.Solid;
                worksheet.Column(column).Style.Fill.BackgroundColor.SetColor(Color.Gray);


                // Last Year simulation data
                var lastYearData = yearsData.FirstOrDefault();
                column = AddSimulationYearData(worksheet, row, column, lastYearData, familyId, bridgeDataModel, projectPickByYear);

                // Add all yrs from current year simulation data
                for (var index = 1; index < yearsData.Count(); index++)
                {
                    column = AddSimulationYearData(worksheet, row, column, yearsData[index], familyId, bridgeDataModel, projectPickByYear);
                }
                row++;
            }
            if (totalColumn != 0)
            {
                worksheet.Cells[3, totalColumn].Value = totalColumnValue;
            }
            currentCell.Row    = row - 1;
            currentCell.Column = column - 1;
        }