/// <summary>
        /// Initialises the Field grid.
        /// </summary>
        /// <param name="AUnitType">Indicator which types of units should be shown</param>
        protected void grdFields_InitialiseData(TUnitTypeEnum AUnitType)
        {
            FUnitType = AUnitType;

            if ((FCurrentConferenceKey.ToString() == grdFields.Text) || (FCurrentConferenceKey == 0))
            {
                // don't reload the grid if the confernece key didn't change
                return;
            }

            grdFields.Text = FCurrentConferenceKey.ToString();

            String ConferencePrefix;
            long   ConferenceKey = FCurrentConferenceKey;

            if (ucoConferenceSelection.AllConferenceSelected)
            {
                // if all conferences are seleced we get the relevant fields of all conferences
                // The conference key must be set to -1
                ConferenceKey = -1;
            }

            TRemote.MConference.WebConnectors.GetFieldUnits(ConferenceKey, FUnitType, out FUnitTableList, out ConferencePrefix);

            if (grdFields.Columns.Count == 0)
            {
                // Add the columns only once.
                // Don't add them again when the conference key changed
                grdFields.AddCheckBoxColumn("", FUnitTableList.Columns["Selection"]);

                if (FUnitType == TUnitTypeEnum.utOutreachOptions)
                {
                    grdFields.AddTextColumn(Catalog.GetString("Outreach Code"), FUnitTableList.Columns["Outreach Code"]);
                }
                else
                {
                    grdFields.AddTextColumn(Catalog.GetString("Unit Key"), FUnitTableList.Columns["Unit Key"]);
                }

                grdFields.AddTextColumn(Catalog.GetString("Unit Name"), FUnitTableList.Columns["Unit Name"]);
            }

            UpdateUnitGrid("");

            FUnitTableList.DefaultView.AllowNew    = false;
            FUnitTableList.DefaultView.AllowEdit   = true;
            FUnitTableList.DefaultView.AllowDelete = false;

            grdFields.DataSource = new DevAge.ComponentModel.BoundDataView(FUnitTableList.DefaultView);

            grdFields.Text = ConferenceKey.ToString();

            // select all units by default
            foreach (DataRow Row in FUnitTableList.Rows)
            {
                Row["Selection"] = true;
            }
        }
        private void grdFields_InitialiseData(TFrmPetraReportingUtils APetraUtilsObject)
        {
            FUnitType = TUnitTypeEnum.utUnknown;

            this.ucoConferenceSelection.AddConfernceKeyChangedEventHandler(this.ConferenceKeyChanged);
            this.ucoConferenceSelection.AddConferenceSelectionChangedEventHandler(this.ConferenceSelectionChanged);

            rbtFull.Checked = true;
            cmbSignOffLines.SelectedIndex  = 0;
            cmbChargedFields.SelectedIndex = 0;
            FCurrentConferenceKey          = Convert.ToInt64(this.ucoConferenceSelection.ConferenceKey);

            ucoConferenceSelection.DisableRadioButtonAllConferences(true);
            ucoConferenceSelection.FShowSelectOutreachOptionsDialog = false;

            grdFields.DoubleClickCell += new TDoubleClickCellEventHandler(grdFieldDoubleClick);
        }
        private void grdFields_InitialiseData(TFrmPetraReportingUtils APetraUtilsObject)
        {
            FUnitType = TUnitTypeEnum.utUnknown;

            this.ucoConferenceSelection.AddConfernceKeyChangedEventHandler(this.ConferenceKeyChanged);
            this.ucoConferenceSelection.AddConferenceSelectionChangedEventHandler(this.ConferenceSelectionChanged);

            rbtFull.Checked = true;
            cmbSignOffLines.SelectedIndex = 0;
            cmbChargedFields.SelectedIndex = 0;
            FCurrentConferenceKey = Convert.ToInt64(this.ucoConferenceSelection.ConferenceKey);

            ucoConferenceSelection.DisableRadioButtonAllConferences(true);
            ucoConferenceSelection.FShowSelectOutreachOptionsDialog = false;

            grdFields.DoubleClickCell += new TDoubleClickCellEventHandler(grdFieldDoubleClick);
        }
