Ejemplo n.º 1
0
        public async Task <IActionResult> UpdateType([FromBody] CommandUpdateType command, [FromServices] HandlerCatalogType 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()));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Método responsável por manipular a Atualização de um tipo de produto
        /// </summary>
        /// <param name="command"></param>
        /// <returns></returns>
        public IResponse handle(CommandUpdateType command)
        {
            // Validação rapida
            command.Validate();
            if (command.Invalid)
            {
                return(new ResponseError <CommandUpdateType>(
                           errorCode: "400",
                           description: "Não foi possível prosseguir com a solicitação",
                           data: command.Notifications
                           ));
            }

            // localizar o tipo de produto e valida se foi localizado o tipo
            var type = _repository.CatalogTypeById(id: command.Id).Result;

            if (type == null)
            {
                return(new ResponseError <CommandUpdateType>(
                           errorCode: "404",
                           description: "Não foi possível prosseguir com a solicitação",
                           data: "Nenhum item encontrado"
                           ));
            }

            // atualiza o tipo do produto
            type.UpdateCatalogType(type: command.Type);

            // Salva os dados no repositorio e retorna false caso ocorrá algum erro
            if (!_repository.UpdateTypeAsync(type: type))
            {
                return(new ResponseError <CommandAddType>(
                           errorCode: "400",
                           description: "Não foi possível prosseguir com a solicitação",
                           data: "Erro sistemico"
                           ));
            }

            // retorna successo para operação para adicionar um novo tipo para o produto
            return(new ResponseOk <CatalogType>(responseObj: type));
        }