Пример #1
0
        public PostDto GetPostBySlug(string slug)
        {
            if (slug == null)
            {
                throw new ArgumentNullException("slug");
            }

            if (slug == string.Empty)
            {
                throw new ArgumentException("The string must have a value.", "slug");
            }

            CancelEventArgsWithOneParameter <string, PostDto> e = new CancelEventArgsWithOneParameter <string, PostDto>(slug, null);

            this.PostRetrievingBySlug.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'PostRetrievingBySlug' is overridden by the event 'PostRetrievingBySlug'.");
                return(e.Result);
            }

            PostDto result = this.postDataService.GetPostBySlug(slug);

            this.PostRetrievedBySlug.Raise(this, new GenericEventArgs <PostDto>(result));

            return(result);
        }
Пример #2
0
        public IList <CommentDto> GetCommentForSpecificItem(int itemId, CommentQueryFilter queryFilter)
        {
            if (itemId < 1)
            {
                throw new ArgumentException("The item id must be greater than 0", "itemId");
            }

            if (queryFilter == null)
            {
                queryFilter = new CommentQueryFilter();
                queryFilter.CommentStatus = CommentStatus.IsApproved;
            }

            CancelEventArgsWithOneParameter <int, IList <CommentDto> > e = new CancelEventArgsWithOneParameter <int, IList <CommentDto> >(itemId, null);

            this.CommentsRetrievingByItemId.Raise(this, e);

            if (e.Cancel)
            {
                return(e.Result);
            }

            IList <CommentDto> result = this.commentDataService.GetCommentForSpecificItem(itemId, queryFilter);

            this.CommentsRetrievedByItemId(this, new GenericEventArgs <IList <CommentDto> >(result));

            return(result);
        }
Пример #3
0
        public IList <TagDto> GetTopTagsForPublishedPosts(int maxNumberOfTags)
        {
            if (maxNumberOfTags < 1)
            {
                throw new ArgumentException("The number of tags to retrieve must be greater than 0", "maxNumberOfTags");
            }

            CancelEventArgsWithOneParameter <int, IList <TagDto> > e = new CancelEventArgsWithOneParameter <int, IList <TagDto> >(maxNumberOfTags, null);

            this.TagsRetrievingForPublishedPosts.Raise(this, e);

            if (e.Cancel)
            {
                return(e.Result);
            }

            IList <TagDto> data = this.postDataService.GetTopTagsForPublishedPosts(maxNumberOfTags);

            this.TagsRetrievedForPublishedPosts.Raise(this, new GenericEventArgs <IList <TagDto> >(data));

            return(data);
        }
Пример #4
0
        public PostDto GetPostByKey(int key)
        {
            if (key < 1)
            {
                throw new ArgumentException("The Key must be greater than 0", "key");
            }

            CancelEventArgsWithOneParameter <int, PostDto> e = new CancelEventArgsWithOneParameter <int, PostDto>(key, null);

            this.PostRetrievingById.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'GetPostByKey' is overridden by the event 'PostRetrievingById'.");
                return(e.Result);
            }

            PostDto result = this.postDataService.GetPostByKey(key);

            this.PostRetrievedById.Raise(this, new GenericEventArgs <PostDto>(result));

            return(result);
        }
        public IList<CommentDto> GetCommentForSpecificItem(int itemId, CommentQueryFilter queryFilter)
        {
            if (itemId < 1)
            {
                throw new ArgumentException("The item id must be greater than 0", "itemId");
            }

            if (queryFilter == null)
            {
                queryFilter = new CommentQueryFilter();
                queryFilter.CommentStatus = CommentStatus.IsApproved;
            }

            CancelEventArgsWithOneParameter<int, IList<CommentDto>> e = new CancelEventArgsWithOneParameter<int, IList<CommentDto>>(itemId, null);

            this.CommentsRetrievingByItemId.Raise(this, e);

            if (e.Cancel)
            {
                return e.Result;
            }

            IList<CommentDto> result = this.commentDataService.GetCommentForSpecificItem(itemId, queryFilter);

            this.CommentsRetrievedByItemId(this, new GenericEventArgs<IList<CommentDto>>(result));

            return result;
        }
