private OperationWrapper ValidateCanAdvertiseServiceAction(ResourceType resourceType, ServiceAction serviceAction, HashSet<string> existingActionNames)
 {
     if (serviceAction == null)
     {
         return null;
     }
     if (!existingActionNames.Add(serviceAction.Name))
     {
         throw new DataServiceException(500, System.Data.Services.Strings.DataServiceActionProviderWrapper_DuplicateAction(serviceAction.Name));
     }
     ServiceActionParameter bindingParameter = serviceAction.BindingParameter;
     if (bindingParameter == null)
     {
         throw new DataServiceException(500, System.Data.Services.Strings.DataServiceActionProviderWrapper_ServiceActionBindingParameterNull(serviceAction.Name));
     }
     ResourceType parameterType = bindingParameter.ParameterType;
     if (!parameterType.IsAssignableFrom(resourceType))
     {
         throw new DataServiceException(500, System.Data.Services.Strings.DataServiceActionProviderWrapper_ResourceTypeMustBeAssignableToBindingParameterResourceType(serviceAction.Name, parameterType.FullName, resourceType.FullName));
     }
     return this.dataService.Provider.ValidateOperation(serviceAction);
 }
 internal ServiceActionRights GetServiceActionRights(ServiceAction serviceAction)
 {
     ServiceActionRights rightsForUnspecifiedServiceAction;
     if (!this.serviceActionRights.TryGetValue(serviceAction.Name, out rightsForUnspecifiedServiceAction))
     {
         rightsForUnspecifiedServiceAction = this.rightsForUnspecifiedServiceAction;
     }
     return rightsForUnspecifiedServiceAction;
 }
Beispiel #3
0
        private OperationWrapper ValidateCanAdvertiseServiceAction(ResourceType resourceType, ServiceAction serviceAction, HashSet <string> existingActionNames)
        {
            if (serviceAction == null)
            {
                return(null);
            }
            if (!existingActionNames.Add(serviceAction.Name))
            {
                throw new DataServiceException(500, System.Data.Services.Strings.DataServiceActionProviderWrapper_DuplicateAction(serviceAction.Name));
            }
            ServiceActionParameter bindingParameter = serviceAction.BindingParameter;

            if (bindingParameter == null)
            {
                throw new DataServiceException(500, System.Data.Services.Strings.DataServiceActionProviderWrapper_ServiceActionBindingParameterNull(serviceAction.Name));
            }
            ResourceType parameterType = bindingParameter.ParameterType;

            if (!parameterType.IsAssignableFrom(resourceType))
            {
                throw new DataServiceException(500, System.Data.Services.Strings.DataServiceActionProviderWrapper_ResourceTypeMustBeAssignableToBindingParameterResourceType(serviceAction.Name, parameterType.FullName, resourceType.FullName));
            }
            return(this.dataService.Provider.ValidateOperation(serviceAction));
        }