コード例 #1
0
        public void Create(ProductViewModel productViewModel)
        {
            var product = new Product()
            {
                Name          = productViewModel.Name,
                ProviderPrice = productViewModel.ProviderPrice,
                State         = productViewModel.State,
                StorePrice    = productViewModel.StorePrice,
                VendorCode    = productViewModel.VendorCode,
                Count         = productViewModel.Count,
                Description   = productViewModel.Description
            };

            if (!_categoriesService.EntityExist(productViewModel.Category))
            {
                throw new EntityNotFoundException(nameof(productViewModel.Category), productViewModel.Category.Id);
            }

            var category = _categoriesService.GetEntityById(productViewModel.Category.Id);

            if (!_manufacturesManager.EntityExist(productViewModel.Manufacture))
            {
                throw new EntityNotFoundException(nameof(productViewModel.Manufacture), productViewModel.Manufacture.Id);
            }

            var manufacture = _manufacturesManager.GetEntityById(productViewModel.Manufacture.Id);

            if (!_providersManager.EntityExist(productViewModel.Provider))
            {
                throw new EntityNotFoundException(nameof(productViewModel.Provider), productViewModel.Provider.Id);
            }

            var provider = _providersManager.GetEntityById(productViewModel.Provider.Id);

            product.Category    = category;
            product.Manufacture = manufacture;
            product.Provider    = provider;

            product.State = ProductState.Awaiting;

            _productsService.CreateEntity(product);
        }