public IActionResult GetChannel([FromBody] NewsSearchModel model) { try { ArrayList result = new ArrayList(); if (model.search == null) { model.search = ""; } if (model.index < 1) { model.index = 1; } if (model.pageSize < 1) { model.pageSize = 6; } IQueryable <tblChannel> searchResult = _ItblChannelRepository.Get(x => x.IsActive == true && (x.ChannelName.Contains(model.search) || x.ChannelDescription.Contains(model.search))); long total = searchResult.Count(); List <tblChannel> _ChannelList = searchResult.Skip((model.index - 1) * model.pageSize).Take(model.pageSize).ToList(); result.Add(new { Total = total, ChannelList = _ChannelList }); return(Ok(result)); } catch (Exception ex) { log.Fatal("GetChannel:", ex); return(BadRequest(ex.ToString())); } }
public JsonResult NewsSearch([FromUri] NewsSearchModel inputParams) { return(new JsonResult { Data = NewsService.GetNews(inputParams.PageSize, inputParams.PageNumber, inputParams.HideAdult), JsonRequestBehavior = JsonRequestBehavior.AllowGet }); }
/// <summary> /// Search the news /// </summary> /// <param name="si"></param> /// <param name="model"></param> /// <returns></returns> public JqGridSearchOut SearchNews(JqSearchIn si, NewsSearchModel model) { var data = SearchNews(model); var news = Maps(data.ToList()); return(si.Search(news)); }
/// <summary> /// Search news /// </summary> /// <param name="model"></param> /// <returns></returns> private IQueryable <Entity.Entities.Models.News> SearchNews(NewsSearchModel model) { return(Fetch(news => (string.IsNullOrEmpty(model.Keyword) || (!string.IsNullOrEmpty(news.Title) && news.Title.Contains(model.Keyword)) || (!string.IsNullOrEmpty(news.Abstract) && news.Abstract.Contains(model.Keyword))) && (!model.NewsCategoryId.HasValue || news.NewsNewsCategories.Any( newsNewsCategory => newsNewsCategory.NewsCategoryId == model.NewsCategoryId)))); }
/// <summary> /// Export news /// </summary> /// <param name="si"></param> /// <param name="gridExportMode"></param> /// <param name="model"></param> /// <returns></returns> public HSSFWorkbook Exports(JqSearchIn si, GridExportMode gridExportMode, NewsSearchModel model) { var data = gridExportMode == GridExportMode.All ? GetAll() : SearchNews(model); var news = Maps(data.ToList()); var exportData = si.Export(news, gridExportMode); return(ExcelUtilities.CreateWorkBook(exportData)); }
/// <summary> /// Export News /// </summary> /// <param name="si"></param> /// <param name="gridExportMode"></param> /// <param name="model"></param> /// <returns></returns> public ActionResult Exports(JqSearchIn si, GridExportMode gridExportMode, NewsSearchModel model) { var workbook = _newsService.Exports(si, gridExportMode, model); var output = new MemoryStream(); workbook.Write(output); return(File(output.ToArray(), "application/vnd.ms-excel", "News.xls")); }
public IActionResult GetNews([FromBody] NewsSearchModel model) { try { ArrayList result = new ArrayList(); if (model.search == null) { model.search = ""; } if (model.index < 1) { model.index = 1; } if (model.pageSize < 6) { model.pageSize = 6; } IQueryable <tblNews> searchResult = _ItblNewsRepository.Get(x => x.IsActive == true && (x.Title.Contains(model.search) || x.Description.Contains(model.search) || x.Content.Contains(model.search))); if (model.fkChannel != null && model.fkChannel > 0) { searchResult = searchResult.Where(w => w.FKChannel == model.fkChannel); } List <int?> newsIDs = _ItblNewsSubscribeRepository.Get(x => x.IsActive == true && x.FKUser == model.PKUser).Select(s => s.FKNews).ToList(); if (model.isSubscribe == true) { searchResult = searchResult.Where(o => newsIDs.Contains(o.PKNews)); } long total = searchResult.Count(); var _NewsList = searchResult.Skip((model.index - 1) * model.pageSize).Take(model.pageSize).Select(s => new{ s.PKNews, s.Author, s.Title, s.Description, s.Content, s.FKChannel, ChannelName = s.tblChannel.ChannelName, IsSubscribeChannel = s.tblChannel.tblChannelSubscribe.Count(c => c.FKUser == model.PKUser && c.IsActive == true) > 0, s.ImageURL, s.CreatedDate, IsSubscribe = newsIDs.Contains(s.PKNews) }).ToList(); result.Add(new { Total = total, NewsList = _NewsList }); return(Ok(result)); } catch (Exception ex) { log.Fatal("GetNews:", ex); return(BadRequest(ex.ToString())); } }
internal NewsListModel InitializeSearchModel(int parliamentId) { var searchModel = new NewsSearchModel { ParliamentId = parliamentId }; var resultModel = SearchNews(searchModel); return(new NewsListModel { SearchModel = new NewsSearchModel(), Results = resultModel }); }
public ActionResult Search(NewsSearchModel searchModel, int page = 1) { var service = new NewsService(); var model = service.SearchNews(searchModel); var resultModel = new NewsListModel { SearchModel = searchModel, Results = model }; return(View("Index", resultModel)); }
internal IPagedList <Models.News.NewsModel> SearchNews(NewsSearchModel searchModel) { using (var context = JavnaRasprava.WEB.DomainModels.ApplicationDbContext.Create()) { var query = context.News .Where(x => 1 == 1); if (searchModel.ParliamentId != 0) { query = query.Where(x => x.ParliamentId == searchModel.ParliamentId); } if (searchModel.QueryString != null) { query = query.Where(x => x.Title.Contains(searchModel.QueryString) || x.Summary.Contains(searchModel.QueryString) || x.Text.Contains(searchModel.QueryString)); } switch (searchModel.Sort ?? NewsSort.CreateTime) { case NewsSort.CreateTime: query = query.OrderBy(x => x.CreateDateTimeUtc); break; case NewsSort.Title: query = query.OrderBy(x => x.Title); break; } var result = query.Select(x => new NewsModel { NewsId = x.NewsId, Title = x.Title, Summary = x.Summary, Text = x.Text, ParliamentId = x.ParliamentId, CreateDateTimeUtc = x.CreateDateTimeUtc, ImageRelativePath = x.ImageRelativePath }) .ToPagedList(searchModel.page.HasValue ? searchModel.page.Value : 1, 16); return(result); } }
public async Task <IActionResult> News([FromQuery] string q = "watched:yes") { if (q == null) { q = ""; } NewsSearchModel model = new NewsSearchModel(); model.SearchString = q; IQueryable <IssueActivity> searchQuery = Db.IssueActivities .Include(x => x.Issue) .ThenInclude(x => x.Assignee) .Include(x => x.Issue) .ThenInclude(x => x.Project) .Include(x => (x as CreateIssueActivity).Assignee) .Include(x => (x as CreateIssueActivity).Project) .Include(x => (x as EditIssueActivity).NewAssignee) .Include(x => (x as EditIssueActivity).OldAssignee) .Include(x => (x as EditIssueActivity).OldProject) .Include(x => (x as EditIssueActivity).NewProject) .Include(x => x.Author); bool orderDescending = true; foreach (string sub in q.Split(' ', StringSplitOptions.RemoveEmptyEntries)) { if (sub.StartsWith("#")) { string tagName = sub.Substring(1); searchQuery = searchQuery.Where(x => x.Issue.Tags.Contains(tagName, StringComparison.InvariantCultureIgnoreCase)); } else if (sub.StartsWith("!#")) { string tagName = sub.Substring(2); searchQuery = searchQuery.Where(x => !x.Issue.Tags.Contains(tagName, StringComparison.InvariantCultureIgnoreCase)); } else if (sub.StartsWith("status:")) { IssueStatus status; if (!Enum.TryParse(sub.Substring("status:".Length), true, out status)) { continue; } searchQuery = searchQuery.Where(x => x.Issue.Status == status); } else if (sub.StartsWith("!status:")) { IssueStatus status; if (!Enum.TryParse(sub.Substring("!status:".Length), true, out status)) { continue; } searchQuery = searchQuery.Where(x => x.Issue.Status != status); } else if (sub.StartsWith("project:")) { string projectId = sub.Substring("project:".Length); searchQuery = searchQuery.Where(x => x.Issue.Project.ShortProjectId == projectId); } else if (sub.StartsWith("!project:")) { string projectId = sub.Substring("!project:".Length); searchQuery = searchQuery.Where(x => x.Issue.Project.ShortProjectId != projectId); } else if (sub.StartsWith("assignee:")) { string assigneeName = sub.Substring("assignee:".Length); if (assigneeName == "me") { searchQuery = searchQuery.Where(x => x.Issue.Assignee != null && x.Issue.Assignee.Id == HttpContext.User.GetUserId()); } else if (assigneeName == "none") { searchQuery = searchQuery.Where(x => x.Issue.Assignee == null); } else { searchQuery = searchQuery.Where(x => x.Issue.Assignee != null && x.Issue.Assignee.Username == assigneeName); } } else if (sub.StartsWith("!assignee:")) { string assigneeName = sub.Substring("!assignee:".Length); if (assigneeName == "me") { searchQuery = searchQuery.Where(x => x.Issue.Assignee == null || x.Issue.Assignee.Id != HttpContext.User.GetUserId()); } else if (assigneeName == "none") { searchQuery = searchQuery.Where(x => x.Issue.Assignee != null); } else { searchQuery = searchQuery.Where(x => x.Issue.Assignee == null || x.Issue.Assignee.Username != assigneeName); } } else if (sub.StartsWith("author:")) { string authorName = sub.Substring("author:".Length); if (authorName == "me") { searchQuery = searchQuery.Where(x => x.Issue.Author.Id == HttpContext.User.GetUserId()); } else { searchQuery = searchQuery.Where(x => x.Issue.Author.Username == authorName); } } else if (sub.StartsWith("!author:")) { string authorName = sub.Substring("!author:".Length); if (authorName == "me") { searchQuery = searchQuery.Where(x => x.Issue.Author.Id != HttpContext.User.GetUserId()); } else { searchQuery = searchQuery.Where(x => x.Issue.Author.Username != authorName); } } else if (sub.StartsWith("actor:")) { string actorName = sub.Substring("actor:".Length); if (actorName == "me") { searchQuery = searchQuery.Where(x => x.Author.Id == HttpContext.User.GetUserId()); } else { searchQuery = searchQuery.Where(x => x.Issue.Author.Username == actorName); } } else if (sub.StartsWith("!actor:")) { string actorName = sub.Substring("!actor:".Length); if (actorName == "me") { searchQuery = searchQuery.Where(x => x.Author.Id != HttpContext.User.GetUserId()); } else { searchQuery = searchQuery.Where(x => x.Issue.Author.Username != actorName); } } else if (sub.StartsWith("watched:")) { int userId = HttpContext.User.GetUserId(); bool watched = sub.Substring("watched:".Length) == "yes"; searchQuery = searchQuery.Where(x => watched == (x.Issue.AssigneeId == userId || x.Issue.Watchers.Any(w => w.WatcherId == userId))); } else if (sub.StartsWith("order:")) { string order = sub.Substring("order:".Length); if (Regex.IsMatch(order, ".*asc.*")) { orderDescending = false; } } else if (sub.StartsWith("!")) { searchQuery = searchQuery.Where(x => !x.Issue.Name.Contains(sub.Substring(1), StringComparison.InvariantCultureIgnoreCase)); } else { searchQuery = searchQuery.Where(x => x.Issue.Name.Contains(sub, StringComparison.InvariantCultureIgnoreCase)); } } if (orderDescending) { searchQuery = searchQuery.OrderByDescending(x => x.Id); } else { searchQuery = searchQuery.OrderBy(x => x.Id); } model.FoundNews = await searchQuery .ToArrayAsync(); return(View(model)); }
public string _AjaxBinding(JqSearchIn si, NewsSearchModel model) { return(JsonConvert.SerializeObject(_newsService.SearchNews(si, model))); }
public ActionResult Index() { var model = new NewsSearchModel(); return(View(model)); }