private void Insert()
        {
            string ErrorMessage = String.Empty;

            if (String.IsNullOrEmpty(TextBox_Title.Text))
            {
                ErrorMessage += "请输入标题!";
            }
            if (String.IsNullOrEmpty(TextBox_Content.Text))
            {
                ErrorMessage += "请输入内容!";
            }

            if (!String.IsNullOrEmpty(ErrorMessage))
            {
                MessageBox.Show(this, ErrorMessage);
                return;
            }

            ProductSpecificationModel model = new ProductSpecificationModel();

            model.SpecificationID = CommDataHelper.GetNewSerialNum(AppType.Product);
            model.CategoryID      = 0;
            model.CategoryPath    = "";
            model.Content         = TextBox_Content.Text;
            model.CreateTime      = DateTime.Now;
            model.Title           = TextBox_Title.Text;
            model.Type            = Convert.ToInt16(DropDown_Type.SelectedValue);

            bll.Insert(model);
        }
示例#2
0
        protected void Button_Edit_Click(object sender, EventArgs e)
        {
            string ErrorMessage = String.Empty;

            if (String.IsNullOrEmpty(TextBox_Title.Text))
            {
                ErrorMessage += "请输入标题!";
            }
            if (String.IsNullOrEmpty(TextBox_Content.Text))
            {
                ErrorMessage += "请输入内容!";
            }

            if (!String.IsNullOrEmpty(ErrorMessage))
            {
                MessageBox.Show(this, ErrorMessage);
                return;
            }

            ProductSpecificationModel model = bll.GetModel(SpecificationID);

            model.Title   = TextBox_Title.Text;
            model.Content = TextBox_Content.Text;
            model.Type    = Convert.ToInt16(DropDown_Type.SelectedValue);

            bll.Update(model);

            Response.Redirect("List.aspx?type=" + DropDown_Type.SelectedValue);
        }
        public static IList <ProductSpecificationModel> PrepareProductSpecificationModel(this Controller controller,
                                                                                         IWorkContext workContext,
                                                                                         ISpecificationAttributeService specificationAttributeService,
                                                                                         ICacheManager cacheManager,
                                                                                         Product product)
        {
            if (product == null)
            {
                throw new ArgumentNullException("product");
            }

            string cacheKey = string.Format(ModelCacheEventConsumer.PRODUCT_SPECS_MODEL_KEY, product.Id, workContext.WorkingLanguage.Id);

            return(cacheManager.Get(cacheKey, () =>
                                    //specificationAttributeService.GetProductSpecificationAttributes(product.Id, 0, null, true)
                                    product.ProductSpecificationAttributes.Where(x => x.ShowOnProductPage)
                                    .Select(psa =>
            {
                var specificationAttribute = specificationAttributeService.GetSpecificationAttributeById(psa.SpecificationAttributeId);
                var m = new ProductSpecificationModel
                {
                    SpecificationAttributeId = psa.SpecificationAttributeId,
                    SpecificationAttributeName = specificationAttribute.GetLocalized(x => x.Name),
                    ColorSquaresRgb = specificationAttribute.SpecificationAttributeOptions.Where(x => x.Id == psa.SpecificationAttributeOptionId).FirstOrDefault() != null ? specificationAttribute.SpecificationAttributeOptions.Where(x => x.Id == psa.SpecificationAttributeOptionId).FirstOrDefault().ColorSquaresRgb : "",
                };

                switch (psa.AttributeType)
                {
                case SpecificationAttributeType.Option:
                    m.ValueRaw = HttpUtility.HtmlEncode(specificationAttribute.SpecificationAttributeOptions.Where(x => x.Id == psa.SpecificationAttributeOptionId).FirstOrDefault().GetLocalized(x => x.Name));
                    break;

                case SpecificationAttributeType.CustomText:
                    m.ValueRaw = HttpUtility.HtmlEncode(psa.CustomValue);
                    break;

                case SpecificationAttributeType.CustomHtmlText:
                    m.ValueRaw = psa.CustomValue;
                    break;

                case SpecificationAttributeType.Hyperlink:
                    m.ValueRaw = string.Format("<a href='{0}' target='_blank'>{0}</a>", psa.CustomValue);
                    break;

                default:
                    break;
                }
                return m;
            }).ToList()
                                    ));
        }
        private ProductDetailsModel GetProductDetails(int productId, int updateCartItemId = 0)
        {
            var controllerContext = new ControllerContext();
            var product           = _productService.GetProductById(productId);
            var cart = _workContext.CurrentCustomer.ShoppingCartItems
                       .LimitPerStore(_storeContext.CurrentStore.Id).ToList();
            var updatecartitem = cart.FirstOrDefault(x => x.Id == updateCartItemId);
            var model          = _productModelFactory.PrepareProductDetailsModel(product, updatecartitem, false);

            // add hidden specification params
            // which checked as "don't show on product page"
            model.ProductSpecifications =
                _specificationAttributeService.GetProductSpecificationAttributes(productId, 0, null, null)
                .Select(psa =>
            {
                var m = new ProductSpecificationModel
                {
                    SpecificationAttributeId   = psa.SpecificationAttributeOption.SpecificationAttributeId,
                    SpecificationAttributeName = psa.SpecificationAttributeOption.SpecificationAttribute
                                                 .GetLocalized(x => x.Name),
                    ColorSquaresRgb = psa.SpecificationAttributeOption.ColorSquaresRgb
                };

                switch (psa.AttributeType)
                {
                case SpecificationAttributeType.Option:
                    m.ValueRaw =
                        WebUtility.HtmlEncode(psa.SpecificationAttributeOption.GetLocalized(x => x.Name));
                    break;

                case SpecificationAttributeType.CustomText:
                    m.ValueRaw = WebUtility.HtmlEncode(psa.CustomValue);
                    break;

                case SpecificationAttributeType.CustomHtmlText:
                    m.ValueRaw = psa.CustomValue;
                    break;

                case SpecificationAttributeType.Hyperlink:
                    m.ValueRaw = string.Format("<a href='{0}' target='_blank'>{0}</a>", psa.CustomValue);
                    break;

                default:
                    break;
                }
                return(m);
            })
                .ToList();
            return(model);
        }
