コード例 #1
0
        public async Task <PageDataDTO <List <Order> > > GetByFilter(string shopId, string menberId, int orderStatus, int pageSize, int pageIndex)
        {
            IQueryable <Order> query = CurrentDbSet.Where(c => c.ShopId == shopId);

            if (!string.IsNullOrEmpty(menberId))
            {
                query = query.Where(c => c.MemberId == menberId);
            }

            if (orderStatus >= 0 && orderStatus <= 5)
            {
                query = query.Where(c => c.OrderStatus == orderStatus);
            }

            int count = await query.CountAsync();

            if (pageSize > 0)
            {
                query = query.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
            }

            return(new PageDataDTO <List <Order> >
            {
                Total = count,
                Data = await query.OrderBy(g => g.CreateTime).ToListAsync()
            });
        }
コード例 #2
0
        public async Task <bool> DeleteAndAddSKU(List <GoodInfoSKU> skuList)
        {
            bool res = false;

            using (IDbContextTransaction transaction = Database.BeginTransaction(IsolationLevel.ReadCommitted))
            {
                try
                {
                    List <GoodInfoSKU> removeList = await CurrentDbSet
                                                    .Where(sku => sku.ShopId == skuList[0].ShopId && sku.GoodInfoId == skuList[0].GoodInfoId)
                                                    .ToListAsync();

                    CurrentDbSet.RemoveRange(removeList);
                    await CurrentDbSet.AddRangeAsync(skuList);

                    SaveChanges();
                    transaction.Commit();
                    res = true;
                }
                catch
                {
                    transaction.Rollback();
                    res = false;
                }
            }

            return(res);
        }
コード例 #3
0
 /// <summary>
 /// Assign values to specified property of Model from local DbSet and propagate changes to DGV.
 /// </summary>
 /// <typeparam name="T">Type of Model property</typeparam>
 /// <param name="prop">Name of properrty of Model or Column from dgv</param>
 /// <param name="val">Value</param>
 public void FillDbSetValues <T>(string prop, T val)
 {
     try
     {
         CellValueChanged -= RDataGridView_CellValueChanged;
         foreach (var i in SelectedCells.OfType <DataGridViewCell>().Select(c => c.RowIndex).Where(c => c >= 0).Distinct())
         {
             var m = CurrentDbSet.Where(mm => mm.Id == (int)Rows[i].Cells["Id"].Value).FirstOrDefault();
             if (m == null)
             {
                 continue;
             }
             var setPropValue = m.GetType().GetProperty(prop).GetSetMethod();
             setPropValue.Invoke(m, new object[] { val });
             CurrentDbSet.Update(m);
         }
         SaveChanges();
         Refresh();
         CellValueChanged += RDataGridView_CellValueChanged;
     }
     catch (Exception ex)
     {
         Report.Notify(new RCM.Message(Codes.ERR_UI_WF_FILL_DB_VAL)
         {
             DetailedText = string.Join(Environment.NewLine, prop, ex.Message)
         });
     }
 }
コード例 #4
0
ファイル: PageService.cs プロジェクト: zimuxin/ZKEACMS.Core
        public PageEntity GetByPath(string path, bool isPreView)
        {
            if (path != "/" && path.EndsWith("/"))
            {
                path = path.Substring(0, path.Length - 1);
            }
            if (path == "/")
            {
                path = "/index";
            }
            if (!path.StartsWith("~"))
            {
                path = "~" + path;
            }
            var result = CurrentDbSet
                         .Where(m => m.Url == path && m.IsPublishedPage == !isPreView)
                         .OrderByDescending(m => m.PublishDate)
                         .FirstOrDefault();

            //if (result != null && result.ExtendFields != null)
            //{
            //    /*!
            //     * http://www.zkea.net/
            //     * Copyright 2017 ZKEASOFT
            //     * http://www.zkea.net/licenses
            //     */
            //    ((List<ExtendFieldEntity>)result.ExtendFields).Add(new ExtendFieldEntity { Title = "meta_support", Value = "ZKEASOFT" });
            //}
            return(result);
        }
コード例 #5
0
        public virtual IList <T> Get(Expression <Func <T, bool> > filter, Pagination pagination)
        {
            pagination.RecordCount = Count(filter);
            IQueryable <T> result;

            if (filter != null)
            {
                result = CurrentDbSet.Where(filter);
            }
            else
            {
                result = CurrentDbSet;
            }
            if (pagination.OrderBy != null || pagination.OrderByDescending != null)
            {
                if (pagination.OrderBy != null)
                {
                    result = result.OrderBy(pagination.OrderBy);
                }
                else
                {
                    result = result.OrderByDescending(pagination.OrderByDescending);
                }
            }
            return(result.Skip(pagination.PageIndex * pagination.PageSize).Take(pagination.PageSize).ToList());
        }
