Пример #1
0
 /// <summary>
 /// 赋予/撤销用户权限算法
 /// </summary>
 /// <param name="role_guid">需要赋予当前用户什么权限</param>
 /// <param name="user_guid">当前用户唯一标识</param>
 /// <returns></returns>
 public bool UpdateRoleInUser(string[] role_guid, Guid user_guid)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         /***
          * var tranny = DbContext.Database.Connection.BeginTransaction();
          * tranny.Commit();
          ***/
         using (TransactionScope transaction = new TransactionScope())
         {
             db.Database.ExecuteSqlCommand("delete from User_Role_Relation where User_Guid = @User_Guid", new SqlParameter("@User_Guid", user_guid));
             foreach (string role_guids in role_guid)
             {
                 var newRelation = new User_Role_Relation
                 {
                     Role_Guid = new Guid(role_guids),
                     User_Guid = user_guid
                 };
                 db.User_Role_Relation.Add(newRelation);
             }
             int retInt = db.SaveChanges();
             transaction.Complete();// don't be miss,or the SQL statement will never be executed
             return(retInt > 0);
         }
     }
 }
Пример #2
0
 public bool DeleteAllRoleByUser(Guid user_guid)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         return(db.Database.ExecuteSqlCommand("delete from User_Role_Relation where User_Guid = @User_Guid", new SqlParameter("@User_Guid", user_guid)) > 0);
     }
 }
Пример #3
0
 public bool addMediaLibrary(MediaLibrary_Model c, string User_Account, out long newID)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         var          hm        = db.CMS_HMNUM.FirstOrDefault(h => h.ProductID == c.ProductID);
         var          ExistPImg = hm.CMS_StockKey.MediaLibrary.FirstOrDefault(r => r.PrimaryImage == true);
         MediaLibrary newMedia  = new MediaLibrary
         {
             ProductID     = c.ProductID,
             StockKeyID    = hm.StockKeyID,
             HMNUM         = c.HMNUM,
             SerialNum     = c.SerialNum,
             ImgName       = c.ImgName,
             MediaType     = c.MediaType,
             fileFormat    = c.fileFormat,
             fileSize      = c.fileSize,
             fileWidth     = c.fileWidth,
             fileHeight    = c.fileHeight,
             Description   = c.Description,
             CreateOn      = DateTime.Now,
             CreateBy      = User_Account,
             CloudStatusID = 1,
             PrimaryImage  = ExistPImg == null ? true : false
         };
         db.MediaLibrary.Add(newMedia);
         int eVal = db.SaveChanges();
         newID = newMedia.MediaID;
         return(eVal > 0);
     }
 }
Пример #4
0
        /// <summary>
        /// 根据传递进来的文件名删除文件
        /// Change1:在删除文件之前,必须先删除文件的关系表
        /// </summary>
        /// <param name="MediaID"></param>
        /// <returns></returns>
        public bool removeMediaLibraryByID(long MediaID)
        {
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                //必须先删除关系,否则会造成数据大概 整个页面Null reference Object!

                /*Store update, insert, or delete statement affected an unexpected number of rows (0).
                 * Entities may have been modified or deleted since entities were loaded. Refresh ObjectStateManager
                 * SQL Profiler查询追踪到的是 exec sp_executesql N'delete [dbo].[SKU_Media_Relation] where ([RelationID] = @0)',N'@0 bigint',@0=0
                 * 明显的 ,是以RelationID做为Key去删除!所以这种方法不科学....2014年2月14日14:57:34*/
                //SKU_Media_Relation mr = new SKU_Media_Relation { MediaID = MediaID };
                //db.Set<SKU_Media_Relation>().Attach(mr);
                //db.SKU_Media_Relation.Remove(mr);


                //var query = db.SKU_Media_Relation.Where(r=>r.MediaID==MediaID);
                //foreach (var m in query)
                //{
                //    db.SKU_Media_Relation.Remove(m);
                //}

                //MediaLibrary ml = new MediaLibrary { MediaID = MediaID };
                //db.Set<MediaLibrary>().Attach(ml);
                //db.MediaLibrary.Remove(ml);
                //return db.SaveChanges() > 0;

                /*以下方法是用于删除图像的时候,自动删除所关联的信息,如果不删除,将会引发打开数据异常!*/
                var query = db.MediaLibrary.FirstOrDefault(s => s.MediaID == MediaID);
                db.Entry(query).Collection(m => m.SKU_Media_Relation).Load();
                db.MediaLibrary.Remove(query);
                return(db.SaveChanges() > 0);
            }
        }
