public async Task <ActionResult> CreatePrizePoolModal(CreatePrizePoolModel model) { if (!ModelState.IsValid) { model.Games = await GetPendingGames(); return(View(model)); } if (model.Type == Enums.PrizeType.Points) { model.Data = null; model.Data2 = null; } else if (model.Type == Enums.PrizeType.Crypto) { var isValid = true; if (string.IsNullOrEmpty(model.Data)) { // coin symbol missing ModelState.AddModelError("", "Coin symbol missing"); isValid = false; } if (!decimal.TryParse(model.Data2, out var parsedAmount) || parsedAmount < 0.00000001m) { // invalid amount ModelState.AddModelError("", "Invalid amount"); isValid = false; } if (!isValid) { model.Games = await GetPendingGames(); return(View(model)); } } var result = await PrizeWriter.CreatePrizePool(model); if (!ModelState.IsWriterResultValid(result)) { model.Games = await GetPendingGames(); return(View(model)); } return(CloseModalSuccess()); }