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(); } }
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); } } }