Пример #5
0
 public List <MediaLibrary_Model> GetChannelMediaList(long SKUID)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         List <MediaLibrary_Model> list = new List <MediaLibrary_Model>();
         var query = db.MediaLibrary.Where(c => c.SKU_Media_Relation.Any(r => r.SKUID == SKUID)).OrderByDescending(m => m.MediaID);
         foreach (MediaLibrary c in query)
         {
             list.Add(new MediaLibrary_Model
             {
                 fileFormat  = c.fileFormat,
                 fileHeight  = c.fileHeight.HasValue ? c.fileHeight.Value : 0,
                 fileWidth   = c.fileWidth.HasValue ? c.fileWidth.Value : 0,
                 fileSize    = c.fileSize,
                 MediaID     = c.MediaID,
                 Description = c.Description,
                 HMNUM       = c.HMNUM,
                 ImgName     = c.ImgName,
                 ProductID   = c.ProductID,
                 MediaType   = c.MediaType,
                 SerialNum   = c.SerialNum
             });
         }
         return(list);
     }
 }
Пример #6
0
        public List <MediaLibrary_Model> GetImageListByProductID(long StockKeyID)
        {
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                //用AsEnumerable()方法,可以直接使用 c.CreateOn.ToString("yyyy-MM-dd HH:mm:ss")而不会报linQ错误
                var query = db.MediaLibrary.Where(m => m.StockKeyID == StockKeyID).Include(r => r.SKU_Media_Relation).AsEnumerable();

                return(query.Select(c => new MediaLibrary_Model
                {
                    fileFormat = c.fileFormat,
                    fileHeight = c.fileHeight.HasValue ? c.fileHeight.Value : 0,
                    fileWidth = c.fileWidth.HasValue ? c.fileWidth.Value : 0,
                    fileSize = c.fileSize,
                    MediaID = c.MediaID,
                    HMNUM = c.HMNUM,
                    ImgName = c.ImgName,
                    ProductID = c.ProductID,
                    MediaType = c.MediaType,
                    IsPrimaryImages = c.PrimaryImage.HasValue?c.PrimaryImage.Value:false,
                    CloudStatusID = c.CloudStatusID,
                    strCreateOn = c.CreateOn.ToString("yyyy-MM-dd HH:mm:ss"),
                    CMS_SKU = c.SKU_Media_Relation.Where(k => k.MediaID == c.MediaID).Select(s => new CMS_SKU_Model
                    {
                        ChannelName = s.CMS_SKU.Channel.ChannelName,
                        ProductName = s.CMS_SKU.ProductName,
                        SKU = s.CMS_SKU.SKU
                    }).ToList()
                }).ToList());
            }
        }
Пример #7
0
        /// <summary>
        /// Get All Menu List
        /// </summary>
        /// <returns></returns>
        public List <Menu_Resource_Model> GetMenuList(Menu_Resource_Model qModel, out int count)
        {
            List <Menu_Resource_Model> list = new List <Menu_Resource_Model>();

            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                var query = db.Menu_Resource.AsQueryable();
                if (!String.IsNullOrEmpty(qModel.name))
                {
                    query = query.Where(s => s.MenuName.Contains(qModel.name));
                }
                count = query.Count();
                query = query.OrderBy(s => s.SortNo).Skip((qModel.page - 1) * qModel.rows).Take(qModel.rows);
                foreach (var m in query)
                {
                    list.Add(new Menu_Resource_Model
                    {
                        //icon = m.Icon,
                        MenuID       = m.MenuID,
                        ParentMenuID = m.ParentMenuID,
                        MenuUrl      = m.MenuUrl,
                        MR_ID        = m.MR_ID,
                        name         = m.MenuName,
                        MenuName     = m.MenuName,
                        SortNo       = m.SortNo,
                        Visible      = m.Visible
                    });
                }
                return(list);
            }
        }
Пример #8
0
        public List <Menu_Resource_Model> GetAllMenuList()
        {
            List <Menu_Resource_Model> list = new List <Menu_Resource_Model>();

            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                //var query = db.GetAllMenuList();
                var query = db.Menu_Resource.AsEnumerable();
                foreach (var m in query)
                {
                    list.Add(new Menu_Resource_Model
                    {
                        //icon = m.Icon,
                        iconSkin     = m.Icon,
                        MenuID       = m.MenuID,
                        ParentMenuID = m.ParentMenuID,
                        MenuUrl      = m.MenuUrl,
                        MR_ID        = m.MR_ID,
                        name         = m.MenuName,
                        MenuName     = m.MenuName,
                        SortNo       = m.SortNo,
                        Visible      = m.Visible
                    });
                }
                return(list);
            }
        }
Пример #9
0
 public bool isExistMenu(int MR_ID)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities()) {
         var query = db.Menu_Resource.Where(a => a.MR_ID == MR_ID).FirstOrDefault();
         return(query == null ? false : true);
     }
 }
