public override void Import(string selectedNids)
        {
            DataTable Table = null;
            int ProgressCounter = 0;
            DI6SubgroupTypeBuilder SGBuilderObj = null;
            DI6SubgroupTypeInfo SGInfoObj = null;
            Dictionary<string, DataRow> FileWithNids = new Dictionary<string, DataRow>();

            DIConnection SourceDBConnection = null;
            DIQueries SourceDBQueries = null;
            DI6SubgroupTypeBuilder SourceSGTypeBuilder = null;

            //-- Step 1: Get TempTable with Sorted SourceFileName
            Table = this._TargetDBConnection.ExecuteDataTable(this.ImportQueries.GetImportSubgroupDimensions(selectedNids));

            //-- Step 2:Initialise Indicator Builder with Target DBConnection
            SGBuilderObj = new DI6SubgroupTypeBuilder(this.TargetDBConnection, this.TargetDBQueries);

            // Initialize progress bar
            this.RaiseProgressBarInitialize(selectedNids.Split(',').GetUpperBound(0) + 1);

            //-- Step 3: Import Nids for each SourceFile
            foreach (DataRow Row in Table.Copy().Rows)
            {
                try
                {
                    string SourceFileWPath = Convert.ToString(Row[MergetTemplateConstants.Columns.COLUMN_SOURCEFILENAME]);

                    SourceDBConnection = new DIConnection(DIServerType.MsAccess, String.Empty, String.Empty, SourceFileWPath, String.Empty, MergetTemplateConstants.DBPassword);
                    SourceDBQueries = DataExchange.GetDBQueries(SourceDBConnection);

                    // get subgroup type info from source
                    SourceSGTypeBuilder = new DI6SubgroupTypeBuilder(SourceDBConnection, SourceDBQueries);
                    SGInfoObj =SourceSGTypeBuilder.GetSubgroupTypeInfoByNid(Convert.ToInt32(Row[MergetTemplateConstants.Columns.COLUMN_SRCNID]));

                    // import subgroup type only if doesnt exist
                    SGBuilderObj.ImportSubgroupType(SGInfoObj, Convert.ToInt32(Row[MergetTemplateConstants.Columns.COLUMN_SRCNID]), SourceDBQueries, SourceDBConnection);
                    ProgressCounter += 1;
                    this.RaiseProgressBarIncrement(ProgressCounter);

                }
                catch (Exception ex) { ExceptionFacade.ThrowException(ex); }
                finally
                {
                    if (SourceDBConnection != null)
                        SourceDBConnection.Dispose();
                    if (SourceDBQueries != null)
                        SourceDBQueries.Dispose();
                }
            }
            this._AvailableTable = this.GetAvailableTable();
            this._UnmatchedTable = this.GetUnmatchedTable();
            // Close ProgressBar
            this.RaiseProgressBarClose();
        }
Exemplo n.º 2
0
        /// <summary>
        /// To Import  Subgroup information from mapped subgroup
        /// </summary>
        /// <param name="subgroupInfo"></param>
        /// <param name="NidInSourceDB"></param>
        /// <param name="NidInTrgDB"></param>
        /// <param name="sourceQurey"></param>
        /// <param name="sourceDBConnection"></param>
        /// <returns></returns>
        public int ImportSubgroupFrmMappedSubgroup(DI6SubgroupInfo subgroupInfo, int NidInSourceDB, int NidInTrgDB, DIQueries sourceQurey, DIConnection sourceDBConnection)
        {
            int RetVal = -1;
            int SGTypeNIdInTargetDB = 0;
            bool SkipRecord = false;
            DI6SubgroupTypeBuilder SGTypeBuilder = new DI6SubgroupTypeBuilder(this.DBConnection, this.DBQueries);
            DI6SubgroupTypeInfo SourceSGTypeInfo = new DI6SubgroupTypeInfo();
            DI6SubgroupInfo TargetSGInfo;

            try
            {

                // set RetVal to NidInTrgDB
                RetVal = NidInTrgDB;

                if (!SkipRecord)
                {

                    // get subgroupTypeInfo from source database
                    SourceSGTypeInfo = (new DI6SubgroupTypeBuilder(sourceDBConnection, sourceQurey)).GetSubgroupTypeInfoByNid(subgroupInfo.Type);

                    // import SubgroupType
                    SGTypeNIdInTargetDB = SGTypeBuilder.ImportSubgroupType(SourceSGTypeInfo, SourceSGTypeInfo.Nid, sourceQurey, sourceDBConnection);

                    //insert or update subgroup record
                    if (RetVal > 0)
                    {
                        // get target subgroup info
                        TargetSGInfo = this.GetSubgroupInfo(FilterFieldType.NId, RetVal.ToString());

                        // Dont update if target is global and source is local
                        if (!(subgroupInfo.Global == false & TargetSGInfo.Global))
                        {
                            try
                            {
                                //update the gid,name and global on the basis of nid
                                this.DBConnection.ExecuteNonQuery(DALQueries.Subgroup.Update.UpdateSubgroupByNid(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, subgroupInfo.Name, subgroupInfo.GID, subgroupInfo.Global, SGTypeNIdInTargetDB, RetVal));
                            }
                            catch (Exception)
                            {
                                RetVal = -1;
                            }
                        }

                    }
                    else
                    {
                        // get the last subgroup Type order and update order in source subgrouptype
                        subgroupInfo.Type = SGTypeNIdInTargetDB;

                        if (this.InsertIntoDatabase(subgroupInfo))
                        {
                            //get nid
                            RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery("SELECT @@IDENTITY"));
                        }
                    }

                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }

            return RetVal;
        }
