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();
        }
Пример #2
0
        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));
        }