Пример #10
0
 public bool DeleteAllRoleByUser(Guid role_guid)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         return(db.Database.ExecuteSqlCommand("delete from Role_Menu_Relation where Role_GUID = @Role_GUID", new SqlParameter("@role_guid", role_guid)) > 0);
     }
 }
Пример #11
0
        public bool AddChannel(Channel_Model model, string user, ref string msg)
        {
            using (var db = new PermaisuriCMSEntities())
            {
                var isExist = db.Channel.FirstOrDefault(c => c.ChannelName == model.ChannelName);
                msg = string.Empty;
                if (isExist != null)
                {
                    msg = "This item does exist";
                    return(false);
                }

                var newChannel = new Channel
                {
                    ChannelName = model.ChannelName,
                    ShortName   = model.ShortName,
                    Modifier    = user,
                    Modify_Date = DateTime.Now,
                    API         = model.API,
                    Export2CSV  = model.Export2CSV
                };
                db.Channel.Add(newChannel);
                return(db.SaveChanges() > 0);
            }
        }
Пример #12
0
        /// <summary>
        /// Get Role List by pager
        /// </summary>
        /// <returns></returns>
        public List <Security_Role_Model> GetRoleList(Security_Role_Model qModel, out int count)
        {
            List <Security_Role_Model> list = new List <Security_Role_Model>();

            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                var query = db.Security_Role.AsQueryable();
                if (!String.IsNullOrEmpty(qModel.Role_Name))
                {
                    query = query.Where(s => s.Role_Name.Contains(qModel.Role_Name));
                }
                count = query.Count();
                query = query.OrderByDescending(s => s.Created_On).Skip((qModel.page - 1) * qModel.rows).Take(qModel.rows);
                foreach (var r in query)
                {
                    list.Add(new Security_Role_Model
                    {
                        Role_GUID = r.Role_GUID,
                        Role_Name = r.Role_Name,
                        Role_Desc = r.Role_Desc
                    });
                }
                return(list);
            }
        }
Пример #13
0
        /// <summary>
        /// 2013年12月25日10:55:28
        /// Change1:将原来自动删除该图像关联的SKU信息,改成查询判断如果存在关联信息,则不自动删除,返回报错信息给前端 。 2014年5月15日11:29:15
        /// </summary>
        /// <param name="MediaID"></param>
        /// <returns></returns>
        public bool DeleteCMSMedia(long MediaID, out string errMsg)
        {
            errMsg = string.Empty;
            using (var db = new PermaisuriCMSEntities())
            {
                ////这样做的好处在于能直接删除一个对象,而不需要先从数据库中提取数据,创建实体对象,再查找并删除之,从而能有效地提升效率
                //MediaLibrary media = new MediaLibrary { MediaID = MediaID };
                //db.Set<MediaLibrary>().Attach(media);
                //db.MediaLibrary.Remove(media);
                //return db.SaveChanges() > 0;

                //var query = db.MediaLibrary.Include(s=>s.SKU_Media_Relation).FirstOrDefault(s => s.MediaID == MediaID);
                //db.MediaLibrary.Remove(query);
                //return db.SaveChanges() > 0;

                var query = db.MediaLibrary.FirstOrDefault(s => s.MediaID == MediaID);
                if (query != null && query.SKU_Media_Relation.Count > 0)
                {
                    errMsg = "This item can no be delete, because some skus have been associated with it.";
                    return(false);
                }
                db.MediaLibrary.Remove(query);
                /*以下方法是用于删除图像的时候,自动删除所关联的信息,如果不删除,将会引发打开数据异常!*/
                //db.Entry(query).Collection(m => m.SKU_Media_Relation).Load();
                //db.MediaLibrary.Remove(query);
                return(db.SaveChanges() > 0);
            }
        }
Пример #14
0
        public bool EditShipVia(CMS_ShipVia_Model shipViaModel, User_Profile_Model userModel, out string msg)
        {
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                msg = string.Empty;
                var query = db.CMS_ShipVia.FirstOrDefault(s => s.SHIPVIAID == shipViaModel.SHIPVIAID);
                if (query == null)
                {
                    msg = string.Format("The name of {0} does not exist", shipViaModel.SHIPVIA);
                    return(false);
                }

                //如果客户端请求讲当前SHIPVIA作为默认的项目传送给eCom,则需要单独处理
                if (shipViaModel.IsDefaultShipVia == true)
                {
                    db.CMS_ShipVia.Where(s => s.ShipViaTypeID == shipViaModel.ShipViaTypeID).Update(s => new CMS_ShipVia
                    {
                        IsDefaultShipVia = false
                    });
                }
                //query.SHIPVIA = shipViaModel.SHIPVIA;
                query.ShipViaTypeID    = shipViaModel.ShipViaTypeID;
                query.ExpressMethod    = shipViaModel.ExpressMethod;
                query.ExpressNumLength = shipViaModel.ExpressNumLength;
                query.IsDefaultShipVia = shipViaModel.IsDefaultShipVia;
                query.CarrierCode      = shipViaModel.CarrierCode;
                query.CarrierRouting   = shipViaModel.CarrierRouting;
                query.ExpressRule      = shipViaModel.ExpressRule;
                query.UpdateBy         = userModel.User_Account;
                query.UpdateOn         = DateTime.Now;
                return(db.SaveChanges() > 0);
            }
        }
