public ActionResult SubmissionUpdate(SubmissionModel model, bool print) { int submissionid = Int32.Parse(Request["submissionid"]); int formid = Int32.Parse(Request["formid"]); //get form fields (isforadminonly == true) var formfields = _formService.GetFormFieldsNoPaging(formid).Where(f => f.IsForAdminOnly == true).ToList(); //get fields values from request foreach (var field in formfields) { string fieldvalue = Request["field" + field.Id]; int valueid = Int32.Parse(Request["valueid_" + field.Id]); if (valueid > 0) { //update field value var submissionvalue = _formService.GetSubmissionFieldValue(submissionid, field.Id); submissionvalue.FieldValue = fieldvalue; _formService.UpdateFieldValue(submissionvalue); } else { //insert field value var submissionvalue = new FormSubmissionsValuesRecord(); submissionvalue.FieldValue = fieldvalue; submissionvalue.FormFieldId = field.Id; submissionvalue.SubmissionId = submissionid; _formService.SaveFieldValue(submissionvalue); } } if (print) { var filepath = _printFormService.CreateFormPdf(submissionid); var filename = Path.GetFileName(filepath); byte[] filedata = System.IO.File.ReadAllBytes(filepath); string contentType = MimeMapping.GetMimeMapping(filepath); var cd = new System.Net.Mime.ContentDisposition { FileName = filename, Inline = true, }; Response.Headers.Add("Content-Disposition", cd.ToString()); return(File(filedata, contentType)); } return(View("Submissions")); }
public JsonResult FormSubmit() { try { var formidstr = Request["formid"]; int formid; if (formidstr != null && formidstr != "" && Int32.TryParse(formidstr, out formid)) { var form = _formService.GetFormById(formid); var currentCustomer = _authenticationService.GetAuthenticatedCustomer(); string emailbody = ""; emailbody += "<b>A new " + form.FormName + " submitted with the below details:</b><hr/>"; //add new form submission var formsubmission = new FormSubmissionsRecord(); formsubmission.FormId = formid; if (currentCustomer != null) { formsubmission.CustomerId = currentCustomer.Id; formsubmission.SenderEmail = currentCustomer.Email; } formsubmission.SubmitDate = DateTime.Now; int submissionid = _formService.SaveFormSubmission(formsubmission); //get form fields var formfields = _formService.GetFormFieldsNoPaging(formid).ToList(); //get fields values //add new submission value for each field foreach (var field in formfields) { string fieldvalue = ""; if (!field.IsForAdminOnly) { fieldvalue = Request["field" + field.Id]; } FormSubmissionsValuesRecord valuerecord = new FormSubmissionsValuesRecord(); valuerecord.FieldValue = fieldvalue; valuerecord.FormFieldId = field.Id; valuerecord.SubmissionId = submissionid; _formService.SaveFieldValue(valuerecord); if (!field.FieldType.Contains("Display")) { emailbody += "<b>" + field.FieldName + ":</b>" + fieldvalue + "<br/>"; } } emailbody += "<br/>click <a href='" + _storeContext.CurrentStore.Url + "Admin/Forms/SubmissionPreview/" + submissionid.ToString() + "'>here</a> to view submitted form"; //send email to form admin that a new form was submitted var emailAccount = _emailAccountService.GetEmailAccountById(_emailAccountSettings.DefaultEmailAccountId); var toemails = form.AdminEmails.Split(','); foreach (var toemail in toemails) { try { _emailSender.SendEmail(emailAccount, "New " + form.FormName + " submitted.", emailbody, (currentCustomer != null ? currentCustomer.Email : emailAccount.Email), (currentCustomer != null ? currentCustomer.Username : emailAccount.DisplayName), toemail, toemail); } catch { } } return(Json(form.FormName + " successfully submitted.", JsonRequestBehavior.AllowGet)); } } catch (Exception ex) { } return(Json("Error occured! please try again later or contact administration.", JsonRequestBehavior.AllowGet)); }