public async Task <IActionResult> Edit(int id, [Bind("Id,Name,DateFrom,DateTo,IsVisible")] LottoItemModel lottoItemModel) { if (id != lottoItemModel.Id) { return(NotFound()); } if (ModelState.IsValid) { try { _context.Update(lottoItemModel); await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!LottoItemModelExists(lottoItemModel.Id)) { return(NotFound()); } else { throw; } } return(RedirectToAction(nameof(Index))); } return(View(lottoItemModel)); }
public async Task <IActionResult> Create([Bind("Id,Name,DateFrom,DateTo,IsVisible")] LottoItemModel lottoItemModel) { if (ModelState.IsValid) { _context.Add(lottoItemModel); await _context.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } return(View(lottoItemModel)); }
private List <LottoPrizeInfoModel> GetPrizeInfo(LottoItemModel lottoItem) { var prizeInfo = new List <LottoPrizeInfoModel>(); var totalAmount = lottoItem.Rate * lottoItem.TicketsInDraw; var siteFee = (totalAmount / 100m) * lottoItem.Fee; var prizePool = totalAmount - siteFee; var prizePoolFraction = prizePool / 100m; var prizeWeights = LottoHelpers.GetPrizeWeights(lottoItem.Prizes); for (int i = 0; i < prizeWeights.Count; i++) { prizeInfo.Add(new LottoPrizeInfoModel { Percentage = prizeWeights[i], Position = (i + 1), Prize = Math.Round(prizePoolFraction * prizeWeights[i], 8) }); } return(prizeInfo); }