Esempio n. 1
0
 public static ProductImageItem FillOne(DataRow r, IncludeToFill inc)
 {
     ProductImageItem p = new ProductImageItem();
     if (inc.Id) p.Id = (int)r["Id"];
     if (inc.ImageUrl) p.ImageURL = (string)r["ImageURL"];
     return p;
 }
Esempio n. 2
0
        /// <summary>
        /// Set the logo image for product.
        /// </summary>
        /// <param name="productID"></param>
        /// <param name="imageID"></param>
        /// <returns></returns>
        public static bool SetProductLogImage(int productID, int imageID)
        {
            using (SolemartDBContext context = new SolemartDBContext())
            {
                ProductImageItem imageItem = context.ProductImageItems.FirstOrDefault(p => (p.ProductID == productID && p.ImageID == imageID));

                ProductImageItem logoImageItem = context.ProductImageItems.FirstOrDefault(p => (p.ProductID == productID && p.ForLogo));
                //如果已经是LOGO的图片
                if (imageItem != null && imageItem.ForLogo)
                {
                    return(true);
                }

                //设置的图片不是原来的LOGO图片
                if (imageItem != null)
                {
                    imageItem.ForLogo = true;
                    if (logoImageItem != null)
                    {
                        logoImageItem.ForLogo = false;
                    }

                    if (context.SaveChanges() > 0)
                    {
                        if (allProductLogoImages != null)
                        {
                            allProductLogoImages.Clear();
                        }
                        return(true);
                    }
                }

                return(false);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Add a image for the product
        /// </summary>
        /// <param name="id">the product id</param>
        /// <returns>action result</returns>
        public ActionResult AddNewProductImage(int id)
        {
            ProductItem CurrentProduct = ProductManager.GetProductByID(id);

            if (CurrentProduct == null)
            {
                return(Content(WebResult <string> .NormalErrorResult.ResponseString));
            }

            HttpPostedFileBase file = Request.Files[0];

            if (!file.ContentType.Contains("image") || file.ContentLength > 262144)
            {
                return(Content(WebResult <string> .FileTooLongResult.ResponseString));
            }

            string mimetype  = file.ContentType;
            string file_name = ProductManager.GenerateProductImageFileName(CurrentProduct.ProductID,
                                                                           ProductManager.FromMimeTypeGetExtendName(mimetype));

            BitmapDecoder decoder = BitmapDecoder.Create(file.InputStream, BitmapCreateOptions.None, BitmapCacheOption.Default);

            /* 生成小图标 */
            TransformedBitmap thumb_img = new TransformedBitmap(decoder.Frames[0], new System.Windows.Media.ScaleTransform(0.2, 0.2));
            BitmapEncoder     encoder   = BitmapEncoder.Create(decoder.CodecInfo.ContainerFormat);

            using (FileStream thumb_file = new FileStream(HttpContext.Server.MapPath("~/images/product/thumb/" + file_name), FileMode.Create))
            {
                encoder.Frames.Add(BitmapFrame.Create(thumb_img));
                encoder.Save(thumb_file);
            }

            file.SaveAs(HttpContext.Server.MapPath("~/Images/product/normal/" + file_name));
            ProductImageItem item = new ProductImageItem();

            item.ProductID   = CurrentProduct.ProductID;
            item.ImageUrl    = file_name;
            item.MimeType    = file.ContentType;
            item.Description = "";
            //the first image is default to logo.
            if (file_name.Contains("_0."))
            {
                item.ForLogo = true;
            }

            if (ProductManager.AddNewImageToProduct(item))
            {
                return(Content(WebResult <string> .SuccessResult.ResponseString));
            }
            else
            {
                return(Content(WebResult <string> .NormalErrorResult.ResponseString));
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Delete the product image
        /// </summary>
        /// <param name="pid">product ID</param>
        /// <param name="iid">the image id to delete</param>
        /// <returns>删除图片的结果</returns>
        public ActionResult DeleteProductImage(int pid, int iid)
        {
            ProductImageItem img = ProductManager.GetProductImage(pid, iid);

            if (img != null && ProductManager.DeleteProductImage(pid, iid))
            {
                System.IO.File.Delete(Server.MapPath("~/images/product/normal/" + img.ImageUrl));
                System.IO.File.Delete(Server.MapPath("~/images/product/thumb/" + img.ImageUrl));
                return(Content(WebResult <string> .SuccessResult.ResponseString));
            }

            return(Content(WebResult <string> .NormalErrorResult.ResponseString));
        }
Esempio n. 5
0
 /// <summary>
 /// Add an image to the product
 /// </summary>
 /// <param name="image"></param>
 /// <returns>是否添加成功</returns>
 public static bool AddNewImageToProduct(ProductImageItem image)
 {
     using (SolemartDBContext context = new SolemartDBContext())
     {
         image.AddTime = DateTime.Now;
         context.ProductImageItems.Add(image);
         if (context.SaveChanges() > 0)
         {
             if (allProductLogoImages != null)
             {
                 allProductLogoImages.Clear();
             }
             return(true);
         }
         return(false);
     }
 }
Esempio n. 6
0
 /// <summary>
 /// Delete a image of the product
 /// </summary>
 /// <param name="pid">要删除图片的商品ID</param>
 /// <param name="imageID">删除的图片的ID</param>
 /// <returns>删除成功返回true,否则返回false</returns>
 public static bool DeleteProductImage(int productID, int imageID)
 {
     using (SolemartDBContext context = new SolemartDBContext())
     {
         ProductImageItem image = context.ProductImageItems.FirstOrDefault(i => (i.ProductID == productID && i.ImageID == imageID));
         if (image != null)
         {
             context.ProductImageItems.Remove(image);
             if (context.SaveChanges() > 0)
             {
                 if (allProductLogoImages != null)
                 {
                     allProductLogoImages.Clear();
                 }
                 return(true);
             }
         }
         return(false);
     }
 }
Esempio n. 7
0
        /// <summary>
        /// Display the product list.
        /// </summary>
        public ActionResult Index(int?p, string code)
        {
            Stopwatch watch = new Stopwatch();

            watch.Start();
            ProductListViewModel model = null;

            if (this.HttpContext.Cache["index_model"] != null)
            {
                model = HttpRuntime.Cache["index_model"] as ProductListViewModel;
            }
            else
            {
                int pi             = p ?? 0; //表示页索引
                int totalPageCount = 0;
                List <SaledProductItem> products = ProductManager.GetPagedSaledProducts(pi, 50, out totalPageCount);

                model                = new ProductListViewModel();
                model.PageIndex      = pi;
                model.TotalPageCount = totalPageCount;
                foreach (SaledProductItem product in products)
                {
                    ProductForListViewModel pmodel      = new ProductForListViewModel();
                    ProductItem             productItem = product.Product;
                    ProductImageItem        imageItem   = ProductManager.GetProductLogoImage(product.ProductID);
                    pmodel.ProductID        = product.ProductID;
                    pmodel.ProductName      = product.Product.ProductName;
                    pmodel.Price            = product.Price;
                    pmodel.Discount         = product.Discount;
                    pmodel.IsSpecial        = product.SpecialFlag;
                    pmodel.Specification    = product.Product.Specification;
                    pmodel.Unit             = product.Product.Unit;
                    pmodel.IsOutOfStock     = (product.Product.StockCount - product.Product.ReserveCount) == 0;
                    pmodel.ProductImageName = productItem.ProductName;
                    if (imageItem != null)
                    {
                        pmodel.ProductImageUrl = imageItem.ImageUrl;
                    }
                    else
                    {
                        pmodel.ProductImageUrl = "no-img.png";
                    }

                    //如果是推荐销售物品,就放置在推荐销售列表
                    if (product.SetTop)
                    {
                        model.TopSaledProductList.Add(pmodel);
                    }
                    else
                    {
                        model.NormalProductList.Add(pmodel);
                    }
                }
                HttpRuntime.Cache.Add("index_model", model, null, DateTime.Now.AddSeconds(600), TimeSpan.Zero, CacheItemPriority.Default, null);
            }
            watch.Stop();
            Log.Instance.WriteLog(string.Format("Index log for time[{0}]", watch.ElapsedMilliseconds));

            SolemartUser user = User as SolemartUser;

            //之前没有访问过
            if (!string.IsNullOrEmpty(code) && !user.IsLoginWeixin)
            {
                Log.Instance.WriteLog(string.Format("Request from weixin, code[{0}]", code));
                OAuthAccessTokenResult ret = OAuthApi.GetAccessToken(ConfigSettings.WeixinAppID, ConfigSettings.WeixinAppSecret, code);
                Log.Instance.WriteLog(string.Format("Reqeust GetAccessToken return[errcode[{0}], openid[{1}]]", ret.errcode, ret.openid));
                if (ret.errcode == WeixinReturnCode.Success)
                {
                    AccountUtil.WeixinLogin(ret.access_token, ret.openid);
                }
            }

            return(View(model));
        }