コード例 #1
0
        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()));
            }
        }
コード例 #2
0
 public JsonResult NewsSearch([FromUri] NewsSearchModel inputParams)
 {
     return(new JsonResult
     {
         Data = NewsService.GetNews(inputParams.PageSize, inputParams.PageNumber, inputParams.HideAdult),
         JsonRequestBehavior = JsonRequestBehavior.AllowGet
     });
 }
コード例 #3
0
ファイル: NewsService.cs プロジェクト: levanvunam/EasyCMS
        /// <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));
        }
コード例 #4
0
ファイル: NewsService.cs プロジェクト: levanvunam/EasyCMS
 /// <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))));
 }
コード例 #5
0
ファイル: NewsService.cs プロジェクト: levanvunam/EasyCMS
        /// <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));
        }
コード例 #6
0
ファイル: NewsController.cs プロジェクト: levanvunam/EasyCMS
        /// <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"));
        }
コード例 #7
0
ファイル: NewsController.cs プロジェクト: jahan33/NewsFeed
        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()));
            }
        }
コード例 #8
0
        internal NewsListModel InitializeSearchModel(int parliamentId)
        {
            var searchModel = new NewsSearchModel
            {
                ParliamentId = parliamentId
            };
            var resultModel = SearchNews(searchModel);

            return(new NewsListModel
            {
                SearchModel = new NewsSearchModel(),
                Results = resultModel
            });
        }
コード例 #9
0
        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));
        }
コード例 #10
0
        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);
            }
        }
コード例 #11
0
        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));
        }
コード例 #12
0
ファイル: NewsController.cs プロジェクト: levanvunam/EasyCMS
 public string _AjaxBinding(JqSearchIn si, NewsSearchModel model)
 {
     return(JsonConvert.SerializeObject(_newsService.SearchNews(si, model)));
 }
コード例 #13
0
ファイル: NewsController.cs プロジェクト: levanvunam/EasyCMS
        public ActionResult Index()
        {
            var model = new NewsSearchModel();

            return(View(model));
        }