private GeneralResultDTO SubmitRequestAccessFormInternal(string email) { var requestAccessForm = BizFormInfoProvider.GetBizFormInfo(_RequestAccessFormCodeName, SiteContext.CurrentSiteID); if (requestAccessForm != null) { var requestAccessFormClass = DataClassInfoProvider.GetDataClassInfo(requestAccessForm.FormClassID); string requestAccessFormClassName = requestAccessFormClass.ClassName; BizFormItem newFormItem = BizFormItem.New(requestAccessFormClassName); newFormItem.SetValue("Email", email); newFormItem.SetValue("Site", SiteContext.CurrentSite.DisplayName); newFormItem.SetValue("FormInserted", DateTime.Now); newFormItem.SetValue("FormUpdated", DateTime.Now); newFormItem.Insert(); SendFormEmail(newFormItem); return(new GeneralResultDTO { success = true }); } else { return(new GeneralResultDTO { success = false, errorMessage = ResHelper.GetString("Kadena.ForgottenPassword.ForgottenPasswordRepositoryNotFound", LocalizationContext.CurrentCulture.CultureCode) }); } }
public void SendFormEmail(BizFormItem item, int attachmentsCount) { if (item.BizFormInfo != null) { MacroResolver resolver = MacroContext.CurrentResolver.CreateChild(); resolver.SetAnonymousSourceData(item); resolver.Settings.EncodeResolvedValues = true; resolver.Culture = CultureHelper.GetPreferredCulture(); string body = DataHelper.GetNotEmpty(item.BizFormInfo.FormEmailTemplate, string.Empty); body = resolver.ResolveMacros(body); EmailMessage message = new EmailMessage(); message.From = item.BizFormInfo.FormSendFromEmail; message.Recipients = resolver.ResolveMacros(item.BizFormInfo.FormSendToEmail); message.Subject = resolver.ResolveMacros(item.BizFormInfo.FormEmailSubject); message.Body = URLHelper.MakeLinksAbsolute(body); message.EmailFormat = EmailFormatEnum.Html; for (int i = 1; i <= attachmentsCount; i++) { Attachment attachment = GetAttachment(item.GetStringValue("File" + i, string.Empty)); if (attachment != null) { message.Attachments.Add(attachment); } } EmailSender.SendEmail(message); } }
public void Submit(IForm form) { try { var formInfo = BizFormInfoProvider.GetBizFormInfo(form.Name, SiteContext.CurrentSiteID); if (formInfo == null) { throw new InvalidOperationException("The requested checkin form does not exist."); } var dataClassInfo = DataClassInfoProvider.GetDataClassInfo(formInfo.FormClassID); var item = new BizFormItem(dataClassInfo.ClassName); SetFormValues(form, item); item.SetValue("FormInserted", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); item.SetValue("FormUpdated", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); BizFormItemProvider.SetItem(item); BizFormInfoProvider.RefreshDataCount(formInfo.FormName, formInfo.FormSiteID); if (form.Notification != null) { SendNotificationEmail(formInfo, form, item); } if (!String.IsNullOrEmpty(form.Autoresponder?.Sender)) { SendAcknowledgementEmail(formInfo, item, form.Controls); } } catch (Exception ex) { throw new Exception("There was a problem saving the form. Please contact our support team.", ex); } }
private GeneralResultDTO SubmitBidInternal(string name, string description, string requestType, string biddingWay, int numberOfBidings, List <HttpPostedFile> files, DateTime productionDate, DateTime?selectionDate) { var bidForm = BizFormInfoProvider.GetBizFormInfo(_BidFormCodeName, SiteContext.CurrentSiteID); if (bidForm != null) { var bidFormClass = DataClassInfoProvider.GetDataClassInfo(bidForm.FormClassID); string bidFormClassName = bidFormClass.ClassName; BizFormItem newFormItem = BizFormItem.New(bidFormClassName); newFormItem.SetValue("Name", name); newFormItem.SetValue("Description", description); newFormItem.SetValue("RequestType", requestType); newFormItem.SetValue("BiddingWayText", biddingWay); newFormItem.SetValue("BiddingWayNumber", numberOfBidings); newFormItem.SetValue("ProductionDate", productionDate); if (selectionDate.HasValue) { newFormItem.SetValue("SelectionDate", selectionDate); } newFormItem.SetValue("FormInserted", DateTime.Now); newFormItem.SetValue("FormUpdated", DateTime.Now); newFormItem.SetValue("Site", SiteContext.CurrentSite.DisplayName); if (files.Count > 0) { for (int i = 0; files.Count > i; i++) { string extension = System.IO.Path.GetExtension(files[i].FileName); string fileName = new FormsHelper().GetNewGuidName(extension); string formFilesFolderPath = FormHelper.GetBizFormFilesFolderPath(SiteContext.CurrentSiteName); string fileNameString = fileName + "/" + Path.GetFileName(files[i].FileName); new FormsHelper().SaveFileToDisk(files[i], fileName, formFilesFolderPath); newFormItem.SetValue(string.Format("File{0}", i + 1), (object)fileNameString); } } newFormItem.Insert(); new FormsHelper().SendFormEmail(newFormItem, files.Count); return(new GeneralResultDTO { success = true }); } else { return(new GeneralResultDTO { success = false, errorMessage = ResHelper.GetString("Kadena.NewBidRequest.RepositoryNotFound", LocalizationContext.CurrentCulture.CultureCode) }); } }
public void InsertFormItem(string className, IFormViewModel viewModel) { var formItem = BizFormItem.New(className); foreach (var field in viewModel.Fields) { formItem.SetValue(field.Key, field.Value); } formItem.Insert(); }
private void SetFormValues(IForm form, BizFormItem item) { foreach (var control in form.Controls) { if (control is IFileControl) { HandleFileControl(control, item); } else { item.SetValue(control.Name, control.SubmittedValue); } } }
private void SetFormSpecificData(string formName, ContactInfo contact, BizFormItem formItem) { if (formName == COFFEE_SAMPLE_LIST_FORM_CODE_NAME) { formItem.SetValue("Country", CountryInfo.Provider.Get(contact.ContactCountryID).CountryThreeLetterCode); var state = StateInfo.Provider.Get(contact.ContactStateID); var stateName = state != null ? state.StateDisplayName : string.Empty; formItem.SetValue("State", stateName); } if (formName == CONTACT_US_FORM_CODE_NAME) { formItem.SetValue("UserMessage", "Message"); } }
private void CreateFormSubmission(ITreeNode document, string formName, ContactInfo contact) { var dataClassInfo = DataClassInfoProviderBase <DataClassInfoProvider> .GetDataClassInfo(BizFormInfoProvider .GetBizFormInfo(formName, _mSiteInfo.SiteID).FormClassID); var formItem = new BizFormItem(dataClassInfo.ClassName); _mFormActivityGenerator.GenerateFormSubmitActivity(formItem, document, contact.ContactID, _mSiteInfo.SiteID); CopyDataFromContactToForm(contact, dataClassInfo, formItem); SetFormSpecificData(formName, contact, formItem); formItem.Insert(); }
private void SendAcknowledgementEmail(BizFormInfo formInfo, BizFormItem item, IList <IControl> controls) { AddSpecialFormControls(formInfo, item, controls); EmailMessage em = new EmailMessage { EmailFormat = EmailFormatEnum.Html, From = formInfo.FormConfirmationSendFromEmail, Recipients = item.GetStringValue(formInfo.FormConfirmationEmailField, String.Empty), Subject = formInfo.FormConfirmationEmailSubject, Body = _emailParser.Parse(formInfo.FormConfirmationTemplate, controls) }; EmailSender.SendEmail(em); }
private GeneralResultDTO SubmitContactUsFormInternal(string fullName, string companyName, string email, string phone, string message, List <HttpPostedFile> files) { var contactUsForm = BizFormInfoProvider.GetBizFormInfo(_ContactUsFormCodeName, SiteContext.CurrentSiteID); if (contactUsForm != null) { var contactUsFormClass = DataClassInfoProvider.GetDataClassInfo(contactUsForm.FormClassID); string contactUsFormClassName = contactUsFormClass.ClassName; BizFormItem newFormItem = BizFormItem.New(contactUsFormClassName); newFormItem.SetValue("FullName", fullName); newFormItem.SetValue("CompanyName", companyName); newFormItem.SetValue("Email", email); newFormItem.SetValue("Phone", phone); newFormItem.SetValue("Message", message); newFormItem.SetValue("Site", SiteContext.CurrentSite.DisplayName); newFormItem.SetValue("User", MembershipContext.AuthenticatedUser.UserName); newFormItem.SetValue("FormInserted", DateTime.Now); newFormItem.SetValue("FormUpdated", DateTime.Now); if (files.Count > 0) { for (int i = 0; files.Count > i; i++) { string extension = System.IO.Path.GetExtension(files[i].FileName); string fileName = new FormsHelper().GetNewGuidName(extension); string formFilesFolderPath = FormHelper.GetBizFormFilesFolderPath(SiteContext.CurrentSiteName); string fileNameString = fileName + "/" + Path.GetFileName(files[i].FileName); new FormsHelper().SaveFileToDisk(files[i], fileName, formFilesFolderPath); newFormItem.SetValue(string.Format("File{0}", i + 1), (object)fileNameString); } } newFormItem.Insert(); new FormsHelper().SendFormEmail(newFormItem, files.Count); return(new GeneralResultDTO { success = true }); } else { return(new GeneralResultDTO { success = false, errorMessage = ResHelper.GetString("Kadena.ContactForm.ContactFormRepositoryNotFound", LocalizationContext.CurrentCulture.CultureCode) }); } }
private void HandleFileControl(IControl control, BizFormItem item) { var fileControl = control as IFileControl; if (string.IsNullOrWhiteSpace(fileControl?.SubmittedValue) | fileControl?.SubmittedData == null) { return; } var fileNameMask = Guid.NewGuid(); var extension = fileControl.SubmittedValue.Substring(fileControl.SubmittedValue.LastIndexOf(".", StringComparison.Ordinal)); item.SetValue(fileControl.Name, $"{fileNameMask}{extension}/{fileControl.SubmittedValue}"); SaveFile(fileNameMask.ToString(), extension, fileControl.SubmittedData); }
public void UpdateFormEntry(string formName, int itemID, string fieldToUpdate, object newValue) { BizFormInfo formObject = BizFormInfoProvider.GetBizFormInfo(formName, SiteContext.CurrentSiteID); if (formObject == null) { throw new InvalidOperationException("The requested checkin form does not exist."); } // Gets the class name of the form DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID); string className = formClass.ClassName; BizFormItem item = BizFormItemProvider.GetItem(itemID, className); item.SetValue(item.ColumnNames.Find(t => t.ToLower() == fieldToUpdate), newValue); item.SubmitChanges(false); }
private void SendNotificationEmail(BizFormInfo formInfo, IForm form, BizFormItem item) { AddSpecialFormControls(formInfo, item, form.Controls); EmailMessage em = new EmailMessage(); em.EmailFormat = EmailFormatEnum.Html; em.From = formInfo.FormSendFromEmail; em.Recipients = formInfo.FormSendToEmail; em.Subject = formInfo.FormEmailSubject; foreach (var source in form.Controls.Where(t => t.Type == ControlType.UploadFile)) { var fileControl = (source as IFileControl); if (fileControl?.SubmittedValue != null) { var extension = fileControl.SubmittedValue.Substring(fileControl.SubmittedValue.LastIndexOf(".", StringComparison.Ordinal)); fileControl.SubmittedData.Position = 0; em.Attachments.Add(new Attachment(fileControl.SubmittedData, fileControl.Name + extension)); } } if (string.IsNullOrWhiteSpace(form?.Notification?.Template)) { var html = ""; foreach (var fieldInfo in form.Controls) { html += $"<tr><td>{fieldInfo.Label}</td><td>{fieldInfo.SubmittedValue?.Replace("\r\n", "<br />")}</td></tr>"; } em.Body = "<table cellpadding=\"10\">" + html + "</table>"; } else { em.Body = _emailParser.Parse(form.Notification?.Template, form.Controls); } EmailSender.SendEmail(em); }
public void InsertFormEntry(string formName, FormEntry entry) { BizFormInfo formObject = BizFormInfoProvider.GetBizFormInfo(formName, SiteContext.CurrentSiteID); if (formObject == null) { throw new InvalidOperationException("The requested checkin form does not exist."); } // Gets the class name of the 'ContactUs' form DataClassInfo formClass = DataClassInfoProvider.GetDataClassInfo(formObject.FormClassID); string className = formClass.ClassName; BizFormItem item = BizFormItem.New(className); foreach (var formValue in entry.FormValues) { item.SetValue(item.ColumnNames.Find(t => t.ToLower() == formValue.Key), formValue.Value); } item.Insert(); }
private void AddSpecialFormControls(BizFormInfo formInfo, BizFormItem item, IList <IControl> controls) { // these special fields may not be in the controls list, so add their values manually, check first though if (controls.FirstOrDefault(ctrl => ctrl.Name == "FormInserted") == null) { controls.Add(new Control { Name = "FormInserted", Label = "Form Submission Date", SubmittedValue = item.FormInserted.ToString("U") }); } if (controls.FirstOrDefault(ctrl => ctrl.Name == "FormUpdated") == null) { controls.Add(new Control { Name = "FormUpdated", Label = "Form Update Date", SubmittedValue = item.FormUpdated.ToString("U") }); } if (controls.FirstOrDefault(ctrl => ctrl.Name == $"{formInfo.FormName}ID") == null) { controls.Add(new Control { Name = $"{formInfo.FormName}ID", Label = formInfo.FormDisplayName, SubmittedValue = formInfo.FormDisplayName }); } }
private void SendFormEmail(BizFormItem item) { if (item.BizFormInfo != null) { MacroResolver resolver = MacroContext.CurrentResolver.CreateChild(); resolver.SetAnonymousSourceData(item); resolver.Settings.EncodeResolvedValues = true; resolver.Culture = CultureHelper.GetPreferredCulture(); string body = DataHelper.GetNotEmpty(item.BizFormInfo.FormEmailTemplate, string.Empty); body = resolver.ResolveMacros(body); EmailMessage message = new EmailMessage(); message.From = item.BizFormInfo.FormSendFromEmail; message.Recipients = resolver.ResolveMacros(item.BizFormInfo.FormSendToEmail); message.Subject = resolver.ResolveMacros(item.BizFormInfo.FormEmailSubject); message.Body = URLHelper.MakeLinksAbsolute(body); message.EmailFormat = EmailFormatEnum.Html; EmailSender.SendEmail(message); } }
private void SetFormSpecificData(string formName, ContactInfo contact, BizFormItem formItem) { if (formName == TryFreeSampleFormCodeName) { formItem.SetValue("Country", CountryInfoProvider.GetCountryInfo(contact.ContactCountryID).CountryThreeLetterCode); var stateInfo = StateInfoProvider.GetStateInfo(contact.ContactStateID); var str = stateInfo != null ? stateInfo.StateDisplayName : string.Empty; formItem.SetValue("State", str); } if (formName == ContactUsFormCodeName) { formItem.SetValue("UserMessage", "Message"); } if (formName != BusinessCustomerRegistationFormCodeName) { return; } formItem.SetValue("BecomePartner", "Becoming a partner café"); }
private GeneralResultDTO SubmitNewKitRequestInternal(string name, string description, int[] productIDs, string[] productNames) { var newKitRequestForm = BizFormInfoProvider.GetBizFormInfo(_NewKitRequestFormCodeName, SiteContext.CurrentSiteID); if (newKitRequestForm != null) { var newKitRequestFormClass = DataClassInfoProvider.GetDataClassInfo(newKitRequestForm.FormClassID); string newKitRequestFormClassName = newKitRequestFormClass.ClassName; BizFormItem newFormItem = BizFormItem.New(newKitRequestFormClassName); newFormItem.SetValue("Name", name); newFormItem.SetValue("Description", description); newFormItem.SetValue("ProductNames", string.Join("|", productNames)); newFormItem.SetValue("ProductNodeIDs", string.Join("|", productIDs)); newFormItem.SetValue("Site", SiteContext.CurrentSite.DisplayName); newFormItem.SetValue("User", MembershipContext.AuthenticatedUser.UserName); newFormItem.SetValue("FormInserted", DateTime.Now); newFormItem.SetValue("FormUpdated", DateTime.Now); newFormItem.Insert(); SendFormEmail(newFormItem); return(new GeneralResultDTO { success = true }); } else { return(new GeneralResultDTO { success = false, errorMessage = ResHelper.GetString("Kadena.NewKitRequest.ContactFormRepositoryNotFound", LocalizationContext.CurrentCulture.CultureCode) }); } }
private void CreateFormSubmission(TreeNode document, string formName, ContactInfo contact) { var form = BizFormInfo.Provider.Get(formName, mSite.SiteID); var classInfo = DataClassInfoProvider.GetDataClassInfo(form.FormClassID); var formItem = new BizFormItem(classInfo.ClassName); var url = DocumentURLProvider.GetAbsoluteUrl(document); CopyDataFromContactToForm(contact, classInfo, formItem); SetFormSpecificData(formName, contact, formItem); formItem.Insert(); var activity = new ActivityInfo { ActivityContactID = contact.ContactID, ActivityItemID = form.FormID, ActivityItemDetailID = formItem.ItemID, ActivitySiteID = mSite.SiteID, ActivityTitle = nameBuilder.CreateTitle(PredefinedActivityType.BIZFORM_SUBMIT, form.FormDisplayName), ActivityType = PredefinedActivityType.BIZFORM_SUBMIT, ActivityURL = url }; ActivityInfo.Provider.Set(activity); }
private void CopyDataFromContactToForm(ContactInfo contact, DataClassInfo classInfo, BizFormItem formItem) { var mapInfo = new FormInfo(classInfo.ClassContactMapping); var fields = mapInfo.GetFields(true, true); foreach (FormFieldInfo ffi in fields) { formItem.SetValue(ffi.MappedToField, contact.GetStringValue(ffi.Name, string.Empty)); } }