Пример #6
0
        public IPagedResult <PostDto> Search(string term, int pageIndex, int pageSize, ItemQueryFilter filters)
        {
            if (pageIndex < 1)
            {
                throw new ArgumentException("The page index must be greater than 0", "pageIndex");
            }

            if (pageSize < 1)
            {
                throw new ArgumentException("The page size must be greater than 0", "pageSize");
            }

            if (filters == null)
            {
                filters = new ItemQueryFilter();
                filters.MaxPublishAt = DateTime.Now;
                filters.Status       = ItemStatus.Published;
            }

            CancelEventArgsWithOneParameter <Tuple <string, int, int, ItemQueryFilter>, IPagedResult <PostDto> > e = new CancelEventArgsWithOneParameter <Tuple <string, int, int, ItemQueryFilter>, IPagedResult <PostDto> >(new Tuple <string, int, int, ItemQueryFilter>(term, pageIndex, pageSize, filters), null);

            this.PostsSearchingWithFilters.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'Search' is overridden by the event 'PostsSearchingWithFilters'.");
                return(e.Result);
            }

            IPagedResult <PostDto> result = this.postDataService.Search(term, pageIndex, pageSize, filters);

            this.PostsSearchedWithFilters.Raise(this, new GenericEventArgs <IPagedResult <PostDto> >(result));

            return(result);
        }
Пример #7
0
        public IPagedResult <PostDto> GetPostsByTag(int pageIndex, int pageSize, string tag, ItemQueryFilter filters = null)
        {
            if (pageIndex < 1)
            {
                throw new ArgumentException("The page index must be greater than 0", "pageIndex");
            }

            if (pageSize < 1)
            {
                throw new ArgumentException("The page size must be greater than 0", "pageSize");
            }

            if (tag == null)
            {
                throw new ArgumentNullException("tag", "The string tag must contains a value");
            }

            if (tag == string.Empty)
            {
                throw new ArgumentException("The string tag must not be empty", "tag");
            }

            if (filters == null)
            {
                filters = new ItemQueryFilter();
                filters.MaxPublishAt = DateTimeOffset.Now.AsMinutes();
                filters.Status       = ItemStatus.Published;
            }

            CancelEventArgsWithOneParameter <Tuple <int, int, string, ItemQueryFilter>, IPagedResult <PostDto> > e = new CancelEventArgsWithOneParameter <Tuple <int, int, string, ItemQueryFilter>, IPagedResult <PostDto> >(new Tuple <int, int, string, ItemQueryFilter>(pageIndex, pageSize, tag, filters), null);

            this.PostsRetrievingByTag.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'GetPostsByTag' is overridden by the event 'PostsRetrievingByTag'.");
                return(e.Result);
            }

            IPagedResult <PostDto> result = this.postDataService.GetPostsByTag(pageIndex, pageSize, tag, filters);

            this.PostsRetrievedByTag.Raise(this, new GenericEventArgs <IPagedResult <PostDto> >(result));

            return(result);
        }
