예제 #1
0
        /// <summary>
        ///  Check record into collection and database if not exist then create area . 
        /// </summary>
        /// <param name="areaInfo">object of AreaInfo </param>
        /// <returns>return parent nid</returns>
        public int CheckNCreateArea(AreaInfo areaInfo)
        {
            int RetVal = 0;

            try
            {
                //Step 1: If area id and parent area id not exists then create it.
                this.CreateAreaIDNParentID(areaInfo);

                //Step 2: check existence of area (areaID)
                RetVal = this.CheckAreaExists(areaInfo.ID);

                //Step 3: if doesnt exists, then create it
                if (RetVal <= 0)
                {
                    //Create into database
                    RetVal = this.CreateArea(areaInfo);
                }

                //Step 4:Add into area collection..
                this.AddAreaIntoCollection(areaInfo);
            }
            catch (Exception)
            {
                RetVal = 0;
            }

            return RetVal;
        }
예제 #2
0
 public AreaInfo(string name, string ID, string parentName, string parentID)
 {
     this._Parent = new AreaInfo();
     this._Name = name;
     this._ID = ID;
     this._Parent._Name = parentName;
     this._Parent._ID = parentID;
 }
예제 #3
0
 public AreaInfo(string name, string ID, string parentName, string parentID)
 {
     this._Parent       = new AreaInfo();
     this._Name         = name;
     this._ID           = ID;
     this._Parent._Name = parentName;
     this._Parent._ID   = parentID;
 }
예제 #4
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="gid">Area Gid</param>
        public void AddInfo(string name, string gid)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name = name;
            this._GID  = gid;
        }
예제 #5
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="gid">Area Gid</param>
        /// <param name="level">Area Level</param>
        public void AddInfo(string name, string gid, int level)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name  = name;
            this._GID   = gid;
            this._Level = level;
        }
예제 #6
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="ID">Area Id</param>
        /// <param name="parentName">Area Parent Name</param>
        /// <param name="parentID">Parent Id</param>
        public void AddInfo(string name, string ID, string parentName, string parentID)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name        = name;
            this._ID          = ID;
            this._Parent.Name = parentName;
            this._Parent.ID   = parentID;
        }
예제 #7
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="gid">Area Gid</param>
        /// <param name="level">Area Level</param>
        /// <param name="parentName">Area Parent Name</param>
        /// <param name="parentGId">Parent Gid</param>
        /// <param name="parentLevel">Parent Level</param>
        public void AddInfo(string name, string gid, int level, string parentName, string parentGId, int parentLevel)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name         = name;
            this._GID          = gid;
            this._Level        = level;
            this._Parent.Name  = parentName;
            this._Parent.GID   = parentGId;
            this._Parent.Level = parentLevel;
        }
