private LineData GetSuperBotBusinessLine(Project project, int iterationsCount)
        {
            try
            {
                var botProject = BotHelper.GetCalculatedBotProject(project, iterationsCount);

                var line = new LineData("Bot");
                line.Values = Enumerable.Range(0, iterationsCount).Select(iteration =>
                {
                    var cash = botProject.Budget;

                    var projectChangeSets = botProject.Changes.Where(cs => cs.IterationNumber <= iteration).ToList();
                    projectChangeSets.ForEach(cs => cash -= cs.Cost);

                    foreach (var webshop in botProject.Webshops)
                    {
                        var webshopChangeSets = webshop.Changes.Where(cs => cs.IterationNumber <= iteration).ToList();
                        webshopChangeSets.ForEach(cs => cash += (cs.Income - cs.GetCost(webshop)));
                    }

                    return(Math.Truncate(cash));
                }).ToList();
                return(line);
            }
            catch (Exception)
            {
                return(null);
            }
        }
        public IActionResult MarketChartData()
        {
            var model = new CashChartDataViewModel(Framework.Context.Project);

            var botUsers    = BotHelper.GetCalculatedBotProject(Framework.Context.Project, Framework.Context.IterationNumber).Webshops.Sum(w => w.UserCount);
            var playerUsers = Framework.Context.Project.Webshops.Sum(w => w.UserCount);

            var res = new[]
            {
                new { label = "You", data = Math.Truncate(playerUsers) },
                new { label = "Bot", data = Math.Truncate(botUsers) },
                new { label = "Available market", data = Math.Truncate((playerUsers + botUsers) / 3) }
            };

            return(Json(res));
        }