public async Task <JsonResult> Update(
            [FromServices] IMediator mediator,
            [FromBody] Coins coin)
        {
            if (coin is null)
            {
                throw new System.ArgumentNullException(nameof(coin));
            }

            var command           = new UpdateCoinCommand(coin);
            UpdateCoinResult data = await mediator.Send(command);

            return(new JsonResult(data.Coin));
        }
예제 #2
0
        public async Task <IActionResult> Surrender(
            [FromServices] IMediator mediator,
            [FromBody] SurrenderDto surrender)
        {
            GetCoinsResponse resultQuery = await mediator.Send(new GetCoinsQuery());

            var coins = new List <Coins>(resultQuery.Coins).OrderByDescending(x => x.Par).ToList();

            int index = 0;

            while (surrender.Surrender != 0)
            {
                if (index > coins.Count - 1)
                {
                    break;
                }

                if (coins[index].Count > 0 && surrender.Surrender >= coins[index].Par)
                {
                    surrender.Surrender -= coins[index].Par;
                    coins[index].Count  -= 1;
                }
                else
                {
                    index++;
                }
            }

            foreach (var coin in coins)
            {
                var command = new UpdateCoinCommand(coin);
                await mediator.Send(command);
            }

            return(Ok(surrender));
        }