예제 #8
0
        /// <summary>
        /// DevInfo_5_0 Area Spreadsheet (should have 5 columns only staring the value from 6th Row - AreaID, AreaName, AreaLevel, AreaGID, ParentGID)
        /// </summary>
        /// <param name="templateFileName"></param>
        /// <param name="xlsFilenames"></param>
        /// <param name="tempFolderPath"></param>
        /// <param name="trgDBQueries">Instance of target queries object</param>
        /// <param name="languageName">languageName</param>
        /// <returns></returns>
        public bool CreateTemplateFrmAreaSpreadsheet(string templateFileName, List<string> xlsFilenames, string tempFolderPath, DIQueries trgDBQueries, string languageName)
        {
            bool RetVal = false;
            DIConnection DBConnection = null;
            DIQueries DBQueries;
            AreaBuilder AreaBuilderObj;
            DIDatabase TempTemplateFile;
            string DataPrefix = string.Empty;
            string LanguageCode = string.Empty;
            LanguageBuilder DILanguageBuilder;
            try
            {
                //create temp template file
                TempTemplateFile = new DIDatabase(templateFileName);
                TempTemplateFile.Dispose();

                //create DIConnection, queries and area objects
                DBConnection = new DIConnection(DIServerType.MsAccess, string.Empty, string.Empty, templateFileName, string.Empty, string.Empty);

                if (trgDBQueries != null)
                {
                    DBQueries = new DIQueries(DBConnection.DIDataSetDefault(), trgDBQueries.LanguageCode);
                    DataPrefix = DBQueries.DataPrefix;
                    LanguageCode = trgDBQueries.LanguageCode.Replace("_", "");

                    // create langauge dependent tables if not exists in the new template
                    this.UpdateTablesForTargetLanguage(languageName, DBConnection, DBQueries, DataPrefix, LanguageCode);
                }
                else
                {

                    DBQueries = new DIQueries(DBConnection.DIDataSetDefault(), DBConnection.DILanguageCodeDefault(DBConnection.DIDataSetDefault()));
                }

                AreaBuilderObj = new AreaBuilder(DBConnection, DBQueries);

                //get areas from excel files
                foreach (string XlsFileName in xlsFilenames)
                {
                    try
                    {
                        // insert area into template
                        DIExcel AreaXlsFile = new DIExcel(XlsFileName);
                        AreaInfo NewArea;
                        DataTable TempTable = AreaXlsFile.GetDataTableFromSheet(AreaXlsFile.GetSheetName(0));

                        //check it is a valid area excel file or not
                        if (TempTable.Rows.Count > 5 & TempTable.Columns.Count > 1)
                        {
                            if (TempTable.Rows[2][0].ToString() == DITemplate.AreaIdString
                                & TempTable.Rows[2][1].ToString() == DITemplate.AreaNameString
                                & TempTable.Rows[2][2].ToString() == DITemplate.AreaLevelString
                                & TempTable.Rows[2][3].ToString() == DITemplate.AreaGIdString
                                & TempTable.Rows[2][4].ToString() == DITemplate.AreaParentGIdString)
                            {

                                // delete empty rows
                                for (int i = 0; i < 4; i++)
                                {
                                    TempTable.Rows[0].Delete();
                                }

                                TempTable.AcceptChanges();

                                // sort the table by level
                                TempTable.DefaultView.Sort = TempTable.Columns[this.AreaSheetColumns[AreaSheetColumnType.AreaLevel].ColumnIndex].ColumnName;

                                foreach (DataRowView Row in TempTable.DefaultView)
                                {
                                    try
                                    {
                                        // get area info from temp table
                                        NewArea = new AreaInfo();
                                        NewArea.ID = DICommon.RemoveQuotes(Row[this.AreaSheetColumns[AreaSheetColumnType.AreaID].ColumnIndex].ToString());
                                        NewArea.Name = DICommon.RemoveQuotes(Row[this.AreaSheetColumns[AreaSheetColumnType.AreaName].ColumnIndex].ToString());
                                        NewArea.Level = Convert.ToInt32(Row[this.AreaSheetColumns[AreaSheetColumnType.AreaLevel].ColumnIndex]);
                                        NewArea.GID = DICommon.RemoveQuotes(Row[this.AreaSheetColumns[AreaSheetColumnType.AreaGID].ColumnIndex].ToString());
                                        NewArea.Parent = new AreaInfo();
                                        NewArea.Parent.ID = DICommon.RemoveQuotes(Row[this.AreaSheetColumns[AreaSheetColumnType.PareaGID].ColumnIndex].ToString());

                                        //insert area into template
                                        // Step 1: If Area_Parent_ID is blank then set Area_Parent_NID to -1 and Area_Level=1
                                        if (string.IsNullOrEmpty(NewArea.Parent.ID))
                                        {
                                            NewArea.Parent.Nid = -1;
                                            NewArea.Level = 1;
                                        }
                                        else
                                        {
                                            // Step 2: If Area_Parent_ID is not blank then get Area_Parent_NID
                                            NewArea.Parent.Nid = AreaBuilderObj.GetAreaNidByAreaID(NewArea.Parent.ID);

                                            if (NewArea.Parent.Nid <= 0)
                                            { // Step 2.1: If Area_Parent_NID <=0 then set Area_Parent_NID to -1 and Area_Level=1
                                                NewArea.Parent.Nid = -1;
                                                NewArea.Level = 1;
                                            }
                                            else
                                            { // Step 2.1: If Area_Parent_NID >0 then Area_Level=Area_Parent_Level+1

                                                //get parent area level
                                                NewArea.Parent.Level = AreaBuilderObj.GetAreaLevelByAreaID(NewArea.Parent.ID);
                                                NewArea.Level = NewArea.Parent.Level + 1;
                                            }
                                        }

                                        // insert area into template
                                        AreaBuilderObj.InsertIntoDatabase(NewArea.Name, NewArea.ID, NewArea.GID, NewArea.Level, NewArea.Parent.Nid);

                                    }
                                    catch (Exception ex)
                                    {
                                        // do nothing
                                    }

                                }
                            }
                        }
                    }
                    catch (Exception)
                    {
                        //
                    }
                }
                RetVal = true;

            }
            catch (Exception ex)
            {
                RetVal = false;
                throw new ApplicationException(ex.ToString());
            }
            finally
            {
                if (DBConnection != null)
                {
                    DBConnection.Dispose();
                }
            }
            return RetVal;
        }
