Exemple #1
0
 public static LinksPolicyBuilder <TResource> RequiresPagingLinks <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                              string currentId,
                                                                              string nextId,
                                                                              string previousId)
 {
     return(builder.RequiresPagingLinks(currentId, nextId, previousId, condition: null));
 }
Exemple #2
0
 public static LinksPolicyBuilder <TResource> RequireSelfLink <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                          string id)
 {
     return(builder.Requires(new SelfLinkRequirement <TResource>()
     {
         Id = id
     }));
 }
Exemple #3
0
        public static LinksPolicyBuilder <TResource> RequiresPagingLinks <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                                     string currentId,
                                                                                     string nextId,
                                                                                     string previousId,
                                                                                     Action <LinkConditionBuilder <TResource> > configureCondition)
        {
            var conditionBuilder = new LinkConditionBuilder <TResource>();

            configureCondition?.Invoke(conditionBuilder);
            return(builder.RequiresPagingLinks(currentId, nextId, previousId, condition: conditionBuilder.Build()));
        }
Exemple #4
0
        public static LinksPolicyBuilder <TResource> RequireRoutedLink <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                                   string id,
                                                                                   string routeName,
                                                                                   Func <TResource, object> getValues,
                                                                                   Action <LinkConditionBuilder <TResource> > configureCondition)
        {
            var conditionBuilder = new LinkConditionBuilder <TResource>();

            configureCondition?.Invoke(conditionBuilder);
            return(builder.RequireRoutedLink(id, routeName, getValues: getValues, condition: conditionBuilder.Build()));
        }
Exemple #5
0
        public void AddPolicy <TResource>(string name, Action <LinksPolicyBuilder <TResource> > configurePolicy) //where TResource : class
        {
            if (configurePolicy == null)
            {
                throw new ArgumentNullException(nameof(configurePolicy));
            }

            var builder = new LinksPolicyBuilder <TResource>();

            configurePolicy(builder);

            AddPolicy <TResource>(name, builder.Build());
        }
        public void AddPolicy <TResource>(string name, Action <LinksPolicyBuilder <TResource> > configurePolicy) //where TResource : class
        {
            if (String.IsNullOrEmpty(name))
            {
                throw new ArgumentException("Policy name cannot be null", nameof(name));
            }
            if (configurePolicy == null)
            {
                throw new ArgumentNullException(nameof(configurePolicy));
            }

            var builder = new LinksPolicyBuilder <TResource>();

            configurePolicy(builder);
            var policyName = $"{name}:{typeof(TResource).FullName}";

            PolicyMap[policyName] = builder.Build();
        }
Exemple #7
0
        public static LinksPolicyBuilder <TResource> RequireRoutedLink <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                                   string id,
                                                                                   string routeName,
                                                                                   Func <TResource, object> getValues,
                                                                                   LinkCondition <TResource> condition = null)
        {
            Func <TResource, RouteValueDictionary> getRouteValues = r => new RouteValueDictionary();

            if (getValues != null)
            {
                getRouteValues = r => new RouteValueDictionary(getValues(r));
            }
            var req = new RouteLinkRequirement <TResource>()
            {
                Id             = id,
                RouteName      = routeName,
                GetRouteValues = getRouteValues,
                Condition      = condition ?? LinkCondition <TResource> .None
            };

            return(builder.Requires(req));
        }
Exemple #8
0
        private static LinksPolicyBuilder <TResource> RequiresPagingLinks <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                                      string currentId,
                                                                                      string nextId,
                                                                                      string previousId,
                                                                                      LinkCondition <TResource> condition)
        {
            var req = new PagingLinksRequirement <TResource>()
            {
                CurrentId  = currentId,
                NextId     = nextId,
                PreviousId = previousId,
                Condition  = condition ?? LinkCondition <TResource> .None
            };

            return(builder.Requires(req));
        }
Exemple #9
0
 public static LinksPolicyBuilder <TResource> RequiresPagingLinks <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                              Action <LinkConditionBuilder <TResource> > configureCondition)
 {
     return(builder.RequiresPagingLinks("currentPage", "nextPage", "previousPage", configureCondition));
 }
Exemple #10
0
 public static LinksPolicyBuilder <TResource> RequiresPagingLinks <TResource>(this LinksPolicyBuilder <TResource> builder)
 {
     return(builder.RequiresPagingLinks("currentPage", "nextPage", "previousPage"));
 }
Exemple #11
0
 public static LinksPolicyBuilder <TResource> RequireRoutedLink <TResource>(this LinksPolicyBuilder <TResource> builder,
                                                                            string id,
                                                                            string routeName)
 {
     return(builder.RequireRoutedLink(id, routeName, null, condition: null));
 }
Exemple #12
0
 public static LinksPolicyBuilder <TResource> RequireSelfLink <TResource>(this LinksPolicyBuilder <TResource> builder)
 {
     return(builder.RequireSelfLink("self"));
 }