public ActionResult Item(String id)
        {
            //web.configから接続文字列を取得
            String cnstr = ConfigurationManager.ConnectionStrings[
                "mvcdbConnectionString"].ConnectionString;
            //データベースに接続する
            DataContext dc = new DataContext(cnstr);
            //商品情報を取得
            ProductItemModel model = new ProductItemModel();

            try
            {
                //商品情報を取得
                model.Product = (from p in dc.GetTable <TProduct>()
                                 where p.id == id
                                 select p
                                 ).Single <TProduct>();
                //商品詳細情報を取得
                model.ProductDetail = (from p in dc.GetTable <TProductDetail>()
                                       where p.id == id
                                       select p
                                       ).Single <TProductDetail>();
            }
            catch
            {
                return(Redirect("/Home/Error"));
            }

            return(View(model));
        }
Esempio n. 2
0
        public void AddProductItem(ProductItemModel item)
        {
            try
            {
                string countQuery = $@"SELECT count(*) FROM ProductItem WHERE Product_Name='{item.ProductName}' COLLATE NOCASE";
                int    count      = _productItemExecutor.GetCount(countQuery);

                if (count > 1)
                {
                    throw new RecordAlreadyExistsException("Product named " + item.ProductName + " already exists");
                }

                StringBuilder query = new StringBuilder();
                query.Append("INSERT INTO ProductItem ( Product_Item_Id,  Product_Name, Unit )");
                query.Append(" VALUES ( ");
                query.Append($"'{item.Id}', '{item.ProductName}', '{item.MeasurementUnit}' )");

                _productItemExecutor.Add(query.ToString());
            }
            catch (RecordAlreadyExistsException ex)
            {
                _logger.Error(ex);
                throw;
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                throw;
            }
        }
Esempio n. 3
0
        public IActionResult EditProduct([FromBody] ProductItemModel product)
        {
            if (!ModelState.IsValid)
            {
                var errrors = CustomValidator.GetErrorsByModel(ModelState);
                return(BadRequest(errrors));
            }
            try
            {
                var productItem = _context.Products.Single(x => x.Id == product.ProductID);
                var category    = _context.Categories.SingleOrDefault(x => x.Name == product.CategoryName);
                if (category != null)
                {
                    productItem.Name       = product.ProductName;
                    productItem.CategoryID = category.Id;
                }
                else
                {
                    category = new Category {
                        Name = product.CategoryName
                    };
                    _context.Categories.Add(category);
                    _context.SaveChanges();
                    productItem.Name       = product.ProductName;
                    productItem.CategoryID = category.Id;
                }
                _context.SaveChanges();

                return(Ok());
            }
            catch
            {
                return(BadRequest("Cannot edit!!!"));
            }
        }
