Ejemplo n.º 1
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (TransactionScope scope = new TransactionScope())
                using (var connection = connectionProvider.CreateConnection(Web))
                {
                    connection.ExecuteNonQuery(AlterView_EPG_VW_RPT_Availability);
                    LogMessage("Alter View EPG_VW_RPT_Availability.", MessageKind.SUCCESS, 1);
                    connection.ExecuteNonQuery(DropProcedure_EPG_SP_RPT_GetCostCategories);
                    LogMessage("Drop Procedure EPG_SP_RPT_GetCostCategories.", MessageKind.SUCCESS, 1);
                    connection.ExecuteNonQuery(CreateProcedure_EPG_SP_RPT_GetCostCategories);
                    LogMessage("Create Procedure EPG_SP_RPT_GetCostCategories.", MessageKind.SUCCESS, 1);
                    connection.ExecuteNonQuery(AlterProcedure_EPG_SP_RPT_GetCost);
                    LogMessage("Alter Procedure EPG_SP_RPT_GetCost.", MessageKind.SUCCESS, 1);
                    connection.ExecuteNonQuery(AlterProcedure_EPG_SP_RPT_GetListCostCategory);
                    LogMessage("Alter Procedure EPG_SP_RPT_GetListCostCategory.", MessageKind.SUCCESS, 1);
                    connection.ExecuteNonQuery(AlterProcedure_EPG_SP_RPT_GetAvailability);
                    LogMessage("Alter Procedure EPG_SP_RPT_GetAvailability.", MessageKind.SUCCESS, 1);
                    connection.ExecuteNonQuery(AlterProcedure_EPG_SP_RPT_GetResources);
                    LogMessage("Alter Procedure EPG_SP_RPT_GetResources.", MessageKind.SUCCESS, 1);

                    scope.Complete();
                }
        }
