public static Template GetEmailTemplate(int emailTemplateID, int productFamilyID) { Template result = new Template(); EmailTemplate template = EmailTemplates.GetEmailTemplate(UserSession.LoginUser, emailTemplateID); OrganizationEmails emails = new OrganizationEmails(UserSession.LoginUser); emails.LoadByTemplateAndProductFamily(UserSession.LoginUser.OrganizationID, emailTemplateID, productFamilyID); result.EmailTemplateID = template.EmailTemplateID; result.Description = template.Description; result.Body = template.Body; result.IsHtml = template.IsHtml; result.IsEmail = template.IsEmail; result.Header = template.Header; result.UseTemplate = template.UseGlobalTemplate && template.IsEmail; result.Footer = template.Footer; result.Subject = template.Subject; if (!emails.IsEmpty && UserSession.LoginUser.UserID != -34) { result.Body = emails[0].Body; result.IsHtml = emails[0].IsHtml; result.Subject = emails[0].Subject; result.Header = emails[0].Header; result.Footer = emails[0].Footer; result.UseTemplate = emails[0].UseGlobalTemplate && template.IsEmail; } return(result); }
public static void SaveEmailTemplate(int emailTemplateID, string subject, string header, string footer, string body, bool isHtml, bool useTemplate, int productFamilyID) { if (!UserSession.CurrentUser.IsSystemAdmin) { return; } EmailTemplate template = EmailTemplates.GetEmailTemplate(UserSession.LoginUser, emailTemplateID); subject = template.IsEmail ? subject : ""; if (UserSession.LoginUser.UserID == -34) { template.Body = body; template.EmailTemplateID = emailTemplateID; template.IsHtml = isHtml; template.Subject = subject; template.Header = header; template.Footer = footer; template.UseGlobalTemplate = useTemplate && template.IsEmail; template.Collection.Save(); } else { OrganizationEmails emails = new OrganizationEmails(UserSession.LoginUser); emails.LoadByTemplateAndProductFamily(UserSession.LoginUser.OrganizationID, emailTemplateID, productFamilyID); OrganizationEmail email = emails.IsEmpty || (emails[0].ProductFamilyID == null && productFamilyID != -1) ? (new OrganizationEmails(UserSession.LoginUser)).AddNewOrganizationEmail() : emails[0]; email.Body = body; email.EmailTemplateID = emailTemplateID; email.IsHtml = isHtml; email.OrganizationID = UserSession.LoginUser.OrganizationID; email.Subject = subject; email.Header = header; email.Footer = footer; email.UseGlobalTemplate = useTemplate && template.IsEmail; if (productFamilyID == -1) { email.ProductFamilyID = null; } else { email.ProductFamilyID = productFamilyID; } email.Collection.Save(); } }
public static PlaceHolders[] GetPlaceHolders(int emailTemplateID) { EmailTemplate template = EmailTemplates.GetEmailTemplate(UserSession.LoginUser, emailTemplateID); List <PlaceHolders> result = new List <PlaceHolders>(); EmailTemplateParameters paramaters = new EmailTemplateParameters(UserSession.LoginUser); paramaters.LoadByTemplate(emailTemplateID); List <PlaceHolder> list = new List <PlaceHolder>(); PlaceHolders phs = new PlaceHolders(); if (!paramaters.IsEmpty) { phs.Name = "Miscellaneous"; phs.Description = ""; foreach (EmailTemplateParameter parameter in paramaters) { PlaceHolder ph = new PlaceHolder(); ph.Name = parameter.Name; ph.Description = parameter.Description ?? ""; list.Add(ph); } PlaceHolder phTo = new PlaceHolder(); phTo.Name = "ToEmailAddress"; phTo.Description = "This adds the recipient's email address."; list.Add(phTo); phTo = new PlaceHolder(); phTo.Name = "ToFirstName"; phTo.Description = "This adds the recipient's first name."; list.Add(phTo); phTo = new PlaceHolder(); phTo.Name = "ToLastName"; phTo.Description = "This adds the recipient's last name."; list.Add(phTo); phs.Items = list.ToArray(); result.Add(phs); } EmailTemplateTables tables = new EmailTemplateTables(UserSession.LoginUser); tables.LoadByTemplate(emailTemplateID); foreach (EmailTemplateTable table in tables) { phs = new PlaceHolders(); phs.Name = table.Alias; phs.Description = table.Description ?? ""; list.Clear(); ReportTable reportTable = ReportTables.GetReportTable(UserSession.LoginUser, table.ReportTableID); ReportTableFields fields = new ReportTableFields(UserSession.LoginUser); fields.LoadByReportTableID(table.ReportTableID); foreach (ReportTableField field in fields) { PlaceHolder ph = new PlaceHolder(); ph.Name = table.Alias + '.' + field.FieldName; ph.Description = field.Description ?? ""; list.Add(ph); } //do custom fields here ReferenceType refType = reportTable.CustomFieldRefType; if (refType != ReferenceType.None) { //TicketTypes ticketTypes = new TicketTypes(UserSession.LoginUser); //ticketTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID); CustomFields customFields = new CustomFields(UserSession.LoginUser); customFields.LoadByReferenceType(UserSession.LoginUser.OrganizationID, refType, null, "Name"); foreach (CustomField customField in customFields) { string customFieldName = table.Alias + "." + customField.Name; bool flag = false; foreach (PlaceHolder existingPH in list) { if (existingPH.Name == customFieldName) { flag = true; break; } } if (flag) { continue; } PlaceHolder ph = new PlaceHolder(); ph.Name = customFieldName; ph.Description = ""; list.Add(ph); /* * if (customField.RefType == ReferenceType.Tickets || customField.RefType == ReferenceType.Actions) * { * TicketType ticketType = ticketTypes.FindByTicketTypeID(customField.AuxID); * if (ticketType != null) * { * // * } * } * else * { * }*/ } } phs.Items = list.ToArray(); result.Add(phs); } phs = new PlaceHolders(); phs.Name = "MyCompany"; phs.Description = "Your company's information"; list.Clear(); ReportTableFields companyFields = new ReportTableFields(UserSession.LoginUser); companyFields.LoadByReportTableID(6); foreach (ReportTableField field in companyFields) { PlaceHolder ph = new PlaceHolder(); ph.Name = "MyCompany." + field.FieldName; ph.Description = field.Description ?? ""; list.Add(ph); } phs.Items = list.ToArray(); result.Add(phs); return(result.ToArray()); }