Esempio n. 4
0
        //public void BuildMinHeap(ProductItemModel[] input)
        //{
        //    if (heapSize > 0)
        //    {
        //        //clear the current heap
        //        Array.Resize(ref arr, input.Length);
        //        heapSize = 0;
        //        for (int i = 0; i < arr.Count; i++)
        //        {
        //            arr[i] = input[i];
        //            heapSize++;
        //        }
        //    }
        //    for (int i = heapSize - 1 / 2; i >= 0; i--)
        //    {
        //        MinHeapify(i);
        //    }
        //}
        //private void MinHeapify(int index)
        //{
        //    int left = 2 * index;
        //    int right = (2 * index) + 1;
        //    int smallest = index;
        //    if (left < heapSize && arr[left].ProductPrice < arr[index].ProductPrice)
        //    {
        //        smallest = left;
        //    }
        //    else
        //    {
        //        smallest = index;
        //    }
        //    if (right < heapSize && arr[right].ProductPrice < arr[smallest].ProductPrice)
        //    {
        //        smallest = right;
        //    }
        //    if (smallest != index)
        //    {
        //        swap(ref arr, index, smallest);
        //        MinHeapify(smallest);
        //    }
        //}
        private void swap(ref ProductItemModel[] input, int a, int b)
        {
            ProductItemModel temp = input[a];

            input[a] = input[b];
            input[b] = temp;
        }
        public ActionResult AddProduct(ProductAddModel model)
        {
            string role = CurrentUser.Role;

            if (role != Convert.ToString((byte)UserType.Admin))
            {
                return(RedirectToAction("index", "home"));
            }
            #region treeinsert
            var    category                  = _categoryService.GetCategoryByCategoryId(model.CategoryId);//tree insert product
            string productGroupName          = _categoryService.GetCategoryByCategoryId(model.ProductGroupId).CategoryName;
            PrepareCategoryHash categoryHash = new PrepareCategoryHash();
            categoryHash.CreateHashTableAndProductTree();
            var categoryTable = categoryHash.GetCategoryTable;
            var productGroupTreeForCategory  = (ProductGroupTree)categoryTable[category.CategoryName];
            ProductGroupTreeNode node        = productGroupTreeForCategory.GetProductTreeNodeByProductGroupName(productGroupTreeForCategory.GetRoot(), productGroupName);
            ProductItemModel     productItem = new ProductItemModel();
            productItem.BrandName          = model.BrandName;
            productItem.ModelName          = model.ModelName;
            productItem.ProductCost        = model.Cost;
            productItem.ProductDescription = model.ProductDescription;
            productItem.ProductPrice       = model.Price;
            productItem.Status             = true;
            productItem.ProductNumber      = model.ProductNumber;
            productItem.ProductName        = model.ProductName;
            node.ProductBase.Products.Add(productItem);

            #endregion
            #region databaseinsert
            string fileNameDt = "";
            if (Request.Files.Count > 0)//resim upload
            {
                var file = Request.Files[0];

                if (file != null && file.ContentLength > 0)
                {
                    var fileName = Path.GetFileName(file.FileName);
                    fileNameDt = fileName;
                    var path = Path.Combine(Server.MapPath("~/ProductImages/"), fileName);
                    file.SaveAs(path);
                }
            }
            Product product = new Product();//database adding
            product.BrandName          = model.BrandName;
            product.CategoryId         = model.ProductGroupId;
            product.ModelName          = model.ModelName;
            product.ProductCost        = model.Cost;
            product.ProductDescription = model.ProductDescription;
            product.ProductName        = model.ProductName;
            product.ProductNumber      = model.ProductNumber;
            product.ProductPrice       = model.Price;
            product.ProductImagePath   = fileNameDt;
            product.Status             = true;
            _productservice.AddProduct(product);
            #endregion
            return(RedirectToAction("AddProduct", new { message = "success" }));
        }
        // GET: Admin/ProductItem/Create
        public async Task <ActionResult> Create()
        {
            var model = new ProductItemModel
            {
                Items    = await db.Items.ToListAsync(),
                Products = await db.Products.ToListAsync()
            };

            return(View(model));
        }
Esempio n. 7
0
        // GET: Admin/ProductItem/Create
        public async Task <ActionResult> Create()
        {
            ProductItemModel model = new ProductItemModel();

            model.Products = await db.Products.ToListAsync();

            model.Items = await db.Items.ToListAsync();

            return(View(model));
        }
Esempio n. 8
0
        // GET: Admin/ProductItem/Create
        public async Task <ActionResult> Create()
        {
            //Create instance of ProductItemModel and pass it into view
            var model = new ProductItemModel
            {
                Items    = await db.Items.ToListAsync(),
                Products = await db.Products.ToListAsync()
            };

            return(View(model));
        }
Esempio n. 9
0
        private ProductItemModel convertProductToProductItemModel(Product product)
        {
            var model = new ProductItemModel();

            model.Id       = product.ID;
            model.ImageURL = product.Image;
            model.Price    = product.Price.Value;
            model.Title    = product.Name;

            return(model);
        }
Esempio n. 10
0
        // GET: Admin/ProductItem/Create
        public async Task <ActionResult> Create()
        {
            // getting Items and Products from db
            // add to ProductItemModel (view model)
            var model = new ProductItemModel
            {
                Items    = await db.Items.ToListAsync(),
                Products = await db.Products.ToListAsync()
            };

            return(View(model));
        }
Esempio n. 11
0
        private static ProductItemModel RetrieveProductItemFromRead(ref MySqlDataReader reader)
        {
            var _productItem = new ProductItemModel();

            _productItem.ID       = reader.GetInt32(_productItem.GetIDColumn);
            _productItem.Name     = reader.GetString(_productItem.GetNameColumn);
            _productItem.PartType = reader.GetString(_productItem.GetPartTypeColumn);
            _productItem.Code     = reader.GetString(_productItem.GetCodeColumn);
            _productItem.Image    = reader.GetString(_productItem.GetImageColumn);
            _productItem.Price    = reader.GetDouble(_productItem.GetPriceColumn);
            return(_productItem);
        }
