public MortgageInvestmentStatModel GenerateStatsModel(List<LiabilityBase> liabilities) { MortgageInvestmentStatModel model = new MortgageInvestmentStatModel { Combination = 0, Fixed = 0, NotSpecified = 0, Variable = 0 }; var mortgageGroups = liabilities.OfType<MortgageAndHomeLiability>().GroupBy(l => l.TypeOfMortgageRates); foreach (var mortgageGroup in mortgageGroups) { var mortgage = mortgageGroup.FirstOrDefault(); switch (mortgageGroup.Key) { case TypeOfMortgageRates.Combination: model.Combination += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.Fixed: model.Fixed += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.NotSpecified: model.NotSpecified += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.Variable: model.Variable += mortgage.Property.GetTotalMarketValue(); break; } } return model; }
public MortgageInvestmentStatModel GetStats_Client() { Client client = edisRepo.GetClientSync(User.Identity.GetUserId(), DateTime.Now); ClientGroup clientGroup = edisRepo.GetClientGroupSync(client.ClientGroupId, DateTime.Now); if (clientGroup.MainClientId == client.Id) { List<GroupAccount> groupAccounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); List<ClientAccount> clientAccounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); List<LiabilityBase> liabilities = new List<LiabilityBase>(); foreach (var account in groupAccounts) { liabilities.AddRange(account.GetLiabilitiesSync()); } foreach (var account in clientAccounts) { liabilities.AddRange(account.GetLiabilitiesSync()); } MortgageInvestmentStatModel model = new MortgageInvestmentStatModel { Combination = 0, Fixed = 0, NotSpecified = 0, Variable = 0 }; var mortgageGroups = liabilities.OfType<MortgageAndHomeLiability>().GroupBy(l => l.TypeOfMortgageRates); foreach (var mortgageGroup in mortgageGroups) { var mortgage = mortgageGroup.FirstOrDefault(); switch (mortgageGroup.Key) { case TypeOfMortgageRates.Combination: model.Combination += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.Fixed: model.Fixed += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.NotSpecified: model.NotSpecified += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.Variable: model.Variable += mortgage.Property.GetTotalMarketValue(); break; } } return model; } else { List<ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); List<LiabilityBase> liabilities = new List<LiabilityBase>(); foreach (var account in accounts) { liabilities.AddRange(account.GetLiabilitiesSync()); } MortgageInvestmentStatModel model = new MortgageInvestmentStatModel { Combination = 0, Fixed = 0, NotSpecified = 0, Variable = 0 }; var mortgageGroups = liabilities.OfType<MortgageAndHomeLiability>().GroupBy(l => l.TypeOfMortgageRates); foreach (var mortgageGroup in mortgageGroups) { var mortgage = mortgageGroup.FirstOrDefault(); switch (mortgageGroup.Key) { case TypeOfMortgageRates.Combination: model.Combination += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.Fixed: model.Fixed += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.NotSpecified: model.NotSpecified += mortgage.Property.GetTotalMarketValue(); break; case TypeOfMortgageRates.Variable: model.Variable += mortgage.Property.GetTotalMarketValue(); break; } } return model; } }