public async Task <IActionResult> UpdateBrand([FromBody] CommandUpdateBrand command, [FromServices] HandlerCatalogBrand handler, int id) { if (id != command.Id) { return(BadRequest(new { Code = "400", Description = "O Id do parametro e do body estão divergentes" })); } var request = handler.handle(command); if (request.HasError()) { return(BadRequest(request.Error())); } return(Ok(request.ResponseObj())); }
/// <summary> /// Método responsável por manipular o comando de alterar uma marca /// </summary> /// <param name="command"></param> /// <returns></returns> public IResponse handle(CommandUpdateBrand command) { // validação rapida command.Validate(); if (command.Invalid) { return(new ResponseError <CommandUpdateBrand>( errorCode: "400", description: "Não foi possível prosseguir com a solicitação", data: command.Notifications )); } // localiza uma marca e verifica se obteve sucesso na localização var brand = _repository.CatalogBrandIdAsync(id: command.Id).Result; if (brand == null) { return(new ResponseError <CommandAddBrand>( errorCode: "400", description: "Não foi possível prosseguir com a solicitação, pois não foi localizado a marca desejada", data: null )); } // edita os dados da marca do produto brand.UpdateCatalogBrand(brand: command.Brand); // faz a persistencia dos dados no banco de dados e retorna false caso apresentar algum erro if (!_repository.UpdateBrandAsync(brand: brand)) { return(new ResponseError <CommandAddBrand>( errorCode: "400", description: "Não foi possível prosseguir com a solicitação, pois foi apresentado um erro sistemico", data: null )); } // retorna sucesso na operação para alterar uma marca return(new ResponseOk <CatalogBrand>(brand)); }