private void InitializeBetAndBankValueLimits(SettingsAndInfoViewModel model) { List <StateJson> stages = _dataService.GetStates(); List <ForecastJson> forecasts = _dataService.GetForecasts(); var betValueLimits = new Dictionary <RepresentsValueType, decimal> { [RepresentsValueType.Min] = stages.Any() ? stages.Min(x => x.InitialBet) : 0, [RepresentsValueType.Avg] = stages.Any() ? Math.Round(stages.Average(x => x.InitialBet), 2) : 0, [RepresentsValueType.Max] = stages.Any() ? stages.Max(x => x.InitialBet) : 0 }; var bankValueLimits = new Dictionary <RepresentsValueType, decimal> { [RepresentsValueType.Min] = stages.Any() ? stages.Min(x => x.Bank) : 0, [RepresentsValueType.Avg] = stages.Any() ? Math.Round(stages.Average(x => x.Bank), 2) : 0, [RepresentsValueType.Max] = stages.Any() ? stages.Max(x => x.Bank) : 0 }; var coefficientAverages = new Dictionary <GameResultType, double> { [GameResultType.Win] = forecasts.Any() ? forecasts.Where(x => x.GameResultType == GameResultType.Win).Average(x => x.Coefficient) : 0, [GameResultType.Defeat] = forecasts.Any() ? forecasts.Where(x => x.GameResultType == GameResultType.Defeat).Average(x => x.Coefficient) : 0, [GameResultType.RefundOrCancellation] = forecasts.Any() ? forecasts.Where(x => x.GameResultType == GameResultType.RefundOrCancellation).Average(x => x.Coefficient) : 0, [GameResultType.Expectation] = forecasts.Any() ? forecasts.Where(x => x.GameResultType == GameResultType.Expectation).Average(x => x.Coefficient) : 0 }; model.LastState.BetValueLimits = betValueLimits; model.LastState.BankValueLimits = bankValueLimits; model.LastState.CoefficientAverages = coefficientAverages; }
public IActionResult GetSettingsAndInfoPartial() { var model = new SettingsAndInfoViewModel(); StateJson lastState = _dataService.GetLastState(); SettingsJson settings = _dataService.GetSettings(); model.Settings = _mapper.Map <SettingsJson, SettingsViewModel>(settings); model.LastState = _mapper.Map <StateJson, StateViewModel>(lastState); model.LastState.ThreadNumbers = settings.ThreadNumbers; InitializeBetAndBankValueLimits(model); return(PartialView("_SettingsAndInfoPartial", model)); }