コード例 #1
0
        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());
        }