コード例 #1
0
        //----------------------------------------------------------------------------------------------------------

        public IEnumerable <IdeaForShowDto> FilterSerchingIdea(FilterIdeaRequestDto searchItem)
        {
            IEnumerable <IdeaForShowDto> res = null;

            using (_db = new IdeaManagmentDatabaseEntities())
            {
                IQueryable <IDEA> ideas = _db.IDEAS;
                if (searchItem.OnlyshowMyIdea.HasValue && searchItem.OnlyshowMyIdea.Value == true)
                {
                    ideas = ideas.Where(x => x.USERNAME == searchItem.MyUsername);
                }
                else
                {
                    if (searchItem.Username != null && searchItem.Username.Trim().Length > 0)
                    {
                        ideas = ideas.Where(x => x.USERNAME.Contains(searchItem.Username.Trim()));
                    }
                    if (searchItem.FullName != null && searchItem.FullName.Trim().Length > 0)
                    {
                        if (searchItem.FullName.Trim().Contains(" "))
                        {
                            var firstName = searchItem.FullName.Trim().Substring(0, searchItem.FullName.Trim().IndexOf(" "));
                            var lastName  = searchItem.FullName.Trim().Substring(searchItem.FullName.Trim().IndexOf(" ") + 1);
                            ideas = ideas.Where(u => u.USER.FIRST_NAME.Contains(firstName.Trim()) && u.USER.LAST_NAME.Contains(lastName.Trim()));
                        }
                        else
                        {
                            ideas = ideas.Where(u => u.USER.FIRST_NAME.Contains(searchItem.FullName.Trim()) || u.USER.LAST_NAME.Contains(searchItem.FullName.Trim()));
                        }
                    }
                }
                if (searchItem.Title != null && searchItem.Title.Trim().Length > 0)
                {
                    ideas = ideas.Where(x => x.TITLE.Contains(searchItem.Title.Trim()));
                }
                if (searchItem.StatusId.HasValue) //check shavad
                {
                    ideas = ideas.Where(x => x.STATUS_ID == searchItem.StatusId.Value);
                }
                ideas = _filterYearAndMonth(ideas, searchItem.Year, searchItem.Month);

                res = ideas.OrderByDescending(x => x.SAVE_DATE).Select(x => new IdeaForShowDto()
                {
                    Id          = x.ID,
                    FullName    = x.USER.FIRST_NAME + " " + x.USER.LAST_NAME,
                    Title       = x.TITLE,
                    Status      = x.IDEA_STATUS.TITLE,
                    StatusId    = x.STATUS_ID,
                    Username    = x.USERNAME,
                    TotalPoints = x.IDEA_POINTS.Any()? x.IDEA_POINTS.Sum(w => w.POINT):0
                }).ToList();

                foreach (var row in res)
                {
                    row.SaveDate = Persia.Calendar.ConvertToPersian(_db.IDEAS.First(z => z.ID == row.Id).SAVE_DATE).Simple;
                }
            }
            return(res);
        }
コード例 #2
0
 public IEnumerable <IdeaForShowDto> FilterSerchingIdea(FilterIdeaRequestDto searchItem)
 {
     return(_Repository.FilterSerchingIdea(searchItem));
 }
コード例 #3
0
 public IEnumerable <IdeaForShowDto> FilterSerchingIdea(FilterIdeaRequestDto searchItem)
 {
     return(_business.FilterSerchingIdea(searchItem));
 }