Ejemplo n.º 1
0
        public static Category MapToEntity(this CategoryFullRequest request)
        {
            if (request is null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            return(new Category
            {
                Id = request.Id,
                Name = request.Name
            });
        }
        public async Task <IActionResult> UpdateProductType([FromBody] CategoryFullRequest request)
        {
            if (request is null)
            {
                return(UnprocessableEntity(Constants.ErrorMessages.UnprocessableEntity));
            }

            if (string.IsNullOrEmpty(request.Name))
            {
                return(BadRequest(Constants.ErrorMessages.EmptyProductTypeName));
            }

            if (_context.Categories.Any(pt => pt.Name == request.Name))
            {
                return(BadRequest(Constants.ErrorMessages.ProductTypeAlreadyExists));
            }

            Category productType = null;

            try { productType = await _context.Categories.SingleOrDefaultAsync(pt => pt.Id == request.Id); }
            catch (Exception) { return(this.InternalServerError()); }

            if (productType is null)
            {
                return(NotFound(Constants.ErrorMessages.NotFound));
            }

            productType.Name = request.Name;
            var entry = _context.Categories.Update(productType);

            try { await _context.SaveChangesAsync(); }
            catch (Exception) { return(this.InternalServerError()); }

            var response = entry.Entity.MapToResponse();

            return(Ok(response));
        }