public async Task <JsonResult> Get( [FromServices] IMediator mediator) { var query = new GetCoinsQuery(); GetCoinsResponse data = await mediator.Send(query); return(new JsonResult(data.Coins)); }
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)); }