Пример #1
0
 public Product Create(ProductDataDto dto)
 {
     return(new Product()
     {
         Name = dto.Name,
         Price = dto.Price,
     });
 }
Пример #2
0
        public async Task <ProductDto> Create(ProductDataDto dto)
        {
            validator.Validate(dto);
            var product      = productFactory.Create(dto);
            var addedProduct = await repository.AddAsync(product);

            await unitOfWork.SaveAsync();

            return(mapper.Map <ProductDto>(addedProduct));
        }
Пример #3
0
        public async Task <ProductDto> Update(Guid id, ProductDataDto dto)
        {
            validator.Validate(dto);
            var product = await repository.FindAsync(id);

            validator.Validate(product);
            product.Name  = dto.Name;
            product.Price = dto.Price;
            await unitOfWork.SaveAsync();

            return(mapper.Map <ProductDto>(product));
        }
Пример #4
0
 public void Validate(ProductDataDto dto)
 {
     if (string.IsNullOrWhiteSpace(dto.Name))
     {
         throw new InvalidProductException("Product name is empty.");
     }
     if (dto.Name.Length > PRODUCT_NAME_MAX_CHARACTERS)
     {
         throw new InvalidProductException($"Product name is too long. Maximum length is {PRODUCT_NAME_MAX_CHARACTERS} characters.");
     }
     decimalValidator.Validate(dto.Price);
 }
        public async Task <IActionResult> Put(Guid id, [FromBody] ProductDataDto dto)
        {
            await productService.Update(id, dto);

            return(NoContent());
        }
        public async Task <IActionResult> Post([FromBody] ProductDataDto dto)
        {
            var product = await productService.Create(dto);

            return(CreatedAtAction(nameof(Get), new { id = product.Id }, product));
        }