public ActionResult NewsReadList(NewsSearchFilter searchFilter) { Logger.Info(_logMsg.Clear().SetPrefixMsg("Get NewsReadList").Add("UserId", this.UserInfo.UserId) .ToInputLogString()); try { _newsFacade = new NewsFacade(); _commonFacade = new CommonFacade(); HomeViewModel homeVM = new HomeViewModel(); homeVM.NewsReadSearchFilter = searchFilter; homeVM.NewsReadSearchFilter.UserId = this.UserInfo.UserId; homeVM.NewsReadList = _newsFacade.GetNewsReadList(homeVM.NewsReadSearchFilter); ViewBag.NewsReadPageSize = homeVM.NewsReadSearchFilter.PageSize; ViewBag.NewsReadPageSizeList = _commonFacade.GetPageSizeList(); Logger.Info(_logMsg.Clear().SetPrefixMsg("Get NewsReadList").ToSuccessLogString()); return(PartialView("~/Views/Home/_NewsReadList.cshtml", homeVM)); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); Logger.Info(_logMsg.Clear().SetPrefixMsg("Get NewsReadList").Add("Error Message", ex.Message).ToFailLogString()); return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(), this.ControllerContext.RouteData.Values["action"].ToString()))); } }
public ActionResult NewsList(NewsSearchFilter searchFilter) { Logger.Info(_logMsg.Clear().SetPrefixMsg("Search News").Add("Topic", searchFilter.Topic).ToInputLogString()); try { #region "Validation" bool isValid = TryUpdateModel(searchFilter); if (!string.IsNullOrEmpty(searchFilter.DateFrom) && !searchFilter.AnnounceDate.HasValue) { isValid = false; ModelState.AddModelError("txtFromDate", Resource.ValErr_InvalidDate); } if (!string.IsNullOrEmpty(searchFilter.DateTo) && !searchFilter.ExpiryDate.HasValue) { isValid = false; ModelState.AddModelError("txtToDate", Resource.ValErr_InvalidDate); } if (searchFilter.AnnounceDate.HasValue && searchFilter.ExpiryDate.HasValue && searchFilter.AnnounceDate.Value > searchFilter.ExpiryDate.Value) { isValid = false; ModelState.AddModelError("dvDateRange", Resource.ValErr_InvalidDateRange); } #endregion if (isValid) { _newsFacade = new NewsFacade(); _commonFacade = new CommonFacade(); NewsViewModel newsVM = new NewsViewModel(); newsVM.SearchFilter = searchFilter; newsVM.NewsList = _newsFacade.GetNewsList(newsVM.SearchFilter); ViewBag.PageSize = newsVM.SearchFilter.PageSize; ViewBag.PageSizeList = _commonFacade.GetPageSizeList(); Logger.Info(_logMsg.Clear().SetPrefixMsg("Search News").ToSuccessLogString()); return(PartialView("~/Views/News/_NewsList.cshtml", newsVM)); } return(Json(new { Valid = false, Error = string.Empty, Errors = GetModelValidationErrors() })); } catch (Exception ex) { Logger.Error("Exception occur:\n", ex); Logger.Info(_logMsg.Clear().SetPrefixMsg("Search News").Add("Error Message", ex.Message).ToFailLogString()); return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(), this.ControllerContext.RouteData.Values["action"].ToString()))); } }
public IEnumerable <NewsEntity> GetNewsUnreadList(NewsSearchFilter searchFilter) { int? status = searchFilter.Status.ToNullable <int>(); DateTime today = DateTime.Now.Date; var newsList = from nw in _context.TB_T_NEWS from usr in _context.TB_R_USER.Where(x => x.USER_ID == nw.CREATE_USER) // ผู้ประกาศ from ur in _context.TB_R_USER.Where(x => x.USER_ID == searchFilter.UserId) // UserLogin from nb in _context.TB_T_NEWS_BRANCH.Where(x => x.NEWS_ID == nw.NEWS_ID && x.BRANCH_ID == ur.BRANCH_ID) from rn in _context.TB_T_READ_NEWS.Where(x => x.NEWS_ID == nw.NEWS_ID && x.CREATE_USER == searchFilter.UserId).DefaultIfEmpty() where nw.STATUS == status && rn.CREATE_USER == null && (nw.ANNOUNCE_DATE <= today) && (nw.EXPIRY_DATE == null || nw.EXPIRY_DATE >= today) group new { nw.NEWS_ID, ur.BRANCH_ID } by new { nw.NEWS_ID, nw.TOPIC, nw.ANNOUNCE_DATE, nw.EXPIRY_DATE, nw.STATUS, usr } into g select new NewsEntity { NewsId = g.Key.NEWS_ID, Topic = g.Key.TOPIC, AnnounceDate = g.Key.ANNOUNCE_DATE, ExpiryDate = g.Key.EXPIRY_DATE, CreateUser = new UserEntity { Firstname = g.Key.usr.FIRST_NAME, Lastname = g.Key.usr.LAST_NAME, PositionCode = g.Key.usr.POSITION_CODE }, Status = g.Key.STATUS }; int startPageIndex = (searchFilter.PageNo - 1) * searchFilter.PageSize; searchFilter.TotalRecords = newsList.Count(); if (startPageIndex >= searchFilter.TotalRecords) { startPageIndex = 0; searchFilter.PageNo = 1; } newsList = SetNewsListSort(newsList, searchFilter); return(newsList.Skip(startPageIndex).Take(searchFilter.PageSize).ToList <NewsEntity>()); }
public IEnumerable <NewsEntity> GetNewsList(NewsSearchFilter searchFilter) { int?status = searchFilter.Status.ToNullable <int>(); var newsList = (from nw in _context.TB_T_NEWS from usr in _context.TB_R_USER.Where(x => x.USER_ID == nw.CREATE_USER).DefaultIfEmpty() where (string.IsNullOrEmpty(searchFilter.Topic) || nw.TOPIC.ToUpper().Contains(searchFilter.Topic.ToUpper())) && (status == null || status == Constants.ApplicationStatus.All || nw.STATUS == status) && (!searchFilter.AnnounceDate.HasValue || nw.ANNOUNCE_DATE >= searchFilter.AnnounceDate.Value) && (!searchFilter.ExpiryDate.HasValue || nw.EXPIRY_DATE <= searchFilter.ExpiryDate.Value) select new NewsEntity { NewsId = nw.NEWS_ID, Topic = nw.TOPIC, AnnounceDate = nw.ANNOUNCE_DATE, ExpiryDate = nw.EXPIRY_DATE, Status = nw.STATUS, CreateUser = new UserEntity { Firstname = usr.FIRST_NAME, Lastname = usr.LAST_NAME, PositionCode = usr.POSITION_CODE }, }); int startPageIndex = (searchFilter.PageNo - 1) * searchFilter.PageSize; searchFilter.TotalRecords = newsList.Count(); if (startPageIndex >= searchFilter.TotalRecords) { startPageIndex = 0; searchFilter.PageNo = 1; } newsList = SetNewsListSort(newsList, searchFilter); return(newsList.Skip(startPageIndex).Take(searchFilter.PageSize).ToList <NewsEntity>()); }
private static IQueryable <NewsEntity> SetNewsListSort(IQueryable <NewsEntity> newsList, NewsSearchFilter searchFilter) { if (searchFilter.SortOrder.ToUpper(CultureInfo.InvariantCulture).Equals("ASC")) { switch (searchFilter.SortField) { case "Topic": return(newsList.OrderBy(ord => ord.Topic)); case "AnnounceDate": return(newsList.OrderBy(ord => ord.AnnounceDate)); case "ExpiryDate": return(newsList.OrderBy(ord => ord.ExpiryDate)); case "Status": return(newsList.OrderBy(ord => (ord.Status == 1) ? "A" : "I")); case "FullName": return(newsList.OrderBy(ord => ord.CreateUser.PositionCode).ThenBy(ord => ord.CreateUser.Firstname).ThenBy(ord => ord.CreateUser.Lastname)); default: return(newsList.OrderBy(ord => ord.NewsId)); } } else { switch (searchFilter.SortField) { case "Topic": return(newsList.OrderByDescending(ord => ord.Topic)); case "AnnounceDate": return(newsList.OrderByDescending(ord => ord.AnnounceDate)); case "ExpiryDate": return(newsList.OrderByDescending(ord => ord.ExpiryDate)); case "Status": return(newsList.OrderByDescending(ord => (ord.Status == 1) ? "A" : "I")); case "FullName": return(newsList.OrderByDescending(ord => ord.CreateUser.PositionCode).ThenByDescending(ord => ord.CreateUser.Firstname).ThenByDescending(ord => ord.CreateUser.Lastname)); default: return(newsList.OrderByDescending(ord => ord.NewsId)); } } }
public IEnumerable <NewsEntity> GetNewsReadList(NewsSearchFilter searchFilter) { _newsDataAccess = new NewsDataAccess(_context); return(_newsDataAccess.GetNewsReadList(searchFilter)); }