Ejemplo n.º 2
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                var tableExists = connection.TableExist(ProjectRatesTableName);
                if (!tableExists)
                {
                    connection.ExecuteNonQuery(ProjectRatesCreateTableQuery);
                    connection.ExecuteNonQuery(ProjectRatesCreateIndexQuery);
                    LogMessage($"{ProjectRatesTableName} table created.", MessageKind.SUCCESS, 2);
                }
                else
                {
                    LogMessage($"{ProjectRatesTableName} table already exists.", MessageKind.SKIPPED, 2);
                }

                var recordCount = connection.ExecuteReader(ProjectRatesGetMaintenanceRecordCountQuery, reader => reader.Read() ? reader.GetInt32(0) : 0);
                if (recordCount == 0)
                {
                    connection.ExecuteNonQuery(ProjectRatesPopulateMaintenanceRecordsQuery);
                    LogMessage("Added configuration records.", MessageKind.SUCCESS, 2);
                }
                else
                {
                    LogMessage("Configuration records already exists.", MessageKind.SKIPPED, 2);
                }

                LogMessage("Rate per project feature ready to use.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 3
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                connection.ExecuteNonQuery(CreateIndexScript);
                LogMessage("Index IX_EPGP_COST_CATEGORIES_BC_ID ON EPGP_COST_CATEGORIES has been successfully created.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 4
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                connection.ExecuteNonQuery(CreateIndexScript);
                LogMessage("Index created.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 5
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                connection.ExecuteNonQuery(script);
                LogMessage("EPG_SP_GetResourceRates has been successfully updated.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 6
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                connection.ExecuteNonQuery(CreateIndexScript);
                LogMessage("Index IX_EPG_RESOURCEPLANS_HOURS_CMT_UID_PRD_ID_CMH_PENDING ON EPG_RESOURCEPLANS_HOURS has been successfully created.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Upgrades the pfe database:
        ///  * Create column for projects table - column will be used as source for calculations in PFE instead of sharepoint list
        ///  * Create discount columns in detail values table - will help us on server side recalculations when discount rate is changed, so we will not have to find original rate
        ///  * Update stored procedure used to get cost detail values from VB6 code
        ///  * Populate configuration details table with missing data (partially data already populated by 6.4.0.1 step)
        /// </summary>
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                UpdateStoredProcedure(connection, "EPG_SP_ReadCBAttribs", EPG_SP_ReadCBAttribs_UpdateQuery);


                LogMessage("EPG_SP_ReadCBAttribs updated.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Upgrades the pfe database:
        ///  * Create column for projects table - column will be used as source for calculations in PFE instead of sharepoint list
        ///  * Create discount columns in detail values table - will help us on server side recalculations when discount rate is changed, so we will not have to find original rate
        ///  * Update stored procedure used to get cost detail values from VB6 code
        ///  * Populate configuration details table with missing data (partially data already populated by 6.4.0.1 step)
        /// </summary>
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                AddTableColumn(connection, ProjectsTableName, ProjectDiscountRateColumnName, ProjectAddDiscountRateColumnQuery);
                AddTableColumn(connection, DetailValuesTableName, DetailValuesDiscountRateColumnName, DetailValuesAddDiscountRateColumnQuery);
                AddTableColumn(connection, DetailValuesTableName, DetailValuesDiscountValueColumnName, DetailValuesAddDiscountValueColumnQuery);

                UpdateStoredProcedure(connection, DetailValuesStoredProcedureName, DetailValuesStoredProcedureUpdateQuery);

                AddMissingConfigurationRecords(connection);

                LogMessage("PFE Database is ready to use with discount rate per project feature.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 9
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                var columnExists = connection.ColumnExist(ProjectsTableName, ProjectArchivedColumnName);
                if (!columnExists)
                {
                    connection.ExecuteNonQuery(ProjectAddArchivedColumnQuery);
                    LogMessage($"{ProjectArchivedColumnName} column added to {ProjectsTableName} table.", MessageKind.SUCCESS, 2);
                }
                else
                {
                    LogMessage($"{ProjectArchivedColumnName} column already exists in {ProjectsTableName}.", MessageKind.SKIPPED, 2);
                }

                var procedures = new Dictionary <string, string>()
                {
                    { ReadActualWorkProcedureName, ReadActualWorkProcedureUpdateQuery },
                    { ReadScheduledWorkProcedureName, ReadScheduledWorkProcedureUpdateQuery }
                };
                foreach (var procedure in procedures)
                {
                    var definition = connection.GetSpDefinition(procedure.Key);
                    if (definition != null && !definition.Contains(VersionMarker))
                    {
                        connection.ExecuteNonQuery(procedure.Value);
                        LogMessage($"{procedure.Key} procedure updated.", MessageKind.SUCCESS, 2);
                    }
                    else
                    {
                        LogMessage($"{procedure.Key} already have been updated.", MessageKind.SKIPPED, 2);
                    }
                }

                LogMessage("PFE Database is ready to use with archive restore project feature.", MessageKind.SUCCESS, 1);
            }
        }
Ejemplo n.º 10
0
        private void UpgradePfeDatabase()
        {
            var connectionProvider = new PfeData.ConnectionProvider();

            LogMessage("Connecting to the database.", 2);
            using (var connection = connectionProvider.CreateConnection(Web))
            {
                string sqlPFEIndicesUpgrade = @"IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPGP_DETAIL_VALUES_CB_ID_CT_ID_PROJECT_ID' AND object_id = OBJECT_ID('dbo.EPGP_DETAIL_VALUES'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPGP_DETAIL_VALUES_CB_ID_CT_ID_PROJECT_ID]
ON [dbo].[EPGP_DETAIL_VALUES] ([CB_ID],[CT_ID],[PROJECT_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPG_WE_CHARGES_PROJECT_ID' AND object_id = OBJECT_ID('dbo.EPG_WE_CHARGES'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPG_WE_CHARGES_PROJECT_ID]
ON [dbo].[EPG_WE_CHARGES] ([PROJECT_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPG_WE_CHARGES_WRES_ID' AND object_id = OBJECT_ID('dbo.EPG_WE_CHARGES'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPG_WE_CHARGES_WRES_ID]
ON [dbo].[EPG_WE_CHARGES] ([WRES_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPGP_COST_VALUES_CB_ID_CT_ID_PROJECT_ID' AND object_id = OBJECT_ID('dbo.EPGP_COST_VALUES'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPGP_COST_VALUES_CB_ID_CT_ID_PROJECT_ID]
ON [dbo].[EPGP_COST_VALUES] ([CB_ID],[CT_ID],[PROJECT_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_COST_BREAKDOWN_ATTRIBS_CB_ID_BA_RATETYPE_UID_BA_CODE_UID' AND object_id = OBJECT_ID('dbo.EPGP_COST_BREAKDOWN_ATTRIBS'))
BEGIN
CREATE NONCLUSTERED INDEX [I_COST_BREAKDOWN_ATTRIBS_CB_ID_BA_RATETYPE_UID_BA_CODE_UID]
ON [dbo].[EPGP_COST_BREAKDOWN_ATTRIBS] ([CB_ID],[BA_RATETYPE_UID],[BA_CODE_UID])
INCLUDE ([BA_BC_UID],[BA_PRD_ID],[BA_FTE_CONV])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_COST_BREAKDOWN_ATTRIBS_BA_FTE_CONV_BA_RATE' AND object_id = OBJECT_ID('dbo.EPGP_COST_BREAKDOWN_ATTRIBS'))
BEGIN
CREATE NONCLUSTERED INDEX [I_COST_BREAKDOWN_ATTRIBS_BA_FTE_CONV_BA_RATE]
ON [dbo].[EPGP_COST_BREAKDOWN_ATTRIBS] ([BA_FTE_CONV],[BA_RATE])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPG_RESOURCEPLANS_HOURS_CMH_PENDING' AND object_id = OBJECT_ID('dbo.EPG_RESOURCEPLANS_HOURS'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPG_RESOURCEPLANS_HOURS_CMH_PENDING]
ON [dbo].[EPG_RESOURCEPLANS_HOURS] ([CMH_PENDING])
INCLUDE ([CMT_UID],[PRD_ID],[CMH_HOURS],[CMH_REVENUES])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPGP_COST_DETAILS_CB_ID_CT_ID_PROJECT_ID' AND object_id = OBJECT_ID('dbo.EPGP_COST_DETAILS'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPGP_COST_DETAILS_CB_ID_CT_ID_PROJECT_ID]
ON [dbo].[EPGP_COST_DETAILS] ([CB_ID], [CT_ID], [PROJECT_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPGP_AVAIL_CATEGORIES_CT_ID' AND object_id = OBJECT_ID('dbo.EPGP_AVAIL_CATEGORIES'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPGP_AVAIL_CATEGORIES_CT_ID]
ON [dbo].[EPGP_AVAIL_CATEGORIES] ([CT_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPGP_LOOKUP_VALUES_LOOKUP_UID' AND object_id = OBJECT_ID('dbo.EPGP_LOOKUP_VALUES'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPGP_LOOKUP_VALUES_LOOKUP_UID]
ON [dbo].[EPGP_LOOKUP_VALUES] ([LOOKUP_UID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPG_PERIODS_CB_ID_PRD_ID' AND object_id = OBJECT_ID('dbo.EPG_PERIODS'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPG_PERIODS_CB_ID_PRD_ID]
ON [dbo].[EPG_PERIODS] ([CB_ID], [PRD_ID])
END

IF NOT EXISTS (SELECT *  FROM sys.indexes  WHERE name='I_EPGP_PI_WORK2_PROJECT_ID_WRES_ID' AND object_id = OBJECT_ID('dbo.EPGP_PI_WORK2'))
BEGIN
CREATE NONCLUSTERED INDEX [I_EPGP_PI_WORK2_PROJECT_ID_WRES_ID]
ON [dbo].[EPGP_PI_WORK2] ([PROJECT_ID],[WRES_ID])
INCLUDE ([PW_MAJORCATEGORY],[PW_DATE],[PW_WORK])
END
";
                connection.ExecuteNonQuery(sqlPFEIndicesUpgrade);
                LogMessage("PPM indices were updated successfully.", MessageKind.SUCCESS, 2);
            }
        }