protected void FormBuilderField_SaveButton_Click(object sender, EventArgs e) { int typeId = int.Parse(FieldTypesList.Text); FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Field field = (from f in dc.FormBuilder_Fields where f.Id == this.FieldId select f).FirstOrDefault(); if (field == null) { field = new FormBuilder_Field(); field.ModuleId = this.ModuleId; var maxSortOrder = (from f in dc.FormBuilder_Fields where f.ModuleId == field.ModuleId orderby f.SortOrder descending select f.SortOrder).FirstOrDefault(); field.SortOrder = maxSortOrder + 1; dc.FormBuilder_Fields.InsertOnSubmit(field); } else { field = (from f in dc.FormBuilder_Fields where f.Id == this.FieldId select f).Single(); } field.Name = FieldName.Text.Trim(); field.Type = typeId; field.SetFieldOptions(FormBuilderFieldOption_edit1.FieldOptions); field.IsRequired = IsFieldRequired.Checked; field.Width = string.IsNullOrEmpty(FieldWidth.Text) ? null : (int?)int.Parse(FieldWidth.Text); dc.SubmitChanges(); if (this.IsNew) { Bss.Web.UI.UITool.Clear(this); FormBuilderFieldOption_edit1.FieldOptions.Clear(); FormBuilderFieldOption_edit1.DataBind(); Msg.ShowSuccess(string.Format("Added the '{0}' field to the form.", field.Name)); SetReloadFlag(true); } else { if (field.SortOrder <= 1) { FormBuilder_Field.MoveUp(field.Id); } Msg.ShowSuccess(string.Format("Saved the '{0}' field settings.", field.Name)); } }
private void LoadFields() { FormBuilder.FormBuilderDataContext dc = new FormBuilderDataContext(); var fields = from f in dc.FormBuilder_Fields where f.ModuleId == this.ModuleId orderby f.SortOrder select f; FieldsList.DataSource = fields; FieldsList.DataBind(); }
private void LoadInitialData() { if (ResponseId > 0) { FormBuilderDataContext dc = new FormBuilderDataContext(); var response = (from r in dc.FormBuilder_Responses where r.ModuleId == this.ModuleId && r.Id == ResponseId select r).FirstOrDefault(); if (response != null) { // load the data WebControl ctl = null; foreach (var fi in response.FormBuilder_FieldInputs) { if (TryGetDictionaryValue(fi.FormBuilder_Field, out ctl)) { if (fi.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.ShortText || fi.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.LongText) { ((TextBox)ctl).Text = fi.InputValue; } else if (fi.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.CheckBox) { ((CheckBoxList)ctl).SelectedIndex = ((CheckBoxList)ctl).Items.IndexOf( ((CheckBoxList)ctl).Items.FindByValue( fi.InputValue)); } else if (fi.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.DropDownList) { ((DropDownList)ctl).SelectedIndex = ((DropDownList)ctl).Items.IndexOf( ((DropDownList)ctl).Items.FindByValue( fi.InputValue)); } else if (fi.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.RadioButton) { ((RadioButtonList)ctl).SelectedIndex = ((RadioButtonList)ctl).Items.IndexOf( ((RadioButtonList)ctl).Items.FindByValue( fi.InputValue)); } else if (fi.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.FileUpload) { ((FileUpload)ctl).Attributes["value"] = fi.InputValue; } } } } } }
/* added - SM */ public static Dictionary <string, string> GetResponseByResponseId(int responseId) { FormBuilderDataContext dc = new FormBuilderDataContext(); var values = from f in dc.FormBuilder_Fields from i in dc.FormBuilder_FieldInputs where f.Id == i.FieldId where i.ResponseId == responseId select new { f.Id, f.Name, f.Type, i.InputValue }; var response = (from r in dc.FormBuilder_Responses where r.Id == responseId select r).Single(); var dict = new Dictionary <string, string>(); foreach (var value in values) { string strKey = string.Format("{0}_{1}", value.Name, value.Id); string strValue = value.InputValue; if (value.Type == (int)FormBuilder_Field.FieldType.FileUpload) { if (!string.IsNullOrEmpty(strValue)) { string strUrl = new WebModuleBase().ResolveUrl(value.InputValue.Replace("~", "").Replace("//", "/").Replace(@"\", "")); strValue = String.Format("<a href='{0}' target='_blank'>{0}</a>", strUrl); } } dict.Add(strKey, strValue); } //add the ip addr etc. dict.Add("Is Complete", response.IsComplete ? "Yes" : "No"); dict.Add("IP Address", response.IPAddress); dict.Add("Submitted On", response.CreatedOn.ToString("MM/dd/yyyy")); dict.Add("Submitted By", response.CreatedBy); // add referrer and keywords var referrer = (from r in dc.FormBuilder_ResponseReferrers where r.ResponseId == responseId select r).FirstOrDefault(); if (referrer != null) { dict.Add("Referring Url", referrer.referringUrl); dict.Add("Landing Url", referrer.landingUrl); dict.Add("Referring Domain", referrer.domain); dict.Add("Keywords", referrer.query); } return(dict); }
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { FormBuilderDataContext dc = new FormBuilderDataContext(); ddlTemplates.DataSource = from t in dc.FormBuilder_Templates select t; ddlTemplates.DataBind(); InitModule(); LoadModule(); } }
protected void grdSubmissions_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Sort") { this.SortBy = e.CommandArgument.ToString(); this.SortDirection = this.SortDirection == "ASC" ? "DESC" : "ASC"; ShowList(); return; } if (e.CommandName == "Select") { int rowNum = int.Parse(e.CommandArgument.ToString()); int responseId = int.Parse(grdSubmissions.DataKeys[rowNum].Value.ToString()); StringBuilder sb = new StringBuilder(); Dictionary <string, string> values = FormBuilder_Response.GetResponseByResponseId(responseId); //DataRow row = dt.Rows[rowNum]; sb.Append("<table class='submission-detail' cellpadding='5'>"); foreach (string key in values.Keys) { string strHeaderText = GetHeaderText(key); string strValue = (string)values[key]; sb.AppendFormat("<tr><td>{0}:</td><td><b>{1}</b></td>", strHeaderText, strValue); } sb.Append("</table>"); divDetail.InnerHtml = sb.ToString(); mvwSubmission.SetActiveView(vwDetail); } if (e.CommandName == "Delete") { int rowNum = int.Parse(e.CommandArgument.ToString()); int responseId = int.Parse(grdSubmissions.DataKeys[rowNum].Value.ToString()); FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Response response = (from r in dc.FormBuilder_Responses where r.Id == responseId select r).FirstOrDefault(); if (response != null) { response.Id = responseId; dc.FormBuilder_Responses.DeleteOnSubmit(response); dc.SubmitChanges(); } ShowList(); } }
/// <summary> /// Checks that the custom module data exists. If the custom module /// object cannot be retrieved (e.g., this is the initial creation of /// the module), then a new module object is created using the module /// id assigned by the CMS. /// </summary> private void EnsureModule() { FormBuilder.FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Module formBuilderModule = (from m in dc.FormBuilder_Modules where m.ModuleId == this.ModuleId select m).FirstOrDefault(); if (formBuilderModule == null) { formBuilderModule = new FormBuilder_Module(); formBuilderModule.ModuleId = this.ModuleId; dc.FormBuilder_Modules.InsertOnSubmit(formBuilderModule); dc.SubmitChanges(); } }
public void SaveAsTemplateField(int templateId, int sortOrder) { FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Template_Field newRec = new FormBuilder_Template_Field(); dc.FormBuilder_Template_Fields.InsertOnSubmit(newRec); newRec.TemplateId = templateId; newRec.Name = FieldName.Text.Trim(); newRec.Type = int.Parse(FieldTypesList.Text);; newRec.SetFieldOptions(FormBuilderFieldOption_edit1.FieldOptions); newRec.IsRequired = IsFieldRequired.Checked; newRec.SortOrder = sortOrder; newRec.Width = string.IsNullOrEmpty(FieldWidth.Text) ? null : (int?)int.Parse(FieldWidth.Text); dc.SubmitChanges(); }
protected void FormBuilderModule_SaveButton_Click(object sender, EventArgs e) { if (!Page.IsValid) { return; } FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Module FormBuilderModule; GetInput_FormBuilderModule(dc, out FormBuilderModule); dc.SubmitChanges(); cms.Admin.RedirectToMainMenu(this.PageNavigationId); }
protected void SaveTemplate_Click(object sender, EventArgs e) { if (string.IsNullOrEmpty(tbTemplateName.Text.Trim())) { // Make the sure entered a template name ScriptManager.RegisterStartupScript(this, this.GetType(), "TemplateNameMessage", "alert('Please enter a template name.');", true); return; } FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Template template = (from t in dc.FormBuilder_Templates where t.Name == tbTemplateName.Text.Trim() select t).FirstOrDefault(); if (template != null) { dc.FormBuilder_Template_Fields.DeleteAllOnSubmit(template.FormBuilder_Template_Fields); } else { template = new FormBuilder_Template(); template.Name = tbTemplateName.Text.Trim(); dc.FormBuilder_Templates.InsertOnSubmit(template); } dc.SubmitChanges(); int templateId = template.Id; int sortOrder = 1; foreach (RepeaterItem repItem in FieldsList.Items) { FormBuilderField_edit editCtl = repItem.FindControl("FormBuilderField_edit2") as FormBuilderField_edit; editCtl.SaveAsTemplateField(templateId, sortOrder++); } ScriptManager.RegisterStartupScript(this, this.GetType(), "TemplateSaveMessage", "alert('Your template has been saved.');", true); ddlTemplates.DataSource = from t in dc.FormBuilder_Templates select t; ddlTemplates.DataBind(); // update template list }
protected void FormBuilderField_DeleteButton_Click(object sender, EventArgs e) { FormBuilderDataContext dc = new FormBuilderDataContext(); var fieldInputsToDelete = from fi in dc.FormBuilder_FieldInputs where fi.FieldId == this.FieldId select fi; dc.FormBuilder_FieldInputs.DeleteAllOnSubmit(fieldInputsToDelete); var fieldToDelete = (from f in dc.FormBuilder_Fields where f.Id == this.FieldId select f).Single(); dc.FormBuilder_Fields.DeleteOnSubmit(fieldToDelete); dc.SubmitChanges(); SetReloadFlag(true); }
/// <summary> /// Gets the current object and fills its with the form input values. /// If input is not valid, returns null. /// </summary> public void GetInput_FormBuilderModule(FormBuilderDataContext dc, out FormBuilder_Module module) { module = (from m in dc.FormBuilder_Modules where m.ModuleId == this.ModuleId select m).Single(); module.NotifyEmail = NotifyEmailCtl.Text.Trim(); module.ConfirmationPageId = ConfirmationPageIdCtl.SelectedNavigationId > 0 ? (int?)ConfirmationPageIdCtl.SelectedNavigationId : null; module.StyleName = StyleDropDown.SelectedValue; module.SubmitButtonText = tbSubmitButtonText.Text.Trim(); module.Ack_Enabled = chkAcknowledgementEnabled.Checked; module.Ack_Body = txtAcknowledgementBody.Text.Length > 4000 ? txtAcknowledgementBody.Text.Trim().Substring(0, 4000) : txtAcknowledgementBody.Text.Trim(); module.Ack_EmailAddressFieldLabel = txtAcknowledgementEmailField.Text.Trim(); module.Ack_FromEmailAddress = txtAcknowledgementFromEmail.Text.Trim(); module.Ack_Subject = txtAcknowledgementSubject.Text.Trim(); }
protected void DeleteTemplate_Click(object sender, EventArgs e) { FormBuilderDataContext dc = new FormBuilderDataContext(); int nTemplateId = int.Parse(ddlTemplates.SelectedValue); FormBuilder_Template template = (from t in dc.FormBuilder_Templates where t.Id == nTemplateId select t).FirstOrDefault(); // Cascade delete takes care of field records if (template != null) { dc.FormBuilder_Templates.DeleteOnSubmit(template); dc.SubmitChanges(); } ddlTemplates.DataSource = from t in dc.FormBuilder_Templates select t; ddlTemplates.DataBind(); }
private void LoadModule() { FormBuilder.FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Module FormBuilderModule = (from m in dc.FormBuilder_Modules where m.ModuleId == this.ModuleId select m).Single(); NotifyEmailCtl.Text = FormBuilderModule.NotifyEmail; ConfirmationPageIdCtl.SelectedNavigationId = FormBuilderModule.ConfirmationPageId.HasValue ? FormBuilderModule.ConfirmationPageId.Value : -1; StyleDropDown.SelectedValue = FormBuilderModule.StyleName; tbSubmitButtonText.Text = FormBuilderModule.SubmitButtonText; FormBuilderField_edit1.ModuleId = this.ModuleId; chkAcknowledgementEnabled.Checked = pnlEmailAcknowledgement.Visible = FormBuilderModule.Ack_Enabled; txtAcknowledgementBody.Text = FormBuilderModule.Ack_Body; txtAcknowledgementEmailField.Text = FormBuilderModule.Ack_EmailAddressFieldLabel; txtAcknowledgementFromEmail.Text = FormBuilderModule.Ack_FromEmailAddress; txtAcknowledgementSubject.Text = FormBuilderModule.Ack_Subject; LoadFields(); }
protected void LoadTemplate_Click(object sender, EventArgs e) { int nTemplateId = int.Parse(ddlTemplates.SelectedValue); FormBuilderDataContext dc = new FormBuilderDataContext(); var templateFields = from tf in dc.FormBuilder_Template_Fields where tf.TemplateId == nTemplateId orderby tf.SortOrder select tf; int highestSortOrder = (from f in dc.FormBuilder_Fields where f.ModuleId == this.ModuleId orderby f.SortOrder descending select f.SortOrder).FirstOrDefault(); foreach (var templateField in templateFields) { FormBuilder_Field field = new FormBuilder_Field(); field.ModuleId = this.ModuleId; dc.FormBuilder_Fields.InsertOnSubmit(field); highestSortOrder += 1; field.SortOrder = highestSortOrder; //add to the bottom of the form field.Name = templateField.Name; field.Type = templateField.Type; field.Options = templateField.Options; field.HelpText = templateField.HelpText; field.IsRequired = templateField.IsRequired; field.Width = templateField.Width; } dc.SubmitChanges(); LoadFields(); }
public static DataTable CreateDataTable(List <FormBuilder_FieldInput> fieldInputs, bool truncateLongStrings) { if (null == fieldInputs || fieldInputs.Count == 0) { return(null); } var dt = new DataTable(); int nModuleId = fieldInputs[0].FormBuilder_Field.ModuleId; FormBuilderDataContext dc = new FormBuilderDataContext(); var fields = from f in dc.FormBuilder_Fields where f.ModuleId == nModuleId select f; //standard fields dt.Columns.Add(new DataColumn("CreatedOn", typeof(DateTime))); var pageCount = 0; //form-specific fields foreach (FormBuilder_Field field in fields) { // Must guarantee unique column names in DataTable dt.Columns.Add(field.Name + "_" + field.Id); //check if this is a multipage form if (field.Type == (int)FormBuilder_Field.FieldType.PageHeader) { pageCount++; } } var isMultiPage = pageCount > 0; if (isMultiPage) { dt.Columns.Add("IsComplete"); } //standard fields dt.Columns.Add("CreatedBy"); dt.Columns.Add("IPAddress"); dt.Columns.Add("ResponseId"); //keep track of responses that have been added already var responseIds = new List <int>(); foreach (FormBuilder_FieldInput fieldInput in fieldInputs) { if (!responseIds.Contains(fieldInput.ResponseId)) { responseIds.Add(fieldInput.ResponseId); //get all the inputs for this response. var assocInputs = new List <FormBuilder_FieldInput>(); foreach (var fi in fieldInputs) { if (fi.ResponseId == fieldInput.ResponseId) { assocInputs.Add(fi); } } //add the respective row. DataRow dr = dt.NewRow(); FormBuilder_Response response = fieldInput.FormBuilder_Response; if (isMultiPage) { dr["IsComplete"] = response.IsComplete ? "Yes" : "No"; } dr["CreatedBy"] = response.CreatedBy; dr["CreatedOn"] = response.CreatedOn; dr["IPAddress"] = response.IPAddress; foreach (FormBuilder_FieldInput i in assocInputs) { dr[i.FormBuilder_Field.Name + "_" + i.FormBuilder_Field.Id] = (truncateLongStrings ? Truncate(i.InputValue) : i.InputValue); } dr["ResponseId"] = fieldInput.ResponseId; dt.Rows.Add(dr); } } return(dt); }
public void EmailNotifyAdmin() { try { var body = new StringBuilder(); string strNotifyEmails = this.FormBuilder_Module.NotifyEmail; string[] astrNotifyEmails = strNotifyEmails.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); if (astrNotifyEmails.Length > 0) { WebModuleInfo module = WebModule.GetModule(this.FormBuilder_Module.ModuleId); var dbContext = new FormBuilderDataContext(); List <FormBuilder_FieldInput> lInputsSorted = (from i in dbContext.FormBuilder_FieldInputs where i.ResponseId == this.Id orderby i.FormBuilder_Field.SortOrder select i).ToList(); foreach (var input in lInputsSorted) { if (input.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.FileUpload && !String.IsNullOrEmpty(input.InputValue)) { body.Append(input.FormBuilder_Field.Name + String.Format(": <b>{0}", input.InputValue.Replace("~", "").Replace("//", "").Replace(@"\", "")) + "</b><br>"); } else if (input.FormBuilder_Field.Type == (int)FormBuilder_Field.FieldType.SectionHeader) { body.Append(String.Format("<br/><b>{0}</b><br/>", input.FormBuilder_Field.Name)); } else { body.Append(input.FormBuilder_Field.Name + ": <b>" + input.InputValue + "</b><br>"); } } MailMessage email = new MailMessage(); foreach (string strNotifyEmail in astrNotifyEmails) { MailAddress address = new MailAddress(strNotifyEmail.Trim()); email.To.Add(address); } email.Body = "<font face='Arial'>New form response submission has been received.<br>" + "<hr>" + body + "<br>" + "To view all form responses, " + "<a href='" + Common.Web.Url.ToAbsoluteUrl(module.GetEditUrl()) + "'>click here</a>." + "</font>"; email.Subject = string.Format("{0}: {1}", Website.Current.Resource.Name, module.Webpage.Title); email.IsBodyHtml = true; new SmtpClient().Send(email); } } catch (Exception ex) { string strMessage = "Failed sending contact us notification message"; BayshoreSolutions.WebModules.WebModulesAuditEvent.Raise(strMessage, this, ex); } }
public void EmailAcknowledgement() { try { var dc = new FormBuilderDataContext(); FormBuilder_Module form = FormBuilder_Module; if (form.Ack_Enabled) { var message = new MailMessage(); string strNotifyEmails = this.FormBuilder_Module.NotifyEmail; string[] astrNotifyEmails = strNotifyEmails.Split(new char[] { ',', ';' }, StringSplitOptions.RemoveEmptyEntries); if (astrNotifyEmails.Length > 0) { foreach (string strNotifyEmail in astrNotifyEmails) { MailAddress address = new MailAddress(strNotifyEmail.Trim()); message.Bcc.Add(address); } } if (!string.IsNullOrEmpty(form.Ack_FromEmailAddress)) { message.From = new MailAddress(form.Ack_FromEmailAddress); } List <FormBuilder_FieldInput> inputs = (from fi in dc.FormBuilder_FieldInputs where fi.ResponseId == Id select fi).ToList(); //sort by SortOrder. inputs.Sort(delegate(FormBuilder_FieldInput a, FormBuilder_FieldInput b) { return(a.FormBuilder_Field.SortOrder.CompareTo(b.FormBuilder_Field.SortOrder)); }); var sbSubject = new StringBuilder(form.Ack_Subject); var sbBody = new StringBuilder(form.Ack_Body); foreach (FormBuilder_FieldInput input in inputs) { if (string.Compare(input.FormBuilder_Field.Name, form.Ack_EmailAddressFieldLabel, true) == 0) { message.To.Add(new MailAddress(input.InputValue)); } string strToken = string.Format("##{0}##", input.FormBuilder_Field.Name); sbSubject = sbSubject.Replace(strToken, input.InputValue); sbSubject = sbSubject.Replace(strToken.ToLower(), input.InputValue); sbSubject = sbSubject.Replace(strToken.ToUpper(), input.InputValue); sbBody = sbBody.Replace(strToken, input.InputValue); sbBody = sbBody.Replace(strToken.ToLower(), input.InputValue); sbBody = sbBody.Replace(strToken.ToUpper(), input.InputValue); } if (message.To.Count > 0) { message.Subject = sbSubject.ToString(); message.Body = sbBody.ToString(); message.IsBodyHtml = true; var smtpClient = new SmtpClient(); smtpClient.Send(message); } } } catch (Exception ex) { WebModulesAuditEvent.Raise("Failed sending acknowledgement email", this, ex); } }
private void SaveIncrementalFormData() { FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Module form = (from m in dc.FormBuilder_Modules where m.ModuleId == this.ModuleId select m).Single(); //save the form object. FormBuilder_Response formResponse = (from r in dc.FormBuilder_Responses where r.Id == ResponseId select r).FirstOrDefault(); if (formResponse == null) { formResponse = new FormBuilder_Response(); dc.FormBuilder_Responses.InsertOnSubmit(formResponse); formResponse.ModuleId = this.ModuleId; formResponse.CreatedBy = this.Page.User.Identity.Name; formResponse.CreatedOn = DateTime.Now; formResponse.IPAddress = this.Page.Request.UserHostAddress; dc.SubmitChanges(); ResponseId = formResponse.Id; } //save input for each form field. foreach (FormBuilder_Field f in _fields_controls.Keys) { FormBuilder_FieldInput fieldInput = (from fi in dc.FormBuilder_FieldInputs where fi.ResponseId == ResponseId where fi.FieldId == f.Id select fi).FirstOrDefault(); if (fieldInput == null) { fieldInput = new FormBuilder_FieldInput(); dc.FormBuilder_FieldInputs.InsertOnSubmit(fieldInput); } fieldInput.ResponseId = formResponse.Id; fieldInput.FieldId = f.Id; if (f.Type == (int)FormBuilder_Field.FieldType.FileUpload) { WebControl fi; _fields_controls.TryGetValue(f, out fi); if (((FileUpload)fi).HasFile) { var fiUploadFile = new FileInfo(((FileUpload)fi).FileName); var sFileName = fiUploadFile.Name.Substring(0, fiUploadFile.Name.LastIndexOf(".")) + "_" + Guid.NewGuid() + fiUploadFile.Extension; var uploadPath = this.MapPath(ConfigurationManager.AppSettings["FormBuilder_UploadDirectory"]) + "\\" + sFileName; ((FileUpload)fi).SaveAs(uploadPath); fieldInput.InputValue = ConfigurationManager.AppSettings["FormBuilder_UploadDirectory"] + "\\" + sFileName; } } else { fieldInput.SetInputValueFromControlValue(_fields_controls[f]); } dc.SubmitChanges(); } }
//create controls *before* viewstate is restored. //ASP.NET restores the viewstate tree based on the control tree. As long as //we re-create the control tree identically on each postback, the viewstate //will get restored automatically. //see http://geekswithblogs.net/FrostRed/archive/2007/02/17/106547.aspx protected override void OnInit(EventArgs e) { FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Module settings = (from m in dc.FormBuilder_Modules where m.ModuleId == this.ModuleId select m).Single(); List <FormBuilder_Field> lFields = settings.FormBuilder_Fields.OrderBy(x => x.SortOrder).ToList(); IList <Panel> pnlCollection = GetPanelControls(lFields); if (pnlCollection != null && pnlCollection.Count > 0) { #region Form Page Creation int pnlCount = pnlCollection.Count; if (pnlCount >= 1) { for (int i = 0; i < pnlCount; i++) { string sortOrder = String.Empty; string clientId = String.Empty; try { if (pnlCollection[i + 1] != null) { sortOrder = pnlCollection[i + 1].Attributes["SortOrder"]; clientId = pnlCollection[i + 1].ID; } } catch (ArgumentOutOfRangeException) { sortOrder = (lFields[lFields.Count - 1].SortOrder + 1).ToString(); } FormBuilderResponseValidationSummary.ValidationGroup = FormBuilder_Module.GetValidationGroup(this.ModuleId); List <FormBuilder_Field> childCollection = GetChildCollection(lFields, pnlCollection[i].Attributes["SortOrder"], sortOrder); foreach (FormBuilder_Field f in childCollection) { FormBuilderFieldInput_display ctl = (FormBuilderFieldInput_display)this.LoadControl("FormBuilderFieldInput_display.ascx"); if (ctl != null) { ctl.StyleName = settings.StyleName; } FieldInputList.Controls.Add(pnlCollection[i]); pnlCollection[i].Controls.Add(ctl); _fields_controls.Add(f, ctl.LoadField(f)); } Button btnNext = BuildButton("Next", i, clientId); Button btnPrev = BuildButton("Previous", i, (i - 1) > 0 ? pnlCollection[i - 1].ID : pnlCollection[0].ID); if (i == 0) { pnlCollection[i].Visible = true; if (pnlCollection.Count > 1) { pnlCollection[i].Controls.Add(btnNext); } } else if (i == pnlCount - 1) { pnlCollection[i].Controls.Add(btnPrev); pnlCollection[i].Controls.Add(BuildButton(String.IsNullOrEmpty(settings.SubmitButtonText) ? "Submit" : settings.SubmitButtonText, i, pnlCollection[i].ID)); } else // All other panels { pnlCollection[i].Controls.Add(btnPrev); pnlCollection[i].Controls.Add(btnNext); } } } #endregion } else { #region Form Creation foreach (FormBuilder_Field f in lFields) { FormBuilderFieldInput_display fieldCtl = (FormBuilderFieldInput_display)this.LoadControl("FormBuilderFieldInput_display.ascx"); if (fieldCtl != null) { fieldCtl.StyleName = settings.StyleName; } FieldInputList.Controls.Add(fieldCtl); _fields_controls.Add(f, fieldCtl.LoadField(f)); } FormBuilderResponseValidationSummary.ValidationGroup = FormBuilderResponse_SaveButton.ValidationGroup = FormBuilder_Module.GetValidationGroup(this.ModuleId); buttonDiv.Visible = true; FormBuilderResponse_SaveButton.Visible = (null != lFields && lFields.Count > 0); if ((settings != null) && (!string.IsNullOrEmpty(settings.SubmitButtonText))) { FormBuilderResponse_SaveButton.Text = settings.SubmitButtonText; } string buttonDivClass; if (!string.IsNullOrEmpty(settings.StyleName) && settings.StyleName.ToLower() != "block") { buttonDivClass = "field-" + settings.StyleName; } else { buttonDivClass = "field"; } buttonDiv.Attributes.Add("class", buttonDivClass); #endregion } base.OnInit(e); }
private DataTable GetDataTable() { DataTable dtResults = null; DateTime dtStartDate = Convert.ToDateTime(txtStartDate.Text); DateTime dtEndDate = Convert.ToDateTime(txtEndDate.Text).AddDays(1); FormBuilderDataContext dc = new FormBuilderDataContext(); List <FormBuilder_FieldInput> lFieldInputs = (from fi in dc.FormBuilder_FieldInputs from r in dc.FormBuilder_Responses where r.ModuleId == this.ModuleId where r.CreatedOn >= dtStartDate where r.CreatedOn <= dtEndDate where fi.ResponseId == r.Id orderby fi.FormBuilder_Field.SortOrder select fi).ToList(); if (lFieldInputs.Count > 0) { DataTable dtFieldInputs = FormBuilder_Response.CreateDataTable(lFieldInputs, true); if (dtFieldInputs != null) { dtResults = new DataTable(); foreach (DataColumn c in dtFieldInputs.Columns) { dtResults.Columns.Add(new DataColumn(c.ColumnName, c.DataType)); } var referringUrl = dtResults.Columns.Add(); referringUrl.AllowDBNull = true; referringUrl.ColumnName = "ReferringUrl"; referringUrl.DataType = typeof(string); var landingUrl = dtResults.Columns.Add(); landingUrl.AllowDBNull = true; landingUrl.ColumnName = "LandingUrl"; landingUrl.DataType = typeof(string); var referrer = dtResults.Columns.Add(); referrer.AllowDBNull = true; referrer.ColumnName = "ReferringDomain"; referrer.DataType = typeof(string); var keywords = dtResults.Columns.Add(); keywords.AllowDBNull = true; keywords.ColumnName = "Keywords"; keywords.DataType = typeof(string); foreach (DataRow row in dtFieldInputs.Rows) { var newRow = dtResults.Rows.Add(row.ItemArray); int responseId = Convert.ToInt32(row["ResponseId"]); var responseReferrer = dc.FormBuilder_ResponseReferrers.Where(r => r.ResponseId == responseId).FirstOrDefault(); if (responseReferrer != null) { newRow["ReferringUrl"] = responseReferrer.referringUrl; newRow["LandingUrl"] = responseReferrer.landingUrl; newRow["ReferringDomain"] = responseReferrer.domain; newRow["Keywords"] = responseReferrer.query; } } } } return(dtResults); }
protected void FormBuilderResponse_SaveButton_Click(object sender, EventArgs e) { if (Page.IsValid) { if (ValidateRequest()) { FormBuilderDataContext dc = new FormBuilderDataContext(); FormBuilder_Module form = (from f in dc.FormBuilder_Modules where f.ModuleId == this.ModuleId select f).Single(); //save the form object. FormBuilder_Response formResponse = (from r in dc.FormBuilder_Responses where r.ModuleId == this.ModuleId && r.Id == ResponseId select r).SingleOrDefault(); if (formResponse == null) { formResponse = new FormBuilder_Response(); dc.FormBuilder_Responses.InsertOnSubmit(formResponse); formResponse.ModuleId = this.ModuleId; formResponse.CreatedBy = this.Page.User.Identity.Name; formResponse.CreatedOn = DateTime.Now; formResponse.IPAddress = this.Page.Request.UserHostAddress; dc.SubmitChanges(); } // save the referrer info (if available) if (Session["session_referrer"] != null) { string referringUrl = Session["session_referringUrl"] as string; string landingUrl = Session["session_landingUrl"] as string; string domain = Session["session_referrer"] as string; string query = Session["session_keywords"] as string; FormBuilder_ResponseReferrer referrer = new FormBuilder_ResponseReferrer(); dc.FormBuilder_ResponseReferrers.InsertOnSubmit(referrer); referrer.ResponseId = formResponse.Id; referrer.referringUrl = referringUrl; referrer.landingUrl = landingUrl; referrer.domain = domain; referrer.query = query; dc.SubmitChanges(); } //save input for each form field. foreach (FormBuilder_Field f in _fields_controls.Keys) { // Find any existing field input and update it. FormBuilder_FieldInput fieldInput = (from fi in dc.FormBuilder_FieldInputs where fi.ResponseId == formResponse.Id && fi.FieldId == f.Id select fi).SingleOrDefault(); if (fieldInput == null) { fieldInput = new FormBuilder_FieldInput(); dc.FormBuilder_FieldInputs.InsertOnSubmit(fieldInput); fieldInput.FieldId = f.Id; fieldInput.ResponseId = formResponse.Id; } if (f.Type == (int)FormBuilder_Field.FieldType.FileUpload) { WebControl fi; _fields_controls.TryGetValue(f, out fi); if (((FileUpload)fi).HasFile) { var fiUploadFile = new FileInfo(((FileUpload)fi).FileName); var sFileName = fiUploadFile.Name.Substring(0, fiUploadFile.Name.LastIndexOf(".")) + "_" + Guid.NewGuid() + fiUploadFile.Extension; string strUploadDirectory = this.MapPath(ConfigurationManager.AppSettings["FormBuilder_UploadDirectory"]); EnsureDirectory(strUploadDirectory); var uploadPath = Path.Combine(strUploadDirectory, sFileName); ((FileUpload)fi).SaveAs(uploadPath); fieldInput.InputValue = ConfigurationManager.AppSettings["FormBuilder_UploadDirectory"] + "\\" + sFileName; } } else { fieldInput.SetInputValueFromControlValue(_fields_controls[f]); } } formResponse.IsComplete = true; dc.SubmitChanges(); //send email notification. formResponse.EmailNotifyAdmin(); formResponse.EmailAcknowledgement(); ResponseId = 0; //redirect to confirmation page. string redirectPath = "~"; if (form.ConfirmationPageId.HasValue) { WebpageInfo page = Webpage.GetWebpage(form.ConfirmationPageId.Value); if (null != page && !string.IsNullOrEmpty(page.Path)) { redirectPath = page.Path; } } Response.Redirect(redirectPath); } } }
private static void MovePosition(int fieldId, bool direction) { FormBuilderDataContext dc = new FormBuilderDataContext(); dc.FormBuilder_Field_MovePosition(fieldId, direction); }