Пример #15
0
        /// <summary>
        /// 2014年4月11日17:59:38
        /// </summary>
        public void DoUpload()
        {
            //CloudUpload upload = new CloudUpload();
            //upload.UploadDirectory("D:/ProjectFiles/Permaisuri/Permaisuri/Permaisuri/MediaLib/Files/9043.01", "9043.01");

            //var dirs = new DirectoryInfo(Server.MapPath(ConfigurationManager.AppSettings["ImageStoragePath"]))
            //    .GetDirectories();


            //Parallel.ForEach(dirs,(r,loopstats)=>{
            //    CloudUpload upload = new CloudUpload();
            //    upload.UploadDirectory(r.FullName, r.Name);
            //});

            //S1:从HMNUM表里面查询哪些HMNUM还未在云端上建立文件夹的,则提取出来,直接整个文件上传
            //S2:从MediaLibrary表中查询哪些CloudStatusID不为4的,全部重新上传
            using (var db = new PermaisuriCMSEntities())
            {
                var needFolderUploadList = db.CMS_HMNUM.Where(h => h.IsCloud != true && h.CMS_StockKey.MediaLibrary.Count > 0).Take(3);
                //Parallel.ForEach(needFolderUploadList, (r, loopstatus) =>
                //{
                //    UploadDirectory(ImageStoragePath, r.HMNUM);
                //});

                Parallel.ForEach(needFolderUploadList, (r, loopstatus) => UploadDirectory(_imageStoragePath, r.HMNUM));

                //由于两个Parallel都是异步执行,所以这里单个上传需要过滤,只上传已经失败和未上传的那些图像,同时云端已经包含了这些文件夹(标识曾经上传过)
                var singelUploadList = db.MediaLibrary.Where(m => m.CMS_StockKey.CMS_HMNUM.Any(r => r.IsCloud == true))
                                       .Where(m => m.CloudStatusID != 4).Where(m => m.CloudStatusID != 2).Take(10);
                Parallel.ForEach(singelUploadList,
                                 (r, loopstatus) => UploadFile(_imageStoragePath + "/" + r.HMNUM + "/" + r.ImgName + r.fileFormat, r.HMNUM, r.ImgName + r.fileFormat, r.MediaID));
            }
        }
Пример #16
0
 /// <summary>
 /// 通过ID获取当个HMNUM的信息,方法只要包含了当前HMNUM在WEBPO对应的图像的信息。主要给AddMedia页面调用。
 /// Created:2014年1月24日15:30:55.
 /// </summary>
 /// <param name="ProductID"></param>
 /// <returns></returns>
 public CMS_HMNUM_Model GetSingleHMNUMByID(long ProductID)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         var p = db.CMS_HMNUM.FirstOrDefault(c => c.ProductID == ProductID);
         if (p == null)
         {
             return(null);
         }
         var    img         = db.WebPO_ImageUrls_V.FirstOrDefault(v => v.HMNUM == p.HMNUM && !String.IsNullOrEmpty(v.SmallPic) && !String.IsNullOrEmpty(v.Pic));
         String webPoUrl    = ConfigurationManager.AppSettings["WebPOProductImageUrl"];
         String webpoRelStr = "../../../";//替换掉webPO数据库提取出来的路径前缀
         var    newHMNUM    = new CMS_HMNUM_Model
         {
             ProductID      = p.ProductID,
             HMNUM          = p.HMNUM,
             ProductName    = p.ProductName,
             StockKey       = p.StockKey,
             StockKeyQTY    = p.CMS_HM_Inventory.StockkeyQTY.ConvertToNotNull(), // 库存 2013年11月24日18:17:06
             MaxImaSeq      = p.CMS_StockKey.MediaLibrary.FirstOrDefault() == null ? 0 : p.CMS_StockKey.MediaLibrary.OrderByDescending(r => r.SerialNum).FirstOrDefault().SerialNum,
             webSystemImage = img == null ? null : new OtherSystemImages
             {
                 SmallPic   = webPoUrl + img.SmallPic.Replace(webpoRelStr, ""),
                 Pic        = webPoUrl + img.Pic.Replace(webpoRelStr, ""),
                 SystemName = "WebPO System"
             }
         };
         return(newHMNUM);
     }
 }
