Summary description for ProductModel
Exemple #1
0
        public void ManyToManyUpdateTest()
        {
            using (EasySession easySession = new EasySession())
            {
                ///[Test Update] - many-to-many relationship
                ProductModelIllustration productModelIllustration = new ProductModelIllustration();
                int resultCount = productModelIllustration.Count(easySession);
                Assert.AreEqual(5, resultCount);

                ProductModel productModel = new ProductModel();
                resultCount = productModel.Count(easySession);
                Assert.AreEqual(129, resultCount);

                productModel.ProductModelID = 47;
                ProductModel resultList = productModel.Find(easySession, EasyLoad.Simple);

                //resultList.Illustration.RemoveAt(0);
                bool result = resultList.Update(easySession);

                resultCount = resultList.Count(easySession);
                Assert.AreEqual(129, resultCount);

                resultCount = productModelIllustration.Count(easySession);
                Assert.AreEqual(5, resultCount);
            }
        }
Exemple #2
0
        public ViewResult MainViewResult()
        {
            var viewResult = new ViewResult();
            viewResult.ViewName = "Index";

            var userProducts = new ProductModel(Domain.User.Products);
            userProducts.Refresh();

            var userAccount = new AccountModel(Domain.User.Account);
            userAccount.Refresh();

            var vmProducts = new ProductModel(Domain.VM.Products);
            vmProducts.Refresh();

            var vmBankAccount = new AccountModel(Domain.VM.BankAccount);
            vmBankAccount.Refresh();

            viewResult.ViewBag.UserProducts = userProducts;
            viewResult.ViewBag.UserAccount = userAccount;
            viewResult.ViewBag.VMProducts = vmProducts;
            viewResult.ViewBag.VMBankAccount = vmBankAccount;
            viewResult.ViewBag.VMUserAccount = Domain.VM.UserAccount;

            return viewResult;
        }
        public GridResponseModel<ProductModel> Get(GridRequestModel gridRequestModel, ProductModel searchModel)
        {
            var query = _unitOfWork.ProductRepository.Queryable;
            if (searchModel != null)
            {
                if (searchModel.ProductTypeId > 0)
                    query = query.Where(p => p.ProductType.Id == searchModel.ProductTypeId);
                if (searchModel.SupplierId > 0)
                    query = query.Where(p => p.Supplier != null && p.Supplier.Id == searchModel.SupplierId);
                if (!string.IsNullOrWhiteSpace(searchModel.Name))
                    query = query.Where(p => p.Name.Contains(searchModel.Name));
            }

            switch (gridRequestModel.Sidx)
            {
                default:
                case "Name":
                    query = query.OrderBy(p => p.Name, gridRequestModel.IsSortAsending);
                    break;
            }

            var dbModel = query.ToPagingResult(gridRequestModel);

            var model = dbModel.Rows.Select(m => Mapper.Map<ProductModel>(m)).ToArray();

            var gridData = new GridResponseModel<ProductModel>(gridRequestModel, dbModel.RowCount, model);

            return gridData;
        }
 public void VmShouldUseResourceNameEditEntity()
 {
     var model = new ProductModel();
     var viewModel = GetViewModel<ProductEditorViewModel>();
     viewModel.InitializeEntity(model, false);
     Assert.AreEqual(viewModel.DisplayName, UiResources.ProductEditDisplayName);
 }
        //GET api/products/{productId}
        public HttpResponseMessage GetProduct(int productId, [ValueProvider(typeof(HeaderValueProviderFactory<string>))]string sessionKey)
        {
            var responseMsg = this.PerformOperationAndHandleExceptions<HttpResponseMessage>(
              () =>
              {
                  using (var context = new StoreContext())
                  {
                      this.ValidateSessionKey(sessionKey);

                      var product = context.Products.Include("Category").FirstOrDefault(p => p.Id == productId);
                      if (product == null)
                      {
                          throw new ArgumentException("Product not found");
                      }

                      var resultProductModel = new ProductModel
                      {
                          Id = product.Id,
                          Name = product.Name,
                          Price = product.Price,
                          CategoryName = product.Category.Name,
                          CategoryId = product.Category.Id,
                          Description = product.Description,
                          ImageSource = product.ImageSource,
                          Quantity = product.Quantity
                      };

                      var response = this.Request.CreateResponse(HttpStatusCode.OK,
                                          resultProductModel);
                      return response;
                  }
              });

            return responseMsg;
        }
        public ActionResult Create(ProductModel model)
        {
            bool isNotExist = _productRepo.FindDuplicateByName(model.Name);

            if (isNotExist)
            {
                Categories category = _categoryRepo.Get(Int32.Parse(model.Category));
                Manufacturers manufacturer = _manufacturersRepo.Get(Int32.Parse(model.Manufacturer));
                var product = new Products(model.Name, model.Description,
                    Convert.ToDecimal(model.Price, CultureInfo.InvariantCulture), category, manufacturer,
                    Int32.Parse(model.Quantity), model.IsFeatured, model.IsRecent, model.IsBestSeller, model.ShortDescription);

                try
                {
                    _productRepo.Save(product);
                    TempData["success"] = "Pomyślnie dodano nowy towar.";
                    return RedirectToAction("index");
                }
                catch (Exception)
                {
                    TempData["error"] = "Wystąpił problem z połączeniem do bazy danych.";
                    return RedirectToAction("Create");
                }
            }
            TempData["error"] = "Towar o podanej nazwie już istnieje";
            return RedirectToAction("Create");
        }
    private void FillPage()
    {
        //Get selected product's data
        if (!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
        {
            int id = Convert.ToInt32(Request.QueryString["id"]);
            ProductModel productModel = new ProductModel();
            Product product = productModel.GetProduct(id);
            ZHUW15sqlserver1Entities db = new ZHUW15sqlserver1Entities();

            //Fill Page with data
            lblColor.Text = " " + product.Color;
            lblPrice.Text = " $" + product.Price;
            lblTitle.Text = product.Name;
            lblDescription.Text = product.Description;
            lblProductNum.Text = "Product Number: "+ id.ToString();
            imgProdcut.ImageUrl = "~/Image/Products/" + product.Image;

            //Retrieve supplier
            int supplierId = product.SupplierID;
            Supplier supplier = db.Suppliers.Find(supplierId);
            lblSupplier.Text = "By " + supplier.Name;


            //Fille amount dropdown list with numbers 1-30;
            int[] quantity = Enumerable.Range(1, 30).ToArray();
            ddlQuantity.DataSource = quantity;
            ddlQuantity.AppendDataBoundItems = true;
            ddlQuantity.DataBind();
        }
    }
        public List<ProductModel> getProduct(IEnumerable<Product> data)
        {
            var list = new List<ProductModel>();
            if (data != null)
            {
                foreach (var model in data)
                {
                    var prod = new ProductModel();

                    if (model != null)
                    {
                        prod.CategoryId = model.CategoryId;
                        prod.Discontinued = model.Discontinued;
                        prod.Name = model.Name;
                        prod.ProductCategory = getCategory(model.ProductCategory);
                        prod.ProductId = model.ProductId;
                        prod.ProductSupplier = getSupplier(model.ProductSupplier);
                        prod.QuantityPerUnit = model.QuantityPerUnit;
                        prod.ReorderLevel = model.ReorderLevel;
                        prod.SupplierId = model.SupplierId;
                        prod.UnitPrice = model.UnitPrice;
                        prod.UnitsInStock = model.UnitsInStock;
                        prod.UnitsOnOrder = model.UnitsOnOrder;
                    }
                    list.Add(prod);
                }
            }
            return list;
        }
        public void Create(ProductModel model)
        {
            var dbModel = Mapper.Map<Product>(model);
            dbModel.ProductType = _unitOfWork.ProductTypeRepository.Get(model.ProductTypeId);
            dbModel.Supplier = _unitOfWork.SupplierRepository.Get(model.SupplierId);

            _unitOfWork.ProductRepository.Create(dbModel);
        }
 public ActionResult SaveProduct(ProductModel model)
 {
     if(model != null)
     {
         model.SupplierId = 1;
         _service.SaveProduct(model);
     }
     return new HttpStatusCodeResult(201, "Created Successfully");
 }
        public ActionResult Index(string id)
        {
            var products = _unitOfWork.ProductRepository.Get().ToList();
            var product = _unitOfWork.ProductRepository.GetById(new Guid(id));

            if (product == null)
            {
                return View("Error");
            }

            var image800x640Paths = product.Image800x640Paths.ToList();
            var imageAdditional = GetImageAdditionalModels(image800x640Paths);

            var relatedProductIds = _unitOfWork.RelatedProductRepository.Get(i=>i.ProductId==new Guid(id)).Select(r=>r.RelatedProductId);

            var relatedProducts = _unitOfWork.ProductRepository.Get(p => relatedProductIds.Contains(p.Id)).ToList();
            var relatedProductBlocks = GetRelatedProductBlocks(relatedProducts);

            var categoryViewModels = GetCategories(product, products);

            var specialProduct = products.First(i => i.Id == new Guid("CD4879A0-C210-4DAA-A6DE-A59E9CC153BF"));
            var specialProductViewModel = new SpecialProductViewModel
            {
                Id = specialProduct.Id.ToString(),
                Name = specialProduct.Name,
                OldPrice = specialProduct.OldPrice.HasValue ? specialProduct.OldPrice.Value.ToString("C") : string.Empty,
                NewPrice = specialProduct.NewPrice.ToString("C"),
                RatingImagePath = specialProduct.RatingImagePath,
                Image240x192Path = specialProduct.Image240x192Path
            };

            var productInfo = new ProductInfo
            {
                Id = product.Id.ToString(),
                Name = product.Name,
                DefaultImage = image800x640Paths.First(i => i.IsActive).Path,
                OldPrice = product.OldPrice.HasValue ? product.OldPrice.Value.ToString("C") : string.Empty,
                NewPrice = product.NewPrice.ToString("C"),
                ExTax = (product.NewPrice - product.NewPrice*.15m).ToString("C"),
                Brand = product.Brand.Name,
                BrandId = product.Brand.Id.ToString(),
                Description = product.Description,
                ImageAdditionals = imageAdditional,
                Availability = "In Stock"
            };

            var productModel = new ProductModel
            {
                ProductInfo=productInfo,
                RelatedProductBlocks = relatedProductBlocks,
                RelatedProductCount=relatedProducts.Count,
                CategoryViewModels=categoryViewModels,
                SpecialProductViewModel=specialProductViewModel
            };
            return View(productModel);
        }
        public ActionResult CreateOrUpdate(ProductModel productModel)
        {
            if (ModelState.IsValid && productModel.IsValid())
            {
                this.productModelTasks.CreateOrUpdate(productModel);
                return this.RedirectToAction(x => x.Index());
            }

            return View(productModel);
        }
        public ActionResult Create(ProductModel model)
        {
            if (this.ModelState.IsValid)
            {
                _productService.Create(model);
                return RedirectToAction("Index");
            }

            return View(model);
        }
 //FillPage() method
 private void FillPage(int id)
 {
     ProductModel pModel = new ProductModel();
     Product product = pModel.GetProduct(id);
     descriptionTextBox.Text = product.Description;
     nameTextBox.Text = product.Name;
     priceTextBox.Text = product.Price.ToString();
     imageDropDownList.SelectedValue = product.Image;
     typeDropDownList.SelectedValue = product.Type.ToString();
     quantityTextBox.Text = product.Quantity.ToString();
 }
        public ActionResult AddBook(HttpPostedFileBase file, AddProductViewModel model)
        {
            Session["Username"] = "******";
            var userName = Session["Username"];
            var imagePath = CreateMD5(model.Title + DateTime.Now + DateTime.Now.Millisecond + model.Detail) ;

            var addViewModel = new ProductModel();
            addViewModel.Title = model.Title;
            addViewModel.Author = model.Author;
            addViewModel.Image = imagePath;
            addViewModel.Detail = model.Detail;
            addViewModel.Balance = model.Balance;
            addViewModel.Isbn = model.Isbn;
            addViewModel.Price = model.Price;
            addViewModel.CategoryId = model.CategoryId;
            addViewModel.CreateBy = userName.ToString();
            addViewModel.CreateTime = DateTime.Now;
            addViewModel.UpdateBy = "Test Admin";
            addViewModel.UpdateTime = DateTime.Now;
            addViewModel.IsActive = true;

            bool uploadImageIsComplete = true;
            if (file != null && file.ContentLength > 0)
                try
                {
                    var fileName = imagePath + ".jpg";
                    var path = Path.Combine(Server.MapPath("~/Content/images/Product/"), fileName);
                    file.SaveAs(path);
                }
                catch (Exception ex)
                {
                    uploadImageIsComplete = false;
                }
            else
            {
                uploadImageIsComplete = false;
            }

            if (uploadImageIsComplete)
            {
                ProductService productService = new ProductService();
                if (productService.Save(addViewModel))
                {
                    // return RedirectToRoute("~Success");
                }
                else
                {
                   // return RedirectToRoute("~Error");
                }
            }

            return RedirectToAction("ManageProductView", "ManageProduct");
        }
        // PUT api/awbuildversion/5
        public void Put(ProductModel value)
        {
            var GetActionType = Request.Headers.Where(x => x.Key.Equals("ActionType")).FirstOrDefault();

            if (GetActionType.Key != null)
            {
                if (GetActionType.Value.ToList()[0].Equals("DELETE"))
                    adventureWorks_BC.ProductModelDelete(value);
                if (GetActionType.Value.ToList()[0].Equals("UPDATE"))
                    adventureWorks_BC.ProductModelUpdate(value);
            }
        }
    private void FillPage(int id ){
        ProductModel productModel = new ProductModel();
        Product product = productModel.GetProduct(id);

        txtDescription.Text = product.Description;
        txtName.Text = product.Name;
        txtPrice.Text = product.Price.ToString();

        ddlImage.SelectedValue = product.Image;
        ddlType.SelectedValue = product.TypeId.ToString();


    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        ProductModel productModel = new ProductModel();
        Product product = CreateProduct();

        if (!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
        {
            int id = Convert.ToInt32(Request.QueryString["id"]);
            lblResult.Text = productModel.UpdateProduct(id, product);
        }
        else
        {
            lblResult.Text = productModel.InsertProduct(product);
        }
    }
Exemple #19
0
        protected void SPTest()
        {
            using (EasySession easySession = new EasySession())
            {
                ProductModel productModel = new ProductModel();
                int resultCount = productModel.Count(easySession);
                Assert.AreEqual(129, resultCount);

                ObjectQuery testOQ = new ObjectQuery();
                //testOQ.DeleteSP("uspDeleteProductModels", easySession).SetParameterList("list", new int[] { 1, 2, 3 }, typeof(int)).Execute();

                resultCount = productModel.Count(easySession);
                Assert.AreEqual(126, resultCount);
            }
        }
        public void VmShouldNotBeValidDescriptionIsNull()
        {
            var model = new ProductModel
            {
                Name = "test",
                Id = Guid.NewGuid(),
                Price = 100
            };
            var viewModel = GetViewModel<ProductEditorViewModel>();
            viewModel.InitializeEntity(model, false);

            Assert.IsFalse(viewModel.IsValid);
            viewModel.Description = "test";
            viewModel.ValidateAsync(() => editorViewModel => editorViewModel.Description);
            Assert.IsTrue(viewModel.IsValid);
        }
Exemple #21
0
        public void ManyToManyReadTest()
        {
            using (EasySession easySession = new EasySession())
            {
                ///[Test Read] - many-to-many relationship
                ProductModel productModel = new ProductModel();
                //IList resultList = productModel.FindAll(easySession); //, EasyLoad.None
                List<ProductModel> resultList = productModel.FindAll(easySession, EasyLoad.Simple);

                //ProductModels test = new ProductModels();
                //test.d
                //ProductModels ProductList = (ProductModels)Convert.ChangeType(resultList, typeof(ProductModels));

                Assert.AreEqual(129, resultList.Count);
            }
        }
    private void FillPage(int id)
    {
        //Get selected product from DB
        ProductModel productModel = new ProductModel();
        Product product = productModel.GetProduct(id);

        //Fill textboxes
        txtDescription.Text = product.Description;
        txtName.Text = product.Name;
        txtPrice.Text = product.Price.ToString();

        //Set dropdown list values
        ddlImage.SelectedValue = product.Image;
        ddlType.SelectedValue = product.TypeId.ToString();

    }
Exemple #23
0
        protected void QueryTest()
        {
            using (EasySession easySession = new EasySession())
            {
                ProductModel productModel = new ProductModel();
                int resultCount = productModel.Count(easySession);
                Assert.AreEqual(129, resultCount);

                ObjectQuery testOQ = new ObjectQuery();
                //testOQ.EasyQuery(easySession).From(productModel.GetType()).Where().
                //var result = testOQ.DeleteQuery("DELETE FROM Production.ProductModel WHERE ProductModelID IN (:list)", easySession).SetParameterList("list", new int[] { 1, 2, 3 }, typeof(int)).Execute();

                resultCount = productModel.Count(easySession);
                Assert.AreEqual(126, resultCount);
            }
        }
    private void FillPage()
    {
        //get a list of all products in DB
        ProductModel productModel = new ProductModel();
        List<Product> products = productModel.GetAllProducts();

        //make sure products exist in database
        if (products != null)
        {
            //create new Pannel with an ImageButton and 2 labels for each Product
            foreach (Product product in products)
            {
                Panel productPanel = new Panel();
                ImageButton imageButton = new ImageButton();
                Label lblName = new Label();
                Label lblPrice = new Label();

                //set ChildControls properties
                imageButton.ImageUrl = "~/Images/Products/" + product.Image;
                imageButton.CssClass = "productImage";
                imageButton.PostBackUrl = "~/Pages/Product.aspx?id=" + product.Id;

                lblName.Text = product.Name;
                lblName.CssClass = "productName";

                lblPrice.Text = product.Price + " лв.";
                lblPrice.CssClass = "productPrice";

                //Add child controls to pannel
                productPanel.Controls.Add(imageButton);
                productPanel.Controls.Add(new Literal { Text = "<br/>" });
                productPanel.Controls.Add(lblName);
                productPanel.Controls.Add(new Literal { Text = "<br/>" });
                productPanel.Controls.Add(lblPrice);

                //add dynamic panels to static parent panel
                pnlProducts.Controls.Add(productPanel);
            }
        }
        else 
        {
            //no products found
            pnlProducts.Controls.Add(new Literal { Text = "No products found!" });

        }
    }
    private void FillForm(int id)
    {
        //Get selected product from DB
        ProductModel productmodel = new ProductModel();
        Product product = productmodel.GetProduct(id);

        //Fill textboxes
        txtDescription.Text = product.Description;
        txtName.Text = product.Name;
        txtColor.Text = product.Color;
        txtPrice.Text = product.Price.ToString();
       
        //Set dropdpwn list value
        ddlImage.SelectedValue = product.Image;
        ddlCategory.SelectedValue = product.CategoryID.ToString();
        ddlSupplier.SelectedValue = product.SupplierID.ToString();
    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        ProductModel productModel = new ProductModel();
        Product product = CreateProduct();

        //check if the url contains an id parameter
        if (!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
        {
            //ID exits - update existing row
            int id = Convert.ToInt32(Request.QueryString["id"]);
            lblResult.Text = productModel.UpdateProduct(id, product);
        }
        else
        {
            //ID does not exist - create new row
            lblResult.Text = productModel.InsertProduct(product);
        }
    }
        public ProductControl(string host, int port, string dbname, string username,
            string password, string table_name, ProductParser parser)
        {
            this.InitializeComponent();

            ProductParser newParser = new ProductParser();
            dataModel = new ProductModel(
                                this.gvProducts,
                                host,
                                port,
                                dbname,
                                username,
                                password,
                                "Production.Products",
                                newParser);
            newParser.DataModel = dataModel;
            this._initModel();
        }
 public ProductModel GetProduct(int ProductId)
 {
     using (var db = new TankshopDbContext())
     {
         var product = db.Products.Find(ProductId);
         var productModel = new ProductModel()
         {
             CategoryId = product.CategoryId,
             CategoryName = product.Category.Name,
             Description = product.Description,
             ImageUrl = product.ImageUrl,
             Price = product.Price,
             ProductId = product.ProductId,
             ProductName = product.Name,
             Stock = product.Stock
         };
         return productModel;
     }
 }
    private void FillForm(int id)
    {
        try
        {
            ProductModel productModel = new ProductModel();
            Product product = productModel.GetProduct(id);

            txtDescription.Text = product.Description;
            txtName.Text = product.Name;
            txtPrice.Text = product.Price.ToString();

            ddlImage.SelectedValue = product.Image;
            ddlType.SelectedValue = product.TypeID.ToString();
        }
        catch (Exception ex)
        {
            lblResult.Text = ex.ToString();
        }
    }
    protected void btnSubmit_Click(object sender, EventArgs e)
    {
        ProductModel productModel = new ProductModel();
        Product product = CreateProduct();

        if(!String.IsNullOrWhiteSpace(Request.QueryString["id"]))
        {
            //ID exists then upadte existing row
            int id = Convert.ToInt32(Request.QueryString["id"]);
            lblResult.Text = productModel.UpdateProduct(id, product);
        }
        else
        {
            //ID dose not xist then creat a new row
            lblResult.Text = productModel.InsertProduct(product);
        }

        Response.Redirect("~/Pages/Management/ManageWebsite.aspx", false);
    }
Exemple #31
0
        public async Task <IActionResult> AddMultipleProducts()
        {
            var productList = new List <ProductModel>();

            var excelFile = Request.Form.Files.FirstOrDefault(x => x.FileName.Contains(".xlsx"));

            if (excelFile != null)
            {
                var package   = new ExcelPackage(excelFile.OpenReadStream());
                var worksheet = package.Workbook.Worksheets.FirstOrDefault();

                for (int i = worksheet.Dimension.Start.Row + 1; i < worksheet.Dimension.End.Row + 1; i++)
                {
                    var row = worksheet.Cells[i, 1, i, 9].ToArray();

                    if (row != null && row.Length > 0)
                    {
                        string PartNumber   = row[0].Text;
                        var    existingPart = await _context.Products.FirstOrDefaultAsync(x => x.PartNumber == PartNumber);

                        if (existingPart == null)
                        {
                            string     Name        = row[1].Text;
                            string     Description = row[2].Value.ToString();
                            BrandModel Brand       = await _context.Brand.FirstOrDefaultAsync(x => x.Name.Replace(" ", "").ToUpper() == row[3].Text.Replace(" ", "").ToUpper());

                            PartTypeEnum PartType = (PartTypeEnum)Enum.Parse(typeof(PartTypeEnum), row[4].Text);
                            decimal      Price    = decimal.Parse(row[5].Text);

                            string CarMake  = row[6].Text;
                            string CarModel = row[7].Text;
                            var    carFound = await _context.Car.FirstOrDefaultAsync(x => x.Make.Replace(" ", "").Replace("-", "").ToUpper() == CarMake.Replace(" ", "").Replace("-", "").ToUpper() &&
                                                                                     x.Model.Replace(" ", "").Replace("-", "").ToUpper() == CarModel.Replace(" ", "").Replace("-", "").ToUpper());

                            CarModel Car = null;

                            if (carFound != null)
                            {
                                Car = carFound;
                            }
                            else
                            {
                                Car = new CarModel
                                {
                                    Make  = CarMake,
                                    Model = CarModel
                                };
                                _context.Car.Add(Car);
                                await _context.SaveChangesAsync();
                            }

                            string Years = (string.IsNullOrEmpty(row[8].Text) || row[8].Text.ToUpper() == "ALL") ? null : row[8].Text.ToUpper().Replace(" ", "").Replace("-", " - ").Replace("UP", "Present");

                            var Product = new ProductModel
                            {
                                PartNumber  = PartNumber,
                                Name        = Name,
                                Description = Description,
                                Brand       = Brand,
                                PartType    = PartType,
                                Price       = Price,
                                Years       = Years,
                                Shipping    = await CalculateShippingAsync(Price)
                            };

                            CarProduct CarProduct = new CarProduct
                            {
                                CarId     = Car.CarId,
                                Car       = Car,
                                ProductId = Product.PartId,
                                Product   = Product
                            };

                            Product.CarProducts = new List <CarProduct>();
                            Product.CarProducts.Add(CarProduct);

                            Product.DateAdded = DateTime.UtcNow;

                            productList.Add(Product);
                        }
                    }
                    else
                    {
                        i = 999999;
                    }
                }
                _context.Products.AddRange(productList);
            }

            var imagesUploaded = 0;
            var allImages      = Request.Form.Files.Where(x => !x.FileName.Contains(".xlsx"));
            var productNumbers = allImages.Select(x => x.FileName.Split('(')[0]).Distinct();
            var products       = new List <ProductModel>();

            foreach (var productNumber in productNumbers)
            {
                var product = await _context.Products.Include(x => x.Images).FirstOrDefaultAsync(x => x.PartNumber.ToUpper() == productNumber.ToUpper());

                if (product != null)
                {
                    var newImageList = new List <ImageModel>();

                    foreach (var image in allImages.Where(x => x.FileName.ToUpper().Contains(product.PartNumber.ToUpper())))
                    {
                        newImageList.Add(new ImageModel
                        {
                            Name        = image.FileName.Split('.')[0],
                            Description = image.FileName,
                            Bytes       = ConvertToBytes(image)
                        });
                    }

                    product.Images = newImageList;
                }
            }

            await _context.SaveChangesAsync();

            TempData["Message"] = $"Successfully added {productList.Count} products to the store. Successfully uploaded {imagesUploaded} images.";

            return(RedirectToAction("AddProduct", new { section = "PART" }));
        }
Exemple #32
0
        public async Task <IActionResult> Update(ProductModel recivedProduct)
        {
            var result = await _service.UpdateProduct(recivedProduct);

            return(Ok(result));
        }
 public int Update(ProductModel product)
 {
     throw new NotImplementedException();
 }
Exemple #34
0
 public JsonResult Edit(ProductModel model)
 {
     model.UpdatedBy = _context.CurrentAccount.AccountId;
     this._productFacade.Edit(model);
     return(Json(new { success = true }));
 }
Exemple #35
0
 public void AddToBasket(ProductModel product)
 {
     BasketProducts.Add(product);
 }
Exemple #36
0
        public void SaveSale(SaleModel saleInfo, string cashierId)
        {
            //TODO : Make this SOLID/DRY/Better

            // Start filling in the sale detail models we will save to the database
            // Fill in the available information
            List <SaleDetailDBModel> details = new List <SaleDetailDBModel>();
            decimal taxRate = GetTaxRate();

            foreach (SaleDetailModel item in saleInfo.SaleDetails)
            {
                SaleDetailDBModel detail = new SaleDetailDBModel
                {
                    ProductId = item.ProductId,
                    Quantity  = item.Quantity
                };

                //Get the information about this product
                ProductModel productInfo = _productData.GetProductById(detail.ProductId);
                if (productInfo == null)
                {
                    throw new Exception($"The product Id of { detail.ProductId } could not be found in the database.");
                }

                detail.PurchasePrice = (productInfo.RetailPrice * detail.Quantity);

                if (productInfo.IsTaxable)
                {
                    detail.Tax = (detail.PurchasePrice * taxRate);
                }

                details.Add(detail);
            }

            // Create the sale model

            SaleDBModel sale = new SaleDBModel
            {
                SubTotal  = details.Sum(x => x.PurchasePrice),
                Tax       = details.Sum(x => x.Tax),
                CashierId = cashierId
            };

            sale.Total = sale.SubTotal + sale.Tax;



            try
            {
                _sql.StartTransaction("TRMData");
                // Save the sale model
                _sql.SaveDataInTransaction("dbo.spSale_Insert", sale);

                // Get the ID from the sale model //we assumed that it has the Id
                sale.Id = _sql.LoadDataInTransaction <int, dynamic>("spSale_Lookup", new { sale.CashierId, sale.SaleDate }).FirstOrDefault();

                // Finish filling in the sale detail models
                foreach (SaleDetailDBModel item in details)
                {
                    item.SaleId = sale.Id;
                    // Save the sale detail models
                    _sql.SaveDataInTransaction("dbo.spSaleDetail_Insert", item);
                }

                _sql.CommitTransaction();
            }
            catch
            {
                _sql.RollbackTransaction();
                throw;
            }
        }
        public async Task <ActionResult> Edit([Bind(Include = "SKU, ProductName, Description, CoverPath, Price, BrandID")] ProductModel productModel)
        {
            if (ModelState.IsValid)
            {
                if (!await(from p in db.Products where p.ProductName.ToLower() == productModel.ProductName.ToLower() && p.BrandID == productModel.BrandID && p.SKU != productModel.SKU select p).AnyAsync())
                {
                    ProductModel editedProduct = await db.Products.FindAsync(productModel.SKU);

                    string[] pictures = Request.Form.GetValues("ProductPictures") ?? new string[] { };
                    for (int i = 0; i < pictures.Length; i++)
                    {
                        for (int j = i + 1; j < pictures.Length; j++)
                        {
                            if (pictures[i].Equals(pictures[j]))
                            {
                                pictures[j] = "";
                            }
                        }
                    }
                    List <ProductPictureModel> ppmLst = new List <ProductPictureModel>();
                    foreach (string str in pictures)
                    {
                        if (!str.Equals(""))
                        {
                            ppmLst.Add(new ProductPictureModel {
                                SKU = editedProduct.SKU, PicturePath = str, Product = editedProduct
                            });
                        }
                    }

                    //foreach(ProductPictureModel ppm in editedProduct.ProductPictures) {
                    //	db.Entry(ppm).State = EntityState.Deleted;
                    //}

                    editedProduct.ProductPictures.Clear();

                    editedProduct.ProductCategories.Clear();

                    string[] selectedSubCategoriesStrings             = Request.Form.GetValues("CheckedSubCategories") ?? new string[] { };
                    List <SubCategoryModel> selectedSubCategoriesList = new List <SubCategoryModel>();
                    foreach (string str in selectedSubCategoriesStrings)
                    {
                        SubCategoryModel subCat = await db.SubCategories.FindAsync(Int32.Parse(str));

                        selectedSubCategoriesList.Add(subCat);
                    }

                    BrandModel brand = await db.Brands.FindAsync(productModel.BrandID);

                    if (editedProduct.BrandID != productModel.BrandID)
                    {
                        brand.Products.Remove(editedProduct);
                        db.Entry(brand).State = EntityState.Modified;
                    }

                    editedProduct.Brand             = brand;
                    editedProduct.BrandID           = productModel.BrandID;
                    editedProduct.CoverPath         = productModel.CoverPath;
                    editedProduct.Description       = productModel.Description;
                    editedProduct.Price             = productModel.Price;
                    editedProduct.ProductCategories = selectedSubCategoriesList;
                    editedProduct.ProductName       = productModel.ProductName;
                    editedProduct.ProductPictures   = ppmLst;

                    db.Entry(editedProduct).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
            }
            await this.FillViewBag();

            ProductModel model = await(from p in db.Products where p.ProductName.ToLower() == productModel.ProductName.ToLower() && p.BrandID == productModel.BrandID select p).FirstAsync();

            ViewBag.ProductName = productModel.ProductName;
            ViewBag.BrandName   = model.Brand.BrandName;
            return(View("Error", model));
        }
 public Task <int> DeleteItemAsync(ProductModel item)
 {
     return(database.DeleteAsync(item));
 }
        public ActionResult ProductDetail(string Id)
        {
            long id = 0;
            try
            {
                id = Convert.ToInt64(CommonFile.Decode(Id));
                List<ProductModel> Product = GetProduct(id);
                ProductModel objModel = new ProductModel();
                if (Product != null && Product.Count() > 0)
                {
                    objModel.Id = id;
                    objModel.ProductName = Product[0].ProductName;
                    objModel.ProductCatId = Product[0].ProductCatId;
                    objModel.ProductImage = Product[0].ProductImage;
                    objModel.SellingPrice = Product[0].SellingPrice;
                    objModel.DiscountPrice = Product[0].DiscountPrice;
                    objModel.BusinessId = Product[0].BusinessId;
                    objModel.UserId = Product[0].UserId;
                    objModel.Description = Product[0].Description;
                    objModel.VendorName = Product[0].VendorName;
                    objModel.ProductImages = Product[0].ProductImages;

                    List<ProductImages> ListProductImages = new List<ProductImages>();
                    if (!String.IsNullOrEmpty(objModel.ProductImages))
                    {
                        String[] ProductImages = objModel.ProductImages.Split(',');
                        ListProductImages = GetSelectedProductImages(ProductImages, objModel.ProductImage);
                        ViewBag.ProductImages = ListProductImages;
                    }
                    else
                    {
                        ViewBag.ProductImages = ListProductImages;
                    }
                }
                ViewBag.SimilarProductList = ListAllProduct.Where(x => x.ProductCatId == objModel.ProductCatId).ToList();       //ViewBag for showing similar products in the Product Detail Page

                ViewBag.ProductCatList = CommonFile.GetProductCategory(null);

                var Productlist = ListAllProduct.Where(X => X.Id == id).SingleOrDefault();
                var Menuslist = CommonFile.GetProductCategory(null);
                if (Menuslist != null && Menuslist.Count > 0)
                {
                    foreach (var mlist in Menuslist)
                    {
                        if (mlist.Id == Productlist.ParentCatId)
                        {
                            ViewBag.ParentCatDiscription = mlist.Name;
                            ViewBag.ParentCatId = Productlist.ParentCatId;
                            break;
                        }
                    }
                    foreach (var mlist in Menuslist)
                    {
                        if (mlist.Id == Productlist.ProductCatId)
                        {
                            ViewBag.ProductCatDiscription = mlist.Name;
                            ViewBag.ProductCatId = Productlist.ProductCatId;
                            break;
                        }
                    }
                }
                return View(objModel);
            }
            catch (Exception ex)
            {
                return View("PageNotFound", "Eror");
            }
        }
Exemple #40
0
        public ActionResult Add()
        {
            var u = new ProductModel();

            return(View(u));
        }
Exemple #41
0
        public async Task <IActionResult> Create(CreateProductViewModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            using (var Transaction = Db.Database.BeginTransaction())
            {
                var product = new ProductModel()
                {
                    Name        = model.Name,
                    Description = model.Description,
                    StoreID     = model.StoreID,
                    Store       = Db.Stores.Where(s => s.ID == model.StoreID).FirstOrDefault(),
                    DateCreated = DateTime.Now,
                    Status      = ProductStatus.Available,
                    Images      = new List <ImageModel>(),
                    Variants    = new List <VariantModel>()
                };

                foreach (var formFile in model.Images)
                {
                    if (formFile.Length > 0)
                    {
                        var image = ImageUpload.ImageToByte(formFile);
                        image.Product = product;
                        product.Images.Add(image);
                    }
                }

                await Db.Images.AddRangeAsync(product.Images);

                foreach (var variant in model.Variants)
                {
                    var temp = new VariantModel()
                    {
                        Name        = variant.Name,
                        Description = variant.Description,
                        Stock       = variant.Stock,
                        Price       = variant.Price,
                        Currency    = CultureInfo.CurrentCulture,
                        Images      = new List <ImageModel>(),
                        DateCreated = DateTime.Now
                    };

                    foreach (var formFile in variant.Images)
                    {
                        if (formFile.Length > 0)
                        {
                            var image = ImageUpload.ImageToByte(formFile);
                            image.Variant = temp;
                            temp.Images.Add(image);
                        }
                    }

                    product.Variants.Add(temp);
                    await Db.Variants.AddAsync(temp);

                    await Db.Images.AddRangeAsync(temp.Images);
                }

                await Db.Products.AddAsync(product);

                await Db.SaveChangesAsync();

                Transaction.Commit();
            }

            return(RedirectToAction("List"));
        }
Exemple #42
0
 public IEnumerable <ProductFieldViewModel> Build([NotNull] ProductModel productModel, [NotNull] string fieldGroup, bool includeBaseProductFields = true, bool includeVariantFields = true, bool includeHiddenFields = false, bool includeEmptyFields = false)
 => Build(productModel, fieldGroup, CultureInfo.CurrentUICulture, includeBaseProductFields, includeVariantFields, includeHiddenFields, includeEmptyFields);
Exemple #43
0
 public async Task <ActionResult <ProductDetails> > UpdateProduct(int id, ProductModel productModel, CancellationToken cancellationToken)
 {
     return(this.Ok(await this.productService.UpdateProductAsync(id, productModel, cancellationToken)));
 }
Exemple #44
0
 public void Insert(ProductModel productModel)
 {
     _mongoCollection.InsertOne(productModel);
 }
Exemple #45
0
        public async Task <ProductModel> CreateProduct(ProductModel product)
        {
            var createdProduct = await PostAsync <ProductModel>("api/products", product);

            return(createdProduct);
        }
Exemple #46
0
        public void Update(ProductModel updatedProductModel)
        {
            var oldProductModel = GetById(updatedProductModel.Id);

            oldProductModel.Name = updatedProductModel.Name;
        }
        private KeyValuePair <RelationshipType, List <ProductItemViewModel> > GetRelatedProducts(ProductModel productModel, string typeName)
        {
            var relatedModel = _productService.GetProductRelationships(productModel, typeName);

            if (relatedModel == null)
            {
                return(default);
Exemple #48
0
 public void Add(ProductModel newProductModel)
 {
     Products.Add(newProductModel);
 }
 public ProductListModel() : base()
 {
     Product = new ProductModel();
 }
 public ActionResult Demo(ProductModel model)
 {
     return(Content(model.ProductName + " - " + model.Des));
 }
        public IActionResult Index(int id)
        {
            ProductModel productModel = productData.ProductList.FirstOrDefault(p => p.ProductId == id);

            return(View(productModel));
        }
 public ProductModel UpdateProduct([FromBody] ProductModel product)
 {
     return(_productService.UpdateProduct(product));
 }
Exemple #53
0
        public ProductArchivesPageViewModel(INavigationService navigationService,
                                            IProductService productService,
                                            IUserService userService,
                                            ITerminalService terminalService,
                                            IWareHousesService wareHousesService,
                                            IAccountingService accountingService,
                                            IDialogService dialogService
                                            ) : base(navigationService, productService, terminalService, userService, wareHousesService, accountingService, dialogService)
        {
            Title = "商品档案";

            _navigationService = navigationService;
            _dialogService     = dialogService;
            _terminalService   = terminalService;
            _productService    = productService;
            _userService       = userService;
            _wareHousesService = wareHousesService;
            _accountingService = accountingService;


            //搜索
            this.WhenAnyValue(x => x.Filter.SerchKey)
            .Where(s => !string.IsNullOrEmpty(s))
            .Select(s => s)
            .Throttle(TimeSpan.FromSeconds(2), RxApp.MainThreadScheduler)
            .Subscribe(s =>
            {
                ((ICommand)SerchCommand)?.Execute(s);
            }).DisposeWith(DeactivateWith);

            this.SerchCommand = ReactiveCommand.Create <string>(e =>
            {
                if (string.IsNullOrEmpty(Filter.SerchKey))
                {
                    this.Alert("请输入关键字!");
                    return;
                }
                ((ICommand)Load)?.Execute(null);
            });
            this.Load = ProductSeriesLoader.Load(async() =>
            {
                //重载时排它
                ItemTreshold = 1;

                var items = await GetProductsPage(0, PageSize);

                //清除列表
                ProductSeries?.Clear();

                if (items != null && items.Any())
                {
                    foreach (var item in items)
                    {
                        if (ProductSeries.Count(s => s.ProductId == item.ProductId) == 0)
                        {
                            ProductSeries.Add(item);
                        }
                    }
                }

                if (ProductSeries.Count > 0)
                {
                    this.ProductSeries = new System.Collections.ObjectModel.ObservableCollection <ProductModel>(ProductSeries);
                }

                return(ProductSeries);
            });
            //以增量方式加载数据
            this.ItemTresholdReachedCommand = ReactiveCommand.Create(async() =>
            {
                int pageIdex = ProductSeries.Count / PageSize;
                using (var dig = UserDialogs.Instance.Loading("加载中..."))
                {
                    try
                    {
                        var items            = await GetProductsPage(pageIdex, PageSize);
                        var previousLastItem = ProductSeries.Last();

                        if (items != null)
                        {
                            foreach (var item in items)
                            {
                                if (ProductSeries.Count(s => s.ProductId == item.ProductId) == 0)
                                {
                                    ProductSeries.Add(item);
                                }
                            }

                            if (items.Count() == 0 || items.Count() == ProductSeries.Count)
                            {
                                ItemTreshold = -1;
                                //return this.ProductSeries;
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Crashes.TrackError(ex);
                        ItemTreshold = -1;
                    }
                }
            }, this.WhenAny(x => x.ProductSeries, x => x.GetValue().Count > 0));


            //选择商品
            this.WhenAnyValue(x => x.Selecter).Throttle(TimeSpan.FromMilliseconds(500))
            .Skip(1)
            .Where(x => x != null)
            .SubOnMainThread(async item =>
            {
                await this.NavigateAsync("AddProductArchivePage", ("Product", item));
                Selecter = null;
            }).DisposeWith(DeactivateWith);

            this.AddCommand = ReactiveCommand.Create <object>(async e => await this.NavigateAsync("AddProductArchivePage"));

            this.CatagorySelected = ReactiveCommand.Create <object>(async e =>
            {
                await SelectCatagory((data) =>
                {
                    Filter.CatagoryId   = data.Id;
                    Filter.CatagoryName = data.Name;
                    Filter.CatagoryIds  = new int[] { data.Id };
                });
            });

            this.BindBusyCommand(Load);


            this.Load.ThrownExceptions.Subscribe(ex => { Debug.Print(ex.StackTrace); }).DisposeWith(this.DeactivateWith);
            this.SerchCommand.ThrownExceptions.Subscribe(ex => { Debug.Print(ex.StackTrace); }).DisposeWith(this.DeactivateWith);
            this.ItemTresholdReachedCommand.ThrownExceptions.Subscribe(ex => { Debug.Print(ex.StackTrace); }).DisposeWith(this.DeactivateWith);
            this.AddCommand.ThrownExceptions.Subscribe(ex => { Debug.Print(ex.StackTrace); }).DisposeWith(this.DeactivateWith);
            this.CatagorySelected.ThrownExceptions.Subscribe(ex => { Debug.Print(ex.StackTrace); }).DisposeWith(this.DeactivateWith);
        }
 public ProductModel AddProduct([FromBody] ProductModel product)
 {
     return(_productService.AddProduct(product));
 }
 public int Insert(ProductModel product)
 {
     throw new NotImplementedException();
 }
Exemple #56
0
 public async Task <IActionResult> SaveProduct([FromBody] ProductModel model)
 {
     return(Ok(await _productService.SaveProduct(model)));
 }
        public HttpResponseMessage EditProduct(ProductModel productModel)
        {
            ResponseModel _response   = new ResponseModel();
            var           _getProduct = _productRepository.FindBy(x => x.ProductId != productModel.ProductId && x.ProductSubCategoryId == productModel.ProductSubCategoryId &&
                                                                  x.ProductCategoryId == productModel.ProductCategoryId && x.ProductName.Trim().ToLower() == productModel.ProductName.Trim().ToLower() &&
                                                                  x.Status == (int)Status.Active && x.IsDeleted == false).FirstOrDefault();

            if (_getProduct != null)
            {
                _response.Type    = "error";
                _response.Message = "Product already Exist";
                return(Request.CreateResponse(HttpStatusCode.OK, _response));
            }

            //var model = Mapper.Map<ProductModel, Product>(productModel);
            var _product = _productRepository.FindBy(x => x.ProductId == productModel.ProductId).FirstOrDefault();

            _product.ProductId            = productModel.ProductId;
            _product.ProductCategoryId    = productModel.ProductCategoryId;
            _product.ProductSubCategoryId = productModel.ProductSubCategoryId;
            _product.ProductName          = productModel.ProductName;
            _product.ProductTypeId        = productModel.ProductTypeId;
            _product.MarketingCompany     = productModel.MarketingCompany;
            _product.MRP           = productModel.MRP;
            _product.PTR           = productModel.PTR;
            _product.ProductCodeId = productModel.ProductCodeId;
            _product.ModifiedBy    = productModel.ModifiedBy == null ? productModel.CreatedBy : productModel.ModifiedBy;
            _product.ModifiedDate  = DateTime.Now;

            var IsResponse = _productRepository.EditProduct(_product);

            if (IsResponse)
            {
                // For Uploading image ----
                if (productModel.DocProduct != null)
                {
                    UploadDocumentModel UploadDocument = new UploadDocumentModel();
                    UploadDocument.documents    = new List <DocumentModel>();
                    UploadDocument.ImageSize    = 250;
                    UploadDocument.ImageQuality = 250;
                    UploadDocument.documents.Add(productModel.DocProduct);
                    List <string> uploadedFileName = SavePicture(UploadDocument);
                    if (uploadedFileName.Count > 0)
                    {
                        if (_product != null)
                        {
                            // delete exiting images
                            string ImgPath = System.Web.Hosting.HostingEnvironment.MapPath("~/Images/UploadImg/" + _product.ProductImagePath);
                            if (System.IO.File.Exists(ImgPath))
                            {
                                System.IO.File.Delete(ImgPath);
                            }
                            string ImgOriginalPath = System.Web.Hosting.HostingEnvironment.MapPath("~/Images/UploadImg/" + "Original_" + _product.ProductImagePath);
                            if (System.IO.File.Exists(ImgOriginalPath))
                            {
                                System.IO.File.Delete(ImgOriginalPath);
                            }
                            string TImgPath = System.Web.Hosting.HostingEnvironment.MapPath("~/Images/UploadImg/" + "T" + _product.ProductImagePath);
                            if (System.IO.File.Exists(TImgPath))
                            {
                                System.IO.File.Delete(TImgPath);
                            }
                            //------------------------------
                            _product.ProductImagePath = uploadedFileName[0].ToString();
                            _productRepository.Update(_product);
                            _productRepository.SaveChanges();
                        }
                    }
                }

                _response.Type    = "success";
                _response.Message = "Product updated successfully";
                return(Request.CreateResponse(HttpStatusCode.OK, _response));
            }
            else
            {
                _response.Type    = "error";
                _response.Message = "Something went wrong";
                return(Request.CreateResponse(HttpStatusCode.OK, _response));
            }
        }
Exemple #58
0
        public async Task <ProductModel> UpdateProduct(Guid id, ProductModel product)
        {
            var updatedProduct = await PutAsync <ProductModel>($"api/products/{id}", product);

            return(updatedProduct);
        }
Exemple #59
0
        public IActionResult Edit(Guid Id)
        {
            ProductModel product = GetProductById(Id);

            return(View(product));
        }
        public async Task <IActionResult> Update(ProductModel productModel)
        {
            var products = await _productApiService.Update(productModel);

            return(RedirectToAction("Index"));
        }