public SummaryGeneralInfo GetGeneralInfo_Adviser(string clientGroupId = null) { if (string.IsNullOrEmpty(clientGroupId)) { List<GroupAccount> groupAccounts = edisRepo.getAllClientGroupAccountsForAdviser(User.Identity.GetUserId(), DateTime.Now); List<ClientAccount> clientAccounts = edisRepo.getAllClientAccountsForAdviser(User.Identity.GetUserId(), DateTime.Now); double totalCost = 0; double totalMarketValue = 0; foreach (var account in groupAccounts) { List<AssetBase> assets = account.GetAssetsSync().OfType<ManagedInvestment>().Cast<AssetBase>().ToList(); foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); } } foreach (var account in clientAccounts) { List<AssetBase> assets = account.GetAssetsSync().OfType<ManagedInvestment>().Cast<AssetBase>().ToList(); foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); } } SummaryGeneralInfo summary = new SummaryGeneralInfo { cost = totalCost, marketValue = totalMarketValue, pl = totalMarketValue - totalCost, plp = totalCost == 0 ? 0 : (totalMarketValue - totalCost) / totalCost * 100 }; return summary; } else { ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(clientGroupId); List<GroupAccount> accounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); double totalCost = 0; double totalMarketValue = 0; foreach (var account in accounts) { List<AssetBase> assets = account.GetAssetsSync().OfType<ManagedInvestment>().Cast<AssetBase>().ToList(); foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); } } SummaryGeneralInfo summary = new SummaryGeneralInfo { cost = totalCost, marketValue = totalMarketValue, pl = totalMarketValue - totalCost, plp = totalCost == 0 ? 0 : (totalMarketValue - totalCost) / totalCost * 100 }; return summary; } //return repo.ManagedInvestment_GetGeneral_Adviser(User.Identity.GetUserId()); }
public SummaryGeneralInfo GetGeneralInfo_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); double totalCost = 0; double totalMarketValue = 0; foreach (var account in groupAccounts) { List<AssetBase> assets = account.GetAssetsSync().OfType<ManagedInvestment>().Cast<AssetBase>().ToList(); foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); } } foreach (var account in clientAccounts) { List<AssetBase> assets = account.GetAssetsSync().OfType<ManagedInvestment>().Cast<AssetBase>().ToList(); foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); } } SummaryGeneralInfo summary = new SummaryGeneralInfo { cost = totalCost, marketValue = totalMarketValue, pl = totalMarketValue - totalCost, plp = totalCost == 0 ? 0 : (totalMarketValue - totalCost) / totalCost * 100 }; return summary; } else { List<ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); double totalCost = 0; double totalMarketValue = 0; foreach (var account in accounts) { List<AssetBase> assets = account.GetAssetsSync().OfType<ManagedInvestment>().Cast<AssetBase>().ToList(); foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); } } SummaryGeneralInfo summary = new SummaryGeneralInfo { cost = totalCost, marketValue = totalMarketValue, pl = totalMarketValue - totalCost, plp = totalCost == 0 ? 0 : (totalMarketValue - totalCost) / totalCost * 100 }; return summary; } }
public SummaryGeneralInfo GenerateGeneralInforModel(List<AssetBase> assets) { double totalCost = 0; double totalMarketValue = 0; double capitalGain = 0; foreach (var asset in assets) { totalCost += asset.GetCost().Total; totalMarketValue += asset.GetTotalMarketValue(); capitalGain += asset.GetCost().CapitalGain; } SummaryGeneralInfo summary = new SummaryGeneralInfo { cost = totalCost, marketValue = totalMarketValue, pl = totalMarketValue - totalCost, plp = totalCost == 0 ? 0 : (totalMarketValue - totalCost) / totalCost * 100, capitalGain = capitalGain }; return summary; }