public PersistedCityStatisticsWithFinancialData(
            PersistedCityStatistics persistedCityStatistics,
            int currentAmountOfFunds,
            int currentProjectedAmountOfFunds,
            ICityBudgetConfiguration cityBudgetConfiguration)
        {
            PersistedCityStatistics       = persistedCityStatistics;
            CurrentAmountOfFunds          = currentAmountOfFunds;
            CurrentProjectedAmountOfFunds = currentProjectedAmountOfFunds;

            ResidentialTaxIncome = Convert.ToInt32(persistedCityStatistics.ResidentialZonePopulationStatistics.Sum * cityBudgetConfiguration.ResidentialTaxRate);
            CommercialTaxIncome  = Convert.ToInt32(persistedCityStatistics.CommercialZonePopulationStatistics.Sum * cityBudgetConfiguration.CommercialTaxRate);
            IndustrialTaxIncome  = Convert.ToInt32(persistedCityStatistics.IndustrialZonePopulationStatistics.Sum * cityBudgetConfiguration.IndustrialTaxRate);

            PoliceServiceExpenses = Convert.ToInt32((persistedCityStatistics.NumberOfPoliceStations * 10) * cityBudgetConfiguration.PoliceServiceRate);
            FireServiceExpenses   = Convert.ToInt32((persistedCityStatistics.NumberOfFireStations * 10) * cityBudgetConfiguration.FireDepartmentServiceRate);

            RoadInfrastructureExpenses     = Convert.ToInt32((persistedCityStatistics.NumberOfRoadZones) * cityBudgetConfiguration.RoadInfrastructureServiceRate);
            RailroadInfrastructureExpenses = Convert.ToInt32((persistedCityStatistics.NumberOfRailRoadZones) * cityBudgetConfiguration.RailroadInfrastructureServiceRate)
                                             + Convert.ToInt32((persistedCityStatistics.NumberOfTrainStations * 10) * cityBudgetConfiguration.RailroadInfrastructureServiceRate);
        }
 public bool SharesYearWith(PersistedCityStatistics statistics)
 {
     return(GetYearAndMonth().CurrentYear == statistics.GetYearAndMonth().CurrentYear);
 }