コード例 #6
0
ファイル: ServiceBase.cs プロジェクト: skehya/cms
 public virtual void Remove(Expression <Func <T, bool> > filter)
 {
     CurrentDbSet.RemoveRange(CurrentDbSet.Where(filter));
     if (!isWaitingSave)
     {
         SaveChanges();
     }
 }
コード例 #7
0
ファイル: ServiceBase.cs プロジェクト: haoyk/ZKEACMS.Core
 public virtual IEnumerable <T> Get(Expression <Func <T, bool> > filter)
 {
     if (filter == null)
     {
         return(GetAll());
     }
     return(CurrentDbSet.Where(filter));
 }
コード例 #8
0
 public virtual int Count(Expression <Func <T, bool> > filter)
 {
     if (filter != null)
     {
         return(CurrentDbSet.Where(filter).Count());
     }
     return(CurrentDbSet.Count());
 }
コード例 #9
0
        /// <summary>
        /// 根据省份获取城市
        /// </summary>
        /// <param name="Id"></param>
        /// <returns></returns>
        public PagerEntity <AreaEntity> QueryCityByProvinceAsync(string Id)
        {
            var entity = CurrentDbSet.Where(it => it.ParentId == Id);

            return(new PagerEntity <AreaEntity>
            {
                Entity = entity.ToList()
            });
        }
コード例 #10
0
ファイル: ZoneService.cs プロジェクト: zimuxin/ZKEACMS.Core
        public IEnumerable <ZoneEntity> GetZonesByPageId(string pageId)
        {
            var page = PageService.Get(pageId);

            using (var layoutService = _serviceProvder.GetService <ILayoutService>())
            {
                var layout = layoutService.Get(page.LayoutId);
                return(CurrentDbSet.Where(m => m.LayoutId == layout.ID).OrderBy(m => m.ID).ToList());
            }
        }
コード例 #11
0
ファイル: ServiceBase.cs プロジェクト: haoyk/ZKEACMS.Core
 public virtual IEnumerable <T> Get(Expression <Func <T, bool> > filter, Pagination pagination)
 {
     pagination.RecordCount = Count(filter);
     if (filter != null)
     {
         return(CurrentDbSet.Where(filter).Skip(pagination.PageIndex * pagination.PageSize).Take(pagination.PageSize));
     }
     else
     {
         return(CurrentDbSet.Skip(pagination.PageIndex * pagination.PageSize).Take(pagination.PageSize));
     }
 }
コード例 #12
0
        /// <summary>
        /// 获取商品信息
        /// </summary>
        /// <param name="shopId">店铺ID</param>
        /// <param name="categoryId">分类ID</param>
        /// <param name="status">状态:是否上线 0:下线  1:上线 其他:所有</param>
        /// <param name="recommendStatus">推荐状态:是否推荐 0:未推荐  1:推荐 其他:所有</param>
        public PageDataDTO <List <GoodInfo> > GetByFilter(string shopId, string categoryId, int status, int recommendStatus, int pageSize, int pageIndex)
        {
            IQueryable <GoodInfo> query = CurrentDbSet.Where(c => c.ShopId == shopId);

            if (!string.IsNullOrEmpty(categoryId))
            {
                ///未分类
                if (categoryId == "-1")
                {
                    var           categoryList   = goodsCategoryDbSet.Where(c => c.ShopId == shopId).ToList();
                    List <string> categoryIdList = new List <string>();
                    foreach (var item in categoryList)
                    {
                        categoryIdList.Add(item.Id);
                    }

                    query = query.Where(c => !categoryIdList.Contains(c.CategoryId));
                }
                else
                {
                    query = query.Where(c => c.CategoryId == categoryId);
                }
            }

            if (status == 0 || status == 1)
            {
                query = query.Where(c => c.Status == (status == 1 ? true : false));
            }

            if (recommendStatus == 0 || recommendStatus == 1)
            {
                query = query.Where(c => c.RecommendStatus == (recommendStatus == 1 ? true : false));
            }

            int count = query.Count();

            if (pageSize > 0 && pageIndex > 0)
            {
                query = query.Skip(pageSize * (pageIndex - 1)).Take(pageSize);
            }

            return(new PageDataDTO <List <GoodInfo> >
            {
                Total = count,
                Data = query.OrderBy(g => g.ShowIndex).ToList()
            });
        }
