public FileView Render(FileModel source) { var result = source.Map(); var links = new List <LinkView> { _linkRenderer.Render(new Link { ActionName = nameof(FileController.GetFile), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { fileId = source.Id }, }) }; if (_userHelper.IsAdmin) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(FileController.DeleteFile), Method = HttpMethod.Delete, Rel = RelTypes.Delete, Parameters = new { fileId = source.Id }, })); } result.Links = links; return(result); }
public ListView <CategoryView> Render(IEnumerable <CategoryModel> categories, int libraryId) { var items = categories.Select(g => Render(g, libraryId)); var view = new ListView <CategoryView> { Data = items }; view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(CategoryController.GetCategories), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { libraryId = libraryId }, })); if (_userHelper.IsAdmin || _userHelper.IsLibraryAdmin(libraryId)) { view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(CategoryController.CreateCategory), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { libraryId = libraryId }, })); } return(view); }
public PageView <AccountView> Render(PageRendererArgs <AccountModel> source, int?libraryId = null) { var page = new PageView <AccountView>(source.Page.TotalCount, source.Page.PageSize, source.Page.PageNumber) { Data = source.Page.Data?.Select(x => Render(x, libraryId)) }; var links = new List <LinkView> { _linkRenderer.Render(new Link { ActionName = nameof(AccountsController.GetAll), Method = HttpMethod.Get, Rel = RelTypes.Self, QueryString = new Dictionary <string, string>() { { "pageNumber", page.CurrentPageIndex.ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } }) }; if (_userHelper.IsAdmin && libraryId.HasValue) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(AccountsController.InviteUser), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { libraryId = libraryId.Value } })); } if (page.CurrentPageIndex < page.PageCount) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(AccountsController.GetAll), Method = HttpMethod.Get, Rel = RelTypes.Next, QueryString = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex + 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } })); } if (page.PageCount > 1 && page.CurrentPageIndex > 1 && page.CurrentPageIndex <= page.PageCount) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(AccountsController.GetAll), Method = HttpMethod.Get, Rel = RelTypes.Previous, QueryString = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex - 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } })); } page.Links = links; return(page); }
public PageView <BookPageView> Render(PageRendererArgs <BookPageModel, BookPageFilter> source, int libraryId, int bookId) { var page = new PageView <BookPageView>(source.Page.TotalCount, source.Page.PageSize, source.Page.PageNumber) { Data = source.Page.Data?.Select(x => Render(x, libraryId)) }; Dictionary <string, string> query = CreateQueryString(source, page); query.Add("pageNumber", (page.CurrentPageIndex).ToString()); var links = new List <LinkView>(); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(BookPageController.GetPagesByBook), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { libraryId = libraryId, bookId = bookId }, QueryString = query })); if (_userHelper.IsWriter(libraryId) || _userHelper.IsAdmin || _userHelper.IsLibraryAdmin(libraryId)) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(BookPageController.CreatePage), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { libraryId = libraryId, bookId = bookId } })); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(BookPageController.UploadPages), Method = HttpMethod.Post, Rel = RelTypes.MultiCreate, Parameters = new { libraryId = libraryId, bookId = bookId } })); } if (page.CurrentPageIndex < page.PageCount) { var pageQuery = CreateQueryString(source, page); pageQuery.Add("pageNumber", (page.CurrentPageIndex + 1).ToString()); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(BookPageController.GetPagesByBook), Method = HttpMethod.Get, Rel = RelTypes.Next, Parameters = new { libraryId = libraryId, bookId = bookId }, QueryString = pageQuery })); } if (page.PageCount > 1 && page.CurrentPageIndex > 1 && page.CurrentPageIndex <= page.PageCount) { var pageQuery = CreateQueryString(source, page); pageQuery.Add("pageNumber", (page.CurrentPageIndex - 1).ToString()); links.Add(_linkRenderer.Render(new Link { ActionName = nameof(BookPageController.GetPagesByBook), Method = HttpMethod.Get, Rel = RelTypes.Previous, Parameters = new { libraryId = libraryId, bookId = bookId }, QueryString = pageQuery })); } page.Links = links; return(page); }
public PageView <PeriodicalView> Render(PageRendererArgs <PeriodicalModel> source, int libraryId) { var page = new PageView <PeriodicalView>(source.Page.TotalCount, source.Page.PageSize, source.Page.PageNumber) { Data = source.Page.Data?.Select(x => Render(x, libraryId)) }; var links = new List <LinkView> { _linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.GetPeriodicals), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { libraryId = libraryId }, QueryString = new Dictionary <string, string>() { { "pageNumber", page.CurrentPageIndex.ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } }) }; if (_userHelper.IsWriter(libraryId) || _userHelper.IsAdmin || _userHelper.IsLibraryAdmin(libraryId)) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.CreatePeriodical), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { libraryId = libraryId } })); } if (page.CurrentPageIndex < page.PageCount) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.GetPeriodicals), Method = HttpMethod.Get, Rel = RelTypes.Next, Parameters = new { libraryId = libraryId }, QueryString = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex + 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } })); } if (page.PageCount > 1 && page.CurrentPageIndex > 1 && page.CurrentPageIndex <= page.PageCount) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(PeriodicalController.GetPeriodicals), Method = HttpMethod.Get, Rel = RelTypes.Previous, Parameters = new { libraryId = libraryId }, QueryString = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex - 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } })); } page.Links = links; return(page); }
public ListView <ArticleView> Render(IEnumerable <ArticleModel> source, int libraryId, int periodicalId, int volumeNumber, int issueNumber) { var items = source.Select(c => Render(c, libraryId, periodicalId, volumeNumber, issueNumber)).ToList(); var view = new ListView <ArticleView> { Data = items }; view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ArticleController.GetArticlesByIssue), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { libraryId = libraryId, periodicalId = periodicalId, volumeNumber = volumeNumber, issueNumber = issueNumber } })); if (_userHelper.IsWriter(libraryId)) { view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ArticleController.CreateArticle), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { libraryId = libraryId, periodicalId = periodicalId, volumeNumber = volumeNumber, issueNumber = issueNumber } })); } return(view); }
public PageView <LibraryView> Render(PageRendererArgs <LibraryModel> source) { var page = new PageView <LibraryView>(source.Page.TotalCount, source.Page.PageSize, source.Page.PageNumber) { Data = source.Page.Data?.Select(x => Render(x)) }; var queryString = new Dictionary <string, string>() { { "pageNumber", page.CurrentPageIndex.ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } }; if (source.RouteArguments.AccountId.HasValue) { queryString.Add("accountId", source.RouteArguments.AccountId.Value.ToString()); } var links = new List <LinkView> { _linkRenderer.Render(new Link { ActionName = nameof(LibraryController.GetLibraries), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new object(), QueryString = queryString }) }; if (_userHelper.IsAdmin) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(LibraryController.CreateLibrary), Method = HttpMethod.Post, Rel = RelTypes.Create })); } if (page.CurrentPageIndex < page.PageCount) { var queryStringNext = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex + 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } }; if (source.RouteArguments.AccountId.HasValue) { queryStringNext.Add("accountId", source.RouteArguments.AccountId.Value.ToString()); } links.Add(_linkRenderer.Render(new Link { ActionName = nameof(LibraryController.GetLibraries), Method = HttpMethod.Get, Rel = RelTypes.Next, Parameters = new object(), QueryString = queryStringNext })); } if (page.PageCount > 1 && page.CurrentPageIndex > 1 && page.CurrentPageIndex <= page.PageCount) { var queryStringPrev = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex - 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } }; if (source.RouteArguments.AccountId.HasValue) { queryStringPrev.Add("accountId", source.RouteArguments.AccountId.Value.ToString()); } links.Add(_linkRenderer.Render(new Link { ActionName = nameof(LibraryController.GetLibraries), Method = HttpMethod.Get, Rel = RelTypes.Previous, QueryString = queryStringPrev })); } page.Links = links; return(page); }
public ListView <ChapterView> Render(IEnumerable <ChapterModel> source, int libraryId, int bookId) { var items = source.Select(c => Render(c, libraryId, bookId)).ToList(); var view = new ListView <ChapterView> { Data = items }; view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ChapterController.GetChaptersByBook), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { libraryId = libraryId, bookId = bookId } })); if (_userHelper.IsWriter(libraryId) || _userHelper.IsLibraryAdmin(libraryId) || _userHelper.IsAdmin) { view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ChapterController.UpdateChapterSequence), Method = HttpMethod.Post, Rel = RelTypes.ChapterSequence, Parameters = new { libraryId = libraryId, bookId = bookId } })); view.Links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ChapterController.CreateChapter), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { libraryId = libraryId, bookId = bookId } })); } return(view); }
public PageView <CorrectionView> Render(PageRendererArgs <CorrectionModel> source, string language, string profile) { var page = new PageView <CorrectionView>(source.Page.TotalCount, source.Page.PageSize, source.Page.PageNumber) { Data = source.Page.Data?.Select(x => Render(x)) }; var links = new List <LinkView> { _linkRenderer.Render(new Link { ActionName = nameof(ToolController.GetCorrections), Method = HttpMethod.Get, Rel = RelTypes.Self, Parameters = new { language = language, profile = profile }, QueryString = new Dictionary <string, string>() { { "pageNumber", page.CurrentPageIndex.ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } }) }; if (_userHelper.IsAdmin) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ToolController.AddCorrection), Method = HttpMethod.Post, Rel = RelTypes.Create, Parameters = new { language = language, profile = profile } })); } if (page.CurrentPageIndex < page.PageCount) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ToolController.GetCorrections), Method = HttpMethod.Get, Rel = RelTypes.Next, Parameters = new { language = language, profile = profile }, QueryString = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex + 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } })); } if (page.PageCount > 1 && page.CurrentPageIndex > 1 && page.CurrentPageIndex <= page.PageCount) { links.Add(_linkRenderer.Render(new Link { ActionName = nameof(ToolController.GetCorrections), Method = HttpMethod.Get, Rel = RelTypes.Previous, Parameters = new { language = language, profile = profile }, QueryString = new Dictionary <string, string>() { { "pageNumber", (page.CurrentPageIndex - 1).ToString() }, { "pageSize", page.PageSize.ToString() }, { "query", source.RouteArguments.Query } } })); } page.Links = links; return(page); }