コード例 #1
0
ファイル: WcfDingdanService.cs プロジェクト: powerhai/Jinchen
        public CombinationDingdanData SearchDingdansByMengzhu (DateTime startTime,DateTime endTime, long lastId)
        {
            var result = new CombinationDingdanData();
            using (var db = DbContextFactory.CreateDbContext())
            {
                var xk = db.Xiakes.FirstOrDefault(a => a.XiakeName == Thread.CurrentPrincipal.Identity.Name);
                if (xk == null ||  (xk.UserType != XiakeType.Mengzhu &&  xk.UserType != XiakeType.Tangzhu && xk.UserType != XiakeType.Xiaoer))
                    throw new FaultException("非管理员不可调用");
                
                IQueryable<Dingdan> dingdans = db.Dingdans.Include(a => a.Dianpu)
                    .Include(a => a.Biaoshi).Include(a => a.Biaoshi.Biaoju)
                    .Include(a => a.Dianpu).Include(a => a.Dianpu.Zhanggui)
                    .OrderByDescending(a => a.Id);

                if (lastId != 0)
                    dingdans = dingdans.Where(a => a.Id < lastId);


                dingdans = dingdans.Where(a => a.DateTime >= startTime);
                dingdans = dingdans.Where(a => a.DateTime <= endTime);
                if (lastId == 0)
                    result.TotalCount = dingdans.Count();

                dingdans = dingdans.Take(DomainDefinition.PAGE_SIZE);
                foreach (var dingdan in dingdans)
                {
                    result.Items.Add(new DingdanData()
                    {
                        ID = dingdan.Id,
                        Goods = dingdan.Goods,
                        ZhangguiMarkType = dingdan.ZhangguiMarkType,
                        ZhangguiMarkInfo = dingdan.ZhangguiMarkInfo,
                        BiaojuMarkType = dingdan.BiaojuMarkType,
                        BiaojuMarkInfo = dingdan.BiaojuMarkInfo,
                        SrcId = dingdan.SrcId,
                        Price = dingdan.Price,
                        Salary = dingdan.Salary ,
                        Time = dingdan.DateTime,
                        BiaojuQQ = dingdan.Biaoshi.Biaoju.QQ,
                        Dianpu = dingdan.Dianpu.Name,
                        Biaoju = dingdan.Biaoshi.Biaoju.XiakeName,
                        Zhanggui = dingdan.Dianpu.Zhanggui.XiakeName,
                        Biaoshi = dingdan.Biaoshi.Title,
                        BiaojuId = dingdan.Biaoshi.Biaoju.Id,
                        BangpaiType = dingdan.Bangpai,
                        ZhangguiId = dingdan.Dianpu.Zhanggui.Id
                    });
                }

                if (result.Items.Count < DomainDefinition.PAGE_SIZE)
                    result.IsLoadedAllData = true;
            }
            return result;
        }
コード例 #2
0
ファイル: WcfDingdanService.cs プロジェクト: powerhai/Jinchen
        public CombinationDingdanData SearchDingdansByBiaoju (long[] biaoshiIds, MarkType[] markTypes , DateTime startTime,DateTime endTime, long lastId)
        {
            var rv = new CombinationDingdanData();
            using (var db = DbContextFactory.CreateDbContext())
            {
                var xk = db.Xiakes.FirstOrDefault(a => a.XiakeName == Thread.CurrentPrincipal.Identity.Name);
                if (xk == null || xk.UserType != XiakeType.Biaoju)
                    throw new FaultException("非镖局身份不可调用");

                IQueryable<Dingdan> dingdans;
                if (lastId == 0)
                    dingdans = db.Dingdans.Include(a => a.Biaoshi).Include(a => a.Dianpu).OrderByDescending(a => a.Id);
                else
                    dingdans = db.Dingdans.Include(a => a.Biaoshi).Include(a => a.Dianpu).OrderByDescending(a => a.Id).Where(a => a.Id < lastId );
                dingdans = dingdans.Where(a => biaoshiIds.Contains(a.Biaoshi.Id));

                if (markTypes.Count() == 6)
                    dingdans = dingdans.Where(a => a.BiaojuMarkType.HasValue == false || (a.BiaojuMarkType.HasValue == true && markTypes.Contains(a.BiaojuMarkType.Value)));
                else
                    dingdans = dingdans.Where(a => (a.BiaojuMarkType.HasValue == true && markTypes.Contains(a.BiaojuMarkType.Value)));
                
                dingdans = dingdans.Where(a => a.DateTime >= startTime);
                dingdans = dingdans.Where(a => a.DateTime <= endTime);
                if (lastId  == 0)
                    rv.TotalCount = dingdans.Count();

                dingdans = dingdans.Take(DomainDefinition.PAGE_SIZE);
                foreach (var dingdan in dingdans)
                {
                    rv.Items.Add(new  DingdanData()
                    {
                        ID = dingdan.Id,
                        Goods = dingdan.Goods,
                        BiaojuMarkType = dingdan.BiaojuMarkType,
                        BiaojuMarkInfo = dingdan.BiaojuMarkInfo,
                        SrcId = dingdan.SrcId,
                        Price = dingdan.Price,
                        Salary = dingdan.Salary ,
                        Time = dingdan.DateTime, 
                        Biaoshi = dingdan.Biaoshi.Title,
                        BangpaiType  = dingdan.Bangpai
                    });
                }

                if (rv.Items.Count < DomainDefinition.PAGE_SIZE)
                    rv.IsLoadedAllData = true;
            }
            return rv;
        }