Пример #17
0
        public List <LogOfUserLogin_Model> GetLoginInfoList(LogOfUserLogin_Model qModel, out int count)
        {
            var list = new List <LogOfUserLogin_Model>();

            using (var db = new PermaisuriCMSEntities())
            {
                var query = db.LogOfUserLogin.AsEnumerable();
                count = query.Count();
                query = query.OrderByDescending(l => l.ID).Skip((qModel.page - 1) * qModel.rows).Take(qModel.rows);
                list.AddRange(query.Select(log => new LogOfUserLogin_Model
                {
                    ID               = log.ID,
                    User_Account     = log.User_Account,
                    Display_Name     = log.Display_Name,
                    Logging_Date     = log.Logging_Date,
                    Logging_IP       = log.Logging_IP,
                    Logging_Location = log.Logging_Location,
                    LoggingStatue    = log.LoggingStatue,
                    Machine_Name     = log.Machine_Name,
                    LoggingDate      = log.Logging_Date.ToString("yyyy-MM-dd HH:mm:ss"),
                    Remark           = log.Remark
                }));
                return(list);
            }
        }
Пример #18
0
        /// <summary>
        /// 获取Ecom订单的记录,原先由视图获取,但是视图无法按照条件过滤,所以这里改用StoreProcedure来过滤
        /// 如果在服务器适应符合HightCharts格式的数据,需要双循环,所以服务器给出基础数据,由客户端自己去格式化.......2013年12月18日12:06:39
        /// CreateDate:2013年12月17日16:52:42
        /// </summary>
        /// <param name="channelList"></param>
        /// <param name="sTime">开始时间</param>
        /// <param name="eTime">结束时间</param>
        /// <returns></returns>
        public List <Ecom_Order_SP_Model> GetEcomOrder(Int32[] channelList, String sTime, String eTime)
        {
            var list = new List <Ecom_Order_SP_Model>();

            using (var db = new PermaisuriCMSEntities())
            {
                ////var ecomOrder = db.Ecom_Order_SP(arrChannel.TrimEnd(','), sTime, eTime).ToList(); 加了in语句反而变慢了很多,所以取消掉 在EF内存里面做过滤 2013年12月20日10:05:17
                //var orderCache = CacheHelper.Get<List<Ecom_Order_SP_Model>>(orderCacheKey);
                //if (orderCache==null)
                //{
                //    CacheHelper.Insert(orderCacheKey, db.Ecom_Order_SP("2001-01-01", "2015-12-31").AsEnumerable(), null);
                //    CacheHelper.SaveTime = 30;
                //    orderCache = CacheHelper.Get<List<Ecom_Order_SP_Model>>(orderCacheKey);
                //}
                ////var ecomOrder = db.Ecom_Order_SP(sTime, eTime).ToList();
                //var ecomOrder = orderCache.Where(r=>r.);

                //var ecomOrder = db.Ecom_Order_SP(arrChannel.TrimEnd(','), sTime, eTime).ToList(); 加了in语句反而变慢了很多,所以取消掉 在EF内存里面做过滤 2013年12月20日10:05:17

                var ecomOrder = db.Ecom_Order_SP(sTime, eTime).ToList();
                if (channelList.Length > 0)
                {
                    ecomOrder = ecomOrder.Where(o => channelList.Contains(o.ChannelID)).ToList();
                }
                list.AddRange(ecomOrder.Select(po => new Ecom_Order_SP_Model
                {
                    name = po.MerchantID,
                    //x = (new DateTime(po.OrderYear, po.OrderMonth, 1).ToUniversalTime().Ticks-DatetimeMinTimeTicks)/1000,
                    x = new DateTime(po.OrderYear, po.OrderMonth, 1), y = po.Orders.ConvertToNotNull()
                }));
            }
            return(list);
        }
Пример #19
0
        /// <summary>
        /// 更新当前用户对于的Channel信息,用户User Management模块的Channel Setting
        /// Author:Lee Date:2013年11月1日18:06:15
        /// </summary>
        /// <param name="userGuid"></param>
        /// <param name="ArrChannels"></param>
        /// <returns></returns>
        public bool UpdateUserChannel(Guid userGuid, IEnumerable <int> ArrChannels)
        {
            using (var db = new PermaisuriCMSEntities())
            {
                using (var transaction = new TransactionScope())
                {
                    db.Database.ExecuteSqlCommand("delete from User_Channel_Relation where User_Guid = @User_Guid",
                                                  new SqlParameter("@User_Guid", userGuid));

                    //User_Channel_Relation relation = new User_Channel_Relation { User_Guid = User_Guid };
                    //db.Set<User_Channel_Relation>().Attach(relation);
                    //db.User_Channel_Relation.Remove(relation);这种方法没有数据的时候会报错
                    if (ArrChannels != null)
                    {
                        foreach (var mediaId in ArrChannels)
                        {
                            db.User_Channel_Relation.Add(new User_Channel_Relation
                            {
                                User_Guid = userGuid,
                                ChannelID = mediaId
                            });
                        }
                    }
                    var retInt = db.SaveChanges();
                    transaction.Complete(); // don't be miss,or the SQL statement will never be executed
                    return(retInt > 0);
                }
            }
        }