Esempio n. 12
0
        public static async Task <ProductItemModel> Convert(this ProductItem productItem, ApplicationDbContext db)
        {
            var model = new ProductItemModel
            {
                ItemId    = productItem.ItemId,
                ProductId = productItem.ProductId,
                Items     = await db.Items.ToListAsync(),
                Products  = await db.Products.ToListAsync()
            };

            return(model);
        }
Esempio n. 13
0
 public void remove(ProductItemModel value)
 {
     for (int i = 0; i < heapSize - 1; i++)
     {
         if (arr[i] == value)
         {
             arr[i] = arr[heapSize - 1];
             heapSize--;
             siftDown(i);
             break;
         }
     }
 }
        private void MapProductParametrics(ProductItemModel itemModel, ProductItem productItem)
        {
            MoveEqualParametricsFromVariantToProduct(itemModel);

            var variantParametricIds    = GetVariantParametricIds(productItem.VariantParametricSeed);
            var parametricsIdsOnVariant = itemModel.Variants.SelectMany(v => v.Parametrics.Select(p => p.Id));
            var alreadyAddedIds         = itemModel.Parametrics.Select(p => p.Id);
            var allParametrics          = GetAllParametrics(productItem);

            allParametrics.RemoveAll(i => variantParametricIds.Contains(i.Id) || parametricsIdsOnVariant.Contains(i.Id) || alreadyAddedIds.Contains(i.Id));

            MapParametrics(itemModel.Parametrics, allParametrics);
        }
        public static async Task <ProductItemModel> Convert(this ProductItem productItem, ApplicationDbContext db, bool addListData = true)
        {
            var model = new ProductItemModel
            {
                ItemId       = productItem.ItemId,
                ProductId    = productItem.ProductId,
                Items        = addListData ? await db.Items.ToListAsync() : null,
                Products     = addListData ?  await db.Products.ToListAsync(): null,
                ItemTitle    = (await db.Items.FirstOrDefaultAsync(i => i.Id.Equals(productItem.ItemId))).Title,
                ProductTitle = (await db.Products.FirstOrDefaultAsync(p => p.Id.Equals(productItem.ProductId))).Title
            };

            return(model);
        }
Esempio n. 16
0
        void AddItemToGrid(Backend.Objects.Product product)
        {
            //Fill Grid [ ItemsGrid ] With Rows
            ProductItemModel productItemModel = new ProductItemModel
            {
                OnAdd        = OnAddItem,
                Product      = product,
                User         = User,
                Store        = Store,
                IsSearchItem = true,
            };

            //Add To Grid
            ItemsGrid.Controls.Add(productItemModel);
        }
        public void AddProductItem_Adding_Dublicate_Returns_Exception()
        {
            ISqlExecutor <ProductItemModel> productItemExecutor = new SqlProductItemExecutor();
            ILogger          logger = A.Fake <ILogger>();
            SQLiteRepository repo   = new SQLiteRepository(productItemExecutor, logger);

            ProductItemModel item = new ProductItemModel
            {
                Id = Guid.NewGuid(),
                MeasurementUnit = "Kg",
                ProductName     = "bulves"
            };

            repo.AddProductItem(item);
            repo.AddProductItem(item);
        }
