コード例 #1
0
ファイル: DIData.cs プロジェクト: SDRC-India/sdrcdevinfo
        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);
            }
        }
コード例 #2
0
ファイル: DIData.cs プロジェクト: SDRC-India/sdrcdevinfo
        /// <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));
                }
            }
        }