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()); }
public ReportFieldItem[] GetFields(int reportSubCatID) { LoginUser loginUser = TSAuthentication.GetLoginUser(); List <ReportFieldItem> result = new List <ReportFieldItem>(); TicketTypes ticketTypes = new TicketTypes(loginUser); ticketTypes.LoadAllPositions(loginUser.OrganizationID); ReportSubcategory subCat = ReportSubcategories.GetReportSubcategory(loginUser, reportSubCatID); ReportTable primaryTable = ReportTables.GetReportTable(loginUser, subCat.ReportCategoryTableID); ReportTableFields reportTableFields = new ReportTableFields(loginUser); reportTableFields.LoadByReportTableID(subCat.ReportCategoryTableID); CRMLinkTable crmLink = new CRMLinkTable(loginUser); crmLink.LoadByOrganizationID(loginUser.OrganizationID); bool isJiraActive = crmLink.Where(p => p.CRMType.ToLower() == "jira" && p.Active).Any(); List <string> jiraFields = new List <string>() { "DateModifiedByJiraSync", "JiraID", "SyncWithJira", "JiraKey", "JiraLinkURL", "JiraStatus" }; foreach (ReportTableField reportTableField in reportTableFields) { if ((isJiraActive && jiraFields.Where(p => p == reportTableField.FieldName).Any() || !jiraFields.Where(p => p == reportTableField.FieldName).Any())) { result.Add(new ReportFieldItem(primaryTable.Alias, true, reportTableField)); } } if (primaryTable.CustomFieldRefType != ReferenceType.None) { CustomFields customFields = new CustomFields(loginUser); customFields.LoadByReferenceType(loginUser.OrganizationID, primaryTable.CustomFieldRefType, null, "Name"); foreach (CustomField customField in customFields) { if (customField.RefType == ReferenceType.Tickets || customField.RefType == ReferenceType.Actions) { TicketType ticketType = ticketTypes.FindByTicketTypeID(customField.AuxID); if (ticketType != null) { result.Add(new ReportFieldItem(primaryTable.Alias, true, customField, ticketType.Name)); } } else { result.Add(new ReportFieldItem(primaryTable.Alias, true, customField, "")); } } } if (subCat.ReportTableID != null) { ReportTable subTable = ReportTables.GetReportTable(loginUser, (int)subCat.ReportTableID); reportTableFields = new ReportTableFields(loginUser); reportTableFields.LoadByReportTableID((int)subCat.ReportTableID); foreach (ReportTableField reportTableField in reportTableFields) { result.Add(new ReportFieldItem(subTable.Alias, false, reportTableField)); } if (subTable.CustomFieldRefType != ReferenceType.None) { CustomFields customFields = new CustomFields(loginUser); customFields.LoadByReferenceType(loginUser.OrganizationID, subTable.CustomFieldRefType, null, "Name"); foreach (CustomField customField in customFields) { if (customField.RefType == ReferenceType.Tickets || customField.RefType == ReferenceType.Actions) { TicketType ticketType = ticketTypes.FindByTicketTypeID(customField.AuxID); if (ticketType != null) { result.Add(new ReportFieldItem(subTable.Alias, false, customField, ticketType.Name)); } } else { result.Add(new ReportFieldItem(subTable.Alias, false, customField, "")); } } } } return(result.ToArray()); }
private void LoadFields(int subcategoryID) { cmbFields.Items.Clear(); ReportSubcategory sub = (ReportSubcategory)ReportSubcategories.GetReportSubcategory(UserSession.LoginUser, subcategoryID); if (sub == null) { return; } int primaryTableID = sub.ReportCategoryTableID; int secondaryTableID = sub.ReportTableID != null ? (int)sub.ReportTableID : -1; ReportTableFields fields = new ReportTableFields(UserSession.LoginUser); fields.LoadByReportTableID(primaryTableID); foreach (ReportTableField field in fields) { cmbFields.Items.Add(new RadComboBoxItem(field.Row["TableAlias"].ToString() + " :: " + field.Alias, "R" + field.ReportTableFieldID.ToString())); } TicketTypes ticketTypes = new TicketTypes(UserSession.LoginUser); ticketTypes.LoadAllPositions(UserSession.LoginUser.OrganizationID); ReportTable table = (ReportTable)ReportTables.GetReportTable(UserSession.LoginUser, primaryTableID); if (table.CustomFieldRefType != ReferenceType.None) { CustomFields customFields = new CustomFields(UserSession.LoginUser); customFields.LoadByReferenceType(UserSession.LoginUser.OrganizationID, (ReferenceType)table.CustomFieldRefType); foreach (CustomField customField in customFields) { if (customField.RefType == ReferenceType.Tickets) { TicketType ticketType = ticketTypes.FindByTicketTypeID(customField.AuxID); if (ticketType != null) { cmbFields.Items.Add(new RadComboBoxItem(table.Alias + " :: " + customField.Name + " (" + ticketType.Name + ")", "C" + customField.CustomFieldID.ToString())); } } else { cmbFields.Items.Add(new RadComboBoxItem(table.Alias + " :: " + customField.Name, "C" + customField.CustomFieldID.ToString())); } } } if (secondaryTableID > -1) { fields = new ReportTableFields(UserSession.LoginUser); fields.LoadByReportTableID(secondaryTableID); foreach (ReportTableField field in fields) { cmbFields.Items.Add(new RadComboBoxItem(field.Row["TableAlias"].ToString() + " :: " + field.Alias, "R" + field.ReportTableFieldID.ToString())); } table = (ReportTable)ReportTables.GetReportTable(UserSession.LoginUser, secondaryTableID); if (table.CustomFieldRefType != ReferenceType.None) { CustomFields customFields = new CustomFields(UserSession.LoginUser); customFields.LoadByReferenceType(UserSession.LoginUser.OrganizationID, (ReferenceType)table.CustomFieldRefType); foreach (CustomField customField in customFields) { if (customField.RefType == ReferenceType.Tickets) { TicketType ticketType = ticketTypes.FindByTicketTypeID(customField.AuxID); if (ticketType != null) { cmbFields.Items.Add(new RadComboBoxItem(table.Alias + " :: " + customField.Name + " (" + ticketType.Name + ")", "C" + customField.CustomFieldID.ToString())); } } else { cmbFields.Items.Add(new RadComboBoxItem(table.Alias + " :: " + customField.Name, "C" + customField.CustomFieldID.ToString())); } } } } }