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(); }
/// <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; }
/// <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> /// 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); }
/// <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(); } } }