public CashPriceChartModel GetPrice_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); return(repo.FixedIncome_GetPriceData_Adviser(User.Identity.GetUserId())); } else { ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(clientGroupId); List <GroupAccount> accounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); List <ClientAccount> clientAccounts = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); foreach (var account in accounts) { account.GetAssetsSync(); } return(repo.FixedIncome_GetPriceData_Client(clientGroupId)); } }
public List <ClientView> GetClientAccountsForClient() { List <ClientView> views = new List <ClientView>(); 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 = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(edisRepo.GetAccountsForClientSync(c.ClientNumber, DateTime.Now))); groupAccounts.ForEach(a => views.Add(new ClientView { id = a.Id, name = a.AccountNameOrInfo, accountCatergory = AccountCatergories.GroupAccount.ToString() })); clientAccounts.ForEach(a => views.Add(new ClientView { id = a.Id, name = a.AccountNameOrInfo, accountCatergory = AccountCatergories.ClientAccount.ToString() })); } else { List <ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); accounts.ForEach(a => views.Add(new ClientView { id = a.Id, name = a.AccountNameOrInfo, accountCatergory = AccountCatergories.ClientAccount.ToString() })); } return(views); }
public IEnumerable <PortfolioQuickStatsModel> GetQuickStats_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); } else { List <ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); } return(null); }
public RebalanceModel GetModelDetailForId(string modelId) { List <AssetBase> allAssets = new List <AssetBase>(); var savedModel = edisRepo.GetRebalanceModelByModelId(modelId); ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(savedModel.ClientGroupId); List <GroupAccount> accounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); List <ClientAccount> clientAccounts = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); accounts.ForEach(a => allAssets.AddRange(a.GetAssetsSync())); clientAccounts.ForEach(a => allAssets.AddRange(a.GetAssetsSync())); return(GetRebalanceModel(allAssets, savedModel, clientGroup)); }
public List <AssetBase> getAllAssetForClient() { List <AssetBase> assets = new List <AssetBase>(); 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); groupAccounts.ForEach(a => assets.AddRange(a.GetAssetsSync())); clientAccounts.ForEach(a => assets.AddRange(a.GetAssetsSync())); } else { List <ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); accounts.ForEach(a => assets.AddRange(a.GetAssetsSync())); } return(assets); }
public List <AccountView> getAllCertainGroupAllAssociatedAccount(ClientAccountCreationBindingModel ClientGroupID) { ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(ClientGroupID.clientGroup); List <GroupAccount> accounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); List <ClientAccount> clientAccounts = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); List <AccountView> result = new List <AccountView>(); accounts.ForEach(a => result.Add(new AccountView { id = a.Id, name = a.AccountNameOrInfo, accountCatagory = AccountCatergories.GroupAccount.ToString() })); clientAccounts.ForEach(a => result.Add(new AccountView { id = a.Id, name = a.AccountNameOrInfo, accountCatagory = AccountCatergories.ClientAccount.ToString() })); //var ClientGroupId = ClientGroupID.clientGroup; ////Here we retrieve the group account then add to the result //List<GroupAccount> accounts = edisRepo.GetAccountsForClientGroupByIdSync(ClientGroupId, DateTime.Now); //foreach (var groupAccount in accounts) { // result.Add(new AccountView { // id = groupAccount.Id, // name = groupAccount.AccountNameOrInfo // }); //} ////then we get all the clients' accounts //ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(ClientGroupId); //List<ClientAccount> clientAccounts = new List<ClientAccount>(); //clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); ////add to the result //foreach (var clientAccount in clientAccounts) { // result.Add(new AccountView { // id = clientAccount.Id, // name = clientAccount.AccountNameOrInfo // }); //} return(result); }
public List <LiabilityBase> getMortgageLiabilitiesForClient() { List <LiabilityBase> liabilities = new List <LiabilityBase>(); 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 = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); groupAccounts.ForEach(a => liabilities.AddRange(a.GetLiabilitiesSync().OfType <MortgageAndHomeLiability>().Cast <LiabilityBase>().ToList())); clientAccounts.ForEach(a => liabilities.AddRange(a.GetLiabilitiesSync().OfType <MortgageAndHomeLiability>().Cast <LiabilityBase>().ToList())); } else { List <ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now); accounts.ForEach(a => liabilities.AddRange(a.GetLiabilitiesSync().OfType <MortgageAndHomeLiability>().Cast <LiabilityBase>().ToList())); } return(liabilities); }
public CashflowBriefModel GetCashflow_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 totalExpenseInAssets = 0; double totalIncomeInAssets = 0; List <CashFlowBriefItem> items = new List <CashFlowBriefItem>(); CashFlowBriefItem jan = new CashFlowBriefItem { month = "Jan" }; CashFlowBriefItem feb = new CashFlowBriefItem { month = "Feb" }; CashFlowBriefItem mar = new CashFlowBriefItem { month = "Mar" }; CashFlowBriefItem apr = new CashFlowBriefItem { month = "Apr" }; CashFlowBriefItem may = new CashFlowBriefItem { month = "May" }; CashFlowBriefItem jun = new CashFlowBriefItem { month = "Jun" }; CashFlowBriefItem jul = new CashFlowBriefItem { month = "Jul" }; CashFlowBriefItem aug = new CashFlowBriefItem { month = "Aug" }; CashFlowBriefItem sep = new CashFlowBriefItem { month = "Sep" }; CashFlowBriefItem oct = new CashFlowBriefItem { month = "Oct" }; CashFlowBriefItem nov = new CashFlowBriefItem { month = "Nov" }; CashFlowBriefItem dec = new CashFlowBriefItem { month = "Dec" }; foreach (var account in groupAccounts) { List <Cashflow> cashFlows = account.GetLiabilitiesSync().OfType <Insurance>().Cast <LiabilityBase>().ToList().GetMonthlyCashflows(); foreach (var cashflow in cashFlows) { switch (cashflow.Month) { case "Jan": jan.date = DateTime.Now; jan.expense += cashflow.Expenses; jan.income += cashflow.Income; break; case "Feb": feb.date = DateTime.Now; feb.expense += cashflow.Expenses; feb.income += cashflow.Income; break; case "Mar": mar.date = DateTime.Now; mar.expense += cashflow.Expenses; mar.income += cashflow.Income; break; case "Apr": apr.date = DateTime.Now; apr.expense += cashflow.Expenses; apr.income += cashflow.Income; break; case "May": may.date = DateTime.Now; may.expense += cashflow.Expenses; may.income += cashflow.Income; break; case "Jun": jun.date = DateTime.Now; jun.expense += cashflow.Expenses; jun.income += cashflow.Income; break; case "Jul": jul.date = DateTime.Now; jul.expense += cashflow.Expenses; jul.income += cashflow.Income; break; case "Aug": aug.date = DateTime.Now; aug.expense += cashflow.Expenses; aug.income += cashflow.Income; break; case "Sep": sep.date = DateTime.Now; sep.expense += cashflow.Expenses; sep.income += cashflow.Income; break; case "Oct": oct.date = DateTime.Now; oct.expense += cashflow.Expenses; oct.income += cashflow.Income; break; case "Nov": nov.date = DateTime.Now; nov.expense += cashflow.Expenses; nov.income += cashflow.Income; break; case "Dec": dec.date = DateTime.Now; dec.expense += cashflow.Expenses; dec.income += cashflow.Income; break; default: break; } totalExpenseInAssets += cashflow.Expenses; totalIncomeInAssets += cashflow.Income; } } foreach (var account in clientAccounts) { List <Cashflow> cashFlows = account.GetLiabilitiesSync().OfType <Insurance>().Cast <LiabilityBase>().ToList().GetMonthlyCashflows(); foreach (var cashflow in cashFlows) { switch (cashflow.Month) { case "Jan": jan.date = DateTime.Now; jan.expense += cashflow.Expenses; jan.income += cashflow.Income; break; case "Feb": feb.date = DateTime.Now; feb.expense += cashflow.Expenses; feb.income += cashflow.Income; break; case "Mar": mar.date = DateTime.Now; mar.expense += cashflow.Expenses; mar.income += cashflow.Income; break; case "Apr": apr.date = DateTime.Now; apr.expense += cashflow.Expenses; apr.income += cashflow.Income; break; case "May": may.date = DateTime.Now; may.expense += cashflow.Expenses; may.income += cashflow.Income; break; case "Jun": jun.date = DateTime.Now; jun.expense += cashflow.Expenses; jun.income += cashflow.Income; break; case "Jul": jul.date = DateTime.Now; jul.expense += cashflow.Expenses; jul.income += cashflow.Income; break; case "Aug": aug.date = DateTime.Now; aug.expense += cashflow.Expenses; aug.income += cashflow.Income; break; case "Sep": sep.date = DateTime.Now; sep.expense += cashflow.Expenses; sep.income += cashflow.Income; break; case "Oct": oct.date = DateTime.Now; oct.expense += cashflow.Expenses; oct.income += cashflow.Income; break; case "Nov": nov.date = DateTime.Now; nov.expense += cashflow.Expenses; nov.income += cashflow.Income; break; case "Dec": dec.date = DateTime.Now; dec.expense += cashflow.Expenses; dec.income += cashflow.Income; break; default: break; } totalExpenseInAssets += cashflow.Expenses; totalIncomeInAssets += cashflow.Income; } } items.Add(jan); items.Add(feb); items.Add(mar); items.Add(apr); items.Add(may); items.Add(jun); items.Add(jul); items.Add(aug); items.Add(sep); items.Add(oct); items.Add(nov); items.Add(dec); CashflowBriefModel model = new CashflowBriefModel { totalExpense = totalExpenseInAssets, totalIncome = totalIncomeInAssets, data = items }; return(model); //return repo.AustralianEquity_GetCashflowSummary_Adviser(User.Identity.GetUserId()); } else { ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(clientGroupId); List <GroupAccount> accounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); List <ClientAccount> clientAccounts = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); double totalExpenseInAssets = 0; double totalIncomeInAssets = 0; List <CashFlowBriefItem> items = new List <CashFlowBriefItem>(); CashFlowBriefItem jan = new CashFlowBriefItem { month = "Jan" }; CashFlowBriefItem feb = new CashFlowBriefItem { month = "Feb" }; CashFlowBriefItem mar = new CashFlowBriefItem { month = "Mar" }; CashFlowBriefItem apr = new CashFlowBriefItem { month = "Apr" }; CashFlowBriefItem may = new CashFlowBriefItem { month = "May" }; CashFlowBriefItem jun = new CashFlowBriefItem { month = "Jun" }; CashFlowBriefItem jul = new CashFlowBriefItem { month = "Jul" }; CashFlowBriefItem aug = new CashFlowBriefItem { month = "Aug" }; CashFlowBriefItem sep = new CashFlowBriefItem { month = "Sep" }; CashFlowBriefItem oct = new CashFlowBriefItem { month = "Oct" }; CashFlowBriefItem nov = new CashFlowBriefItem { month = "Nov" }; CashFlowBriefItem dec = new CashFlowBriefItem { month = "Dec" }; List <Cashflow> cashFlows = new List <Cashflow>(); accounts.ForEach(a => cashFlows.AddRange(a.GetLiabilitiesSync().OfType <Insurance>().Cast <LiabilityBase>().ToList().GetMonthlyCashflows())); clientAccounts.ForEach(a => cashFlows.AddRange(a.GetLiabilitiesSync().OfType <Insurance>().Cast <LiabilityBase>().ToList().GetMonthlyCashflows())); foreach (var cashflow in cashFlows) { switch (cashflow.Month) { case "Jan": jan.date = DateTime.Now; jan.expense += cashflow.Expenses; jan.income += cashflow.Income; break; case "Feb": feb.date = DateTime.Now; feb.expense += cashflow.Expenses; feb.income += cashflow.Income; break; case "Mar": mar.date = DateTime.Now; mar.expense += cashflow.Expenses; mar.income += cashflow.Income; break; case "Apr": apr.date = DateTime.Now; apr.expense += cashflow.Expenses; apr.income += cashflow.Income; break; case "May": may.date = DateTime.Now; may.expense += cashflow.Expenses; may.income += cashflow.Income; break; case "Jun": jun.date = DateTime.Now; jun.expense += cashflow.Expenses; jun.income += cashflow.Income; break; case "Jul": jul.date = DateTime.Now; jul.expense += cashflow.Expenses; jul.income += cashflow.Income; break; case "Aug": aug.date = DateTime.Now; aug.expense += cashflow.Expenses; aug.income += cashflow.Income; break; case "Sep": sep.date = DateTime.Now; sep.expense += cashflow.Expenses; sep.income += cashflow.Income; break; case "Oct": oct.date = DateTime.Now; oct.expense += cashflow.Expenses; oct.income += cashflow.Income; break; case "Nov": nov.date = DateTime.Now; nov.expense += cashflow.Expenses; nov.income += cashflow.Income; break; case "Dec": dec.date = DateTime.Now; dec.expense += cashflow.Expenses; dec.income += cashflow.Income; break; default: break; } totalExpenseInAssets += cashflow.Expenses; totalIncomeInAssets += cashflow.Income; } items.Add(jan); items.Add(feb); items.Add(mar); items.Add(apr); items.Add(may); items.Add(jun); items.Add(jul); items.Add(aug); items.Add(sep); items.Add(oct); items.Add(nov); items.Add(dec); CashflowBriefModel model = new CashflowBriefModel { totalExpense = totalExpenseInAssets, totalIncome = totalIncomeInAssets, data = items }; return(model); //return repo.AustralianEquity_GetCashflowSummary_Client(clientUserId); } }
public InvestmentPortfolioModel GetAssetAllocationSummary_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 totalMarketValueAE = 0; double totalMarketValueIE = 0; double totalMarketValueMI = 0; double totalMarketValueDP = 0; double totalMarketValueFI = 0; double totalMarketValueCD = 0; foreach (var account in groupAccounts) { totalMarketValueAE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <AustralianEquity>(); totalMarketValueIE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <InternationalEquity>(); totalMarketValueMI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <ManagedInvestment>(); totalMarketValueDP += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <DirectProperty>(); totalMarketValueFI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <FixedIncome>(); totalMarketValueCD += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <Cash>(); } foreach (var account in clientAccounts) { totalMarketValueAE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <AustralianEquity>(); totalMarketValueIE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <InternationalEquity>(); totalMarketValueMI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <ManagedInvestment>(); totalMarketValueDP += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <DirectProperty>(); totalMarketValueFI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <FixedIncome>(); totalMarketValueCD += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <Cash>(); } InvestmentPortfolioModel model = new InvestmentPortfolioModel { data = new List <DataNameAmountPair> { new DataNameAmountPair { name = "Australian Equity", amount = totalMarketValueAE }, new DataNameAmountPair { name = "International Equity", amount = totalMarketValueIE }, new DataNameAmountPair { name = "Managed Investments", amount = totalMarketValueMI }, new DataNameAmountPair { name = "Direct & Listed Property", amount = totalMarketValueDP }, new DataNameAmountPair { name = "Miscellaneous Investments", amount = totalMarketValueAE }, new DataNameAmountPair { name = "Fixed Income Investments", amount = totalMarketValueFI }, new DataNameAmountPair { name = "Cash & Term Deposit", amount = totalMarketValueCD }, }, }; return(model); } else { ClientGroup clientGroup = edisRepo.getClientGroupByGroupId(clientGroupId); List <GroupAccount> accounts = edisRepo.GetAccountsForClientGroupSync(clientGroup.ClientGroupNumber, DateTime.Now); List <ClientAccount> clientAccounts = new List <ClientAccount>(); clientGroup.GetClientsSync().ForEach(c => clientAccounts.AddRange(c.GetAccountsSync())); double totalMarketValueAE = 0; double totalMarketValueIE = 0; double totalMarketValueMI = 0; double totalMarketValueDP = 0; double totalMarketValueFI = 0; double totalMarketValueCD = 0; foreach (var account in accounts) { totalMarketValueAE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <AustralianEquity>(); totalMarketValueIE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <InternationalEquity>(); totalMarketValueMI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <ManagedInvestment>(); totalMarketValueDP += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <DirectProperty>(); totalMarketValueFI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <FixedIncome>(); totalMarketValueCD += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <Cash>(); } foreach (var account in clientAccounts) { totalMarketValueAE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <AustralianEquity>(); totalMarketValueIE += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <InternationalEquity>(); totalMarketValueMI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <ManagedInvestment>(); totalMarketValueDP += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <DirectProperty>(); totalMarketValueFI += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <FixedIncome>(); totalMarketValueCD += account.GetAssetsSync().GetTotalMarketValue_ByAssetType <Cash>(); } InvestmentPortfolioModel model = new InvestmentPortfolioModel { data = new List <DataNameAmountPair> { new DataNameAmountPair { name = "Australian Equity", amount = totalMarketValueAE }, new DataNameAmountPair { name = "International Equity", amount = totalMarketValueIE }, new DataNameAmountPair { name = "Managed Investments", amount = totalMarketValueMI }, new DataNameAmountPair { name = "Direct & Listed Property", amount = totalMarketValueDP }, new DataNameAmountPair { name = "Miscellaneous Investments", amount = totalMarketValueAE }, new DataNameAmountPair { name = "Fixed Income Investments", amount = totalMarketValueFI }, new DataNameAmountPair { name = "Cash & Term Deposit", amount = totalMarketValueCD }, }, }; return(model); } //return repo.ManagedInvestment_GetAssetAllocation_Adviser(User.Identity.GetUserId()); }