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; }
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)); }