Пример #20
0
 /// <summary>
 /// 算法:根据组合产品的ProductID和SKUID唯一确定一条记录,删除再插入。删除插入一并做,会大大简化程序和客户端的各种判断。
 /// CreateDate: 2013年11月19日11:43:22
 /// </summary>
 /// <param name="rModel"></param>
 /// <param name="User_Account"></param>
 /// <returns>如果新增成功,返回新的ID</returns>
 public Boolean AddNewHM4SKU(SKU_HM_Relation_Model rModel, String User_Account)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         var query = db.SKU_HM_Relation.FirstOrDefault(r => r.SKUID == rModel.SKUID);
         if (query == null)
         {
             var newModel = new SKU_HM_Relation
             {
                 ProductID  = rModel.ProductID,
                 SKUID      = rModel.SKUID,
                 R_QTY      = rModel.R_QTY,
                 StockKeyID = rModel.StockKeyID,
                 CreateBy   = User_Account,
                 CreateOn   = DateTime.Now,
                 UpdateBy   = User_Account,
                 UpdateOn   = DateTime.Now
             };
             db.SKU_HM_Relation.Add(newModel);
         }
         else
         {
             query.StockKeyID = rModel.StockKeyID;
             query.R_QTY      = rModel.R_QTY;
             query.ProductID  = rModel.ProductID;
             query.UpdateBy   = User_Account;
             query.UpdateOn   = DateTime.Now;
         }
         return(db.SaveChanges() > 0);
     }
 }
Пример #21
0
        /// <summary>
        /// 更新HMNUMCosting的信息,用于HMNUM Management页面的的inline-edit的编辑更新
        /// 需要注意的是每一次的跟新都将在库表新增一条价格信息,影响将来报表的生成。
        /// CreateDate:2013年11月13日6:00:34
        /// </summary>
        /// <param name="model"></param>
        /// <param name="costing"></param>
        /// <returns></returns>
        public bool EditHMNUMCosting(CMS_HMNUM_Model model, CMS_HM_Costing_Model costing, string User_Account)
        {
            //逻辑:先讲当前最新的价格插入到Costing表(注意是新增不是编辑),然后更新当前HMNUM的Costing信息,取最新的那条。
            //EF本身自带有Transaction功能。
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                int retVal     = 0;
                var newCosting = new CMS_HM_Costing
                {
                    CreateBy      = User_Account,
                    CreateOn      = DateTime.Now,
                    EffectiveDate = DateTime.Now,

                    HMNUM           = costing.HMNUM,
                    FirstCost       = Convert.ToDecimal(costing.FirstCost),
                    LandedCost      = Convert.ToDecimal(costing.LandedCost),
                    EstimateFreight = Convert.ToDecimal(costing.EstimateFreight),

                    OceanFreight      = Convert.ToDecimal(costing.OceanFreight),
                    USAHandlingCharge = Convert.ToDecimal(costing.USAHandlingCharge),
                    Drayage           = Convert.ToDecimal(costing.Drayage),
                };
                db.CMS_HM_Costing.Add(newCosting);
                long newCostID = newCosting.HMCostID;
                var  HMNUM     = db.CMS_HMNUM.FirstOrDefault(h => h.ProductID == model.ProductID);
                HMNUM.HMCostID = newCostID;
                retVal         = db.SaveChanges();

                newCosting.HisProductID = HMNUM.ProductID;
                retVal = db.SaveChanges();
                return(retVal > 0);
            }
        }
Пример #22
0
        public bool AddBrand(Brands_Info_Model model, string user, ref string msg)
        {
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                var isExist = db.Brand.FirstOrDefault(c => c.BrandName == model.Brand_Name);
                msg = string.Empty;

                if (isExist != null)
                {
                    msg = "This item does exist";
                    return(false);
                }

                var newBrand = new Brand
                {
                    BrandName     = model.Brand_Name,
                    ShortName     = model.Short_Name,
                    Modifier      = user,
                    Modifier_Date = DateTime.Now,
                    Active        = model.Active
                };
                db.Brand.Add(newBrand);
                return(db.SaveChanges() > 0);
            }
        }
