Beispiel #1
0
        public List <NewsList> Get(string SearchTitle, string SearchContent,
                                   string SearchDate, string SearchKind)
        {
            var objCondition = new NewsListCondition
            {
                search_title  = SearchTitle,
                searc_content = SearchContent,
                search_date   = SearchDate,
                search_kind   = SearchKind
            };

            return(GetNewsList(objCondition));
        }
Beispiel #2
0
        private List <NewsList> GetNewsList(NewsListCondition objCondition)
        {
            using (CSDBEntities objDB = new CSDBEntities())
            {
                var sqlNews1 = objDB.cs_news.Where(n => n.enabled == "Y" && n.begin_date <= DateTime.Now && n.top_news == "Y")
                               .Select(n => new NewsList
                {
                    news_id    = n.news_id,
                    title      = n.title,
                    content    = n.content,
                    begin_date = n.begin_date,
                    end_date   = n.end_date,
                    top_news   = n.top_news,
                    kind       = n.news_kind
                }).AsEnumerable();

                var sqlNews2 = objDB.cs_news.Where(n => n.enabled == "Y" && n.begin_date <= DateTime.Now && n.top_news != "Y")
                               .Select(n => new NewsList
                {
                    news_id    = n.news_id,
                    title      = n.title,
                    content    = n.content,
                    begin_date = n.begin_date,
                    end_date   = n.end_date,
                    top_news   = n.top_news,
                    kind       = n.news_kind
                }).AsEnumerable();

                if (objCondition != null)
                {
                    if (String.IsNullOrEmpty(objCondition.search_title) == false)
                    {
                        sqlNews1 = sqlNews1.Where(n => n.title.Contains(objCondition.search_title));
                        sqlNews2 = sqlNews2.Where(n => n.title.Contains(objCondition.search_title));
                    }

                    if (String.IsNullOrEmpty(objCondition.searc_content) == false)
                    {
                        sqlNews1 = sqlNews1.Where(n => n.content.Contains(objCondition.searc_content));
                        sqlNews2 = sqlNews2.Where(n => n.content.Contains(objCondition.searc_content));
                    }

                    if (String.IsNullOrEmpty(objCondition.search_date) == false)
                    {
                        DateTime dteSearch;
                        if (DateTime.TryParse(objCondition.search_date, out dteSearch))
                        {
                            sqlNews1 = sqlNews1.Where(n => DateTime.Compare(dteSearch, n.begin_date) >= 0 &&
                                                      (n.end_date is null || DateTime.Compare((DateTime)n.end_date, dteSearch) >= 0));

                            sqlNews2 = sqlNews2.Where(n => DateTime.Compare(dteSearch, n.begin_date) >= 0 &&
                                                      (n.end_date is null || DateTime.Compare((DateTime)n.end_date, dteSearch) >= 0));
                        }
                    }

                    if (String.IsNullOrEmpty(objCondition.search_kind) == false)
                    {
                        sqlNews1 = sqlNews1.Where(n => n.kind == objCondition.search_kind);
                        sqlNews2 = sqlNews2.Where(n => n.kind == objCondition.search_kind);
                    }
                }

                var lstNews = sqlNews1.Concat(sqlNews2).ToList();

                lstNews.ForEach(
                    n =>
                {
                    if (n.top_news == "Y")
                    {
                        n.top_news = "v";
                    }
                    else
                    {
                        n.top_news = "";
                    }

                    n.begin_end_date = n.begin_date.ToString("yyyy/MM/dd");
                    if (n.end_date != null)
                    {
                        n.begin_end_date += " ~ " + n.end_date.Value.ToString("yyyy/MM/dd");
                    }
                }
                    );

                return(lstNews);
            }
        }