Esempio n. 1
0
    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());
    }
Esempio n. 2
0
        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());
        }
Esempio n. 3
0
    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()));
                    }
                }
            }
        }
    }