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)); }