示例#1
0
        public Post GetById(long id, PcsPostSO search)
        {
            Post result = null;

            try
            {
                bool valid = true;
                valid = valid && IsGreaterThanZero(id);
                if (valid)
                {
                    using (var ctx = new Base.AppContext())
                    {
                        var query = ctx.Posts.AsQueryable().Where(p => p.Id == id);
                        if (search.listPostExpression != null && search.listPostExpression.Count > 0)
                        {
                            foreach (var item in search.listPostExpression)
                            {
                                query = query.Where(item);
                            }
                        }
                        result = query.SingleOrDefault();
                    }
                }
            }
            catch (Exception ex)
            {
                Logging(LogUtil.TraceData("id", id) + LogUtil.TraceData("search", search), LogType.Error);
                LogSystem.Error(ex);
                result = null;
            }
            return(result);
        }
示例#2
0
        public List <Post> Get(PcsPostSO search, CommonParam param)
        {
            List <Post> list = new List <Post>();

            try
            {
                bool valid = true;
                valid = valid && IsNotNull(param);
                if (valid)
                {
                    using (var ctx = new Base.AppContext())
                    {
                        var query = ctx.Posts.AsQueryable();
                        if (search.listPostExpression != null && search.listPostExpression.Count > 0)
                        {
                            foreach (var item in search.listPostExpression)
                            {
                                query = query.Where(item);
                            }
                        }

                        if (!string.IsNullOrWhiteSpace(search.OrderField) && !string.IsNullOrWhiteSpace(search.OrderDirection))
                        {
                            if (!param.Start.HasValue || !param.Limit.HasValue)
                            {
                                list = query.OrderByProperty(search.OrderField, search.OrderDirection).ToList();
                            }
                            else
                            {
                                param.Count = (from r in query select r).Count(); query = query.OrderByProperty(search.OrderField, search.OrderDirection);
                                if (param.Count <= param.Limit.Value && param.Start.Value == 0)
                                {
                                    list = query.ToList();
                                }
                                else
                                {
                                    list = query.Skip(param.Start.Value).Take(param.Limit.Value).ToList();
                                }
                            }
                        }
                        else
                        {
                            list = query.ToList();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Logging(LogUtil.TraceData("search", search) + LogUtil.TraceData("param", param), LogType.Error);
                LogSystem.Error(ex);
                list.Clear();
            }
            return(list);
        }
示例#3
0
        public Post GetById(long id, PcsPostSO search)
        {
            Post result = null;

            try
            {
                result = GetWorker.GetById(id, search);
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
                result = null;
            }

            return(result);
        }
示例#4
0
        public List <Post> Get(PcsPostSO search, CommonParam param)
        {
            List <Post> result = new List <Post>();

            try
            {
                result = GetWorker.Get(search, param);
            }
            catch (Exception ex)
            {
                param.HasException = true;
                LogSystem.Error(ex);
                result.Clear();
            }
            return(result);
        }
示例#5
0
        internal PcsPostSO Query()
        {
            PcsPostSO search = new PcsPostSO();

            try
            {
                #region Abstract Base
                if (this.Id.HasValue)
                {
                    listExpression.Add(o => o.Id == this.Id.Value);
                }
                if (this.IsActive.HasValue)
                {
                    listExpression.Add(o => o.IsActive == this.IsActive.Value);
                }
                if (this.CreateTimeFrom.HasValue)
                {
                    listExpression.Add(o => o.CreateTime.Value >= this.CreateTimeFrom.Value);
                }
                if (this.CreateTimeFromGreater.HasValue)
                {
                    listExpression.Add(o => o.CreateTime.Value > this.CreateTimeFromGreater.Value);
                }
                if (this.CreateTimeTo.HasValue)
                {
                    listExpression.Add(o => o.CreateTime.Value <= this.CreateTimeTo.Value);
                }
                if (this.CreateTimeToLess.HasValue)
                {
                    listExpression.Add(o => o.CreateTime.Value < this.CreateTimeToLess.Value);
                }
                if (this.ModifyTimeFrom.HasValue)
                {
                    listExpression.Add(o => o.ModifyTime.Value >= this.ModifyTimeFrom.Value);
                }
                if (this.ModifyTimeFromGreater.HasValue)
                {
                    listExpression.Add(o => o.ModifyTime.Value > this.ModifyTimeFromGreater.Value);
                }
                if (this.ModifyTimeTo.HasValue)
                {
                    listExpression.Add(o => o.ModifyTime.Value <= this.ModifyTimeTo.Value);
                }
                if (this.ModifyTimeToLess.HasValue)
                {
                    listExpression.Add(o => o.ModifyTime.Value < this.ModifyTimeToLess.Value);
                }
                if (!String.IsNullOrEmpty(this.Creator))
                {
                    listExpression.Add(o => o.Creator == this.Creator);
                }
                if (!String.IsNullOrEmpty(this.Modifier))
                {
                    listExpression.Add(o => o.Modifier == this.Modifier);
                }
                if (this.Ids != null)
                {
                    listExpression.Add(o => this.Ids.Contains(o.Id));
                }
                #endregion

                if (this.ProjectId.HasValue)
                {
                    listExpression.Add(o => o.ProjectId == this.ProjectId.Value);
                }
                if (this.ProjectIds != null)
                {
                    listExpression.Add(o => this.ProjectIds.Contains(o.ProjectId));
                }
                if (this.AddressId.HasValue)
                {
                    listExpression.Add(o => o.AddressId == this.AddressId.Value);
                }
                if (this.AddressIds != null)
                {
                    listExpression.Add(o => this.AddressIds.Contains(o.AddressId));
                }
                if (this.PostSttId.HasValue)
                {
                    listExpression.Add(o => o.PostSttId == this.PostSttId.Value);
                }
                if (this.PostSttIds != null)
                {
                    listExpression.Add(o => this.PostSttIds.Contains(o.PostSttId));
                }
                if (this.PostTimeFrom.HasValue)
                {
                    listExpression.Add(o => o.PostTime.Value >= this.PostTimeFrom.Value);
                }
                if (this.PostTimeTo.HasValue)
                {
                    listExpression.Add(o => o.PostTime.Value <= this.PostTimeTo.Value);
                }
                if (this.ApprovalTimeFrom.HasValue)
                {
                    listExpression.Add(o => o.ApprovalTime.Value >= this.ApprovalTimeFrom.Value);
                }
                if (this.ApprovalTimeTo.HasValue)
                {
                    listExpression.Add(o => o.ApprovalTime.Value <= this.ApprovalTimeTo.Value);
                }
                if (!String.IsNullOrWhiteSpace(this.ApprovalLoginnameExact))
                {
                    listExpression.Add(o => o.ApprovalLoginname == this.ApprovalLoginnameExact);
                }
                if (!String.IsNullOrWhiteSpace(this.KeyWord))
                {
                    this.KeyWord = this.KeyWord.ToLower().Trim();
                    listExpression.Add(o => o.ApprovalLoginname.ToLower().Contains(this.KeyWord) ||
                                       o.ApprovalNote.ToLower().Contains(this.KeyWord) ||
                                       o.ApprovalUsername.ToLower().Contains(this.KeyWord) ||
                                       o.Author.ToLower().Contains(this.KeyWord) ||
                                       o.Content.ToLower().Contains(this.KeyWord) ||
                                       o.Creator.ToLower().Contains(this.KeyWord) ||
                                       o.Modifier.ToLower().Contains(this.KeyWord) ||
                                       o.PostType.ToLower().Contains(this.KeyWord) ||
                                       o.Status.ToLower().Contains(this.KeyWord) ||
                                       o.Tags.ToLower().Contains(this.KeyWord) ||
                                       o.Title.ToLower().Contains(this.KeyWord));
                }

                search.listPostExpression.AddRange(listExpression);
                search.OrderField     = this.OrderField;
                search.OrderDirection = this.OrderDirection;
            }
            catch (Exception ex)
            {
                LogSystem.Error(ex);
                search.listPostExpression.Clear();
                search.listPostExpression.Add(o => o.Id == NegativeId);
            }
            return(search);
        }