コード例 #1
0
        public NewsWithPagingSpecification(NewsParams queryParams)
            : base(x =>
                   (
                       string.IsNullOrEmpty(queryParams.Search) ||
                       x.Header.ToLower().Contains(queryParams.Search) ||
                       x.Content.ToLower().Contains(queryParams.Search) ||
                       x.ContentType.ToLower().Contains(queryParams.Search) ||
                       x.User.FirstName.ToLower().Contains(queryParams.Search) ||
                       x.User.LastName.ToLower().Contains(queryParams.Search)

                   ) &&
                   (!queryParams.ScreenId.HasValue || x.NewsSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) &&
                   (!queryParams.SubScreenId.HasValue || x.NewsSubScreens.Any(y => y.SubScreenId == queryParams.SubScreenId)) &&
                   (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) &&
                   (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) &&
                   (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish)
                   )
        {
            AddInclude(x => x.NewsPhotos);
            AddInclude(x => x.NewsSubScreens);
            AddInclude(x => x.User);
            AddInclude(x => x.User.Campus);
            AddInclude(x => x.User.Degree);
            AddInclude(x => x.User.Department);
            AddOrderByDscending(x => x.IsNew);
            ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize);
        }
コード例 #2
0
 public NewsByUserIdSpecification(NewsParams queryParams, int userId)
     : base(x => x.UserId == userId)
 {
     AddInclude(x => x.User);
     AddInclude(x => x.NewsPhotos);
     AddOrderByDscending(x => x.Created);
     ApplyPaging(queryParams.PageSize * (queryParams.PageIndex - 1), queryParams.PageSize);
 }
コード例 #3
0
        public async Task <PagedList <News> > GetByNameForPublic(NewsParams newsParams)
        {
            {
                var items = context.News.Where(x => x.Name.Contains(newsParams.searchQuery) || string.IsNullOrEmpty(newsParams.searchQuery));
                items = items.Where(x => x.AuthorId == newsParams.AuthorId);

                return(await PagedList <News> .CreateAsync(items, newsParams.PageNumber, newsParams.pageSize));
            }
        }
コード例 #4
0
        public async Task QueryWithCorrectParametersForName()
        {
            var actual = new NewsParams {
                searchQuery = ValidNewsName, AuthorId = 1, PageNumber = 12, PageSize = 10
            };

            await _newsService.GetByName(actual);

            await _newsRepository.Received(1).GetByName(Arg.Is <NewsParams>(p => p.PageNumber == actual.PageNumber &&
                                                                            p.PageNumber == actual.PageNumber && p.searchQuery == actual.searchQuery));
        }
コード例 #5
0
        public async Task <PagedList <News> > GetByName(NewsParams newsParams)
        {
            var items = context.News
                        .Where(x => x.Name.Contains(newsParams.searchQuery) || string.IsNullOrEmpty(newsParams.searchQuery));

            items = items.Where(x => !x.IsDeleted);

            if (false && newsParams.AuthorId.HasValue)
            {
                items = items.Where(x => x.AuthorId == newsParams.AuthorId);
            }

            return(await PagedList <News> .CreateAsync(items, newsParams.PageNumber, newsParams.pageSize));
        }
コード例 #6
0
        public async Task <IActionResult> GetByName([FromQuery] NewsParams newsParams)
        {
            var authorId = User.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? string.Empty;

            if (!string.IsNullOrEmpty(authorId))
            {
                newsParams.AuthorId = int.Parse(authorId);
            }

            var news = await _newsService.GetByName(newsParams);

            var newsToReturn = _mapper.Map <IEnumerable <News> >(news);

            Response.AddPagination(news.CurrentPage, news.PageSize, news.TotalCount, news.TotalPages);
            return(Ok(newsToReturn));
        }
