internal static string GetAllowedMethods(DataServiceConfiguration configuration, ResourceSetWrapper container, RequestDescription description)
        {
            if (container == null)
            {
                return(null);
            }
            StringBuilder   builder           = new StringBuilder();
            EntitySetRights resourceSetRights = configuration.GetResourceSetRights(container.ResourceSet);

            if (description.IsSingleResult)
            {
                AppendRight(resourceSetRights, EntitySetRights.ReadSingle, "GET", builder);
                AppendRight(resourceSetRights, EntitySetRights.WriteReplace, "PUT", builder);
                if (description.TargetKind != RequestTargetKind.MediaResource)
                {
                    AppendRight(resourceSetRights, EntitySetRights.WriteMerge, "MERGE", builder);
                    AppendRight(resourceSetRights, EntitySetRights.WriteMerge, "PATCH", builder);
                    AppendRight(resourceSetRights, EntitySetRights.WriteDelete, "DELETE", builder);
                }
            }
            else
            {
                AppendRight(resourceSetRights, EntitySetRights.ReadMultiple, "GET", builder);
                AppendRight(resourceSetRights, EntitySetRights.WriteAppend, "POST", builder);
            }
            return(builder.ToString());
        }
Esempio n. 2
0
 private void ApplyConfiguration(DataServiceConfiguration configuration)
 {
     this.rights = configuration.GetResourceSetRights(this.resourceSet);
     this.pageSize = configuration.GetResourceSetPageSize(this.resourceSet);
     if (this.pageSize < 0)
     {
         throw new DataServiceException(500, System.Data.Services.Strings.DataService_SDP_PageSizeMustbeNonNegative(this.pageSize, this.Name));
     }
     this.readAuthorizationMethods = configuration.GetReadAuthorizationMethods(this.resourceSet);
     this.writeAuthorizationMethods = configuration.GetWriteAuthorizationMethods(this.resourceSet);
 }
Esempio n. 3
0
 internal static string GetAllowedMethods(DataServiceConfiguration configuration, ResourceSetWrapper container, RequestDescription description)
 {
     if (container == null)
     {
         return null;
     }
     StringBuilder builder = new StringBuilder();
     EntitySetRights resourceSetRights = configuration.GetResourceSetRights(container.ResourceSet);
     if (description.IsSingleResult)
     {
         AppendRight(resourceSetRights, EntitySetRights.ReadSingle, "GET", builder);
         AppendRight(resourceSetRights, EntitySetRights.WriteReplace, "PUT", builder);
         if (description.TargetKind != RequestTargetKind.MediaResource)
         {
             AppendRight(resourceSetRights, EntitySetRights.WriteMerge, "MERGE", builder);
             AppendRight(resourceSetRights, EntitySetRights.WriteMerge, "PATCH", builder);
             AppendRight(resourceSetRights, EntitySetRights.WriteDelete, "DELETE", builder);
         }
     }
     else
     {
         AppendRight(resourceSetRights, EntitySetRights.ReadMultiple, "GET", builder);
         AppendRight(resourceSetRights, EntitySetRights.WriteAppend, "POST", builder);
     }
     return builder.ToString();
 }
Esempio n. 4
0
        /// <summary>
        /// Gets a string representation of allowed methods on the container (with the specified target cardinality),
        /// suitable for an 'Allow' header.
        /// </summary>
        /// <param name="configuration">configuration object which has the data</param>
        /// <param name="container">Targetted container, possibly null.</param>
        /// <param name="description">Description with target.</param>
        /// <returns>A value for an 'Allow' header; null if <paramref name="container"/> is null.</returns>
        internal static string GetAllowedMethods(DataServiceConfiguration configuration, ResourceSetWrapper container, RequestDescription description)
        {
            if (container == null)
            {
                return null;
            }
            else
            {
                System.Text.StringBuilder result = new System.Text.StringBuilder();
                EntitySetRights rights = configuration.GetResourceSetRights(container.ResourceSet);
                if (description.IsSingleResult)
                {
                    AppendRight(rights, EntitySetRights.ReadSingle, XmlConstants.HttpMethodGet, result);
                    AppendRight(rights, EntitySetRights.WriteReplace, XmlConstants.HttpMethodPut, result);
                    if (description.TargetKind != RequestTargetKind.MediaResource)
                    {
                        AppendRight(rights, EntitySetRights.WriteMerge, XmlConstants.HttpMethodMerge, result);
                        AppendRight(rights, EntitySetRights.WriteDelete, XmlConstants.HttpMethodDelete, result);
                    }
                }
                else
                {
                    AppendRight(rights, EntitySetRights.ReadMultiple, XmlConstants.HttpMethodGet, result);
                    AppendRight(rights, EntitySetRights.WriteAppend, XmlConstants.HttpMethodPost, result);
                }

                return result.ToString();
            }
        }