Ejemplo n.º 1
0
        public static List <NoticeModel> GetNotices(NoticeFilterModel model, ref int recordsCount)
        {
            using (var context = new NoticeBoardEntities())
            {
                List <NoticeModel> notices = context.Notices.Where(x => x.IsActive == ActiveStatus.Active).Join(context.Users, n => n.UserId, u => u.UserId, (n, u) => new NoticeModel
                {
                    noticeId      = n.NoticeId,
                    userId        = n.UserId,
                    title         = n.Title,
                    body          = n.Body,
                    IsActive      = n.IsActive,
                    lastUpdatedOn = n.LastUpdatedOn,
                    postedOn      = n.PostedOn,
                    userData      = new UserModel()
                    {
                        email    = u.Email,
                        isActive = u.IsActive,
                        userName = u.UserName,
                        userId   = u.UserId
                    },
                }).ToList();

                recordsCount = notices.Count;

                switch (model.sortBy)
                {
                case "postedBy":
                    notices = notices.OrderBy(x => x.userData.email).ToList();
                    break;

                case "title":
                    notices = notices.OrderBy(x => x.title).ToList();
                    break;

                default:
                    notices = notices.OrderByDescending(x => x.postedOn).ToList();
                    break;
                }

                return(AddPaginationToNotices(notices, model));
            }
        }
Ejemplo n.º 2
0
 public JsonResult GetNotices(NoticeFilterModel model)
 {
     try
     {
         int recordsCount = 0;
         var result       = NoticeBusiness.GetNotices(model, ref recordsCount);
         var pages        = CommonBusiness.GetPages(recordsCount);
         var data         = new ApiRespnoseWrapper()
         {
             status = ApiRespnoseStatus.Success, results = new ArrayList()
             {
                 result, pages
             }
         };
         return(new JsonResult()
         {
             Data = data
         });
     }
     catch (Exception ex)
     {
         return(CommonBusiness.GetErrorResponse(ex.Message));
     }
 }
Ejemplo n.º 3
0
        public static List <NoticeModel> AddPaginationToNotices(List <NoticeModel> notices, NoticeFilterModel model)
        {
            int totalPages = CommonBusiness.GetPages(notices.Count);
            int recordsPerPage = 4, totalRecords = notices.Count;

            if (model.pageNo < 0 || model.pageNo > totalPages)
            {
                model.pageNo = 0;
            }
            int startIndex = model.pageNo * recordsPerPage;
            List <NoticeModel> filteredNotices = new List <NoticeModel>();

            for (int i = startIndex; i < startIndex + recordsPerPage; i++)
            {
                if (i < totalRecords)
                {
                    filteredNotices.Add(notices[i]);
                }
            }
            return(filteredNotices);
        }