Example #1
0
        public string SubmitFormData(string FormSubmissionXML)
        {
            string runId = System.Guid.NewGuid().ToString();
            if (FormSubmissionXML == null)
                FormSubmissionXML = String.Empty;
            String logFormSubmissionId = String.Empty;
            XmlDocument xmlInOutString = new XmlDocument();
            XmlDocument formDataSubmissionXML = new XmlDocument();
            XmlDocument formDataSubmissionResultXML = new XmlDocument();
            XmlDocument formDefinitionXML = new XmlDocument();
            XmlDocument xmlLeadgenSubmission = new XmlDocument();

            int questionnaireID = 0;
            //string FormSubmissionFinalString = string.Empty;
            string formDataSubmissionXMLInput = string.Empty;
            string formDefinitionXMLString = string.Empty;
            string questionnaireIDFormat = string.Empty;
            string formSubmissionQuestionID = string.Empty;

            FormSubmissionFacade objFormSubmissionFacade = new FormSubmissionFacade();
            try
            {
                // commented code for testing purpose
                //xmlinoutstring.Load(@"C:\XMLFile.xml");
                //StringWriter strwriter = new StringWriter();
                //XmlTextWriter txt = new XmlTextWriter(strwriter);
                //xmlinoutstring.WriteTo(txt);
                //FormSubmissionXML = strwriter.ToString();   

                formDataSubmissionXMLInput = FormSubmissionXML.Trim();
                byte[] byteArray = new byte[formDataSubmissionXMLInput.Length];
                System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
                byteArray = encoding.GetBytes(formDataSubmissionXMLInput);
                // Load the memory stream
                MemoryStream memoryStream = new MemoryStream(byteArray);
                formDataSubmissionXML.Load(memoryStream);

                questionnaireIDFormat = utility.getParameter("regex_integer");

                // Get the Questionarie ID from Form Submission XML
                if (formDataSubmissionXML != null)
                {
                    XmlNode xmlNode = formDataSubmissionXML.SelectSingleNode("/FormSubmission/@ID");

                    if (xmlNode != null)
                    {
                        if (!String.IsNullOrEmpty(xmlNode.InnerText.Trim()))
                        {
                            formSubmissionQuestionID = xmlNode.InnerText;
                            if (System.Text.RegularExpressions.Regex.IsMatch(xmlNode.InnerText, questionnaireIDFormat))
                            {
                                questionnaireID = Convert.ToInt32(xmlNode.InnerText);
                            }
                            else
                            {
                                formDataSubmissionResultXML = objFormSubmissionFacade.GenerateInvalidQuestionnaireMessage(formSubmissionQuestionID, "InvalidQID");
                            }
                        }
                    }
                }
                if (questionnaireID != 0)
                {
                    QuestionnaireStatus questionnaireStatus = new QuestionnaireStatus();
                    questionnaireStatus = objFormSubmissionFacade.GetQuestionStatus(questionnaireID);

                    if (questionnaireStatus == QuestionnaireStatus.Active)
                    {
                        //  FormDefinition FormDef = new FormDefinition();
                        formDefinitionXMLString = FormDefinitionFacade.GetFormDefinition(questionnaireID);
                        formDefinitionXMLString = formDefinitionXMLString.Trim();

                        byte[] formDefinitionByteArray = new byte[formDefinitionXMLString.Length];
                        UTF8Encoding formDefEncoding = new System.Text.UTF8Encoding();
                        formDefinitionByteArray = formDefEncoding.GetBytes(formDefinitionXMLString);
                        // Load the memory stream
                        MemoryStream formDefMemoryStream = new MemoryStream(formDefinitionByteArray);

                        formDefinitionXML.Load(formDefMemoryStream);

                        formDataSubmissionResultXML = objFormSubmissionFacade.ValidateAndSubmitFormData(formDefinitionXML, formDataSubmissionXML, questionnaireID);

                    }
                    else
                    {
                        // Invalid Questionaire ID                     
                        formDataSubmissionResultXML = objFormSubmissionFacade.GenerateInvalidQuestionnaireMessage(formSubmissionQuestionID, "InvalidQID");
                    }
                }
            }
            catch (XmlException xException)
            {
                // Invalid Form Data Submission XML Content 
                formDataSubmissionResultXML = objFormSubmissionFacade.GenerateInvalidQuestionnaireMessage(formSubmissionQuestionID, "InvalidFile");
                CheckPointManager.Instance.PublishTrackingEvent("RFGOldwebservice", questionnaireID.ToString(), "Survey", "SubmitForm",
                            "RFGOldwebservice", "RFGOldwebservice", runId, EventState.Fail, TraceLevel.Error, false, xException, xException.Message);

            }
            catch (Exception ex)
            {
                //TODO: change request to NOT USE "insert_failed_submit" to log WS submission errors... and to include also the error message (not just the stack trace....)
                // Log the Runtime Exception into "insert_failed_submit" table in DB

                //20120530 | Tirumala Raju | RFG 2.7 | CR: PR629431
                //objFormSubmissionFacade.SubmitErrorLog(normalException.StackTrace.ToString());                
                CheckPointManager.Instance.PublishTrackingEvent("RFGOldwebservice", questionnaireID.ToString(), "Survey", "SubmitForm",
                            "RFGOldwebservice", "RFGOldwebservice", runId, EventState.Fail, TraceLevel.Error, false, ex, ex.Message);
            }
            try
            {
                if (utility.getParameter("ActivateFormSubmissionLog").ToString().ToLower() == "on")
                {
                    if (objFormSubmissionFacade.ConvertToString(formDataSubmissionResultXML).Contains("response processed successfully"))
                    {
                        logFormSubmissionId = objFormSubmissionFacade.LogFormSubmissionDetails(HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString(),
                                                                FormSubmissionXML,
                                                                formDefinitionXMLString,
                                                                HttpContext.Current.Request.Headers.ToString(),
                                                                objFormSubmissionFacade.ConvertToString(formDataSubmissionResultXML),
                                                                "Ok");
                    }
                    else
                    {
                        logFormSubmissionId = objFormSubmissionFacade.LogFormSubmissionDetails(HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString(),
                                 FormSubmissionXML,
                                 formDefinitionXMLString,
                                 HttpContext.Current.Request.Headers.ToString(),
                                 objFormSubmissionFacade.ConvertToString(formDataSubmissionResultXML),
                                 "Error");                        
                    
                    }
                }
            }
            catch (Exception ex)
            {
                if (utility.getParameter("ActivateFormSubmissionLog").ToString().ToLower() == "on")
                    logFormSubmissionId = objFormSubmissionFacade.LogFormSubmissionDetails(HttpContext.Current.Request.ServerVariables["SERVER_NAME"].ToString(),
                    FormSubmissionXML,
                    formDefinitionXMLString,
                    HttpContext.Current.Request.Headers.ToString(),
                    objFormSubmissionFacade.ConvertToString(formDataSubmissionResultXML),
                    "Error");
                ErrorHandling.Application_Error(ex, String.Empty, "SubmitFormData", logFormSubmissionId, String.Empty);
                throw ex;
            }
            return   objFormSubmissionFacade.ConvertToString(formDataSubmissionResultXML);            
        }
