public async Task <IActionResult> UpdateAsync([FromRoute] string productId, [FromBody] ProductModelDto product) { var result = await Mediator.Send(new UpdateProductCommand(productId, product, UserName)); return(Ok(result.Data)); }
public async Task <Product> GetManufacturersAndCustomer(ProductModelDto product, IReadOnlyCollection <string> manufacturerIds) { var manufacturersInDb = await GetManufacturers(manufacturerIds); var customerInDb = await _customerRepository.GetAsync(c => c.Id == product.CustomerId); if (customerInDb is null && product.CustomerId is not null) { throw Result <ProductDto> .Failure("customerId", $"Unexisting customer id", HttpStatusCode.BadRequest); } if (manufacturerIds.Count != manufacturersInDb.Count) { var delta = manufacturerIds.Count - manufacturersInDb.Count; throw Result <ProductDto> .Failure("manufacturerIds", $"Provided {delta} non-existed id(s)", HttpStatusCode.BadRequest); } var productToDb = _mapper.Map <Product>(product); var customerToDb = _mapper.Map <Customer>(customerInDb); productToDb.Manufacturers = manufacturersInDb; productToDb.Customer = customerToDb; return(productToDb); }
public IActionResult Post([FromBody] ProductModelDto productModelDto) { try { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } var productModel = Mapper.Map <ProductModel>(productModelDto); if (_productModelRepository.ProductModelExists(productModel)) { return(StatusCode(500, "ProductModel already exists.")); } var userId = User.FindFirstValue(ClaimTypes.NameIdentifier); var profile = _accountRepository.GetUserProfile(userId); var createdProductModel = _productModelRepository.CreateProductModel(productModel, profile.UserProfileId); if (createdProductModel == null) { return(StatusCode(500, "A problem happened while handling your request.")); } var createdProductModelToReturn = Mapper.Map <ProductModelDto>(createdProductModel); return(Created(createdProductModelToReturn)); } catch (Exception ex) { _logger.LogError($"Failed in Post /ProductModels: {ex}"); return(StatusCode(500, "A problem happened while handling your request.")); } }
public async Task <ActionResult <ProductModel> > AddProductModel(ProductModelDto dto) { if (await ProductExists(dto.Name)) { return(BadRequest("Product already exists.")); } return(await repo.AddProductModel(dto)); }
public async Task <ActionResult <ProductModel> > AddProductModel(ProductModelDto dto) { var ProductModel = new ProductModel() { Name = dto.Name, Calories = dto.Calories, Fats = dto.Fats, Proteins = dto.Proteins, Sugars = dto.Sugars }; context.ProductModels.Add(ProductModel); await context.SaveChangesAsync(); return(ProductModel); }
public async Task <IActionResult> CreateAsync([FromBody] ProductModelDto product) { var result = await Mediator.Send(new CreateProductCommand(product, UserName)); return(Ok(result.Data)); }
private void MapperConfigure(MapperInstance cfd) { cfd.AddMap <Person, PersonInfoDto>(src => { PersonInfoDto dst = new PersonInfoDto(); dst.InjectFrom(src); dst.EmployeeBrithDate = src.Employee?.BirthDate; return(dst); }); cfd.AddMap <EmailAddress, EmailDto>(src => { EmailDto dst = new EmailDto(); dst.InjectFrom(src); dst.EmailAddress = src.EmailAddress1; return(dst); }); cfd.AddMap <ShipMethod, ShipMethodDto>(src => { ShipMethodDto dst = new ShipMethodDto(); dst.InjectFrom(src); return(dst); }); cfd.AddMap <ProductListPriceHistory, ProductListPriceHistoryDto>(src => { ProductListPriceHistoryDto dst = new ProductListPriceHistoryDto(); dst.InjectFrom(src); return(dst); }); cfd.AddMap <Product, ProductDto>(src => { ProductDto dst = new ProductDto(); dst.InjectFrom(src); dst.ProductListPriceHistories = new List <ProductListPriceHistoryDto>(); foreach (ProductListPriceHistory item in src.ProductListPriceHistories) { ProductListPriceHistoryDto itemDto = new ProductListPriceHistoryDto(); itemDto.InjectFrom(item); dst.ProductListPriceHistories.Add(itemDto); } return(dst); }); cfd.AddMap <ProductModel, ProductModelDto>(src => { ProductModelDto dst = new ProductModelDto(); dst.InjectFrom(src); return(dst); }); cfd.AddMap <Product, Product2Dto>(src => { Product2Dto dst = new Product2Dto(); dst.InjectFrom(src); dst.ProductModel = new ProductModelDto(); dst.ProductModel.InjectFrom(src.ProductModel); dst.ProductModelID = src.ProductModel?.ProductModelID; return(dst); }); }