public SectorialPortfolioModel GenerateSectorialModel(List<AssetBase> assets) {

            var allSectors = edisRepo.GetAllSectorsSync();
            List<SectorItem> sectorItems = new List<SectorItem>();
            allSectors.ForEach(s => sectorItems.Add(new SectorItem { sector = s }));

            double totalValue = 0;

            foreach (var item in assets.GetAssetSectorialDiversificationSync<InternationalEquity>(edisRepo)) {
                totalValue += item.Value;
                sectorItems.FirstOrDefault(s => s.sector == item.Key).value += item.Value;
            }
            sectorItems.ForEach(s => s.percentage = s.value / totalValue);

            SectorialPortfolioModel model = new SectorialPortfolioModel {
                data = sectorItems,
                total = totalValue,
                percentage = 1
            };

            return model;
        }
        public SectorialPortfolioModel GetSectorialExposureSummary_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);

                var allAectors = edisRepo.GetAllSectorsSync();
                List<SectorItem> sectorItems = new List<SectorItem>();

                foreach (var sector in allAectors)
                {
                    sectorItems.Add(new SectorItem
                    {
                        sector = sector
                    });
                }

                double totalValue = 0;

                foreach (var account in groupAccounts)
                {
                    var assets = account.GetAssetsSync();
                    var dictionary = AssetsExtensions.GetAssetSectorialDiversificationSync<AustralianEquity>(assets, edisRepo);

                    foreach (var item in dictionary)
                    {
                        totalValue += item.Value;
                        sectorItems.FirstOrDefault(s => s.sector == item.Key).value += item.Value;
                    }
                }
                foreach (var account in clientAccounts)
                {
                    var assets = account.GetAssetsSync();
                    var dictionary = AssetsExtensions.GetAssetSectorialDiversificationSync<AustralianEquity>(assets, edisRepo);

                    foreach (var item in dictionary)
                    {
                        totalValue += item.Value;
                        sectorItems.FirstOrDefault(s => s.sector == item.Key).value += item.Value;
                    }
                }

                foreach (var sectorItem in sectorItems)
                {
                    sectorItem.percentage = sectorItem.value / totalValue;
                }

                SectorialPortfolioModel model = new SectorialPortfolioModel
                {
                    data = sectorItems,
                    total = totalValue,
                    percentage = 1
                };

                return model;
            }
            else
            {
                List<ClientAccount> accounts = edisRepo.GetAccountsForClientSync(client.ClientNumber, DateTime.Now);

                var allAectors = edisRepo.GetAllSectorsSync();
                List<SectorItem> sectorItems = new List<SectorItem>();

                foreach (var sector in allAectors)
                {
                    sectorItems.Add(new SectorItem
                    {
                        sector = sector
                    });
                }

                double totalValue = 0;
                foreach (var account in accounts)
                {
                    var assets = account.GetAssetsSync();
                    var dictionary = AssetsExtensions.GetAssetSectorialDiversificationSync<AustralianEquity>(assets, edisRepo);

                    foreach (var item in dictionary)
                    {
                        totalValue += item.Value;
                        sectorItems.FirstOrDefault(s => s.sector == item.Key).value += item.Value;
                    }
                }

                foreach (var sectorItem in sectorItems)
                {
                    sectorItem.percentage = sectorItem.value / totalValue;
                }

                SectorialPortfolioModel model = new SectorialPortfolioModel
                {
                    data = sectorItems,
                    total = totalValue,
                    percentage = 1
                };

                return model;
            }
        }