/// <summary> /// Get a specific submitted form with form fields /// </summary> /// <param name="sequenceId"></param> /// <returns></returns> public SubmittedForm GetSubmittedForm(int sequenceId) { SubmittedForm form = new SubmittedForm(); form.SequenceId = sequenceId; using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { try { sqlConnection.Open(); var getSubmittedFormSQL = new SqlCommand(SELECT_SUBMITTED_FORM_FIELDS, sqlConnection); getSubmittedFormSQL.Parameters.Add("@Id", SqlDbType.Int).Value = sequenceId; SqlDataReader reader = getSubmittedFormSQL.ExecuteReader(); form.FormData = new FormCollection(); while (reader.Read()) { string name = reader.GetString(0); string value = reader.GetString(1); Log.Info("Form " + name + " = " + value); form.FormData.Add(name, value); } return(form); } catch (Exception e) { throw new DxaException("Could not get all forms.", e); } } }
public ActionResult Submit(string formData, Guid ownerGuid) { using (IWriteContext context = this.FormSubmissionRepository.WriteContext()) { SubmittedForm thisForm = new SubmittedForm { FormData = formData, Owner = ownerGuid }; this.FormSubmissionRepository.AddOrUpdate(thisForm); } this.EmailTemplateRepository.TrySendTemplate(new Dictionary <string, object>() { [nameof(formData)] = formData.PrettifyJson(), [nameof(ownerGuid)] = ownerGuid }); return(this.Content("Submitted")); }
/// <summary> /// Get a specific form and its submitted data /// </summary> /// <param name="formId"></param> /// <returns></returns> public DBForm GetForm(string formId) { Form form = FormRepository.GetForm(formId); if (form == null) { Log.Warn("No form found in the Broker DB with ID: " + formId); return(null); } DBForm dbForm = new DBForm(form); using (SqlConnection sqlConnection = new SqlConnection(connectionString)) { try { sqlConnection.Open(); var getSubmittedFormsSQL = new SqlCommand(SELECT_SUBMITTED_FORMS, sqlConnection); getSubmittedFormsSQL.Parameters.Add("@FormId", SqlDbType.NVarChar).Value = form.FormId; SqlDataReader reader = getSubmittedFormsSQL.ExecuteReader(); IList <SubmittedForm> submittedForms = new List <SubmittedForm>(); dbForm.SubmittedForms = submittedForms; while (reader.Read()) { int id = reader.GetInt32(0); DateTime date = reader.GetDateTime(1); SubmittedForm submittedForm = new SubmittedForm { SequenceId = id, SubmitDate = date }; submittedForms.Add(submittedForm); } dbForm.Count = submittedForms.Count; return(dbForm); } catch (Exception e) { throw new DxaException("Could not get all forms.", e); } } }