Exemple #1
0
        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()));
        }
Exemple #2
0
        /// <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));
        }