예제 #9
0
        /// <summary>
        /// Insert DevInfo data value  into database.
        /// </summary>
        /// <param name="areaInfo">Object of AreaInfo</param>
        /// <param name="indicatorName">Indicator name</param>
        /// <param name="unitName">unit name</param>
        /// <param name="subgroupValName">SubgroupVal Name</param>
        /// <param name="timeperiod">Time Period </param>
        /// <param name="source">Source Name </param>
        /// <param name="dataValue">data value</param>
        /// <returns></returns>
        public int AddDataPoint(AreaInfo areaInfo, string indicatorName, string unitName, string subgroupValName, string timeperiod, string source, string dataValue)
        {
            int RetVal = 0;
            IUSInfo IUSInfo = new IUSInfo();

            // check and create IUS value
            IUSInfo.IndicatorInfo.Name = indicatorName;
            IUSInfo.UnitInfo.Name = unitName;
            IUSInfo.SubgroupValInfo.Name = subgroupValName;

            //check and create other elements
            RetVal = this.AddDataPoint(areaInfo, IUSInfo, timeperiod, source, dataValue);

            return RetVal;
        }
예제 #10
0
        /// <summary>
        /// Create and add record into database.
        /// </summary>
        /// <param name="areaInfo"></param>
        /// <param name="iusInfo"></param>
        /// <param name="timeperiodInfo"></param>
        /// <param name="sourceInfo"></param>
        /// <returns></returns>
        public int AddDataPoint(AreaInfo areaInfo, IUSInfo iusInfo, TimeperiodInfo timeperiodInfo, SourceInfo sourceInfo, string dataValue)
        {
            int RetVal = 0;
            int AreaNid = 0;
            int IUSNid = 0;
            int TimeperiodNid = 0;
            int SourceNid = 0;

            // Step 1: Area
            if (areaInfo.Nid <= 0)
            {
                AreaNid = this.DIArea.CheckNCreateArea(areaInfo);
            }
            else
            {
                AreaNid = areaInfo.Nid;
            }

            // Step 2: IUS, check for IUS only if IUSNid is zero.
            if (iusInfo.Nid <= 0)
            {
                IUSNid = this.DIIUS.CheckNCreateIUS(iusInfo);
            }
            else
            {
                IUSNid = iusInfo.Nid;
            }

            // Step 3: Timeperiod
            if (timeperiodInfo.Nid <= 0)
            {
                TimeperiodNid = this.DITimeperiod.CheckNCreateTimeperiod(timeperiodInfo.TimeperiodValue);
            }
            else
            {
                TimeperiodNid = timeperiodInfo.Nid;
            }

            // Step 4: Source
            if (sourceInfo.Nid <= 0)
            {
                SourceNid = this.DISource.CheckNCreateSource(sourceInfo.Name);
            }
            else
            {
                SourceNid = sourceInfo.Nid;
            }

            // Step 5: Insert Data and source , IUSNId & sourceparent ,IUSNID relationship into IC_IUS table
            RetVal = this.CheckNCreateData(AreaNid, IUSNid, SourceNid, TimeperiodNid, dataValue);
            return RetVal;
        }
예제 #11
0
        /// <summary>
        /// Create and add record into database.
        /// </summary>
        /// <param name="areaInfo">object of AreaInfo</param>
        /// <param name="iusInfo">object of IUSInfo</param>
        /// <param name="timeperiod">Timeperiod</param>
        /// <param name="source">Source Name</param>
        /// <param name="dataValue">Data Value</param>
        /// <returns></returns>
        public int AddDataPoint(AreaInfo areaInfo, IUSInfo iusInfo, string timeperiod, string source, string dataValue)
        {
            int RetVal = 0;

            TimeperiodInfo TimeperiodObject = new TimeperiodInfo();
            SourceInfo SourceObject = new SourceInfo();

            if (areaInfo == null | string.IsNullOrEmpty(iusInfo.IndicatorInfo.Name) |
                string.IsNullOrEmpty(iusInfo.UnitInfo.Name) |
                string.IsNullOrEmpty(iusInfo.SubgroupValInfo.Name) |
                string.IsNullOrEmpty(timeperiod) | string.IsNullOrEmpty(source))
            {
                //do nothing

            }
            else
            {
                //set timeperiod info
                TimeperiodObject.Nid = 0;
                TimeperiodObject.TimeperiodValue = timeperiod;

                //set source info
                SourceObject.Nid = 0;
                SourceObject.Name = source;

                //insert data
                RetVal = this.AddDataPoint(areaInfo, iusInfo, TimeperiodObject, SourceObject, dataValue);
            }

            return RetVal;
        }