コード例 #7
0
ファイル: MessageController.cs プロジェクト: scdanny/wechat
        public ActionResult PublishHtml(string itemID, string toUserName, string genHtml)
        {
            var mdb   = Sitecore.Configuration.Factory.GetDatabase("master");
            var mItem = mdb.GetItem(new Sitecore.Data.ID(itemID));

            if (mItem == null)
            {
                return(Content("Item is not existing!"));
            }
            WCArticles articles   = new WCArticles();
            NewsParams newsParams = new NewsParams();

            newsParams.show_cover_pic        = 1;
            newsParams.need_open_comment     = 1;
            newsParams.only_fans_can_comment = 1;
            newsParams.title              = mItem.Fields["Title"].ToString();
            newsParams.author             = mItem.Fields["Author"].ToString();
            newsParams.digest             = mItem.Fields["Summary"].ToString();
            newsParams.thumb_media_id     = mItem.Fields["thumbnailID"].ToString();
            newsParams.content_source_url = Sitecore.Links.LinkManager.GetItemUrl(mItem);
            newsParams.content            = MsgService.Base64Decode(Request.Params["genHtml"]);

            articles.Add(newsParams);

            NewsResponse newsResponse = (NewsResponse)JsonConvert.DeserializeObject(MsgService.AddNews(articles), typeof(NewsResponse));

            using (new Sitecore.SecurityModel.SecurityDisabler())
            {
                mItem.Editing.BeginEdit();
                mItem["NewsID"] = newsResponse.Media_ID;

                mItem.Editing.EndEdit();
            }

            RTMsgID rtMsgID = new RTMsgID();

            rtMsgID.media_id = newsResponse.Media_ID;

            RTMessageInt rtMessageInt = new RTMessageInt();

            rtMessageInt.touser  = toUserName;
            rtMessageInt.msgtype = "mpnews";
            rtMessageInt.mpnews  = rtMsgID;
            string r = MsgService.SendRTMsg(rtMessageInt);

            return(Content(r));
        }
コード例 #8
0
        public NewsWithFilterForCountAsyncSpecificaiton(NewsParams queryParams)
            : base(x =>
                   (
                       string.IsNullOrEmpty(queryParams.Search) ||
                       x.Header.ToLower().Contains(queryParams.Search) ||
                       x.Content.ToLower().Contains(queryParams.Search) ||
                       x.ContentType.ToLower().Contains(queryParams.Search) ||
                       x.User.FirstName.ToLower().Contains(queryParams.Search) ||
                       x.User.LastName.ToLower().Contains(queryParams.Search)

                   ) &&
                   (!queryParams.ScreenId.HasValue || x.NewsSubScreens.Any(y => y.ScreenId == queryParams.ScreenId)) &&
                   (!queryParams.SubScreenId.HasValue || x.NewsSubScreens.Any(y => y.Id == queryParams.SubScreenId)) &&
                   (!queryParams.Reject.HasValue || x.Reject == queryParams.Reject) &&
                   (!queryParams.IsNew.HasValue || x.IsNew == queryParams.IsNew) &&
                   (!queryParams.IsPublish.HasValue || x.IsPublish == queryParams.IsPublish)
                   )
        {
        }
コード例 #9
0
        //[SecuredOperation("Sudo,News.List,News.All", Priority = 1)]
        public async Task <Pagination <NewsForReturnDto> > GetListAsync(NewsParams queryParams)
        {
            var spec         = new NewsWithPagingSpecification(queryParams);
            var listFromRepo = await newsDal.ListEntityWithSpecAsync(spec);

            var countSpec = new NewsWithFilterForCountAsyncSpecificaiton(queryParams);
            var totalItem = await newsDal.CountAsync(countSpec);


            var data = mapper.Map <List <News>, List <NewsForReturnDto> >(listFromRepo);

            return(new Pagination <NewsForReturnDto>
                   (
                       queryParams.PageIndex,
                       queryParams.PageSize,
                       totalItem,
                       data
                   ));
        }
コード例 #10
0
 public async Task <ActionResult <Pagination <NewsForReturnDto> > > List([FromQuery] NewsParams queryParams)
 {
     return(await newsService.GetListAsync(queryParams));
 }
コード例 #11
0
 public Task <PagedList <News> > GetByName(NewsParams newsParams)
 => newsRepository.GetByName(newsParams);