/// <summary> /// Updates the application's configuration in HealthVault. /// </summary> /// /// <param name="connection"> /// The connection to use to make the update. /// </param> /// /// <param name="applicationInfo"> /// The <see cref="ApplicationInfo"/> to update. /// </param> /// /// <remarks> /// This method makes a remote call to the HealthVault service. /// The calling application in the <paramref name="connection"/> must be the same as /// the application specified by this ApplicationInfo instance or its master application. /// Note, this update will replace all configuration elements for the application. It is /// advised that <see cref="ApplicationProvisioning.Provisioner.GetApplication"/> is /// called to retrieve the existing application configuration before changing values and /// calling Update. /// </remarks> /// /// <exception cref="ArgumentNullException"> /// If <paramref name="connection"/> is <b>null</b>. /// </exception> /// /// <exception cref="HealthServiceException"> /// The HealthVault service returns an error. /// </exception> /// public virtual void UpdateChildApplication( ApplicationConnection connection, ApplicationInfo applicationInfo) { Validator.ThrowIfArgumentNull(connection, "connection", "ProvisionerNullConnection"); Validator.ThrowInvalidIf(applicationInfo.Id == Guid.Empty, "ProvisionerEmptyAppId"); HealthServiceRequest request = new HealthServiceRequest(connection, "UpdateApplication", 2); request.Parameters = applicationInfo.GetRequestParameters(applicationInfo.Id); request.Execute(); }
/// <summary> /// Adds a HealthVault application instance for a "child" application of the calling /// application. /// </summary> /// /// <param name="connection"> /// The connection to use to add the application. /// </param> /// /// <param name="applicationConfigurationInformation"> /// Configuration information about the application being provisioned. /// </param> /// /// <returns> /// The new application identifier for the new application provided by HealthVault. /// </returns> /// /// <exception cref="ArgumentNullException"> /// If <paramref name="connection"/> or <paramref name="applicationConfigurationInformation"/> /// is <b>null</b>. /// </exception> /// /// <exception cref="ArgumentException"> /// If <see cref="ApplicationInfo.Name"/>, <see cref="ApplicationInfo.PublicKeys"/>, /// <see cref="ApplicationInfo.OfflineBaseAuthorizations"/>, <see cref="ApplicationInfo.Description"/>, /// <see cref="ApplicationInfo.AuthorizationReason"/>, or <see cref="ApplicationInfo.LargeLogo"/> /// is not specified. /// </exception> /// /// <exception cref="HealthServiceException"> /// If there is an error when the HealthVault service is called. /// </exception> /// public virtual Guid AddChildApplication( OfflineWebApplicationConnection connection, ApplicationInfo applicationConfigurationInformation) { Validator.ThrowIfArgumentNull(connection, "connection", "ProvisionerNullConnection"); Validator.ThrowIfArgumentNull( applicationConfigurationInformation, "applicationConfigurationInformation", "ProvisionerNullApplicationInfo"); Validator.ThrowIfStringNullOrEmpty(applicationConfigurationInformation.Name, "applicationConfigurationInformation"); Validator.ThrowArgumentExceptionIf( applicationConfigurationInformation.PublicKeys.Count < 1, "applicationConfigurationInformation", "AddApplicationPublicKeysMandatory"); Validator.ThrowArgumentExceptionIf( applicationConfigurationInformation.OfflineBaseAuthorizations.Count < 1, "applicationConfigurationInformation", "AddApplicationOfflineBaseAuthorizationsMandatory"); Validator.ThrowIfStringNullOrEmpty( applicationConfigurationInformation.Description, "applicationConfigurationInformation.Description"); Validator.ThrowIfStringNullOrEmpty( applicationConfigurationInformation.AuthorizationReason, "applicationConfigurationInformation.AuthorizationReason"); Validator.ThrowIfArgumentNull( applicationConfigurationInformation.LargeLogo, "applicationConfigurationInformation.LargeLogo", "AddApplicationLargeLogoMandatory"); HealthServiceRequest request = new HealthServiceRequest(connection, "AddApplication", 2); request.Parameters = applicationConfigurationInformation.GetRequestParameters(Guid.Empty); request.Execute(); XPathExpression infoPath = SDKHelper.GetInfoXPathExpressionForMethod( request.Response.InfoNavigator, "AddApplication"); XPathNavigator infoNav = request.Response.InfoNavigator.SelectSingleNode(infoPath); return new Guid(infoNav.SelectSingleNode("id").Value); }