Esempio n. 1
0
 public void LoadParent()
 {
     this.IsLoad = true;
     try
     {
         ZDHistoryTable zDHistoryTable = new ZDHistoryTable();
         string         text           = (this.Feature.Class as IDataset).Name;
         string[]       array          = text.Split(new char[]
         {
             '.'
         });
         text = array[array.Length - 1];
         if (text.Length > 4)
         {
             string a = text.Substring(text.Length - 4).ToLower();
             if (a == "_his")
             {
                 text = text.Substring(0, text.Length - 4);
             }
         }
         string        historyZDFeatureName = ZDRegister.GetHistoryZDFeatureName(this.Feature.Class as IFeatureClass);
         string        registerZDGuid       = ZDRegister.GetRegisterZDGuid(this.Feature.Class as IFeatureClass);
         IFeatureClass ifeatureClass_       =
             ((this.Feature.Class as IDataset).Workspace as IFeatureWorkspace).OpenFeatureClass(
                 historyZDFeatureName);
         string whereClause = string.Format("{0}='{1}' and {2}={3}", new object[]
         {
             zDHistoryTable.ZDRegisterGuidName,
             registerZDGuid,
             zDHistoryTable.NewZDOIDName,
             this.OID
         });
         IQueryFilter queryFilter = new QueryFilter();
         queryFilter.WhereClause = whereClause;
         IWorkspace workspace = AppConfigInfo.GetWorkspace();
         ITable     table     = (workspace as IFeatureWorkspace).OpenTable(zDHistoryTable.TableName);
         ICursor    cursor    = table.Search(queryFilter, false);
         for (IRow row = cursor.NextRow(); row != null; row = cursor.NextRow())
         {
             ZDChangeHistoryInfo zDChangeHistoryInfo = new ZDChangeHistoryInfo();
             object fieldValue = RowOperator.GetFieldValue(row, zDHistoryTable.ChangeTypeFieldName);
             if (this.ChageType == ZDEditType.Unknown)
             {
                 this.ChageType = (ZDEditType)System.Convert.ToInt32(fieldValue);
             }
             fieldValue      = RowOperator.GetFieldValue(row, zDHistoryTable.ChageDateFieldName);
             this.ChangeDate = System.Convert.ToDateTime(fieldValue);
             fieldValue      = RowOperator.GetFieldValue(row, zDHistoryTable.OrigineZDOIDName);
             int oID = System.Convert.ToInt32(fieldValue);
             zDChangeHistoryInfo.Feature    = ZDChangeHistory.GetHisFeat(ifeatureClass_, oID);
             zDChangeHistoryInfo.OID        = oID;
             zDChangeHistoryInfo.TopFeat    = this.Feature;
             zDChangeHistoryInfo.SouceInfos = new System.Collections.Generic.List <ZDChangeHistoryInfo>();
             this.SouceInfos.Add(zDChangeHistoryInfo);
         }
         ComReleaser.ReleaseCOMObject(cursor);
     }
     catch (System.Exception)
     {
     }
 }
