public void Execute(UpdatePerfumeDto request) { _validator.ValidateAndThrow(request); var perfume = _context.Perfumes.Find(request.Id); if (perfume == null) { throw new KeyNotFoundException(); } if (request.Image != null) { perfume.Image = request.Image; } if (request.IsActive != null) { perfume.IsActive = (bool)request.IsActive; } if (request.Price != null) { perfume.Price = (decimal)request.Price; } if (request.Discount != null) { perfume.Discount = (int)request.Discount; } if (request.NumberOfAvailable != null) { perfume.NumberOfAvailable = (int)request.NumberOfAvailable; } perfume.ModifiedAt = DateTime.Now; _context.SaveChanges(); }
public IActionResult Put(int id, [FromForm] UpdatePerfumeDto dto, [FromServices] IUpdatePerfumeCommand command) { dto.Id = id; if (dto.ImageFile != null) { var guid = Guid.NewGuid(); var extension = Path.GetExtension(dto.ImageFile.FileName); var newFileName = guid + extension; var path = Path.Combine("wwwroot", "images", newFileName); using (var fileStream = new FileStream(path, FileMode.Create)) { dto.ImageFile.CopyTo(fileStream); } dto.Image = path; } _executor.ExecuteCommand(command, dto); return(StatusCode(StatusCodes.Status204NoContent)); }