Exemplo n.º 4
0
        public static bool GetFieldUnits(Int64 AConferenceKey, TUnitTypeEnum AFieldTypes, out DataTable AFieldsTable, out String AConferencePrefix)
        {
            TDBTransaction ReadTransaction;
            Boolean NewTransaction = false;

            AFieldsTable = new DataTable("Field Units");
            AConferencePrefix = "";
            PUnitTable UnitTable;
            DataTable TmpTable;

            PmShortTermApplicationTable ShortTermerTable = new PmShortTermApplicationTable();

            AFieldsTable.Columns.Add("Selection", System.Type.GetType("System.Boolean"));
            AFieldsTable.Columns.Add("Unit Key", System.Type.GetType("System.Int64"));
            AFieldsTable.Columns.Add("Unit Name", System.Type.GetType("System.String"));
            AFieldsTable.Columns.Add("Outreach Code", System.Type.GetType("System.String"));
            AFieldsTable.Columns.Add("Used_in_Conference", System.Type.GetType("System.Boolean"));

            AConferencePrefix = TConferenceOptions.GetConferencePrefix(AConferenceKey);

            switch (AFieldTypes)
            {
                case TUnitTypeEnum.utSendingFields:
                    return TConferenceOptions.GetSendingFields(AConferenceKey, ref AFieldsTable);

                case TUnitTypeEnum.utReceivingFields:
                    return TConferenceOptions.GetReceivingFields(AConferenceKey, ref AFieldsTable);

                case TUnitTypeEnum.utOutreachOptions:

                    if (TConferenceOptions.GetOutreachOptions(AConferenceKey, out TmpTable))
                    {
                        foreach (DataRow Row in TmpTable.Rows)
                        {
                            DataRow NewRow = AFieldsTable.NewRow();

                            NewRow[SELECTION] = false;
                            NewRow[UNIT_KEY] = Row["Partner Key"];
                            NewRow[UNIT_NAME] = Row["Unit Name"];
                            NewRow[CAMPAIGN_CODE] = Row["Outreach Code"];
                            NewRow[USED_IN_CONFERENCE] = true;

                            AFieldsTable.Rows.Add(NewRow);
                        }

                        return true;
                    }

                    return false;

                default:
                    break;
            }

            TLogging.LogAtLevel(9, "TConferenceOptions.GetFieldUnits called!");

            ReadTransaction = DBAccess.GDBAccessObj.GetNewOrExistingTransaction(IsolationLevel.RepeatableRead,
                TEnforceIsolationLevel.eilMinimum,
                out NewTransaction);

            try
            {
                StringCollection FieldList = new StringCollection();
                FieldList.Add(PmShortTermApplicationTable.GetStFieldChargedDBName());
                FieldList.Add(PmShortTermApplicationTable.GetConfirmedOptionCodeDBName());
                FieldList.Add(PmShortTermApplicationTable.GetRegistrationOfficeDBName());

                ShortTermerTable = PmShortTermApplicationAccess.LoadAll(FieldList, ReadTransaction);

                long LastUnitKey = 0;
                long NewUnitKey = 0;
                bool IsUsedInOneConference = false;

                String ConfirmedOptionCode = "";
                System.Type StringType = System.Type.GetType("System.String");

                String SearchedColumnName = "";

                switch (AFieldTypes)
                {
                    case TUnitTypeEnum.utChargedFields:
                        SearchedColumnName = PmShortTermApplicationTable.GetStFieldChargedDBName();
                        break;

                    case TUnitTypeEnum.utRegisteringFields:
                        SearchedColumnName = PmShortTermApplicationTable.GetRegistrationOfficeDBName();
                        break;

                    default:
                        break;
                }

                foreach (DataRow ShortTermerRow in ShortTermerTable.Select("", SearchedColumnName))
                {
                    if ((ShortTermerRow[SearchedColumnName] != null)
                        && (ShortTermerRow[SearchedColumnName].ToString().Length > 0))
                    {
                        NewUnitKey = (long)ShortTermerRow[SearchedColumnName];
                    }
                    else
                    {
                        continue;
                    }

                    if (LastUnitKey != NewUnitKey)
                    {
                        if ((AFieldsTable.Rows.Count > 0)
                            && (IsUsedInOneConference))
                        {
                            AFieldsTable.Rows[AFieldsTable.Rows.Count - 1][USED_IN_CONFERENCE] = true;
                        }

                        IsUsedInOneConference = false;
                    }

                    // We have to check from every shorttermer if the charged field is used
                    // in this conference
                    if (IsUsedInOneConference)
                    {
                        continue;
                    }

                    if (ShortTermerRow[PmShortTermApplicationTable.GetConfirmedOptionCodeDBName()].GetType() == StringType)
                    {
                        ConfirmedOptionCode = (string)ShortTermerRow[PmShortTermApplicationTable.GetConfirmedOptionCodeDBName()];
                    }
                    else
                    {
                        ConfirmedOptionCode = "";
                    }

                    if (ConfirmedOptionCode.StartsWith(AConferencePrefix))
                    {
                        IsUsedInOneConference = true;
                    }

                    if (LastUnitKey == NewUnitKey)
                    {
                        continue;
                    }

                    UnitTable = PUnitAccess.LoadByPrimaryKey(NewUnitKey, ReadTransaction);

                    if (UnitTable.Rows.Count > 0)
                    {
                        DataRow ResultRow = AFieldsTable.NewRow();

                        ResultRow[SELECTION] = false;
                        ResultRow[UNIT_KEY] = NewUnitKey;
                        ResultRow[UNIT_NAME] = UnitTable[0][PUnitTable.GetUnitNameDBName()];
                        ResultRow[CAMPAIGN_CODE] = ConfirmedOptionCode;
                        ResultRow[USED_IN_CONFERENCE] = IsUsedInOneConference;

                        AFieldsTable.Rows.Add(ResultRow);
                        LastUnitKey = NewUnitKey;
                    }
                }

                // Check for the previous entry the "IsUsedInConference" field
                if ((AFieldsTable.Rows.Count > 0)
                    && (IsUsedInOneConference))
                {
                    AFieldsTable.Rows[AFieldsTable.Rows.Count - 1][USED_IN_CONFERENCE] = true;
                }
            }
            finally
            {
                if (NewTransaction)
                {
                    DBAccess.GDBAccessObj.CommitTransaction();
                    TLogging.LogAtLevel(7, "TConferenceOptions.GetFieldUnits: committed own transaction.");
                }
            }
            return true;
        }
