コード例 #1
0
        public IEnumerable GetAllNewsItems(int pageSize, int pageNumber)
        {
            var news     = _newsItemRepository.GetAllNewsItems();
            var newsSize = news.Count();

            if ((newsSize / pageSize) < pageNumber)
            {
                throw new ArgumentOutOfRangeException("Invalid page number.");
            }
            var newsEnvelope = new Envelope <NewsItemDto>(pageNumber, pageSize, news);

            if (newsEnvelope == null)
            {
                throw new ResourceNotFoundException("No news items were found.");
            }


            List <NewsItemDto> returnList = new List <NewsItemDto>();

            foreach (var newsItem in newsEnvelope.Items.ToList())
            {
                AddLinksToNewsItems(newsItem, newsItem.Id);
                returnList.Add(newsItem);
            }
            return(returnList);
        }
コード例 #2
0
        public IEnumerable <NewsItemDto> GetAllNewsItems()
        {
            var newsItems = _newsItemRepository.GetAllNewsItems().ToList();

            newsItems.ForEach(r => {
                r.Links.AddReference("self", $"/api/{r.Id}");
                r.Links.AddReference("edit", $"/api/{r.Id}");
                r.Links.AddReference("delete", $"/api/{r.Id}");
                r.Links.AddListReference("authors", _authorRepository.GetAuthorsOfNewsItem(r.Id).Select(a => new { href = $"/api/authors/{a.Id}" }));
                r.Links.AddListReference("categories", _categoryRepository.getCategoriesForNewsItem(r.Id).Select(c => new { href = $"/api/categories/{c}" }));
            });

            return(newsItems);
        }
コード例 #3
0
ファイル: NewsItemService.cs プロジェクト: Abbabara/LA1
        public List <NewsItemDto> GetAllNewsItems()
        {
            var newsItems = _newsItemRepo.GetAllNewsItems().ToList();

            newsItems.ForEach(n => {
                n.Links.AddReference("self", new JObject {
                    new JProperty("href", $"/api/{n.Id}")
                });
                n.Links.AddReference("edit", new JObject {
                    new JProperty("href", $"/api/{n.Id}")
                });
                n.Links.AddReference("delete", new JObject {
                    new JProperty("href", $"/api/{n.Id}")
                });
                n.Links.AddListReference("authors", _authorRepo.GetAuthorsByNewsItemId(n.Id).Select(a => new { href = $"api/authors/{a.AuthorId}" }));
                n.Links.AddListReference("categories", _categoryRepo.GetCategoriesByNewsItemId(n.Id).Select(c => new { href = $"api/categories/{c.CategoryId}" }));
            });
            return(newsItems);
        }
コード例 #4
0
        public Envelope <NewsItemDto> GetAllNewsItems(int pageSize, int pageNumber)
        {
            var newsItems = _newsItemRepository.GetAllNewsItems(pageSize, pageNumber);
            var newsList  = newsItems.ToList();

            var skip     = (pageNumber * pageSize) - pageSize;
            var items    = newsList.Skip(skip).Take(pageSize);
            var maxPages = (int)(Math.Ceiling(newsItems.Count() / (decimal)pageSize));

            foreach (NewsItemDto item in items)
            {
                int itemId     = item.Id;
                int authorId   = _newsItemRepository.GetLinkedAuthorId(item.Id);
                int categoryId = _newsItemRepository.GetLinkedCategoryId(item.Id);
                Dictionary <string, string> dict = new Dictionary <string, string>();
                dict.Add("href", $"api/{itemId}");
                Dictionary <string, string> authorDict = new Dictionary <string, string>();
                authorDict.Add("href", $"api/authors/{authorId}");
                Dictionary <string, string> categoryDict = new Dictionary <string, string>();
                categoryDict.Add("href", $"api/categories/{categoryId}");

                item.Links.AddReference("self", dict);
                item.Links.AddReference("edit", dict);
                item.Links.AddReference("delete", dict);
                item.Links.AddReference("authors", authorDict);
                item.Links.AddReference("categories", categoryDict);

                dict = null;
            }

            Envelope <NewsItemDto> envelope = new Envelope <NewsItemDto>();

            envelope.PageNumber = pageNumber;
            envelope.PageSize   = pageSize;
            envelope.Items      = items;
            envelope.maxPages   = maxPages;

            return(envelope);
        }
コード例 #5
0
        public Envelope <NewsItemDto> GetAllNewsitems(int pageNumber, int pageSize)
        {
            var newsItems = _newsItemRepository.GetAllNewsItems().ToList();

            newsItems.ForEach(r => {
                var authorIds   = _newsItemRepository.GetAllAuthorIdByNewsItemId(r.Id).ToList();
                var categoryIds = _categoryRepository.GetAllCategoriesIdByNewsItemId(r.Id).ToList();

                r.Links.AddReference("self", $"api/{r.Id}");
                r.Links.AddReference("edit", $"api/{r.Id}");
                r.Links.AddReference("delete", $"api/{r.Id}");
                authorIds.ForEach(s => {
                    r.Links.AddReference("authors", $"api/authors/{s}");
                });
                categoryIds.ForEach(s => {
                    r.Links.AddReference("categories", $"api/authors/{s}");
                });
            });


            var envelope = new Envelope <NewsItemDto>(pageNumber, pageSize, newsItems);

            return(envelope);
        }
コード例 #6
0
 public IEnumerable <NewsItemDto> getAllNewsItems()
 {
     return(_newsItemRepository.GetAllNewsItems());
 }
コード例 #7
0
 public IEnumerable <NewsItemDto> GetAllNewsItems(int id)
 {
     return(_newsItemRepository.GetAllNewsItems(id));
 }