コード例 #13
0
        /// <summary>
        /// 分页查询 + 条件查询 + 排序
        /// </summary>
        /// <param name="pager">分页对象</param>
        /// <param name="condition">过滤条件</param>
        /// <returns></returns>
        public PagerEntity <DictionaryDetailEntity> QueryDictionaryDetailByPagers(PagerInfo pager, List <SearchCondition> condition = null)
        {
            var entity = CurrentDbSet.Where(it => true);

            //动态增加过滤条件
            if (condition != null && condition.Count > 0)
            {
                var parser = new LambdaParser <DictionaryDetailEntity>();
                entity = entity.Where(parser.ParserConditions(condition));
            }

            var total = entity.Count();

            entity = pager.Sort == "ASC" ? entity.OrderBy(pager.SortFiled) : entity.OrderByDescending(pager.SortFiled);

            entity = entity.Skip(pager.PageSize * (pager.PageIndex - 1))
                     .Take(pager.PageSize);
            return(new PagerEntity <DictionaryDetailEntity>
            {
                Entity = entity.ToList(),
                Total = total
            });
        }
コード例 #14
0
        /// <summary>
        /// 获取模块按钮树形
        /// </summary>
        /// <returns></returns>
        public List <ModuleEntity> QueryAllModule()
        {
            var btnentity = CurrentDbContext.Button.Where(it => true);
            List <ModuleEntity> moduleEntity = CurrentDbSet.Where(it => true).ToList();

            foreach (var item in moduleEntity)
            {
                foreach (var item2 in btnentity)
                {
                    if (item.Id == item2.ModuleId)
                    {
                        if (item.ButtonEntities == null)
                        {
                            item.ButtonEntities = new List <ModuleEntity.ButtonEntity>();
                        }
                        item.ButtonEntities.Add(item2);
                    }
                }
            }
            List <ModuleEntity> s = moduleEntity;

            return(moduleEntity);
        }
コード例 #15
0
 public IEnumerable <LayoutHtml> GetByLayoutID(string layoutId)
 {
     return(CurrentDbSet.Where(m => m.LayoutId == layoutId).OrderBy(m => m.LayoutHtmlId));
 }
コード例 #16
0
 public virtual IList <T> Get(Expression <Func <T, bool> > filter)
 {
     return(CurrentDbSet.Where(filter).ToList());
 }
コード例 #17
0
 public IQueryable <T> GetByCriteria(Func <T, bool> where)
 {
     return(CurrentDbSet.Where(where).AsQueryable());
 }
コード例 #18
0
 public Task <List <GoodInfoSKU> > GetByGoodId(string shopId, string goodId)
 {
     return(CurrentDbSet.Where(sku => sku.ShopId == shopId && sku.GoodInfoId == goodId)
            .OrderBy(sku => sku.ShowIndex)
            .ToListAsync());
 }
コード例 #19
0
ファイル: ZoneService.cs プロジェクト: zimuxin/ZKEACMS.Core
 public IEnumerable <ZoneEntity> GetZonesByLayoutId(string layoutId)
 {
     return(CurrentDbSet.Where(m => m.LayoutId == layoutId).OrderBy(m => m.ID));
 }
コード例 #20
0
 /// <summary>
 /// Returns average track rating for the specified track.
 /// </summary>
 /// <param name="trackId">
 /// The track id.
 /// </param>
 /// <returns>
 /// The average track rating for the specified  track.
 /// </returns>
 public double GetAverageMark(int trackId)
 {
     return(CurrentDbSet.Any(v => v.TrackId == trackId) ? CurrentDbSet.Where(v => v.TrackId == trackId).Average(v => v.Mark) : 0d);
 }
コード例 #21
0
        /// <summary>
        /// 获取所有地区不分页
        /// </summary>
        /// <returns></returns>
        public List <AreaEntity> QueryAll()
        {
            var entity = CurrentDbSet.Where(it => true);

            return(entity.ToList());
        }
コード例 #22
0
 public ArticleEntity GetNext(ArticleEntity article)
 {
     return(CurrentDbSet.Where(m => m.IsPublish && m.ArticleTypeID == article.ArticleTypeID && m.PublishDate > article.PublishDate).OrderBy(m => m.PublishDate).ThenBy(m => m.ID).Take(1).FirstOrDefault());
 }
コード例 #23
0
 public List <GoodsCategory> GetByShopId(string shopId)
 {
     return(CurrentDbSet.Where(c => c.ShopId == shopId).OrderBy(c => c.ShowIndex).ToList());
 }
コード例 #24
0
 public virtual void Remove(Expression <Func <T, bool> > filter)
 {
     CurrentDbSet.RemoveRange(CurrentDbSet.Where(filter));
     DbContext.SaveChanges();
 }
コード例 #25
0
ファイル: ArticleService.cs プロジェクト: zww11/ZKEACMS
 public ArticleEntity GetPrev(ArticleEntity article)
 {
     return(CurrentDbSet.Where(m => m.IsPublish && m.ArticleTypeID == article.ArticleTypeID && m.PublishDate < article.PublishDate && m.ID != article.ID).OrderByDescending(m => m.PublishDate).ThenByDescending(m => m.ID).FirstOrDefault());
 }