public IEnumerable <Action> Get(IEnumerablePage <IResponseViewModel> page)
 {
     return(new[]
     {
         GetAddAction(page.GetModelType())
     });
 }
 private Link GetSelfLink(IEnumerablePage <IResponseViewModel> page)
 {
     return(new Link
     {
         Rel = new[] { "self" },
         Href = GetPageHref(page, page.PageIndex, page.PageSize)
     });
 }
 private Link GetNextLink(IEnumerablePage <IResponseViewModel> page)
 {
     return(new Link
     {
         Rel = new[] { "next" },
         Href = GetPageHref(page, page.PageIndex + 1, page.PageSize)
     });
 }
示例#4
0
 public IEnumerablePage <IResponseViewModel> Convert(IEnumerablePage <IEntityModel> page)
 {
     return(new EnumerablePage <IResponseViewModel>(
                page.PageCount,
                page.PageIndex,
                page.PageSize,
                page.Items.Select(Convert)));
 }
 public IDictionary <string, object> Get(IEnumerablePage <IResponseViewModel> page)
 {
     return(new Dictionary <string, object>
     {
         { nameof(page.PageCount), page.PageCount },
         { nameof(page.PageIndex), page.PageIndex },
         { nameof(page.PageSize), page.PageSize }
     });
 }
示例#6
0
 public static IEnumerablePage <TModel> ToModelsPage <TModel, TViewModel>(this IEnumerablePage <TViewModel> page)
     where TViewModel : class, IRequestViewModel <TModel>
     where TModel : class, IModel, new()
 {
     return(new EnumerablePage <TModel>(
                page.PageCount,
                page.PageIndex,
                page.PageSize,
                page.Items.Select(i => i.ToModel <TViewModel, TModel>())));
 }
        private string GetPageHref(IEnumerablePage <IResponseViewModel> page, int pageIndex, int pageSize)
        {
            var query = new Dictionary <string, object>
            {
                { "pageIndex", pageIndex },
                { "pageSize", pageSize }
            };

            return(_apiHelper.GetUri(page, query));
        }
示例#8
0
 private Entity CreateEntity(IEnumerablePage <IResponseViewModel> page)
 {
     return(new Entity
     {
         Actions = _actionsGenerator.Get(page),
         Class = _classGenerator.Get(page),
         Links = _linksGenerator.Get(page),
         Properties = _propertiesGenerator.Get(page),
         Entities = _subEntitiesGenerator.Get(page),
         Title = _titleGenerator.Get(page)
     });
 }
        public IEnumerable <Link> Get(IEnumerablePage <IResponseViewModel> page)
        {
            var links = new List <Link>
            {
                GetSelfLink(page)
            };

            if (page.PageIndex > 1)
            {
                links.Add(GetPrevLink(page));
            }

            if (page.PageIndex < page.PageCount)
            {
                links.Add(GetNextLink(page));
            }

            return(links.ToArray());
        }
示例#10
0
 public static Type GetModelType(this IEnumerablePage <IResponseViewModel> page)
 {
     return(page.GetType().GetGenericArguments().First().GetModelType());
 }
 public IEnumerable <string> Get(IEnumerablePage <IResponseViewModel> page)
 {
     return(Get(page.GetModelType()).Concat(new[] { "page" }));
 }
示例#12
0
 public IEnumerable <SubEntity> Get(IEnumerablePage <IResponseViewModel> page)
 {
     return(page.Items.SelectMany(m => GetParentSubEntity(m, new[] { "item" })));
 }
示例#13
0
 public string GetUri(IEnumerablePage <IResponseViewModel> page, IDictionary <string, object> query = null)
 {
     return(query == null || query.Count < 1
         ? GetUriBase(page.GetModelType()).ToLower()
         : $"{GetUriBase(page.GetModelType())}?{GetQueryString(query)})".ToLower());
 }
 public string Get(IEnumerablePage <IResponseViewModel> page)
 {
     return(Get(page.GetModelType()));
 }