예제 #12
0
 /// <summary>
 /// Add area record into collection.
 /// </summary>
 /// <param name="areaInfo">object of AreaInfo </param>
 private void AddAreaIntoCollection(AreaInfo areaInfo)
 {
     if (!this.Areas.ContainsKey(areaInfo.ID))
     {
         this.Areas.Add(areaInfo.ID, areaInfo);
     }
 }
예제 #13
0
 public AreaInfo(string name, string gid)
 {
     this._Parent = new AreaInfo();
     this._Name = name;
     this._GID = gid;
 }
예제 #14
0
 public AreaInfo(string name, string gid)
 {
     this._Parent = new AreaInfo();
     this._Name   = name;
     this._GID    = gid;
 }
예제 #15
0
        /// <summary>
        /// Create area and parent ID
        /// </summary>
        /// <param name="areaInfo">object of AreaInfo</param>
        private void CreateAreaIDNParentID(AreaInfo areaInfo)
        {
            //set area id to areaname, if empty
            if (string.IsNullOrEmpty(areaInfo.ID))
            {
                areaInfo.ID = areaInfo.Name;
            }

            //set parent area id to parent area name, if empty
            if (string.IsNullOrEmpty(areaInfo.Parent.ID))
            {
                areaInfo.Parent.ID = areaInfo.Parent.Name;
            }
        }
예제 #16
0
 /// <summary>
 /// Insert area record Into database
 /// </summary>
 /// <param name="areaInfo">object of AreaInfo</param>
 /// <returns>Ture/False. Return true after successful insertion otherwise false</returns>
 private bool InsertIntoDatabase(AreaInfo areaInfo)
 {
     return this.InsertIntoDatabase(areaInfo.Name, areaInfo.ID, areaInfo.GID, areaInfo.Level, areaInfo.Parent.Nid, areaInfo.AreaMap, areaInfo.AreaBlock, areaInfo.IsGlobal);
 }
예제 #17
0
        private int CreateAreaForImportProcess(AreaInfo areaInfo, int NidInSourceDB, DIQueries sourceQurey, DIConnection sourceDBConnection)
        {
            int RetVal = -1;
            Dictionary<String, String> OldIconNId_NewIconNId = new Dictionary<string, string>();

            try
            {
                areaInfo.Name = DICommon.RemoveQuotes(areaInfo.Name);
                if (areaInfo.Parent != null)
                {
                    areaInfo.Parent.Name = DICommon.RemoveQuotes(areaInfo.Name);
                }

                //Step 1: check existence of area (areaID)
                RetVal = this.CheckAreaExists(areaInfo.ID);

                if (RetVal > 0)
                {
                    DIConnection.ConnectionType = this.DBConnection.ConnectionStringParameters.ServerType;
                    // update area info
                    this.DBConnection.ExecuteNonQuery(this.DBQueries.Update.Area.UpdateArea(areaInfo.Parent.Nid, areaInfo.ID, areaInfo.Name, areaInfo.GID, areaInfo.Level, areaInfo.AreaMap, areaInfo.AreaBlock, areaInfo.IsGlobal));
                }
                else
                {
                    if (this.InsertIntoDatabase(areaInfo))
                    {
                        //get nid
                        RetVal = Convert.ToInt32(this.DBConnection.ExecuteScalarSqlQuery("SELECT @@IDENTITY"));
                    }
                }

                //update/insert icon
                DIIcons.ImportElement(NidInSourceDB, RetVal, IconElementType.Area, sourceQurey, sourceDBConnection, this.DBQueries, this.DBConnection);
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.Message);
            }

            return RetVal;
        }