Esempio n. 18
0
        void AddProductToGrid(Backend.Objects.Product product)
        {
            //Fill Grid [ ItemsGrid ] With Rows
            ProductItemModel productItemModel = new ProductItemModel
            {
                //OnAdd = OnAddProduct,
                OnDelete  = OnRemoveProduct,
                Product   = product,
                User      = User,
                Store     = Store,
                CanDelete = true,
            };

            //Add To Grid
            ProductDiscountsGrid.Controls.Add(productItemModel);
        }
        // GET: Admin/ProductItem/Details/5
        public async Task <ActionResult> Details(int?itemId, int?productId)
        {
            if (itemId == null || productId == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            ProductItem productItem = await GetProductItem(itemId, productId);

            if (productItem == null)
            {
                return(HttpNotFound());
            }
            ProductItemModel model = await productItem.Convert(db);

            return(View(model));
        }
Esempio n. 20
0
        public ActionResult HouseItemDetail(ParameterModel param)
        {
            var model = new ProductItemModel();

            if (param.pidx != 0)
            {
                Mapper.CreateMap <PRODUCTITEM, ProductItemModel>();
                var itemDto = blService.getProductItem(param);
                model = Mapper.Map <PRODUCTITEM, ProductItemModel>(itemDto);
            }
            else
            {
                model.hidx = param.hidx;
            }

            return(View(model));
        }
Esempio n. 21
0
        public ActionResult Detail(int productId)
        {
            ProductDao productDao = new ProductDao();

            var product = productDao.GetProductById(productId);

            // chuyen doi dl tu db sang model de hien thi
            var model = new ProductItemModel();

            model.Id          = product.ID;
            model.Title       = product.Name;
            model.Price       = product.Price ?? 0;//co the co gia tr hoac khong ? neu co gia tri thi hien gt ? nguoc lai hien thi 0
            model.ImageURL    = product.Image;
            model.Description = product.Descriptions;

            return(View(model));
        }
        public async Task <ActionResult> Create(
            ProductItemModel productItem)
        {
            if (ModelState.IsValid)
            {
                ProductItem x = new ProductItem();
                x.ItemtId   = productItem.ItemId;
                x.ProductId = productItem.ProductId;

                db.ProductItems.Add(x);
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            return(View(productItem));
        }
        private void MapVariants(IEnumerable <ProductItem> variants, ProductItemModel itemModel)
        {
            foreach (var variant in variants)
            {
                var variantModel = Mapper.Map <ProductItem, VariantModel>(variant);
                //variantModel.Files.RemoveAll(f => itemModel.Files.Select(x => x.Url).Contains(f.Url) && f.Type != (int)ProductFileType.VariantImage);

                MapVariantParametrics(variant, variantModel.VariantParametrics);
                MapParametrics(variant, variantModel.Parametrics);

                itemModel.Variants.Add(variantModel);
            }

            itemModel.Files.RemoveAll(f => f.Type != (int)ProductFileType.DefaultImage && !itemModel.Variants.All(v => v.Files.Exists(vf => vf.Url == f.Url)));
            foreach (var variantModel in itemModel.Variants)
            {
                variantModel.Files.RemoveAll(f => itemModel.Files.Select(x => x.Url).Contains(f.Url) && f.Type != (int)ProductFileType.VariantImage);
            }
        }
Esempio n. 24
0
        public ActionResult updateHouseItem(ProductItemModel model)
        {
            ResultModel result = new ResultModel();

            try
            {
                Mapper.CreateMap <ProductItemModel, PRODUCTITEM>();
                PRODUCTITEM entity = Mapper.Map <ProductItemModel, PRODUCTITEM>(model);
                result = blService.updateHouseItem(entity);
            }
            catch (Exception ex)
            {
                result.ResultCode    = -1;
                result.ResultMessage = ex.Message;
                throw ex;
            }

            return(Json(result));
        }
        public List <int> Resolve(ProductItem source, ProductItemModel destination, List <int> destMember, ResolutionContext context)
        {
            var flagList = new List <int>();

            if (string.IsNullOrWhiteSpace(source.FlagIdSeed))
            {
                return(flagList);
            }

            foreach (var flag in source.FlagIdSeed.Split(','))
            {
                int id;
                if (int.TryParse(flag.Trim(), out id) && !flagList.Contains(id))
                {
                    flagList.Add(id);
                }
            }

            return(flagList);
        }
        private static void MoveEqualParametricsFromVariantToProduct(ProductItemModel itemModel)
        {
            foreach (var group in itemModel.Variants.SelectMany(x => x.Parametrics).ToList().GroupBy(x => x.Id))
            {
                var allVariantsHaveTheParametric = itemModel.Variants.All(x => x.Parametrics.SingleOrDefault(y => y.Id == @group.Key) != null);
                if (!allVariantsHaveTheParametric)
                {
                    continue;
                }

                var distinctValueCount = @group.Distinct(EqualityComparer <ParametricModel> .Default).Count();
                if (distinctValueCount != 1)
                {
                    continue;
                }

                itemModel.Parametrics.Add(@group.First());
                itemModel.Variants.ForEach(x => x.Parametrics = x.Parametrics.Where(y => y.Id != @group.Key).ToList());
            }
        }
Esempio n. 27
0
        private List <ProductItemModel> TransformResultItemList(PagedResult <ProductSearchResultItem> solrItemList)
        {
            List <ProductItemModel> result = new List <ProductItemModel>();
            ImageSize imageSizeItemList    = Nesoft.ECWeb.MobileService.Models.Product.ImageUrlHelper.GetImageSize(ImageType.Middle);

            foreach (var item in solrItemList)
            {
                ProductItemModel model = new ProductItemModel();
                //基本信息
                model.ID             = item.ProductSysNo;
                model.Code           = item.ProductID;
                model.ProductTitle   = item.ProductDisplayName;
                model.PromotionTitle = item.PromotionTitle;
                model.ImageUrl       = ProductFacade.BuildProductImage(imageSizeItemList, item.ProductDefaultImage);

                //价格相关信息
                SalesInfoModel salesInfo = new SalesInfoModel();
                salesInfo.BasicPrice   = item.MarketPrice;
                salesInfo.CurrentPrice = item.SalesPrice;
                salesInfo.CashRebate   = item.CashRebate;
                salesInfo.TariffPrice  = item.ProductTariffAmt;
                salesInfo.FreeEntryTax = item.ProductTariffAmt <= ConstValue.TariffFreeLimit;
                salesInfo.TotalPrice   = item.TotalPrice;
                //赠送积分数量
                salesInfo.PresentPoint      = item.Point;
                salesInfo.OnlineQty         = item.OnlineQty;
                salesInfo.IsHaveValidGift   = item.IsHaveValidGift;
                salesInfo.IsCountDown       = item.IsCountDown;
                salesInfo.IsNewProduct      = item.IsNewproduct;
                salesInfo.IsGroupBuyProduct = item.IsGroupBuyProduct;
                model.SalesInfo             = salesInfo;

                //其它信息
                model.ReviewCount = item.ReviewCount;
                model.ReviewScore = item.ReviewScore;

                result.Add(model);
            }

            return(result);
        }
Esempio n. 28
0
 public IActionResult AddProduct([FromBody] AddProductModel model)
 {
     if (!ModelState.IsValid)
     {
         var errrors = CustomValidator.GetErrorsByModel(ModelState);
         return(BadRequest(errrors));
     }
     try
     {
         var category = _context.Categories.SingleOrDefault(c => c.Name == model.CategoryName);
         if (category == null)
         {
             category = new Category
             {
                 Name = model.CategoryName
             };
             _context.Categories.Add(category);
             _context.SaveChanges();
         }
         var product = new Product
         {
             CategoryID = category.Id,
             Name       = model.ProductName
         };
         _context.Products.Add(product);
         _context.SaveChanges();
         var result = new ProductItemModel
         {
             ProductID    = product.Id,
             ProductName  = product.Name,
             CategoryName = category.Name
         };
         return(Ok(result));
     }
     catch
     {
         return(BadRequest("Cannot add item!!!"));
     }
 }
        public async Task <ActionResult> Edit(
            ProductItemModel productItem)
        {
            if (ModelState.IsValid)
            {
                ProductItem pd = new ProductItem();
                pd.ItemtId      = productItem.ItemId;
                pd.ProductId    = productItem.ProductId;
                pd.OldItemtId   = productItem.OldItemtId;
                pd.OldProductId = productItem.OldProductId;

                var canchange = await pd.CanChange(db);

                if (canchange)
                {
                    var remove = db.ProductItems.FirstOrDefault(pi =>
                                                                pi.ProductId.Equals(productItem.OldProductId) &&
                                                                pi.ItemtId.Equals(productItem.OldItemtId));

                    db.ProductItems.Remove(remove);
                    db.ProductItems.Add(pd);
                    await db.SaveChangesAsync();
                }

                else
                {
                    var modell = await db.ProductItems.Convert(db);

                    return(RedirectToAction("index", modell));
                }
            }

            var model = await db.ProductItems.Convert(db);

            return(View("Index", model));
        }
        private void MapVariants(ProductItem productItem, IEnumerable <VariantItem> variants, ProductItemModel itemModel)
        {
            foreach (var variant in variants)
            {
                var variantModel = Mapper.Map <VariantItem, VariantModel>(variant);

                MapVariantParametrics(productItem, variant, variantModel.VariantParametrics);
                MapParametrics(productItem, variant, variantModel.Parametrics);

                itemModel.Variants.Add(variantModel);
            }
        }