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)); }