public void SetPendingApproval(string id, string decision, ApprovalReason reason) { try { ResourceManagementWebServicev2.ValidateID(id); ResourceObject approval = Global.Client.GetResourceByKey(ObjectTypeNames.Approval, AttributeNames.ObjectID, id); if (string.Equals(decision, "approve", StringComparison.OrdinalIgnoreCase)) { Global.Client.Approve(approval, true, reason?.Reason); } else if (string.Equals(decision, "reject", StringComparison.OrdinalIgnoreCase)) { Global.Client.Approve(approval, false, reason?.Reason); } else { throw new ArgumentException($"The value '{decision}' is not supported. Allowed values are 'Approve' or 'Reject'"); } } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }
public Stream GetResourceByID(string id) { try { ResourceManagementWebServicev2.ValidateID(id); CultureInfo locale = WebResponseHelper.GetLocale(); bool includePermissionHints = WebResponseHelper.IsParameterSet(ParameterNames.IncludePermissionHints); ResourceObject resource = Global.Client.GetResource(id, locale, includePermissionHints); if (resource == null) { throw new ResourceNotFoundException(); } return(WebResponseHelper.GetResponse(resource, true)); } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }
public void RemoveAttributeValue(string id, string attribute, string value) { try { ResourceManagementSchema.ValidateAttributeName(attribute); ResourceManagementWebServicev2.ValidateID(id); CultureInfo locale = WebResponseHelper.GetLocale(); ResourceObject resource; if (ResourceManagementSchema.IsAttributeMultivalued(attribute)) { resource = Global.Client.GetResource(id, locale); } else { resource = Global.Client.GetResource(id, new[] { attribute }, locale); } if (resource == null) { throw new ResourceNotFoundException(); } if (!resource.Attributes.ContainsAttribute(attribute)) { WebResponseHelper.ThrowAttributeNotFoundException(attribute); } resource.Attributes[attribute].RemoveValue(value, true); Global.Client.SaveResource(resource, locale); WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.NoContent; } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }
public Stream GetRequestParameters(string id) { try { ResourceManagementWebServicev2.ValidateID(id); ResourceObject request = Global.Client.GetResourceByKey(ObjectTypeNames.Request, AttributeNames.ObjectID, id, new[] { AttributeNames.RequestParameter }); if (request == null) { throw new WebFaultException(HttpStatusCode.NotFound); } if (!request.Attributes.ContainsAttribute(AttributeNames.RequestParameter) || request.Attributes[AttributeNames.RequestParameter].IsNull) { return(new MemoryStream()); } IList <string> parameters = request.Attributes[AttributeNames.RequestParameter].StringValues; List <RequestParameter> requestParameters = new List <RequestParameter>(); foreach (string param in parameters) { requestParameters.Add(XmlDeserializeFromString <RequestParameter>(param)); } return(WebResponseHelper.GetResponse(requestParameters, false)); } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }
public void UpdateResource(string id, ResourceUpdateRequest request) { try { ResourceManagementWebServicev2.ValidateID(id); CultureInfo locale = WebResponseHelper.GetLocale(); ResourceObject resource = Global.Client.GetResource(id, locale); foreach (AttributeValueUpdate kvp in request.Attributes) { if (kvp.Value.Length > 1) { resource.Attributes[kvp.Name].SetValue(kvp.Value); } else if (kvp.Value.Length == 1) { resource.Attributes[kvp.Name].SetValue(kvp.Value[0]); } else { resource.Attributes[kvp.Name].RemoveValues(); } } Global.Client.SaveResource(resource, locale); } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }
public void DeleteResourceByID(string id) { try { ResourceManagementWebServicev2.ValidateID(id); Global.Client.DeleteResource(id); } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }
public Stream GetResourceAttributeByID(string id, string attribute) { try { ResourceManagementSchema.ValidateAttributeName(attribute); ResourceManagementWebServicev2.ValidateID(id); CultureInfo locale = WebResponseHelper.GetLocale(); ResourceObject resource = Global.Client.GetResource(id, new[] { attribute }, locale); if (resource == null) { throw new ResourceNotFoundException(); } if (!resource.Attributes.ContainsAttribute(attribute)) { WebResponseHelper.ThrowAttributeNotFoundException(attribute); } List <string> result = resource.Attributes[attribute].ToStringValues().ToList(); return(WebResponseHelper.GetResponse(result, true)); } catch (WebFaultException) { throw; } catch (WebFaultException <Error> ) { throw; } catch (Exception ex) { ResourceManagementWebServicev2.HandleException(ex); throw; } }