Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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
                }));
            }
        }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        /// <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))));
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }