public void UpdateMappedElements(RequiredDIElementsType elementType) { Dictionary<string, MappedElementInfo> MappedElements; string columnToUpdate = string.Empty; string NidColumnName = string.Empty; string FilerColumnName = string.Empty; switch (elementType) { case RequiredDIElementsType.Indicator: columnToUpdate = Indicator.IndicatorNId; if (this.ImportFileType == DIImportFileType.SDMXXml) { FilerColumnName = Indicator.IndicatorGId; } else { FilerColumnName = Indicator.IndicatorName; } break; case RequiredDIElementsType.Unit: columnToUpdate = Unit.UnitNId; if (this.ImportFileType == DIImportFileType.SDMXXml) { FilerColumnName = Unit.UnitGId; } else { FilerColumnName = Unit.UnitName; } break; case RequiredDIElementsType.Subgroup: columnToUpdate = SubgroupVals.SubgroupValNId; if (this.ImportFileType == DIImportFileType.SDMXXml) { FilerColumnName = SubgroupVals.SubgroupValGId; } else { FilerColumnName = SubgroupVals.SubgroupVal; } break; case RequiredDIElementsType.IUS: columnToUpdate = DAImportCommon.Constants.NewIUSColumnName; break; case RequiredDIElementsType.Area: columnToUpdate = Area.AreaNId; FilerColumnName = Area.AreaID; break; default: break; } // commn values MappedElements = this.RequiredDIElements[elementType].MappedElements; if (elementType == RequiredDIElementsType.IUS) { NidColumnName = Indicator_Unit_Subgroup.IUSNId; FilerColumnName = NidColumnName; this.UpdateMappedElements(MappedElements, columnToUpdate, NidColumnName, FilerColumnName, true); } else { NidColumnName = columnToUpdate; this.UpdateMappedElements(MappedElements, columnToUpdate, NidColumnName, FilerColumnName); } }
/// <summary> /// It clears the NIDs updated in TempDataTable for Mapped elements. /// </summary> /// <param name="elementType"></param> public void UndoMappedElementNIDUpdate(RequiredDIElementsType elementType) { string ColumnToUpdate = string.Empty; // It represents Column to be Updated string ExpressionColumnName = string.Empty; // Represnts Column that will be checked in 'where' cluase. string values = ""; // It contains values for elements that were mapped. e.g: Indicator Names, unit Names // Set Column to be Updated, & ExpressionColumnName to be used in 'where' clause. if (this.ImportFileType == DIImportFileType.DataEntrySpreasheet) { switch (elementType) { case RequiredDIElementsType.Indicator: ColumnToUpdate = Indicator.IndicatorNId; ExpressionColumnName = Indicator.IndicatorName; break; case RequiredDIElementsType.Unit: ColumnToUpdate = Unit.UnitNId; ExpressionColumnName = Unit.UnitName; break; case RequiredDIElementsType.Subgroup: ColumnToUpdate = SubgroupVals.SubgroupValNId; ExpressionColumnName = SubgroupVals.SubgroupVal; break; case RequiredDIElementsType.IUS: ColumnToUpdate = DAImportCommon.Constants.NewIUSColumnName; ExpressionColumnName = Indicator_Unit_Subgroup.IUSNId; values = string.Empty; break; case RequiredDIElementsType.Area: ColumnToUpdate = Area.AreaNId; ExpressionColumnName = Area.AreaID; break; default: break; } } else { switch (elementType) { case RequiredDIElementsType.Indicator: ColumnToUpdate = Indicator.IndicatorNId; ExpressionColumnName = Indicator.IndicatorGId; break; case RequiredDIElementsType.Unit: ColumnToUpdate = Unit.UnitNId; ExpressionColumnName = Unit.UnitGId; break; case RequiredDIElementsType.Subgroup: ColumnToUpdate = SubgroupVals.SubgroupValNId; ExpressionColumnName = SubgroupVals.SubgroupValGId; break; case RequiredDIElementsType.IUS: ColumnToUpdate = DAImportCommon.Constants.NewIUSColumnName; ExpressionColumnName = Indicator_Unit_Subgroup.IUSNId; values = string.Empty; break; case RequiredDIElementsType.Area: ColumnToUpdate = Area.AreaNId; ExpressionColumnName = Area.AreaID; break; default: break; } } // Set Element values to be checked foreach (string value in this.RequiredDIElements[elementType].MappedElements.Keys) { if (values.Length == 0) { if ((elementType == RequiredDIElementsType.IUS)) { values = value; // For int type values } else { values += "'" + DICommon.RemoveQuotes(value) + "'"; // For string type values (remove single quote if any) } } else { if ((elementType != RequiredDIElementsType.IUS)) { values += ", '" + DICommon.RemoveQuotes(value) + "'"; // For string type values (remove single quote if any) } else { values += ", " + value; // For int type values } } } // Update Table if (values != string.Empty) { if (elementType == RequiredDIElementsType.IUS) { // Update Nids incase of IUS this.DBConnection.ExecuteNonQuery(this.DAQuery.SetMappedElementNIDToNULL(ColumnToUpdate, ExpressionColumnName, values, false)); } else { // Update Nids incase of I, U, S, Area this.DBConnection.ExecuteNonQuery(this.DAQuery.SetMappedElementNIDToNULL(ColumnToUpdate, ExpressionColumnName, values, true)); } } }