Example #2
0
        private static FormClosureDefinition LoadClosureDefinition(string qid)
        {
            FormClosureDefinition closureDefinition = new FormClosureDefinition();

            if (!string.IsNullOrEmpty(qid))
            {
                try
                {
                    Hashtable hParams = new Hashtable();
                    hParams.Add("questionnaire_id", qid);
                    DataTable closurePageData = DB.execProc("select_questionnaire_closurepage", hParams);

                    closureDefinition.ID = qid;
                    closureDefinition.Title = closurePageData.Rows[0]["qid_title"].ToString();
                    closureDefinition.CC = closurePageData.Rows[0]["country_FK"].ToString();
                    closureDefinition.LC = closurePageData.Rows[0]["language_FK"].ToString();

                    status = QuestionnaireFacade.GetStatus(Convert.ToInt32(qid), ViewType.Undefined);
                    switch (status)
                    {
                        case QuestionnaireStatus.Expired:
                            closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForExpired;
                            closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForExpired;
                            break;

                        case QuestionnaireStatus.Inactive:
                            closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForNotYetPublished;
                            closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForNotYetPublished;
                            break;

                        case QuestionnaireStatus.Offline:
                            closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForMaintenance;
                            closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForMaintenance;
                            break;

                        case QuestionnaireStatus.Active:
                            closureDefinition.ClosurePage = FClosureFacade.LoadClosureConfigurationSection(qid, closurePageData.Rows[0]);
                            closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForLive;
                            closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForLive;
                            break;

                        case QuestionnaireStatus.NotFound:
                            closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForNotExist;
                            closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForNotExist;
                            break;
                    }
                }
                catch (Exception ex)
                {
                    closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForNotExist;
                    closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForNotExist;                    
                }
            }
            else
            {
                closureDefinition.LifeCycleStatus = Constants.FormLifeCycleStatusForNotExist;
                closureDefinition.LifeCycleStatusID = Constants.FormLifeCycleStatusIDForNotExist;
            }

            return closureDefinition;
        }
Example #3
0
        public QuestionnaireStatus GetQuestionStatus(int QuestionnaireID)
        {
            QuestionnaireStatus QuestionStatus = new QuestionnaireStatus();

            QuestionStatus = QuestionnaireFacade.GetStatus(QuestionnaireID, ViewType.Undefined);

            return QuestionStatus;
        }