Exemplo n.º 5
0
        public static bool GetFieldUnits(Int64 AConferenceKey, TUnitTypeEnum AFieldTypes, out DataTable AFieldsTable, out String AConferencePrefix)
        {
            TDBTransaction ReadTransaction;
            Boolean        NewTransaction = false;

            AFieldsTable      = new DataTable("Field Units");
            AConferencePrefix = "";
            PUnitTable UnitTable;
            DataTable  TmpTable;

            PmShortTermApplicationTable ShortTermerTable = new PmShortTermApplicationTable();

            AFieldsTable.Columns.Add("Selection", System.Type.GetType("System.Boolean"));
            AFieldsTable.Columns.Add("Unit_Key", System.Type.GetType("System.Int64"));
            AFieldsTable.Columns.Add("Unit_Name", System.Type.GetType("System.String"));
            AFieldsTable.Columns.Add("Outreach_Code", System.Type.GetType("System.String"));
            AFieldsTable.Columns.Add("Used_in_Conference", System.Type.GetType("System.Boolean"));

            AConferencePrefix = TConferenceOptions.GetConferencePrefix(AConferenceKey);

            switch (AFieldTypes)
            {
            case TUnitTypeEnum.utSendingFields:
                return(TConferenceOptions.GetSendingFields(AConferenceKey, ref AFieldsTable));

            case TUnitTypeEnum.utReceivingFields:
                return(TConferenceOptions.GetReceivingFields(AConferenceKey, ref AFieldsTable));

            case TUnitTypeEnum.utOutreachOptions:

                if (TConferenceOptions.GetOutreachOptions(AConferenceKey, out TmpTable))
                {
                    foreach (DataRow Row in TmpTable.Rows)
                    {
                        DataRow NewRow = AFieldsTable.NewRow();

                        NewRow[SELECTION]          = false;
                        NewRow[UNIT_KEY]           = Row["Partner Key"];
                        NewRow[UNIT_NAME]          = Row["Unit Name"];
                        NewRow[CAMPAIGN_CODE]      = Row["Outreach Code"];
                        NewRow[USED_IN_CONFERENCE] = true;

                        AFieldsTable.Rows.Add(NewRow);
                    }

                    return(true);
                }

                return(false);

            default:
                break;
            }

            TLogging.LogAtLevel(9, "TConferenceOptions.GetFieldUnits called!");

            TDataBase db = DBAccess.Connect("GetFieldUnits");

            ReadTransaction = db.GetNewOrExistingTransaction(IsolationLevel.RepeatableRead,
                                                             out NewTransaction);

            try
            {
                StringCollection FieldList = new StringCollection();
                FieldList.Add(PmShortTermApplicationTable.GetStFieldChargedDBName());
                FieldList.Add(PmShortTermApplicationTable.GetConfirmedOptionCodeDBName());
                FieldList.Add(PmShortTermApplicationTable.GetRegistrationOfficeDBName());

                ShortTermerTable = PmShortTermApplicationAccess.LoadAll(FieldList, ReadTransaction);

                long LastUnitKey           = 0;
                long NewUnitKey            = 0;
                bool IsUsedInOneConference = false;

                String      ConfirmedOptionCode = "";
                System.Type StringType          = System.Type.GetType("System.String");

                String SearchedColumnName = "";

                switch (AFieldTypes)
                {
                case TUnitTypeEnum.utChargedFields:
                    SearchedColumnName = PmShortTermApplicationTable.GetStFieldChargedDBName();
                    break;

                case TUnitTypeEnum.utRegisteringFields:
                    SearchedColumnName = PmShortTermApplicationTable.GetRegistrationOfficeDBName();
                    break;

                default:
                    break;
                }

                foreach (DataRow ShortTermerRow in ShortTermerTable.Select("", SearchedColumnName))
                {
                    if ((ShortTermerRow[SearchedColumnName] != null) &&
                        (ShortTermerRow[SearchedColumnName].ToString().Length > 0))
                    {
                        NewUnitKey = (long)ShortTermerRow[SearchedColumnName];
                    }
                    else
                    {
                        continue;
                    }

                    if (LastUnitKey != NewUnitKey)
                    {
                        if ((AFieldsTable.Rows.Count > 0) &&
                            (IsUsedInOneConference))
                        {
                            AFieldsTable.Rows[AFieldsTable.Rows.Count - 1][USED_IN_CONFERENCE] = true;
                        }

                        IsUsedInOneConference = false;
                    }

                    // We have to check from every shorttermer if the charged field is used
                    // in this conference
                    if (IsUsedInOneConference)
                    {
                        continue;
                    }

                    if (ShortTermerRow[PmShortTermApplicationTable.GetConfirmedOptionCodeDBName()].GetType() == StringType)
                    {
                        ConfirmedOptionCode = (string)ShortTermerRow[PmShortTermApplicationTable.GetConfirmedOptionCodeDBName()];
                    }
                    else
                    {
                        ConfirmedOptionCode = "";
                    }

                    if (ConfirmedOptionCode.StartsWith(AConferencePrefix))
                    {
                        IsUsedInOneConference = true;
                    }

                    if (LastUnitKey == NewUnitKey)
                    {
                        continue;
                    }

                    UnitTable = PUnitAccess.LoadByPrimaryKey(NewUnitKey, ReadTransaction);

                    if (UnitTable.Rows.Count > 0)
                    {
                        DataRow ResultRow = AFieldsTable.NewRow();

                        ResultRow[SELECTION]          = false;
                        ResultRow[UNIT_KEY]           = NewUnitKey;
                        ResultRow[UNIT_NAME]          = UnitTable[0][PUnitTable.GetUnitNameDBName()];
                        ResultRow[CAMPAIGN_CODE]      = ConfirmedOptionCode;
                        ResultRow[USED_IN_CONFERENCE] = IsUsedInOneConference;

                        AFieldsTable.Rows.Add(ResultRow);
                        LastUnitKey = NewUnitKey;
                    }
                }

                // Check for the previous entry the "IsUsedInConference" field
                if ((AFieldsTable.Rows.Count > 0) &&
                    (IsUsedInOneConference))
                {
                    AFieldsTable.Rows[AFieldsTable.Rows.Count - 1][USED_IN_CONFERENCE] = true;
                }
            }
            finally
            {
                if (NewTransaction)
                {
                    ReadTransaction.Commit();
                    TLogging.LogAtLevel(7, "TConferenceOptions.GetFieldUnits: committed own transaction.");
                }
            }
            return(true);
        }
        /// <summary>
        /// Initialises the Field grid.
        /// </summary>
        /// <param name="AUnitType">Indicator which types of units should be shown</param>
        protected void grdFields_InitialiseData(TUnitTypeEnum AUnitType)
        {
            FUnitType = AUnitType;

            if ((FCurrentConferenceKey.ToString() == grdFields.Text) || (FCurrentConferenceKey == 0))
            {
                // don't reload the grid if the confernece key didn't change
                return;
            }

            grdFields.Text = FCurrentConferenceKey.ToString();

            String ConferencePrefix;
            long ConferenceKey = FCurrentConferenceKey;

            if (ucoConferenceSelection.AllConferenceSelected)
            {
                // if all conferences are seleced we get the relevant fields of all conferences
                // The conference key must be set to -1
                ConferenceKey = -1;
            }

            TRemote.MConference.WebConnectors.GetFieldUnits(ConferenceKey, FUnitType, out FUnitTableList, out ConferencePrefix);

            if (grdFields.Columns.Count == 0)
            {
                // Add the columns only once.
                // Don't add them again when the conference key changed
                grdFields.AddCheckBoxColumn("", FUnitTableList.Columns["Selection"]);

                if (FUnitType == TUnitTypeEnum.utOutreachOptions)
                {
                    grdFields.AddTextColumn(Catalog.GetString("Outreach Code"), FUnitTableList.Columns["Outreach Code"]);
                }
                else
                {
                    grdFields.AddTextColumn(Catalog.GetString("Unit Key"), FUnitTableList.Columns["Unit Key"]);
                }

                grdFields.AddTextColumn(Catalog.GetString("Unit Name"), FUnitTableList.Columns["Unit Name"]);
            }

            UpdateUnitGrid("");

            FUnitTableList.DefaultView.AllowNew = false;
            FUnitTableList.DefaultView.AllowEdit = true;
            FUnitTableList.DefaultView.AllowDelete = false;

            grdFields.DataSource = new DevAge.ComponentModel.BoundDataView(FUnitTableList.DefaultView);

            grdFields.Text = ConferenceKey.ToString();

            // select all units by default
            foreach (DataRow Row in FUnitTableList.Rows)
            {
                Row["Selection"] = true;
            }
        }