Пример #23
0
 /// <summary>
 /// 检查HMNUM是否存在,用户添加HMNUM,SKU和Product Configuration页面Autocompleted做校验。
 /// CreateDate:2014年2月18日10:41:08
 /// </summary>
 /// <param name="hmnum"></param>
 /// <returns></returns>
 public CMS_HMNUM_Model CheckHmnum(string hmnum)
 {
     using (var db = new PermaisuriCMSEntities())
     {
         var hm = db.CMS_HMNUM.FirstOrDefault(h => h.HMNUM == hmnum);
         if (hm == null)
         {
             return(null);
         }
         var img = db.WebPO_ImageUrls_V.FirstOrDefault(v => v.HMNUM == hmnum);
         return(new CMS_HMNUM_Model
         {
             ProductID = hm.ProductID,
             MasterPack = hm.MasterPack,
             HMNUM = hm.HMNUM,
             ProductName = hm.ProductName,
             StockKey = hm.StockKey,
             StockKeyID = hm.StockKeyID,
             StatusID = hm.StatusID,
             StockKeyQTY = hm.CMS_HM_Inventory.StockkeyQTY.ConvertToNotNull(),
             strMasterPack = hm.MasterPack.ToString(),
             MaxImaSeq = hm.CMS_StockKey.MediaLibrary.FirstOrDefault() == null ? 0 : hm.CMS_StockKey.MediaLibrary.OrderByDescending(r => r.SerialNum).FirstOrDefault().SerialNum,
             webSystemImage = img == null ? null : new OtherSystemImages
             {
                 SmallPic = _webPoUrl + img.SmallPic.Replace(WebpoRelStr, ""),
                 Pic = _webPoUrl + img.Pic.Replace(WebpoRelStr, ""),
                 SystemName = "WebPO System"
             }
         });
     }
 }
Пример #24
0
        /// <summary>
        ///  获取所有渠道列表,由于增加了用户和渠道关展示的功能,所以新增了2个参数做判断
        /// </summary>
        /// <param name="isControl">判断当前用户是否有和渠道做了关联</param>
        /// <param name="userGuid">当前用户的GUID</param>
        /// <returns></returns>
        public List <Channel_Model> GetAllChannels(bool isControl, Guid userGuid)
        {
            var list = new List <Channel_Model>();

            using (var db = new PermaisuriCMSEntities())
            {
                var query = db.Channel.AsQueryable();
                if (isControl)
                {
                    /*神奇的是这里不用Include就可以直接查询出来,我猜是因为foreqch的时候没有去延迟查询relation表里面的User_Prfoile数据
                     * 2013年11月4日10:52:16 Lee
                     * SELECT  * FROM [dbo].[Channel] AS [Extent1] WHERE  EXISTS (SELECT 1 AS [C1]
                     *     FROM [dbo].[User_Channel_Relation] AS [Extent2] WHERE ([Extent1].[ChannelID] = [Extent2].[ChannelID])
                     *      AND ([Extent2].[User_Guid] = '6E421787-30AF-443B-950A-17081EE5F218'))*/

                    query = query.Where(q => q.User_Channel_Relation.Any(r => r.User_Guid == userGuid));
                }
                //query.OrderBy(c => c.ChannelName); 这样写无效...
                query = query.OrderBy(c => c.ChannelName);
                list.AddRange(query.Select(c => new Channel_Model
                {
                    API = c.API, ChannelID = c.ChannelID, ChannelName = c.ChannelName, Export2CSV = c.Export2CSV, ShortName = c.ShortName
                }));
                return(list);
            }
        }
Пример #25
0
        public bool DeleteShipVia(CMS_ShipVia_Model shipViaModel, User_Profile_Model userModel, out string msg)
        {
            using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
            {
                msg = string.Empty;
                var isDefault = false;
                var query     = db.CMS_ShipVia.FirstOrDefault(s => s.SHIPVIAID == shipViaModel.SHIPVIAID);
                if (query == null)
                {
                    msg = string.Format("The name of {0} does not exist", shipViaModel.SHIPVIA);
                    return(false);
                }

                //如果客户端请求讲当前SHIPVIA作为默认的项目传送给eCom,则需要单独处理
                isDefault = query.IsDefaultShipVia;
                db.CMS_ShipVia.Remove(query);
                if (isDefault)
                {
                    var randomSV = db.CMS_ShipVia.Where(s => s.SHIPVIAID != shipViaModel.SHIPVIAID && s.ShipViaTypeID == query.ShipViaTypeID)
                                   .OrderByDescending(r => r.SHIPVIAID).FirstOrDefault();
                    if (randomSV != null)
                    {
                        randomSV.IsDefaultShipVia = true;
                    }
                }
                return(db.SaveChanges() > 0);
            }
        }
 /// <summary>
 /// 根据传递进来的ProductID,到组合产品关系表里面查询出该组合产品旗下所有的子产品的ID,
 /// 这个方法用于创建组合产品的时候,下拉单查询列表里,排除掉那些已经被选中的HMNUM,防止重复选择。
 /// CreatedDate:2014年3月18日10:57:03
 /// </summary>
 /// <param name="ParentProductID"></param>
 /// <returns></returns>
 public List <long> GetChildrenProductID(long ParentProductID)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         return(db.CMS_HMGroup_Relation.Where(g => g.ProductID == ParentProductID)
                .Select(r => r.ChildrenProductID).ToList());
     }
 }