Пример #8
0
        public IPagedResult <PostDto> GetPostsByDate(int pageIndex, int pageSize, int year, int?month, int?day, ItemQueryFilter filters = null)
        {
            if (pageIndex < 1)
            {
                throw new ArgumentException("The page index must be greater than 0", "pageIndex");
            }

            if (pageSize < 1)
            {
                throw new ArgumentException("The page size must be greater than 0", "pageSize");
            }

            if (year < 1700)
            {
                throw new ArgumentException("The year value must be greater than 1700. Internet did not exist in 1700!", "year");
            }

            if (month.HasValue && (month.Value < 1 || month.Value > 12))
            {
                throw new ArgumentException("The month value must be greater than 0 and lesser than 12", "month");
            }

            if (day.HasValue && (day.Value < 1 || day.Value > 31))
            {
                throw new ArgumentException("The day value must be greater than 0 and lesser than 31", "month");
            }

            if (filters == null)
            {
                filters = new ItemQueryFilter();
                filters.MaxPublishAt = DateTimeOffset.Now.AsMinutes();
                filters.Status       = ItemStatus.Published;
            }

            Tuple <int, int, int, int?, int?, ItemQueryFilter> p = new Tuple <int, int, int, int?, int?, ItemQueryFilter>(pageIndex, pageSize, year, month, day, filters);

            CancelEventArgsWithOneParameter <Tuple <int, int, int, int?, int?, ItemQueryFilter>, IPagedResult <PostDto> > e = new CancelEventArgsWithOneParameter <Tuple <int, int, int, int?, int?, ItemQueryFilter>, IPagedResult <PostDto> >(p, null);

            this.PostsRetrievingByDates.Raise(this, e);

            if (e.Cancel)
            {
                return(e.Result);
            }

            IPagedResult <PostDto> result = this.postDataService.GetPostsByDate(pageIndex, pageSize, year, month, day, filters);

            this.PostsRetrievedByDates.Raise(this, new GenericEventArgs <IPagedResult <PostDto> >(result));

            return(result);
        }
Пример #9
0
        public IPagedResult<PageDto> GetPages(int pageIndex, int pageSize, ItemQueryFilter filters)
        {
            if (pageIndex < 1)
            {
                throw new ArgumentException("The page index must be greater than 0", "pageIndex");
            }

            if (pageSize < 1)
            {
                throw new ArgumentException("The page size must be greater than 0", "pageSize");
            }

            if (filters == null)
            {
                filters = new ItemQueryFilter();
                filters.MaxPublishAt = DateTime.Now;
                filters.Status = ItemStatus.Published;
            }

            CancelEventArgsWithOneParameter<Tuple<int, int, ItemQueryFilter>, IPagedResult<PageDto>> e = new CancelEventArgsWithOneParameter<Tuple<int, int, ItemQueryFilter>, IPagedResult<PageDto>>(new Tuple<int, int, ItemQueryFilter>(pageIndex, pageSize, filters), null);

            this.PagesRetrievingWithFilters.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'GetPages' is overridden by the event 'PagesRetrievingWithFilters'.");
                return e.Result;
            }

            IPagedResult<PageDto> result = this.pageDataService.GetPages(pageIndex, pageSize, filters);

            this.PagesRetrievedWithFilters.Raise(this, new GenericEventArgs<IPagedResult<PageDto>>(result));

            return result;
        }
Пример #10
0
        public PageDto GetPageBySlug(string slug)
        {
            if (slug == null)
            {
                throw new ArgumentNullException("slug");
            }

            if (slug == string.Empty)
            {
                throw new ArgumentException("The string must have a value.", "slug");
            }

            CancelEventArgsWithOneParameter<string, PageDto> e = new CancelEventArgsWithOneParameter<string, PageDto>(slug, null);

            this.PageRetrievingBySlug.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'PageRetrievingBySlug' is overridden by the event 'PageRetrievingBySlug'.");
                return e.Result;
            }

            PageDto result = this.pageDataService.GetPageBySlug(slug);

            this.PageRetrievedBySlug.Raise(this, new GenericEventArgs<PageDto>(result));

            return result;
        }
Пример #11
0
        public PageDto GetPageByKey(int key)
        {
            if (key < 1)
            {
                throw new ArgumentException("The Key must be greater than 0", "key");
            }

            CancelEventArgsWithOneParameter<int, PageDto> e = new CancelEventArgsWithOneParameter<int, PageDto>(key, null);

            this.PageRetrievingById.Raise(this, e);

            if (e.Cancel)
            {
                this.logger.DebugAsync("The result of the method 'GetPageByKey' is overridden by the event 'PageRetrievingById'.");
                return e.Result;
            }

            PageDto result = this.pageDataService.GetPageByKey(key);

            this.PageRetrievedById.Raise(this, new GenericEventArgs<PageDto>(result));

            return result;
        }