示例#5
0
        private void BindData()
        {
            ProductSpecificationModel model = bll.GetModel(SpecificationID);

            TextBox_Title.Text   = model.Title;
            TextBox_Content.Text = model.Content;

            DropDown_Type.DataSource     = DataTableUtil.GetEnumKeyValue(typeof(SpecificationType));
            DropDown_Type.DataTextField  = "key";
            DropDown_Type.DataValueField = "value";
            DropDown_Type.DataBind();

            DropDown_Type.SelectedValue = model.Type.ToString();
        }
示例#6
0
        public void Update(ProductSpecificationModel Model)
        {
            string    SpName  = "UP_pdProductSpecification_Update";
            DbCommand Command = dbw.GetStoredProcCommand(SpName);

            dbw.AddInParameter(Command, "@SpecificationID", DbType.Int32, Model.SpecificationID);
            dbw.AddInParameter(Command, "@Title", DbType.String, Model.Title);
            dbw.AddInParameter(Command, "@Content", DbType.String, Model.Content);
            dbw.AddInParameter(Command, "@CategoryID", DbType.Int32, Model.CategoryID);
            dbw.AddInParameter(Command, "@CategoryPath", DbType.String, Model.CategoryPath);
            dbw.AddInParameter(Command, "@CreateTime", DbType.DateTime, Model.CreateTime);
            dbw.AddInParameter(Command, "@Type", DbType.Int32, Model.Type);

            dbw.ExecuteNonQuery(Command);
        }
示例#7
0
        public ProductSpecificationModel GetModel(int SpecificationID)
        {
            string    SpName  = "UP_pdProductSpecification_GetModel";
            DbCommand Command = dbr.GetStoredProcCommand(SpName);

            dbr.AddInParameter(Command, "@SpecificationID", DbType.Int32, SpecificationID);

            DataTable dt = dbr.ExecuteDataSet(Command).Tables[0];
            ProductSpecificationModel model = null;

            if (dt.Rows.Count > 0)
            {
                model = new ProductSpecificationModel(dt.Rows[0]);
            }

            return(model);
        }
        // GET: /Product/Edit
        public IActionResult Edit(Guid?id, string ActiveTab)
        {
            if (id == null)
            {
                return(RedirectToAction("List"));
            }

            // check product id exist
            var productEntity = _productService.GetProductById(id ?? Guid.Empty);

            if (productEntity == null)
            {
                return(RedirectToAction("List"));
            }

            // get all categories
            var categoryIds = new List <string>();

            foreach (var category in productEntity.Categories)
            {
                categoryIds.Add(category.Category.Id.ToString());
            }

            // get all manufacturers
            var manufacturerIds = new List <string>();

            foreach (var manufacturer in productEntity.Manufacturers)
            {
                manufacturerIds.Add(manufacturer.Manufacturer.Id.ToString());
            }

            // get all images
            var images = new List <ImageModel>();

            foreach (var image in productEntity.Images.OrderBy(x => x.Position))
            {
                var img = new ImageModel
                {
                    Id        = image.Image.Id,
                    FileName  = image.Image.FileName,
                    SortOrder = image.SortOrder
                };
                images.Add(img);
            }

            // get all specifications
            var specifications = new List <ProductSpecificationModel>();

            foreach (var specification in productEntity.Specifications.OrderBy(x => x.Position))
            {
                var spec = new ProductSpecificationModel
                {
                    Key       = specification.SpecificationId.ToString(),
                    Value     = System.Net.WebUtility.HtmlDecode(specification.Value),
                    SortOrder = specification.SortOrder
                };
                specifications.Add(spec);
            }

            // map entity to view model
            var model = _mapper.Map <Product, ProductCreateOrUpdateModel>(productEntity);

            model.Description     = System.Net.WebUtility.HtmlDecode(model.Description);
            model.CategoryIds     = categoryIds;
            model.ManufacturerIds = manufacturerIds;
            model.Images          = images;
            model.Specifications  = specifications;

            // view helper
            model.ActiveTab                  = ActiveTab ?? model.ActiveTab;
            model.CategorySelectList         = _viewHelper.GetParentCategorySelectList();
            model.ManufacturerSelectList     = _viewHelper.GetManufacturerSelectList();
            model.SpecificationKeySelectList = _viewHelper.GetSpecificationKeySelectList();

            // add model to session
            Session.SetString(_sessionKey, JsonConvert.SerializeObject(model));

            return(View(model));
        }
示例#9
0
        private async Task <ProductSpecificationModel> GetOrAddProductSpecificationDtoAsync(ProductSpecificationModel productSpecification)
        {
            // Crea si no existe
            var current = await GetProductSpecificationDtoAsync(productSpecification.Code);

            if (current == null)
            {
                return(await repository.InsertAsync(productSpecification));
            }
            return(current);
        }
 public void Update(ProductSpecificationModel Model)
 {
     dal.Update(Model);
 }
 public void Insert(ProductSpecificationModel Model)
 {
     dal.Insert(Model);
 }