예제 #18
0
        private int CreateAreaChainFromExtDB(int sourceAreaNId, int sourceParentNId, string sourceAreaID, string sourceAreaName, string sourceAreaGId, int sourceAreaLevel, string sourceAreaMap, string sourceAreaBlock, bool isGlobal, DIQueries sourceDBQueries,
    DIConnection sourceDBConnection, Dictionary<string, int> alreadyImportedAreas, bool importMapAlso)
        {
            int RetVal;

            int NewParentNId;
            string TargetParent = string.Empty;
            string Map = string.Empty;
            string Block = string.Empty;
            DataRow Row;
            AreaInfo AreaInfoObject = new AreaInfo();

            try
            {
                // check area is already imported or not. If already then get area nid
                if (alreadyImportedAreas.ContainsKey(sourceAreaID))
                {
                    RetVal = alreadyImportedAreas[sourceAreaID];
                }
                else
                {

                    // -- STEP 1: If the Parent NID is -1 then create the area at the root
                    if (sourceParentNId == -1)
                    {

                        // -- Create the Area
                        AreaInfoObject.Parent = new AreaInfo();
                        AreaInfoObject.Parent.Nid = sourceParentNId;
                        AreaInfoObject.Nid = sourceAreaNId;
                        AreaInfoObject.Name = sourceAreaName;
                        AreaInfoObject.ID = sourceAreaID;
                        AreaInfoObject.GID = sourceAreaGId;
                        AreaInfoObject.IsGlobal = isGlobal;
                        AreaInfoObject.Level = sourceAreaLevel;
                        AreaInfoObject.AreaBlock = sourceAreaBlock;
                        AreaInfoObject.AreaMap = sourceAreaMap;
                        RetVal = this.CreateAreaForImportProcess(AreaInfoObject, sourceAreaNId, sourceDBQueries, sourceDBConnection);

                        //import area maps
                        if (importMapAlso)
                        {
                            this.ImportAreaMaps(sourceAreaNId.ToString(), 1, sourceDBConnection, sourceDBQueries);
                        }

                    }

                    else
                    {
                        // -- STEP 2: If the Parent is not -1 then check for the existence of the Parent and then create the Area
                        // -- STEP 2.1: If the Parent Exists then create the Area under that parent
                        // -- STEP 2.2: If the Parent does not Exist then create the Parent first and then the Area under that parent

                        // -- get the parent from the source database
                        using (DataTable TempTable = sourceDBConnection.ExecuteDataTable(sourceDBQueries.Area.GetArea(FilterFieldType.NId, sourceParentNId.ToString())))
                        {
                            Row = TempTable.Rows[0];
                            {
                                Block = string.Empty;
                                Map = string.Empty;

                                if (!Information.IsDBNull(Row[Area.AreaMap]))
                                {
                                    Map = Convert.ToString(Row[Area.AreaMap]);
                                }
                                if (!Information.IsDBNull(Row[Area.AreaBlock]))
                                {
                                    Block = Convert.ToString(Row[Area.AreaBlock]);
                                }

                                NewParentNId = this.CreateAreaChainFromExtDB(
                                    Convert.ToInt32(Row[Area.AreaNId]),
                                    Convert.ToInt32(Row[Area.AreaParentNId]), Row[Area.AreaID].ToString(),
                                    Row[Area.AreaName].ToString(), Row[Area.AreaGId].ToString(),
                                    Convert.ToInt32(Row[Area.AreaLevel]), Map, Block,
                                    Convert.ToBoolean(Row[Area.AreaGlobal]), sourceDBQueries,
                                    sourceDBConnection, alreadyImportedAreas, importMapAlso);
                            }
                        }

                        // -- Create the Child Row
                        AreaInfoObject.Parent = new AreaInfo();
                        AreaInfoObject.Parent.Nid = NewParentNId;
                        AreaInfoObject.Nid = sourceAreaNId;
                        AreaInfoObject.Name = sourceAreaName;
                        AreaInfoObject.ID = sourceAreaID;
                        AreaInfoObject.GID = sourceAreaGId;
                        AreaInfoObject.IsGlobal = isGlobal;
                        AreaInfoObject.Level = sourceAreaLevel;
                        AreaInfoObject.AreaBlock = sourceAreaBlock;
                        AreaInfoObject.AreaMap = sourceAreaMap;

                        RetVal = this.CreateAreaForImportProcess(AreaInfoObject, sourceAreaNId, sourceDBQueries, sourceDBConnection);

                        //import area maps
                        if (importMapAlso)
                        {
                            this.ImportAreaMaps(sourceAreaNId.ToString(), 1, sourceDBConnection, sourceDBQueries);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw new ApplicationException(ex.ToString());
            }

            // add new area_nid into ImportedArea list
            if (RetVal > 0)
            {
                if (!alreadyImportedAreas.ContainsKey(sourceAreaID))
                {
                    alreadyImportedAreas.Add(sourceAreaID, RetVal);
                }
            }

            return RetVal;
        }
예제 #19
0
        /// <summary>
        ///  Create area if  not exist Into database 
        /// </summary>
        /// <param name="areaInfo">object of AreaInfo</param>
        /// <returns>Area Nid</returns>
        private int CreateArea(AreaInfo areaInfo)
        {
            int RetVal = 0;
            int ParentNId = 0;
            int ParentLevel = 1;
            string areaparentID = string.Empty;
            string areanid = string.Empty;

            //Step1 :Check parent area exists or not by area id only if ParentNid<>-1 and ParentID is not empty or null
            if (string.IsNullOrEmpty(areaInfo.Parent.ID) & areaInfo.Nid != -1)
            {
                ParentNId = -1;
                areaInfo.Parent.Level = 0;
            }
            else
            {
                ParentNId = this.CheckAreaExists(areaInfo.Parent.ID);

                if (ParentNId <= 0)
                {
                    //set ParentLevel to 1
                    if (areaInfo.Parent.Level == 0)
                    {
                        areaInfo.Parent.Level = ParentLevel;
                    }

                    // create gid for parent area
                    if (string.IsNullOrEmpty(areaInfo.Parent.GID))
                    {
                        areaInfo.Parent.GID = Guid.NewGuid().ToString();
                    }

                    //if parent doesnt exist then insert it into database .
                    if (this.InsertIntoDatabase(areaInfo.Parent.Name, areaInfo.Parent.ID, areaInfo.Parent.GID, areaInfo.Parent.Level, -1))
                    {
                        areaparentID = areaInfo.Parent.ID;
                        ParentNId = this.GetAreaNidByAreaID(areaparentID);
                    }
                }
            }

            //insert area into database
            if (ParentNId > 0 || ParentNId == -1)
            {
                //udpate parentNid in areaInfo object
                areaInfo.Parent.Nid = ParentNId;

                //get parent level if it is null or zero & parent nid >0
                if (areaInfo.Parent.Level == 0 & ParentNId > 0)
                {
                    //get parent area level and update areaRecord object
                    areaInfo.Parent.Level = this.GetAreaLevelByAreaID(areaInfo.Parent.ID);
                }

                //set area level
                if (areaInfo.Level == 0)
                {
                    areaInfo.Level = areaInfo.Parent.Level + 1;
                }

                //create gid for area
                if (string.IsNullOrEmpty(areaInfo.GID))
                {
                    areaInfo.GID = Guid.NewGuid().ToString();
                }

                if (this.InsertIntoDatabase(areaInfo))
                {
                    areanid = areaInfo.ID;
                    RetVal = this.GetAreaNidByAreaID(areanid);
                }

            }

            //update areainfo object
            areaInfo.Nid = RetVal;

            return RetVal;
        }
예제 #20
0
        /// <summary>
        /// Get_Area_Collection method..
        /// </summary>
        /// <param name="this._DSDStructure"></param>
        /// <returns></returns>
        private void Get_Area()
        {
            //'Dictionary<string, int> RetVal = new Dictionary<string, int>();
            //AreaBuilder BuilderObj = new AreaBuilder(this.DBConnection, this.DBQueries);
            string Name = string.Empty;
            string AreaID = string.Empty;
            string LanguageCode = this._LanguageCode;
            int NID = 0;
            string ParentID = string.Empty;
            bool ISGlobal = false;
            this.AreaDetails = new Dictionary<string, AreaInfo>();

            foreach (SDMXObjectModel.Structure.CodelistType CodeListObj in this._DSDStructure.Structures.Codelists)
            {
                if (CodeListObj.id == SDMXConstants.CodeList.Area.Id)
                {
                    foreach (SDMXObjectModel.Structure.CodeType IndCode in CodeListObj.Items)
                    {
                        AreaID = IndCode.id;
                        Name = string.Empty;
                        ISGlobal = false;
                        foreach (TextType IndTextType in IndCode.Name)
                        {
                            if (IndTextType.lang.Trim('_') == this._LanguageCode.Trim('_'))
                            {
                                Name = IndTextType.Value;
                                break;
                            }
                        }

                        foreach (AnnotationType AnnType in IndCode.Annotations)
                        {
                            if (AnnType.AnnotationTitle == SDMXConstants.Annotations.IsGlobal)
                            {
                                foreach (TextType AnnTextType in AnnType.AnnotationText)
                                {
                                    ISGlobal = Convert.ToBoolean(AnnTextType.Value);
                                    // break;
                                }
                            }
                        }

                        foreach (LocalCodeReferenceType RefType in IndCode.Items)
                        {
                            ParentID = ((SDMXObjectModel.Common.RefBaseType)(RefType.Items[0])).id;
                        }

                        if (!this.AreaDetails.ContainsKey(AreaID))
                        {
                            AreaInfo TableInfoObj = new AreaInfo();
                            TableInfoObj.ID = AreaID;
                            TableInfoObj.Name = Name;
                            TableInfoObj.IsGlobal = ISGlobal;
                            TableInfoObj.Parent = new AreaInfo();
                            TableInfoObj.Parent.ID = ParentID;
                            this.AreaDetails.Add(AreaID, TableInfoObj);
                        }

                    }

                }
            }
        }
예제 #21
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="gid">Area Gid</param>
        public void AddInfo(string name, string gid)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name = name;
            this._GID = gid;
        }
예제 #22
0
        /// <summary>
        /// Get_Area_Collection method..
        /// </summary>
        /// <param name="this._DSDStructure"></param>
        /// <returns></returns>
        private void Get_Area()
        {
            //'Dictionary<string, int> RetVal = new Dictionary<string, int>();
            //AreaBuilder BuilderObj = new AreaBuilder(this.DBConnection, this.DBQueries);
            string Name         = string.Empty;
            string AreaID       = string.Empty;
            string LanguageCode = this._LanguageCode;
            int    NID          = 0;
            string ParentID     = string.Empty;
            bool   ISGlobal     = false;

            this.AreaDetails = new Dictionary <string, AreaInfo>();

            foreach (SDMXObjectModel.Structure.CodelistType CodeListObj in this._DSDStructure.Structures.Codelists)
            {
                if (CodeListObj.id == SDMXConstants.CodeList.Area.Id)
                {
                    foreach (SDMXObjectModel.Structure.CodeType IndCode in CodeListObj.Items)
                    {
                        AreaID   = IndCode.id;
                        Name     = string.Empty;
                        ISGlobal = false;
                        foreach (TextType IndTextType in IndCode.Name)
                        {
                            if (IndTextType.lang.Trim('_') == this._LanguageCode.Trim('_'))
                            {
                                Name = IndTextType.Value;
                                break;
                            }
                        }


                        foreach (AnnotationType AnnType in IndCode.Annotations)
                        {
                            if (AnnType.AnnotationTitle == SDMXConstants.Annotations.IsGlobal)
                            {
                                foreach (TextType AnnTextType in AnnType.AnnotationText)
                                {
                                    ISGlobal = Convert.ToBoolean(AnnTextType.Value);
                                    // break;
                                }
                            }
                        }

                        foreach (LocalCodeReferenceType RefType in IndCode.Items)
                        {
                            ParentID = ((SDMXObjectModel.Common.RefBaseType)(RefType.Items[0])).id;
                        }

                        if (!this.AreaDetails.ContainsKey(AreaID))
                        {
                            AreaInfo TableInfoObj = new AreaInfo();
                            TableInfoObj.ID        = AreaID;
                            TableInfoObj.Name      = Name;
                            TableInfoObj.IsGlobal  = ISGlobal;
                            TableInfoObj.Parent    = new AreaInfo();
                            TableInfoObj.Parent.ID = ParentID;
                            this.AreaDetails.Add(AreaID, TableInfoObj);
                        }
                    }
                }
            }
        }
예제 #23
0
        public int ImportAreaFrmMappedArea(AreaInfo srcAreaInfo, int NidInSourceDB, int NidInTrgDB, DIQueries sourceQurey, DIConnection sourceDBConnection)
        {
            int RetVal = NidInTrgDB;
            Dictionary<String, String> OldIconNId_NewIconNId = new Dictionary<string, string>();

            try
            {
                srcAreaInfo.Name = DICommon.RemoveQuotes(srcAreaInfo.Name);
                if (srcAreaInfo.Parent != null)
                {
                    srcAreaInfo.Parent.Name = DICommon.RemoveQuotes(srcAreaInfo.Name);
                }

                if (RetVal > 0)
                {
                    // update area info
                    this.DBConnection.ExecuteNonQuery(this.DBQueries.Update.Area.UpdateArea(srcAreaInfo.Parent.Nid, srcAreaInfo.ID, srcAreaInfo.Name, srcAreaInfo.GID, srcAreaInfo.Level, srcAreaInfo.AreaMap, srcAreaInfo.AreaBlock, srcAreaInfo.IsGlobal));

                    //update/insert icon
                    DIIcons.ImportElement(NidInSourceDB, RetVal, IconElementType.Area, sourceQurey, sourceDBConnection, this.DBQueries, this.DBConnection);

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

            return RetVal;
        }
예제 #24
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="gid">Area Gid</param>
        /// <param name="level">Area Level</param>
        public void AddInfo(string name, string gid, int level)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name = name;
            this._GID = gid;
            this._Level = level;
        }
예제 #25
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="ID">Area Id</param>
        /// <param name="parentName">Area Parent Name</param>
        /// <param name="parentID">Parent Id</param>
        public void AddInfo(string name, string ID, string parentName, string parentID)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name = name;
            this._ID = ID;
            this._Parent.Name = parentName;
            this._Parent.ID = parentID;
        }
예제 #26
0
        /// <summary>
        /// Get AreaInfo based on filter criteria and filter string 
        /// </summary>
        /// <param name="filterFieldType">Applicable for NId, ParentNId, ID, GId, Search, NIdNotIn, NameNotIn, Level</param>
        /// <param name="filterText"></param>
        /// <returns>Returns null incase no record is found. If multiple records are available areaInfo of first record will be returned</returns>
        public AreaInfo GetAreaInfo(FilterFieldType filterFieldType, string filterText)
        {
            AreaInfo RetVal = null;

            string SqlQuery = string.Empty;
            DataTable AreaTable = new DataTable();
            try
            {
                if (!string.IsNullOrEmpty(filterText))
                {
                    SqlQuery = this.DBQueries.Area.GetArea(filterFieldType, filterText);
                    AreaTable = this.DBConnection.ExecuteDataTable(SqlQuery);
                    //check if Row Count Is greater Than Zero
                    if (AreaTable.Rows.Count > 0)
                    {
                        RetVal = new AreaInfo();
                        RetVal.Nid = Convert.ToInt32(AreaTable.Rows[0][Area.AreaNId]);
                        RetVal.ParentNid = Convert.ToInt32(AreaTable.Rows[0][Area.AreaParentNId]);
                        RetVal.ID = Convert.ToString(AreaTable.Rows[0][Area.AreaID]);
                        RetVal.Name = Convert.ToString(AreaTable.Rows[0][Area.AreaName]);
                        RetVal.GID = Convert.ToString(AreaTable.Rows[0][Area.AreaGId]);
                        RetVal.Level = Convert.ToInt32(AreaTable.Rows[0][Area.AreaLevel]);
                        RetVal.AreaMap = Convert.ToString(AreaTable.Rows[0][Area.AreaMap]);
                        RetVal.AreaBlock = Convert.ToString(AreaTable.Rows[0][Area.AreaBlock]);
                        RetVal.IsGlobal = Convert.ToBoolean(AreaTable.Rows[0][Area.AreaGlobal]);
                    }
                }
            }
            catch (Exception ex)
            {
                System.Diagnostics.Debug.Print(ex.Message);
            }

            return RetVal;
        }
예제 #27
0
        /// <summary>
        /// Update AreaInfo
        /// </summary>
        /// <param name="areaInfo"></param>
        public void UpdateArea(AreaInfo areaInfo)
        {
            string SqlQuery = string.Empty;
            // -- Update the area
            SqlQuery = this.DBQueries.Update.Area.UpdateAreaByAreaNId(areaInfo.ParentNid, areaInfo.ID, areaInfo.Name, areaInfo.GID, areaInfo.Level, areaInfo.AreaMap, areaInfo.AreaBlock, areaInfo.IsGlobal, areaInfo.Nid);

            this.DBConnection.ExecuteNonQuery(SqlQuery);
        }
예제 #28
0
        /// <summary>
        /// Import Area by Name, ID
        /// </summary>
        /// <param name="requiredAreaLevel"></param>
        /// <param name="areaName"></param>
        /// <param name="areaID"></param>
        /// <param name="parentAreaID"></param>
        /// <returns></returns>
        public int ImportArea(string areaName, string areaID, string parentAreaID, bool isGlobal)
        {
            int RetVal = 0;
            string Map = string.Empty;
            string Block = string.Empty;
            AreaInfo AreaInfoObj = new AreaInfo();

            try
            {
                RetVal = this.GetAreaNidByAreaID(areaID);

                AreaInfoObj.Name = areaName;
                AreaInfoObj.ID = areaID;
                AreaInfoObj.Parent = new AreaInfo();
                if (parentAreaID == "-1")
                {
                    AreaInfoObj.Parent.Nid = -1;
                }
                else
                {
                    AreaInfoObj.Parent.ID = parentAreaID;
                    AreaInfoObj.Parent.Nid = this.GetAreaNidByAreaID(parentAreaID);
                }
                AreaInfoObj.IsGlobal = isGlobal;

                if (RetVal <= 0)
                {

                    RetVal = this.CheckNCreateArea(AreaInfoObj);
                }
                else
                {
                    this.UpdateArea(AreaInfoObj);
                }

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

            return RetVal;
        }
예제 #29
0
        /// <summary>
        /// To add Information of AreaInfo.
        /// </summary>
        /// <param name="name">Area name</param>
        /// <param name="gid">Area Gid</param>
        /// <param name="level">Area Level</param>
        /// <param name="parentName">Area Parent Name</param>
        /// <param name="parentGId">Parent Gid</param>
        /// <param name="parentLevel">Parent Level</param>
        public void AddInfo(string name, string gid, int level, string parentName, string parentGId, int parentLevel)
        {
            if (this._Parent == null)
            {
                this._Parent = new AreaInfo();
            }

            this._Name = name;
            this._GID = gid;
            this._Level = level;
            this._Parent.Name = parentName;
            this._Parent.GID = parentGId;
            this._Parent.Level = parentLevel;
        }