Exemplo n.º 3
0
        /// <summary>
        /// To Import a Subgroup into template or database
        /// </summary>
        /// <param name="subgroupInfo"></param>
        /// <param name="NidInSourceDB"></param>
        /// <param name="sourceQurey"></param>
        /// <param name="sourceDBConnection"></param>
        /// <returns></returns>
        public int ImportSubgroup(DI6SubgroupInfo subgroupInfo, int NidInSourceDB, DIQueries sourceQurey, DIConnection sourceDBConnection)
        {
            int RetVal = -1;
            int NIDByName = 0;
            int SGTypeNIdInTargetDB = 0;
            bool SkipRecord = false;
            DI6SubgroupTypeBuilder SGTypeBuilder = new DI6SubgroupTypeBuilder(this.DBConnection, this.DBQueries);
            DI6SubgroupTypeInfo SourceSGTypeInfo = new DI6SubgroupTypeInfo();
            DI6SubgroupInfo TargetSGInfo;

            try
            {
                //check  already exists in database or not

                //Get NId by Name
                if (!string.IsNullOrEmpty(subgroupInfo.GID))
                {
                    //first check by gid and then by name
                    RetVal = this.GetNidByGID(subgroupInfo.GID);

                    if (RetVal > 0)
                    {
                        // check for the duplicacy by name
                        NIDByName = this.GetSubgroupByName(subgroupInfo.Name);
                        if (RetVal != NIDByName & NIDByName > 0)
                        {
                            //skip records
                            SkipRecord = true;
                            RetVal = -1;
                        }
                    }
                }

                //if GID is empty or GID doesnt match  then get NId by name
                if (RetVal <= 0 & SkipRecord == false)
                {

                    RetVal = this.GetSubgroupByName(subgroupInfo.Name);
                }

                if (!SkipRecord)
                {

                    // get subgroupTypeInfo from source database
                    SourceSGTypeInfo = (new DI6SubgroupTypeBuilder(sourceDBConnection, sourceQurey)).GetSubgroupTypeInfoByNid(subgroupInfo.Type);

                    // import SubgroupType
                    SGTypeNIdInTargetDB = SGTypeBuilder.ImportSubgroupType(SourceSGTypeInfo, SourceSGTypeInfo.Nid, sourceQurey, sourceDBConnection);

                    //insert or update subgroup record
                    if (RetVal > 0)
                    {
                        // get target subgroup info
                        TargetSGInfo = this.GetSubgroupInfo(FilterFieldType.NId, RetVal.ToString());
                        // Dont update if target is global and source is local
                        if (!(subgroupInfo.Global == false & TargetSGInfo.Global))
                        {
                            try
                            {
                                //update the gid,name and global on the basis of nid
                                this.DBConnection.ExecuteNonQuery(DALQueries.Subgroup.Update.UpdateSubgroupByNid(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, subgroupInfo.Name, subgroupInfo.GID, subgroupInfo.Global, SGTypeNIdInTargetDB, RetVal));
                            }
                            catch (Exception)
                            {
                                RetVal = -1;
                            }
                        }

                    }
                    else
                    {
                        // get the last subgroup Type order and update order in source subgrouptype
                        subgroupInfo.Type = SGTypeNIdInTargetDB;

                        if (this.InsertIntoDatabase(subgroupInfo))
                        {
                            //get nid
                            RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery("SELECT @@IDENTITY"));
                        }
                    }

                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }

            return RetVal;
        }