Пример #27
0
 public bool IsExistUser(String role_Name)
 {
     using (PermaisuriCMSEntities db = new PermaisuriCMSEntities())
     {
         var query = db.Security_Role.Where(o => o.Role_Name == role_Name).FirstOrDefault();
         return(query == null ? false : true);
     }
 }
Пример #28
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="ctnModel"></param>
        /// <param name="userAccount"></param>
        /// <param name="ctnid"></param>
        /// <returns></returns>
        public bool AddHmCarton(CMS_ProductCTN_Model ctnModel, string userAccount, out long ctnid)
        {
            using (var db = new PermaisuriCMSEntities())
            {
                var hmnum = db.CMS_HMNUM.FirstOrDefault(h => h.ProductID == ctnModel.ProductID);
                if (hmnum == null)
                {
                    ctnid = 0;
                    return(false);
                }

                var newModel = new CMS_ProductCTN
                {
                    CTNComment = ctnModel.CTNComment,
                    CTNCube    = ctnModel.CTNCube,
                    CTNHeight  = ctnModel.CTNHeight,
                    CTNLength  = ctnModel.CTNLength,
                    CTNTitle   = ctnModel.CTNTitle,
                    CTNWidth   = ctnModel.CTNWidth,
                    HMNUM      = ctnModel.HMNUM,
                    ProductID  = ctnModel.ProductID,
                    UpdateBy   = userAccount,
                    UpdateOn   = DateTime.Now,
                    CreateOn   = DateTime.Now,
                    CTNWeight  = ctnModel.CTNWeight
                };

                db.CMS_ProductCTN.Add(newModel);

                hmnum.SKU_HM_Relation.Select(r => r.CMS_SKU.CMS_Ecom_Sync ?? (r.CMS_SKU.CMS_Ecom_Sync = new CMS_Ecom_Sync
                {
                    StatusID = 1//这里可以不用做任何设置,因为后面那个操作会全面覆盖这个...
                })).ForEach(k =>
                {
                    k.StatusID   = 0;
                    k.StatusDesc = "NeedSend";
                    k.UpdateBy   = userAccount;
                    k.UpdateOn   = DateTime.Now;
                });

                BllExtention.DbRecorder(new LogOfUserOperatingDetails
                {
                    ModelName    = ModelName,
                    ActionName   = MethodBase.GetCurrentMethod().Name,
                    ActionType   = LogActionTypeEnum.Inert.GetHashCode(),
                    ProductID    = hmnum.ProductID,
                    HMNUM        = hmnum.HMNUM,
                    Descriptions = "Add new carton  [ <b>" + newModel.CTNTitle + " </b>] for " + hmnum.HMNUM,
                    CreateBy     = userAccount,
                    CreateOn     = DateTime.Now
                });


                var retVal = db.SaveChanges();
                ctnid = newModel.CTNID;
                return(retVal > 0);
            }
        }
Пример #29
0
 /// <summary>
 /// 通过MediaID来一项项的更新当前图片的云端ID 2014年4月12日
 /// </summary>
 /// <param name="mediaId"></param>
 /// <param name="cloudStatus">1:Not yet upload ; 2:uploading; 3:fail to upload; 4:cloud supported</param>
 public void UploadingCloudStatusByMediaID(long mediaId, int cloudStatus)
 {
     using (var db = new PermaisuriCMSEntities())
     {
         db.MediaLibrary.Where(m => m.MediaID == mediaId).Update(u => new MediaLibrary {
             CloudStatusID = cloudStatus
         });
     }
 }
Пример #30
0
 public decimal GetAvgOrderAmount(string startDate, string endDate)
 {
     using (var db = new PermaisuriCMSEntities())
     {
         //注意,第一个输出参数的名称必须与Store Procedure里面的输出参数的名称一一对应!不区分大小写
         var retVal = db.Ecom_AvgOrderAmount_SP(startDate, endDate);
         return(retVal.First().AvgOrderAmount.ConvertToNotNull());
     }
 }