/// <summary> /// Creates a sample onboarding request. /// </summary> /// <returns></returns> private OnboardingRequest CreateDefaultOnboardingRequest() { // 1. Create the onboarding request with participant information var onboardingRequest = new OnboardingRequest(); onboardingRequest.FirstName = "John"; onboardingRequest.LastName = "Doe"; onboardingRequest.FriendlyName = "John"; onboardingRequest.ApplicationPatientId = "johndoe-" + Guid.NewGuid(); // Must be unique onboardingRequest.Birthday = new DateTime(1955, 10, 28); // This is a workaround for bug#48405. TODO: Remove once S61 is available. onboardingRequest.Height = 155; //In cm onboardingRequest.Weight = 50000; //In g // 1a. Specify a patient/provider secret question & answer to validate the identity of the invitee onboardingRequest.SecretQuestion = "What color is the sky?"; onboardingRequest.SecretAnswer = "The sky is blue"; // Must be at least six characters return(onboardingRequest); }
private void ProcessOnboarding(OnboardingRequest packet) { _clientCryptoService.DecodeEcdhTuple(packet.EcdhTuple, packet.TransactionPublicKey, out byte[] blindingFactor, out byte[] assetId, out byte[] issuer, out byte[] payload); string sessionKey = payload.ToHexString(); if (_dataAccessService.GetServiceProviderRegistrationId(_accountId, packet.AssetCommitment, out ulong registrationId)) { _idenitiesHubContext.Clients.Group(sessionKey).SendAsync("PushUserAlreadyRegistered", new ServiceProviderRegistrationDto { ServiceProviderRegistrationId = registrationId.ToString(CultureInfo.InvariantCulture), Commitment = packet.AssetCommitment.ToHexString() }); } else { AttributeType attributeType = _assetsService.GetAttributeType(assetId); bool isEligibilityCorrect = CheckEligibilityProofs(packet.AssetCommitment, packet.EligibilityProof, issuer); if (!isEligibilityCorrect) { _idenitiesHubContext.Clients.Group(sessionKey).SendAsync("PushSpAuthorizationFailed", new { Code = 2, Message = "Eligibility proofs were wrong" }).Wait(); return; } IEnumerable <SpIdenitityValidation> spIdenitityValidations = _dataAccessService.GetSpIdenitityValidations(_accountId); if (!CheckSpIdentityValidations(packet.AssetCommitment, packet.AssociatedProofs, spIdenitityValidations, sessionKey)) { return; } ulong id = _dataAccessService.AddServiceProviderRegistration(_accountId, packet.AssetCommitment); _idenitiesHubContext.Clients.Group(_accountId.ToString(CultureInfo.InvariantCulture)).SendAsync("PushRegistration", new ServiceProviderRegistrationDto { ServiceProviderRegistrationId = id.ToString(CultureInfo.InvariantCulture), Commitment = packet.AssetCommitment.ToHexString() }); _idenitiesHubContext.Clients.Group(sessionKey).SendAsync("PushUserRegistration", new ServiceProviderRegistrationDto { ServiceProviderRegistrationId = id.ToString(CultureInfo.InvariantCulture), Commitment = packet.AssetCommitment.ToHexString() }); } }
/// <summary> /// Set up initial user, org and bucket Post an onboarding request to set up initial user, org and bucket. /// </summary> /// <exception cref="InfluxDB.Client.Api.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="onboardingRequest">Source to create</param> /// <param name="zapTraceSpan">OpenTracing span context (optional)</param> /// <returns>Task of IRestResponse (OnboardingResponse)</returns> public async System.Threading.Tasks.Task <IRestResponse> PostSetupAsyncWithIRestResponse(OnboardingRequest onboardingRequest, string zapTraceSpan = null) { // verify the required parameter 'onboardingRequest' is set if (onboardingRequest == null) { throw new ApiException(400, "Missing required parameter 'onboardingRequest' when calling SetupService->PostSetup"); } var localVarPath = "/api/v2/setup"; var localVarPathParams = new Dictionary <String, String>(); var localVarQueryParams = new List <KeyValuePair <String, String> >(); var localVarHeaderParams = new Dictionary <String, String>(this.Configuration.DefaultHeader); var localVarFormParams = new Dictionary <String, String>(); var localVarFileParams = new Dictionary <String, FileParameter>(); Object localVarPostBody = null; // to determine the Content-Type header String[] localVarHttpContentTypes = new String[] { "application/json" }; String localVarHttpContentType = this.Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); if (zapTraceSpan != null) { localVarHeaderParams.Add("Zap-Trace-Span", this.Configuration.ApiClient.ParameterToString(zapTraceSpan)); // header parameter } if (onboardingRequest != null && onboardingRequest.GetType() != typeof(byte[])) { localVarPostBody = this.Configuration.ApiClient.Serialize(onboardingRequest); // http body (model) parameter } else { localVarPostBody = onboardingRequest; // byte array } // to determine the Accept header String[] localVarHttpHeaderAccepts = new String[] { "application/json" }; String localVarHttpHeaderAccept = this.Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); if (localVarHttpHeaderAccept != null && !localVarHeaderParams.ContainsKey("Accept")) { localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); } // make the HTTP request IRestResponse localVarResponse = (IRestResponse)await this.Configuration.ApiClient.CallApiAsync(localVarPath, Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarPathParams, localVarHttpContentType); if (ExceptionFactory != null) { Exception exception = ExceptionFactory("PostSetup", localVarResponse); if (exception != null) { throw exception; } } return(localVarResponse); }
/// <summary> /// Set up initial user, org and bucket Post an onboarding request to set up initial user, org and bucket. /// </summary> /// <exception cref="InfluxDB.Client.Api.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="onboardingRequest">Source to create</param> /// <param name="zapTraceSpan">OpenTracing span context (optional)</param> /// <returns>Task of ApiResponse (OnboardingResponse)</returns> public async System.Threading.Tasks.Task <ApiResponse <OnboardingResponse> > PostSetupAsyncWithHttpInfo(OnboardingRequest onboardingRequest, string zapTraceSpan = null) { // make the HTTP request IRestResponse localVarResponse = await PostSetupAsyncWithIRestResponse(onboardingRequest, zapTraceSpan); int localVarStatusCode = (int)localVarResponse.StatusCode; if (ExceptionFactory != null) { Exception exception = ExceptionFactory("PostSetup", localVarResponse); if (exception != null) { throw exception; } } return(new ApiResponse <OnboardingResponse>(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()), (OnboardingResponse)this.Configuration.ApiClient.Deserialize(localVarResponse, typeof(OnboardingResponse)))); }
/// <summary> /// Set up initial user, org and bucket Post an onboarding request to set up initial user, org and bucket. /// </summary> /// <exception cref="InfluxDB.Client.Api.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="onboardingRequest">Source to create</param> /// <param name="zapTraceSpan">OpenTracing span context (optional)</param> /// <returns>Task of OnboardingResponse</returns> public async System.Threading.Tasks.Task <OnboardingResponse> PostSetupAsync(OnboardingRequest onboardingRequest, string zapTraceSpan = null) { ApiResponse <OnboardingResponse> localVarResponse = await PostSetupAsyncWithHttpInfo(onboardingRequest, zapTraceSpan); return(localVarResponse.Data); }
/// <summary> /// Set up initial user, org and bucket Post an onboarding request to set up initial user, org and bucket. /// </summary> /// <exception cref="InfluxDB.Client.Api.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="onboardingRequest">Source to create</param> /// <param name="zapTraceSpan">OpenTracing span context (optional)</param> /// <returns>OnboardingResponse</returns> public OnboardingResponse PostSetup(OnboardingRequest onboardingRequest, string zapTraceSpan = null) { ApiResponse <OnboardingResponse> localVarResponse = PostSetupWithHttpInfo(onboardingRequest, zapTraceSpan); return(localVarResponse.Data); }
/// <summary> /// Post onboarding request, to setup initial user, org and bucket. /// </summary> /// <param name="onboarding">to setup defaults</param> /// <exception cref="HttpException">With status code 422 when an onboarding has already been completed</exception> /// <returns>defaults for first run</returns> public async Task <OnboardingResponse> OnboardingAsync(OnboardingRequest onboarding) { Arguments.CheckNotNull(onboarding, nameof(onboarding)); return(await _setupService.PostSetupAsync(onboarding)); }
/// <summary> /// Onboard a user /// </summary> /// <param name='onboardingRequest'> /// The meta data associated with an onboarding request /// </param> /// <param name='customHeaders'> /// Headers that will be added to request. /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> /// <exception cref="ErrorResponseException"> /// Thrown when the operation returned an invalid status code /// </exception> /// <exception cref="SerializationException"> /// Thrown when unable to deserialize the response /// </exception> /// <exception cref="ValidationException"> /// Thrown when a required parameter is null /// </exception> /// <exception cref="System.ArgumentNullException"> /// Thrown when a required parameter is null /// </exception> /// <return> /// A response object containing the response body and response headers. /// </return> public async Task <HttpOperationResponse <OnboardingResponse> > GenerateInviteCodeWithHttpMessagesAsync(OnboardingRequest onboardingRequest, Dictionary <string, List <string> > customHeaders = null, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { if (onboardingRequest == null) { throw new ValidationException(ValidationRules.CannotBeNull, "onboardingRequest"); } // Tracing bool _shouldTrace = ServiceClientTracing.IsEnabled; string _invocationId = null; if (_shouldTrace) { _invocationId = ServiceClientTracing.NextInvocationId.ToString(); Dictionary <string, object> tracingParameters = new Dictionary <string, object>(); tracingParameters.Add("onboardingRequest", onboardingRequest); tracingParameters.Add("cancellationToken", cancellationToken); ServiceClientTracing.Enter(_invocationId, this, "GenerateInviteCode", tracingParameters); } // Construct URL var _baseUrl = Client.BaseUri.AbsoluteUri; var _url = new System.Uri(new System.Uri(_baseUrl + (_baseUrl.EndsWith("/") ? "" : "/")), "Onboarding/GenerateInviteCode").ToString(); // Create HTTP transport objects var _httpRequest = new HttpRequestMessage(); HttpResponseMessage _httpResponse = null; _httpRequest.Method = new HttpMethod("POST"); _httpRequest.RequestUri = new System.Uri(_url); // Set Headers if (customHeaders != null) { foreach (var _header in customHeaders) { if (_httpRequest.Headers.Contains(_header.Key)) { _httpRequest.Headers.Remove(_header.Key); } _httpRequest.Headers.TryAddWithoutValidation(_header.Key, _header.Value); } } // Serialize Request string _requestContent = null; if (onboardingRequest != null) { _requestContent = Microsoft.Rest.Serialization.SafeJsonConvert.SerializeObject(onboardingRequest, Client.SerializationSettings); _httpRequest.Content = new StringContent(_requestContent, System.Text.Encoding.UTF8); _httpRequest.Content.Headers.ContentType = System.Net.Http.Headers.MediaTypeHeaderValue.Parse("application/json; charset=utf-8"); } // Set Credentials if (Client.Credentials != null) { cancellationToken.ThrowIfCancellationRequested(); await Client.Credentials.ProcessHttpRequestAsync(_httpRequest, cancellationToken).ConfigureAwait(false); } // Send Request if (_shouldTrace) { ServiceClientTracing.SendRequest(_invocationId, _httpRequest); } cancellationToken.ThrowIfCancellationRequested(); _httpResponse = await Client.HttpClient.SendAsync(_httpRequest, cancellationToken).ConfigureAwait(false); if (_shouldTrace) { ServiceClientTracing.ReceiveResponse(_invocationId, _httpResponse); } HttpStatusCode _statusCode = _httpResponse.StatusCode; cancellationToken.ThrowIfCancellationRequested(); string _responseContent = null; if ((int)_statusCode != 200) { var ex = new ErrorResponseException(string.Format("Operation returned an invalid status code '{0}'", _statusCode)); try { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); ErrorResponse _errorBody = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject <ErrorResponse>(_responseContent, Client.DeserializationSettings); if (_errorBody != null) { ex.Body = _errorBody; } } catch (JsonException) { // Ignore the exception } ex.Request = new HttpRequestMessageWrapper(_httpRequest, _requestContent); ex.Response = new HttpResponseMessageWrapper(_httpResponse, _responseContent); if (_shouldTrace) { ServiceClientTracing.Error(_invocationId, ex); } _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw ex; } // Create Result var _result = new HttpOperationResponse <OnboardingResponse>(); _result.Request = _httpRequest; _result.Response = _httpResponse; // Deserialize Response if ((int)_statusCode == 200) { _responseContent = await _httpResponse.Content.ReadAsStringAsync().ConfigureAwait(false); try { _result.Body = Microsoft.Rest.Serialization.SafeJsonConvert.DeserializeObject <OnboardingResponse>(_responseContent, Client.DeserializationSettings); } catch (JsonException ex) { _httpRequest.Dispose(); if (_httpResponse != null) { _httpResponse.Dispose(); } throw new SerializationException("Unable to deserialize the response.", _responseContent, ex); } } if (_shouldTrace) { ServiceClientTracing.Exit(_invocationId, _result); } return(_result); }
private static void HandleRtdApproved(OnboardingRequest request) { //TODO: mark completed }
private static void HandleRtdQueued(OnboardingRequest request) { //TODO: run RTD }
private static void HandleReviewCompleted(OnboardingRequest request) { //TODO: fire off RTD }
/// <summary> /// Onboard a user /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='onboardingRequest'> /// The meta data associated with an onboarding request /// </param> /// <param name='cancellationToken'> /// The cancellation token. /// </param> public static async Task <OnboardingResponse> GenerateInviteCodeAsync(this IOnboarding operations, OnboardingRequest onboardingRequest, System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) { using (var _result = await operations.GenerateInviteCodeWithHttpMessagesAsync(onboardingRequest, null, cancellationToken).ConfigureAwait(false)) { return(_result.Body); } }
/// <summary> /// Onboard a user /// </summary> /// <param name='operations'> /// The operations group for this extension method. /// </param> /// <param name='onboardingRequest'> /// The meta data associated with an onboarding request /// </param> public static OnboardingResponse GenerateInviteCode(this IOnboarding operations, OnboardingRequest onboardingRequest) { return(operations.GenerateInviteCodeAsync(onboardingRequest).GetAwaiter().GetResult()); }