Exemplo n.º 1
0
 /// <summary>
 /// Generates either the default stream link or a named stream link based on whether the given stream name is null
 /// </summary>
 /// <param name="generator">The generator to extend</param>
 /// <param name="instance">The entity instance</param>
 /// <param name="streamName">The stream's name or null to indicate the default stream</param>
 /// <returns>The convention-based stream edit link</returns>
 public static string GenerateStreamEditLink(this IODataConventionBasedLinkGenerator generator, QueryStructuralValue instance, string streamName)
 {
     if (streamName == null)
     {
         return(generator.GenerateDefaultStreamEditLink(instance));
     }
     else
     {
         return(generator.GenerateNamedStreamEditLink(instance, streamName));
     }
 }
Exemplo n.º 2
0
        private static string EnsureIsEntityAndCall(this IODataConventionBasedLinkGenerator generator, QueryStructuralValue instance, Func <EntitySet, EntityType, IEnumerable <NamedValue>, string> callback)
        {
            ExceptionUtilities.CheckArgumentNotNull(generator, "generator");
            ExceptionUtilities.CheckArgumentNotNull(instance, "instance");
            ExceptionUtilities.CheckArgumentNotNull(callback, "callback");

            var queryEntityType = instance.Type as QueryEntityType;

            ExceptionUtilities.CheckObjectNotNull(queryEntityType, "Entity's type was not a query entity type. Type was: {0}", instance.Type);

            return(callback(queryEntityType.EntitySet, queryEntityType.EntityType, instance.GetKeyPropertyValues()));
        }
Exemplo n.º 3
0
 /// <summary>
 /// Generates the conventional edit link for the given named stream: http://serviceRoot/SetName(keyValues)/StreamName
 /// </summary>
 /// <param name="generator">The generator to extend</param>
 /// <param name="instance">The entity instance</param>
 /// <param name="streamName">The stream's name</param>
 /// <returns>The convention-based stream edit link</returns>
 public static string GenerateNamedStreamEditLink(this IODataConventionBasedLinkGenerator generator, QueryStructuralValue instance, string streamName)
 {
     return(generator.EnsureIsEntityAndCall(instance, (entitySet, entityType, keys) => generator.GenerateNamedStreamEditLink(entitySet, entityType, keys, streamName)));
 }
Exemplo n.º 4
0
 /// <summary>
 /// Generates the conventional stream edit link for the given entity: http://serviceRoot/SetName(keyValues)/$value
 /// </summary>
 /// <param name="generator">The generator to extend</param>
 /// <param name="instance">The entity instance</param>
 /// <returns>The convention-based stream edit link</returns>
 public static string GenerateDefaultStreamEditLink(this IODataConventionBasedLinkGenerator generator, QueryStructuralValue instance)
 {
     return(generator.EnsureIsEntityAndCall(instance, generator.GenerateDefaultStreamEditLink));
 }