Example #1
0
        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));
        }
Example #2
0
        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."));
            }
        }
Example #4
0
 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);
        }
Example #6
0
        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);
            });
        }