Exemplo n.º 4
0
        /// <summary>
        /// To Import  Subgroup information from mapped subgroup
        /// </summary>
        /// <param name="subgroupInfo"></param>
        /// <param name="NidInSourceDB"></param>
        /// <param name="NidInTrgDB"></param>
        /// <param name="sourceQurey"></param>
        /// <param name="sourceDBConnection"></param>
        /// <returns></returns>
        public int ImportSubgroupFrmMappedSubgroup(DI6SubgroupInfo subgroupInfo, int NidInSourceDB, int NidInTrgDB, DIQueries sourceQurey, DIConnection sourceDBConnection)
        {
            int  RetVal = -1;
            int  SGTypeNIdInTargetDB                = 0;
            bool SkipRecord                         = false;
            DI6SubgroupTypeBuilder SGTypeBuilder    = new DI6SubgroupTypeBuilder(this.DBConnection, this.DBQueries);
            DI6SubgroupTypeInfo    SourceSGTypeInfo = new DI6SubgroupTypeInfo();
            DI6SubgroupInfo        TargetSGInfo;

            try
            {
                // set RetVal to NidInTrgDB
                RetVal = NidInTrgDB;



                if (!SkipRecord)
                {
                    // get subgroupTypeInfo from source database
                    SourceSGTypeInfo = (new DI6SubgroupTypeBuilder(sourceDBConnection, sourceQurey)).GetSubgroupTypeInfoByNid(subgroupInfo.Type);


                    // import SubgroupType
                    SGTypeNIdInTargetDB = SGTypeBuilder.ImportSubgroupType(SourceSGTypeInfo, SourceSGTypeInfo.Nid, sourceQurey, sourceDBConnection);


                    //insert or update subgroup record
                    if (RetVal > 0)
                    {
                        // get target subgroup info
                        TargetSGInfo = this.GetSubgroupInfo(FilterFieldType.NId, RetVal.ToString());

                        // Dont update if target is global and source is local
                        if (!(subgroupInfo.Global == false & TargetSGInfo.Global))
                        {
                            try
                            {
                                //update the gid,name and global on the basis of nid
                                this.DBConnection.ExecuteNonQuery(DALQueries.Subgroup.Update.UpdateSubgroupByNid(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, subgroupInfo.Name, subgroupInfo.GID, subgroupInfo.Global, SGTypeNIdInTargetDB, RetVal));
                            }
                            catch (Exception)
                            {
                                RetVal = -1;
                            }
                        }
                    }
                    else
                    {
                        // get the last subgroup Type order and update order in source subgrouptype
                        subgroupInfo.Type = SGTypeNIdInTargetDB;

                        if (this.InsertIntoDatabase(subgroupInfo))
                        {
                            //get nid
                            RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery("SELECT @@IDENTITY"));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }

            return(RetVal);
        }
Exemplo n.º 5
0
        /// <summary>
        /// To Import a Subgroup into template or database
        /// </summary>
        /// <param name="subgroupInfo"></param>
        /// <param name="NidInSourceDB"></param>
        /// <param name="sourceQurey"></param>
        /// <param name="sourceDBConnection"></param>
        /// <returns></returns>
        public int ImportSubgroup(DI6SubgroupInfo subgroupInfo, int NidInSourceDB, DIQueries sourceQurey, DIConnection sourceDBConnection)
        {
            int  RetVal                             = -1;
            int  NIDByName                          = 0;
            int  SGTypeNIdInTargetDB                = 0;
            bool SkipRecord                         = false;
            DI6SubgroupTypeBuilder SGTypeBuilder    = new DI6SubgroupTypeBuilder(this.DBConnection, this.DBQueries);
            DI6SubgroupTypeInfo    SourceSGTypeInfo = new DI6SubgroupTypeInfo();
            DI6SubgroupInfo        TargetSGInfo;

            try
            {
                //check  already exists in database or not

                //Get NId by Name
                if (!string.IsNullOrEmpty(subgroupInfo.GID))
                {
                    //first check by gid and then by name
                    RetVal = this.GetNidByGID(subgroupInfo.GID);

                    if (RetVal > 0)
                    {
                        // check for the duplicacy by name
                        NIDByName = this.GetSubgroupByName(subgroupInfo.Name);
                        if (RetVal != NIDByName & NIDByName > 0)
                        {
                            //skip records
                            SkipRecord = true;
                            RetVal     = -1;
                        }
                    }
                }

                //if GID is empty or GID doesnt match  then get NId by name
                if (RetVal <= 0 & SkipRecord == false)
                {
                    RetVal = this.GetSubgroupByName(subgroupInfo.Name);
                }


                if (!SkipRecord)
                {
                    // get subgroupTypeInfo from source database
                    SourceSGTypeInfo = (new DI6SubgroupTypeBuilder(sourceDBConnection, sourceQurey)).GetSubgroupTypeInfoByNid(subgroupInfo.Type);


                    // import SubgroupType
                    SGTypeNIdInTargetDB = SGTypeBuilder.ImportSubgroupType(SourceSGTypeInfo, SourceSGTypeInfo.Nid, sourceQurey, sourceDBConnection);


                    //insert or update subgroup record
                    if (RetVal > 0)
                    {
                        // get target subgroup info
                        TargetSGInfo = this.GetSubgroupInfo(FilterFieldType.NId, RetVal.ToString());
                        // Dont update if target is global and source is local
                        if (!(subgroupInfo.Global == false & TargetSGInfo.Global))
                        {
                            try
                            {
                                //update the gid,name and global on the basis of nid
                                this.DBConnection.ExecuteNonQuery(DALQueries.Subgroup.Update.UpdateSubgroupByNid(this.DBQueries.DataPrefix, this.DBQueries.LanguageCode, subgroupInfo.Name, subgroupInfo.GID, subgroupInfo.Global, SGTypeNIdInTargetDB, RetVal));
                            }
                            catch (Exception)
                            {
                                RetVal = -1;
                            }
                        }
                    }
                    else
                    {
                        // get the last subgroup Type order and update order in source subgrouptype
                        subgroupInfo.Type = SGTypeNIdInTargetDB;

                        if (this.InsertIntoDatabase(subgroupInfo))
                        {
                            //get nid
                            RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery("SELECT @@IDENTITY"));
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }

            return(RetVal);
        }
        /// <summary>
        /// Process Matched Subgroup Type
        /// </summary>
        public void ProcessSubgroupDimensions()
        {
            DataTable Table = null;

            DI6SubgroupTypeBuilder SGBuilderObj = null;
            DI6SubgroupTypeInfo SourceSGInfoObj = null;
            DI6SubgroupTypeBuilder SourceSGTypeBuilder = null;
            Dictionary<string, DataRow> FileWithNids = new Dictionary<string, DataRow>();

            DIConnection SourceDBConnection = null;
            DIQueries SourceDBQueries = null;

            //-- Step 1: Get TempTable with Sorted SourceFileName
            Table = this.DBConnection.ExecuteDataTable(this.TemplateQueries.GetMatchedSubgroupDimensions());

            //-- Step 2:Initialise Indicator Builder with Target DBConnection
            SGBuilderObj = new DI6SubgroupTypeBuilder(this.DBConnection, this.DBQueries);

            //-- Step 3: Import Nids for each SourceFile
            foreach (DataRow Row in Table.Copy().Rows)
            {
                try
                {
                    string SourceFileWPath = Convert.ToString(Row[MergetTemplateConstants.Columns.COLUMN_SOURCEFILENAME]);

                    SourceDBConnection = new DIConnection(DIServerType.MsAccess, String.Empty, String.Empty, SourceFileWPath, String.Empty, MergetTemplateConstants.DBPassword);
                    SourceDBQueries = DataExchange.GetDBQueries(SourceDBConnection);

                    // get subgroup type info
                    SourceSGTypeBuilder = new DI6SubgroupTypeBuilder(SourceDBConnection, SourceDBQueries);
                    SourceSGInfoObj = SourceSGTypeBuilder.GetSubgroupTypeInfoByNid(Convert.ToInt32(Row[SubgroupTypes.SubgroupTypeNId]));

                    //import subgroup type
                    SGBuilderObj.ImportSubgroupType(SourceSGInfoObj, Convert.ToInt32(Row[SubgroupTypes.SubgroupTypeNId]), SourceDBQueries, SourceDBConnection);

                }
                catch (Exception ex) { ExceptionFacade.ThrowException(ex); }
                finally
                {
                    if (SourceDBConnection != null)
                        SourceDBConnection.Dispose();
                    if (SourceDBQueries != null)
                        SourceDBQueries.Dispose();
                }
            }
        }