public void ProcessFormSubmission_SubmitValidForm_CreateANewContactIfNotFoundDuplicate() { mockFormSubmissionRepository.Setup(s => s.Insert(new FormSubmission())).Verifiable(); mockContactRepository.Setup(c => c.Insert(new Person())).Verifiable(); SubmitFormRequest request = new SubmitFormRequest() { SubmittedFormViewModel = FormMockData.GenerateSubmittedFormViewModel() }; SubmitFormResponse response = formService.SubmitForm(request); mockFormRepository.VerifyAll(); Assert.AreEqual(null, response.Exception); }
public HttpResponseMessage SubmitFormAPI2(SubmittedFormAPIViewModel viewModel) { Logger.Current.Verbose("In SubmitFormAPI2 method. Request received to submit form."); SubmittedFormViewModel submittedFormViewModel = new SubmittedFormViewModel(); submittedFormViewModel.SubmittedFormFields = new List <SubmittedFormFieldViewModel>(); var getFormData = viewModel.SubmittedFormFields.ToList(); var frm = getFormData.GroupBy(x => x.Key).Select(x => new { Key = x.Select(g => g.Key).FirstOrDefault(), Value = string.Join("|", x.Select(g => g.Value).ToList()) }); foreach (var field in frm) { submittedFormViewModel.SubmittedFormFields.Add(new SubmittedFormFieldViewModel() { Key = field.Key, Value = !string.IsNullOrEmpty(field.Value) ? field.Value.Trim() : field.Value }); } SubmitFormRequest request = new SubmitFormRequest() { SubmittedFormViewModel = submittedFormViewModel, RequestedBy = this.UserId, AccountId = viewModel.AccountId }; request.SubmittedFormViewModel.SubmittedOn = DateTime.Now.ToUniversalTime(); request.SubmittedFormViewModel.FormId = viewModel.FormId; request.SubmittedFormViewModel.AccountId = viewModel.AccountId; SubmitFormResponse response = formService.SubmitForm(request); if (response.Exception == null && response.FormSubmissionEntryViewModel != null) { return(Request.BuildResponse(new FormSubmissionAPIResponse() { Acknowledgement = "Form submitted successfully", FormSubmissionId = response.FormSubmissionEntryViewModel.FormSubmissionId })); } else { return(Request.BuildResponse(new FormSubmissionAPIResponse() { Acknowledgement = "Form submission failed", Exception = response.Exception })); } }
public HttpResponseMessage SubmitForm(FormDataCollection formData) { Logger.Current.Verbose("In SubmitForm method. Request received to submit form."); HttpResponseMessage formSubmissionResponse; SubmittedFormViewModel submittedFormViewModel = new SubmittedFormViewModel(); var context = System.Web.HttpContext.Current.Request; submittedFormViewModel.SubmittedFormFields = new List <SubmittedFormFieldViewModel>(); try { Logger.Current.Informational("Submitted form from Context: " + context.Form); if (formData != null) { var getFormData = formData.ToList(); var submittedToForm = formData.Where(c => c.Key == "formid").FirstOrDefault(); var formAccountId = formData.Where(c => c.Key == "accountid").FirstOrDefault(); var requestDomain = formData.Where(c => c.Key == "domainname").FirstOrDefault(); var submittedBy = formData.Where(c => c.Key == "userid").FirstOrDefault(); var stiTrackingId = formData.Where(c => c.Key == "STITrackingID").FirstOrDefault(); var link = formData.Where(c => c.Key == "redirect-override").FirstOrDefault(); getFormData.Remove(submittedToForm); getFormData.Remove(formAccountId); getFormData.Remove(requestDomain); getFormData.Remove(submittedBy); getFormData.Remove(stiTrackingId); getFormData.Remove(link); int parsedFormId = 0; int parsedAccountId = 0; int.TryParse(submittedToForm.Value, out parsedFormId); int.TryParse(formAccountId.Value, out parsedAccountId); if (parsedFormId > 0 && parsedAccountId > 0) { Logger.Current.Verbose("Request received to submit form with ID: " + parsedFormId); try { var frm = getFormData.GroupBy(x => x.Key).Select(x => new { Key = x.Select(g => g.Key).FirstOrDefault(), value = string.Join("|", x.Select(g => g.Value).ToList()) }); foreach (var field in frm) { submittedFormViewModel.SubmittedFormFields.Add(new SubmittedFormFieldViewModel() { Key = field.Key, Value = !string.IsNullOrEmpty(field.value) ? field.value.Trim() : field.value }); } SubmitFormRequest request = new SubmitFormRequest() { SubmittedFormViewModel = submittedFormViewModel, RequestedBy = this.UserId, AccountId = parsedAccountId }; request.SubmittedFormViewModel.SubmittedOn = DateTime.Now.ToUniversalTime(); request.SubmittedFormViewModel.FormId = parsedFormId; request.SubmittedFormViewModel.AccountId = parsedAccountId; request.SubmittedFormViewModel.IPAddress = requestDomain.Value; request.SubmittedFormViewModel.STITrackingID = stiTrackingId.Value; var domain = accountService.GetAccountDomainUrl(new GetAccountDomainUrlRequest() { AccountId = parsedAccountId }).DomainUrl; var userId = 0; int.TryParse(submittedBy.Value, out userId); request.SubmittedFormViewModel.OwnerId = domain == requestDomain.Value ? userId : 0; // If this is a test form submission domain and requestDomain would be same. Hence, the submitting user will be the owner. formService.SubmitForm(request); } catch (Exception ex) { Logger.Current.Error("Error in form submission: ", ex); } finally { SubmitFormResponse getFormResponse = formService.GetFormAcknowdegement(parsedFormId); Logger.Current.Informational("Response: " + getFormResponse.Acknowledgement.Acknowledgement); formSubmissionResponse = Request.BuildResponse(new FormResponse() { Success = true, Acknowledgement = !string.IsNullOrEmpty(link.Value) ? link.Value : getFormResponse.Acknowledgement.Acknowledgement, AcknowledgementType = !string.IsNullOrEmpty(link.Value) ? AcknowledgementType.Url : getFormResponse.Acknowledgement.AcknowledgementType }); } } else { formSubmissionResponse = new HttpRequestMessage().CreateResponse(HttpStatusCode.NotAcceptable); } } else { throw new Exception("Received empty form data"); } } catch (Exception ex) { ex.Data.Add("submitteddata", formData); Logger.Current.Error("Error in form submission: ", ex); formSubmissionResponse = new HttpRequestMessage().CreateResponse(HttpStatusCode.NotAcceptable); } return(formSubmissionResponse); }
/// <summary> /// Submit task form data /// </summary> /// <exception cref="Activiti.Rest.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="body"> (optional)</param> /// <returns>Task of ApiResponse (ProcessInstanceResponse)</returns> public async System.Threading.Tasks.Task <ApiResponse <ProcessInstanceResponse> > SubmitFormAsyncWithHttpInfo(SubmitFormRequest body = null) { var localVarPath = "/form/form-data"; var localVarPathParams = new Dictionary <String, String>(); var localVarQueryParams = new List <KeyValuePair <String, String> >(); var localVarHeaderParams = new Dictionary <String, String>(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[] { }; String localVarHttpContentType = Configuration.ApiClient.SelectHeaderContentType(localVarHttpContentTypes); // to determine the Accept header String[] localVarHttpHeaderAccepts = new String[] { "application/json" }; String localVarHttpHeaderAccept = Configuration.ApiClient.SelectHeaderAccept(localVarHttpHeaderAccepts); if (localVarHttpHeaderAccept != null) { localVarHeaderParams.Add("Accept", localVarHttpHeaderAccept); } if (body != null && body.GetType() != typeof(byte[])) { localVarPostBody = Configuration.ApiClient.Serialize(body); // http body (model) parameter } else { localVarPostBody = body; // byte array } // authentication (basicAuth) required // http basic authentication required if (!String.IsNullOrEmpty(Configuration.Username) || !String.IsNullOrEmpty(Configuration.Password)) { localVarHeaderParams["Authorization"] = "Basic " + ApiClient.Base64Encode(Configuration.Username + ":" + Configuration.Password); } // make the HTTP request IRestResponse localVarResponse = (IRestResponse)await Configuration.ApiClient.CallApiAsync(localVarPath, Method.POST, localVarQueryParams, localVarPostBody, localVarHeaderParams, localVarFormParams, localVarFileParams, localVarPathParams, localVarHttpContentType); int localVarStatusCode = (int)localVarResponse.StatusCode; if (ExceptionFactory != null) { Exception exception = ExceptionFactory("SubmitForm", localVarResponse); if (exception != null) { throw exception; } } return(new ApiResponse <ProcessInstanceResponse>(localVarStatusCode, localVarResponse.Headers.ToDictionary(x => x.Name, x => x.Value.ToString()), (ProcessInstanceResponse)Configuration.ApiClient.Deserialize(localVarResponse, typeof(ProcessInstanceResponse)))); }
/// <summary> /// Submit task form data /// </summary> /// <exception cref="Activiti.Rest.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="body"> (optional)</param> /// <returns>Task of ProcessInstanceResponse</returns> public async System.Threading.Tasks.Task <ProcessInstanceResponse> SubmitFormAsync(SubmitFormRequest body = null) { ApiResponse <ProcessInstanceResponse> localVarResponse = await SubmitFormAsyncWithHttpInfo(body); return(localVarResponse.Data); }
/// <summary> /// Submit task form data /// </summary> /// <exception cref="Activiti.Rest.Client.ApiException">Thrown when fails to make API call</exception> /// <param name="body"> (optional)</param> /// <returns>ProcessInstanceResponse</returns> public ProcessInstanceResponse SubmitForm(SubmitFormRequest body = null) { ApiResponse <ProcessInstanceResponse> localVarResponse = SubmitFormWithHttpInfo(body); return(localVarResponse.Data); }