public Product Create(ProductDataDto dto) { return(new Product() { Name = dto.Name, Price = dto.Price, }); }
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)); }
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)); }
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)); }