Esempio n. 2
0
        public static System.Collections.Generic.List <ZDChangeHistoryInfo2> GetZDChangeHistory(
            IFeatureClass ifeatureClass_0)
        {
            System.Collections.Generic.List <ZDChangeHistoryInfo2> list =
                new System.Collections.Generic.List <ZDChangeHistoryInfo2>();
            ZDHistoryTable zDHistoryTable = new ZDHistoryTable();
            string         text           = (ifeatureClass_0 as IDataset).Name;

            string[] array = text.Split(new char[]
            {
                '.'
            });
            text = array[array.Length - 1];
            if (text.Length > 4)
            {
                string a = text.Substring(text.Length - 4).ToLower();
                if (a == "_his")
                {
                    text = text.Substring(0, text.Length - 4);
                }
            }
            string       registerZDGuid = ZDRegister.GetRegisterZDGuid(ifeatureClass_0);
            string       whereClause    = string.Format("{0}='{1}' ", zDHistoryTable.ZDRegisterGuidName, registerZDGuid);
            IQueryFilter queryFilter    = new QueryFilter();

            queryFilter.WhereClause = whereClause;
            (queryFilter as IQueryFilterDefinition).PostfixClause = string.Format(" ORDER BY {0} desc ",
                                                                                  zDHistoryTable.ChageDateFieldName);
            try
            {
                using (ComReleaser comReleaser = new ComReleaser())
                {
                    IWorkspace workspace = AppConfigInfo.GetWorkspace();
                    ITable     table     = (workspace as IFeatureWorkspace).OpenTable(zDHistoryTable.TableName);
                    ICursor    cursor    = table.Search(queryFilter, true);
                    comReleaser.ManageLifetime(cursor);
                    IRow row = cursor.NextRow();
                    SortedList <int, ZDChangeHistoryInfo2> sortedList  = new SortedList <int, ZDChangeHistoryInfo2>();
                    SortedList <int, ZDChangeHistoryInfo2> sortedList2 = new SortedList <int, ZDChangeHistoryInfo2>();
                    while (row != null)
                    {
                        try
                        {
                            object     fieldValue = RowOperator.GetFieldValue(row, zDHistoryTable.ChangeTypeFieldName);
                            ZDEditType zDEditType = (ZDEditType)System.Convert.ToInt32(fieldValue);
                            fieldValue = RowOperator.GetFieldValue(row, zDHistoryTable.ChageDateFieldName);
                            System.DateTime changeDate = System.Convert.ToDateTime(fieldValue);
                            fieldValue = RowOperator.GetFieldValue(row, zDHistoryTable.OrigineZDOIDName);
                            int num = System.Convert.ToInt32(fieldValue);
                            fieldValue = RowOperator.GetFieldValue(row, zDHistoryTable.NewZDOIDName);
                            int num2 = System.Convert.ToInt32(fieldValue);
                            fieldValue = RowOperator.GetFieldValue(row, zDHistoryTable.HisZDOIDName);
                            int num3 = System.Convert.ToInt32(fieldValue);
                            if (num2 != -1)
                            {
                                ZDChangeHistoryInfo2 zDChangeHistoryInfo;
                                if (zDEditType == ZDEditType.Split)
                                {
                                    if (sortedList2.ContainsKey(num))
                                    {
                                        zDChangeHistoryInfo = sortedList2[num];
                                    }
                                    else
                                    {
                                        zDChangeHistoryInfo = new ZDChangeHistoryInfo2();
                                        sortedList2.Add(num, zDChangeHistoryInfo);
                                        zDChangeHistoryInfo.Add(num);
                                        zDChangeHistoryInfo.AddHis(num3);
                                        zDChangeHistoryInfo.ChangeDate = changeDate;
                                        zDChangeHistoryInfo.ChageType  = zDEditType;
                                        list.Add(zDChangeHistoryInfo);
                                    }
                                    zDChangeHistoryInfo.AddNew(num2);
                                }
                                else if (zDEditType == ZDEditType.Union)
                                {
                                    if (sortedList.ContainsKey(num2))
                                    {
                                        zDChangeHistoryInfo = sortedList[num2];
                                    }
                                    else
                                    {
                                        zDChangeHistoryInfo = new ZDChangeHistoryInfo2();
                                        sortedList.Add(num2, zDChangeHistoryInfo);
                                        zDChangeHistoryInfo.AddNew(num2);
                                        zDChangeHistoryInfo.ChangeDate = changeDate;
                                        zDChangeHistoryInfo.ChageType  = zDEditType;
                                        list.Add(zDChangeHistoryInfo);
                                    }
                                    zDChangeHistoryInfo.Add(num);
                                    zDChangeHistoryInfo.AddHis(num3);
                                }
                                else
                                {
                                    zDChangeHistoryInfo = new ZDChangeHistoryInfo2();
                                    zDChangeHistoryInfo.Add(num);
                                    zDChangeHistoryInfo.AddNew(num2);
                                    zDChangeHistoryInfo.AddHis(num3);
                                    zDChangeHistoryInfo.ChangeDate = changeDate;
                                    zDChangeHistoryInfo.ChageType  = zDEditType;
                                    list.Add(zDChangeHistoryInfo);
                                }
                                zDChangeHistoryInfo.HisOID = num3;
                            }
                            else if (num != -1 && zDEditType == ZDEditType.Delete)
                            {
                                ZDChangeHistoryInfo2 zDChangeHistoryInfo = new ZDChangeHistoryInfo2();
                                zDChangeHistoryInfo.Add(num);
                                zDChangeHistoryInfo.AddNew(num2);
                                zDChangeHistoryInfo.AddHis(num3);
                                zDChangeHistoryInfo.ChangeDate = changeDate;
                                zDChangeHistoryInfo.ChageType  = zDEditType;
                                list.Add(zDChangeHistoryInfo);
                            }
                        }
                        catch (System.Exception)
                        {
                        }
                        row = cursor.NextRow();
                    }
                }
            }
            catch (System.Exception)
            {
            }
            return(list);
        }