public async Task <ActionResult <RecommendedWallet> > GetRecommendedWallet(string fundNames, int stocksLimit)
        {
            var RecommendedWallet = new RecommendedWallet();

            RecommendedWallet.FundNames           = fundNames.Split(',');
            RecommendedWallet.Id                  = Guid.NewGuid();
            RecommendedWallet.Performance12Months = 0;
            RecommendedWallet.Performance6Months  = 0;
            RecommendedWallet.Performance1Month   = 0;
            RecommendedWallet.Assets              = new List <Asset>();

            foreach (string f in RecommendedWallet.FundNames)
            {
                var fund = await _fundController.GetFund(f);

                if (fund.Value != null)
                {
                    var wallet = await _walletController.GetWallet(fund.Value.Wallet.Id);

                    foreach (Asset a in wallet.Value.Assets.OrderByDescending(s => s.Size).Take(stocksLimit))
                    {
                        if (stocksLimit > RecommendedWallet.Assets.Count() || RecommendedWallet.Assets.OrderBy(s => s.Percentage).First().Percentage < a.Percentage)
                        {
                            RecommendedWallet.Assets.Add(a);
                        }
                    }

                    RecommendedWallet.Total = RecommendedWallet.Assets.Select(s => s.Size).Sum();
                }
            }

            RecommendedWallet.Assets = RecommendedWallet.Assets.OrderByDescending(s => s.Percentage).Take(stocksLimit).ToList();

            return(RecommendedWallet);
        }
        public async Task <IActionResult> PutRecommendedWallet(Guid id, RecommendedWallet recommendedWallet)
        {
            if (id != recommendedWallet.Id)
            {
                return(BadRequest());
            }

            _context.Entry(recommendedWallet).State = EntityState.Modified;

            try
            {
                await _context.SaveChangesAsync();
            }
            catch (DbUpdateConcurrencyException)
            {
                if (!RecommendedWalletExists(id))
                {
                    return(NotFound());
                }
                else
                {
                    throw;
                }
            }

            return(NoContent());
        }
        public async Task <ActionResult <RecommendedWallet> > PostRecommendedWallet(RecommendedWallet recommendedWallet)
        {
            _context.RecommendedWallets.Add(recommendedWallet);
            await _context.SaveChangesAsync();

            return(CreatedAtAction("GetRecommendedWallet", new { id = recommendedWallet.Id }, recommendedWallet));
        }