public async Task WhenAsync(CreateMovementDto c) { var idObj = (c as ICreateMovement).DocumentNumber; var uriParameters = new MovementUriParameters(); uriParameters.Id = idObj; var req = new MovementPutRequest(uriParameters, (CreateMovementDto)c); var resp = await _ramlClient.Movement.Put(req); MovementProxyUtils.ThrowOnHttpResponseError(resp); }
public HttpResponseMessage Post([FromBody] CreateMovementDto value) { try { if (value.DocumentNumber == default(string)) { throw DomainError.Named("nullId", "Aggregate Id in cmd is null, aggregate name: {0}.", "Movement"); } _movementApplicationService.When(value as ICreateMovement); var idObj = value.DocumentNumber; return(Request.CreateResponse <string>(HttpStatusCode.Created, idObj)); } catch (Exception ex) { var response = HttpServiceExceptionUtils.GetErrorHttpResponseMessage(ex); throw new HttpResponseException(response); } }
public async Task Create(CreateMovementDto input) { var userId = 1; if (AbpSession.UserId != null) { userId = unchecked ((int)AbpSession.UserId); } User user = await _userManager.FindByIdAsync(userId); Product product = _productManager.GetProductByID(input.Product); input.PreviousQtd = product.Stock; input.CurrentQtd = input.Quantity; if (input.CurrentQtd < 0) { throw new UserFriendlyException("A quantidade a ser retirada deve ser menor ou igual ao estoque deste produto!"); } product.Stock = input.CurrentQtd; _productManager.Update(product); var saveInput = new Movement(); saveInput.Product = product; saveInput.User = user; saveInput.PreviousQtd = input.PreviousQtd; saveInput.CurrentQtd = input.CurrentQtd; if (saveInput.PreviousQtd < saveInput.CurrentQtd) { saveInput.Signal = "+"; } else if (saveInput.PreviousQtd > saveInput.CurrentQtd) { saveInput.Signal = "-"; } else { saveInput.Signal = "="; } await _movementManager.Create(saveInput); }
public IActionResult AddMovement([FromRoute] string id, [FromBody] CreateMovementDto input) { try { if (Guid.TryParse(id, out var guid) && _database.TryGetValue(guid, out var game)) { // Se o jogo ja tiver finalizado antes da jogada // pela doc, não da ideia que um erro deveria ser retornado // mas sim o resultado do jogo if (game.IsFinish) { return(ReturnGameResult(game)); } // fazemos o movimento var move = game.MakeAMove(input.Player, input.Position.X, input.Position.Y); // Se o jogo terminar após jogada if (game.IsFinish) { return(ReturnGameResult(game)); } return(Ok(new { msg = "Movimento realizado" })); } return(NotFound(new { msg = "Partida não encontrada" })); } catch (InvalidOperationException ex) { return(BadRequest(new { msg = ex.Message })); } }
public void When(CreateMovementDto c) { WhenAsync(c).GetAwaiter().GetResult(); }