예제 #1
0
        public async Task <IActionResult> Edit(VoucherEditViewModel model)
        {
            if (!String.IsNullOrEmpty(model.Product.Name))
            {
                model.Product.CategoriesID = Convert.ToInt32(model.CategoriesInfo
                                                             .Split(new char[] { ' ' })[0]);

                if (model.Photo != null)
                {
                    var imageName = DateTime.Now.ToString() + model.Product.Name;
                    var image     = await _imagesDb.StoreImage(model.Photo.OpenReadStream(),
                                                               imageName);

                    model.Product.ImageId = image;
                }

                _repository.SaveProduct(model.Product);

                model.Voucher.TranspotId = Convert.ToInt32(model.TransportInfo
                                                           .Split(new char[] { ' ' })[0]);

                model.Voucher.Transport = _dbTransport.Entity.FirstOrDefault(tr => tr.Id == model.Voucher.TranspotId);

                model.Voucher.LocationFromId = Convert.ToInt32(model.LocationFROMInfo
                                                               .Split(new char[] { ' ' })[0]);

                model.Voucher.LocationFrom = _dbLocation.Entity.FirstOrDefault(tr => tr.Id == model.Voucher.LocationFromId);

                model.Voucher.ProductId = model.Product.ID;

                model.Voucher.Product = _repository.Products.FirstOrDefault(tr => tr.ID == model.Voucher.ProductId);

                _dbVoucher.SaveEntity(model.Voucher);

                _dbVoucher.AddVoucherLocation(model.LocationTOInfo, model.Voucher.ID);


                TempData["message"] = $"{model.Product.Name} сохранен";



                if (_stockRepository.StockItems.FirstOrDefault(s => s.Product.ID == model.Product.ID) == null)
                {
                    _stockRepository.SaveStockItem(new Stock {
                        Product = model.Product, Quantity = 0
                    });
                }

                return(RedirectToAction("Index"));
            }

            // there is something wrong with the data values
            model.Transports    = _dbTransport.Entity;
            model.Categories    = _dbCategories.Entity;
            model.LocationsTO   = _dbLocation.Entity;
            model.LocationsFROM = _dbLocation.Entity;

            return(View(model));
        }
예제 #2
0
        public async Task <ViewResult> Edit(int productId)
        {
            var voucher = await _dbVoucher.Entity.FirstOrDefaultAsync(p => p.ProductId == productId);

            var model = new VoucherEditViewModel()
            {
                Voucher       = voucher,
                Transports    = _dbTransport.Entity,
                Product       = _repository.Products.FirstOrDefault(p => p.ID == productId),
                Categories    = _dbCategories.Entity,
                LocationsTO   = _dbLocation.Entity,
                LocationsFROM = _dbLocation.Entity
            };

            return(View(model));
        }