Exemple #1
0
 public void GetDifferences1(IWorkspace iworkspace_0, string string_0, string string_1,
                             TreeNodeCollection treeNodeCollection_0, IList ilist_0)
 {
     try
     {
         this.bool_0 = false;
         IFeatureWorkspace   iworkspace0        = iworkspace_0 as IFeatureWorkspace;
         IVersionedWorkspace versionedWorkspace = iworkspace_0 as IVersionedWorkspace;
         IFeatureWorkspace   featureWorkspace   = versionedWorkspace.FindVersion(string_0) as IFeatureWorkspace;
         IFeatureWorkspace   featureWorkspace1  = versionedWorkspace.FindVersion(string_1) as IFeatureWorkspace;
         ilist_0.Clear();
         DateTime now = DateTime.Now;
         ilist_0.Add(string.Concat("Version Difference Report - ", now.ToLongDateString()));
         ilist_0.Add(string.Concat("Parent/Grandparent/.. Version: ", string_0));
         ilist_0.Add(string.Concat("Child Version: ", string_1));
         ilist_0.Add("________________________________________________________");
         this.CheckDatasetForDifferences(treeNodeCollection_0, iworkspace0, featureWorkspace, featureWorkspace1,
                                         string_0, string_1, ilist_0);
         if (!this.bool_0)
         {
             ilist_0.Add("No differences found.");
         }
     }
     catch
     {
     }
 }
Exemple #2
0
        private bool method_7(IVersionedWorkspace iversionedWorkspace_0, IEnumVersionInfo ienumVersionInfo_0,
                              string string_0, bool bool_2, bool bool_3)
        {
            bool flag = true;

            try
            {
                for (IVersionInfo i = ienumVersionInfo_0.Next(); i != null; i = ienumVersionInfo_0.Next())
                {
                    if (!bool_2)
                    {
                        if (this.method_8(iversionedWorkspace_0.FindVersion(i.VersionName) as IVersionEdit, string_0,
                                          bool_2, bool_3))
                        {
                            this.method_7(iversionedWorkspace_0, i.Children, i.VersionName, bool_2, bool_3);
                        }
                    }
                    else if (!this.method_7(iversionedWorkspace_0, i.Children, i.VersionName, bool_2, bool_3))
                    {
                        flag = false;
                    }
                    else if (
                        !this.method_8(iversionedWorkspace_0.FindVersion(i.VersionName) as IVersionEdit, string_0,
                                       bool_2, bool_3))
                    {
                        flag = true;
                    }
                }
            }
            catch
            {
                flag = false;
            }
            return(flag);
        }
Exemple #3
0
 public void GetDifferences1(IWorkspace iworkspace_0, string string_0, string string_1,
                             TreeNodeCollection treeNodeCollection_0, IList ilist_0)
 {
     try
     {
         this.bool_0 = false;
         IFeatureWorkspace   workspace  = iworkspace_0 as IFeatureWorkspace;
         IVersionedWorkspace workspace2 = iworkspace_0 as IVersionedWorkspace;
         IFeatureWorkspace   workspace3 = workspace2.FindVersion(string_0) as IFeatureWorkspace;
         IFeatureWorkspace   workspace4 = workspace2.FindVersion(string_1) as IFeatureWorkspace;
         ilist_0.Clear();
         ilist_0.Add("Version Difference Report - " + DateTime.Now.ToLongDateString());
         ilist_0.Add("Parent/Grandparent/.. Version: " + string_0);
         ilist_0.Add("Child Version: " + string_1);
         ilist_0.Add("________________________________________________________");
         this.CheckDatasetForDifferences(treeNodeCollection_0, workspace, workspace3, workspace4, string_0,
                                         string_1, ilist_0);
         if (!this.bool_0)
         {
             ilist_0.Add("No differences found.");
         }
     }
     catch
     {
     }
 }
Exemple #4
0
 public void ChangeVersionByName(IGraphicsContainer igraphicsContainer_0, IFeatureWorkspace ifeatureWorkspace_0,
                                 string string_0)
 {
     try
     {
         if ((((igraphicsContainer_0 != null) && (ifeatureWorkspace_0 != null)) && (string_0.Length != 0)) &&
             (ifeatureWorkspace_0 is IVersionedWorkspace))
         {
             IVersionedWorkspace workspace     = ifeatureWorkspace_0 as IVersionedWorkspace;
             string       versionName          = (workspace as IVersion).VersionName;
             IPropertySet connectionProperties = (ifeatureWorkspace_0 as IWorkspace).ConnectionProperties;
             try
             {
                 connectionProperties.GetProperty("Version").ToString();
             }
             catch
             {
             }
             IVersion version = workspace.FindVersion(string_0);
             if (version == null)
             {
             }
             this.ChangeVersion(igraphicsContainer_0, ifeatureWorkspace_0, version as IFeatureWorkspace);
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
Exemple #5
0
        /// <summary>
        /// 切换到任务
        /// </summary>
        /// <param name="versionName"></param>
        public void ChangeToCheckInVersion(string versionName)
        {
            IVersionedWorkspace    vws  = Util.ServerWorkspace as IVersionedWorkspace;
            IVersion               ver  = vws.FindVersion(versionName);
            IMapAdmin3             ma   = this.axMapControl1.Map as IMapAdmin3;
            IBasicMap              bmap = this.axMapControl1.Map as IBasicMap;
            AppManager             am   = AppManager.GetInstance();
            IChangeDatabaseVersion cdv  = new ChangeDatabaseVersionClass();

            if (am.CurrentVersion == null)
            {
                ma.FireChangeVersion(vws.DefaultVersion, ver);
                cdv.Execute(vws.DefaultVersion, ver, bmap);
            }
            else
            {
                ma.FireChangeVersion(am.CurrentVersion, ver);
                cdv.Execute(am.CurrentVersion, ver, bmap);
            }
            am.CurrentVersion = ver;
            am.TaskName       = versionName;

            m_EditWorkspace = ver as IWorkspaceEdit2;
            FilterLayers();
            SetUpdateGridList(versionName);
            SetStatusLabel(versionName);
        }
Exemple #6
0
        /// <summary>
        /// 结束任务流程
        /// </summary>
        /// <param name="taskName"></param>
        public void FinishTask(string taskName)
        {
            IFeatureWorkspace   ws = Util.ServerWorkspace as IFeatureWorkspace;
            IVersionedWorkspace vw = ws as IVersionedWorkspace;

            if (taskName.ToLower() == vw.DefaultVersion.VersionName.ToLower())
            {
                return;
            }
            IVersion       ver = vw.FindVersion(taskName);
            IVersionEdit4  ve  = ver as IVersionEdit4;
            IWorkspaceEdit wse = ver as IWorkspaceEdit;

            wse.StartEditing(true);
            ve.Reconcile4(vw.DefaultVersion.VersionName, true, true, true, true);
            if (ve.CanPost())
            {
                ve.Post(vw.DefaultVersion.VersionName);
            }
            ITable       task_tbl = ws.OpenTable("TaskLog");
            IQueryFilter filter   = new QueryFilterClass();

            filter.WhereClause = "TaskName = '" + taskName + "'";
            ICursor cur = task_tbl.Search(filter, false);
            IRow    rw  = cur.NextRow();

            if (rw != null)
            {
                rw.set_Value(task_tbl.FindField("Status"), TaskManager.FINISH_STATUS);
                rw.set_Value(task_tbl.FindField("FinishDate"), DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
                rw.Store();
            }
            wse.StopEditing(true);
            ver.Delete();
        }
Exemple #7
0
        public IVersion CreateNewVersion(IVersionedWorkspace versionedWorkspace, string versionName, string parentVersionName)
        {
            IVersion newVersion = null;
            IVersion parentVersion = null;
            try
            {
                if (parentVersionName == "")
                {
                    parentVersion = versionedWorkspace.DefaultVersion;
                }
                else
                {
                    parentVersion = versionedWorkspace.FindVersion(parentVersionName);
                }
            }
            catch
            {
                MessageBox.Show("không tìm thấy version :" + parentVersionName);
            }

            try
            {
                /*
                *   Delete the version if it exists.
                */

                newVersion = versionedWorkspace.FindVersion(versionName);
                newVersion.Delete();
                newVersion = parentVersion.CreateVersion(versionName);
                //newVersion = new SeVersion(conn);
            }
            catch (Exception e)
            {
                //if( e.get.getSdeError() == IError.SE_VERSION_NOEXIST )
                try
                {
                    newVersion = parentVersion.CreateVersion(versionName);
                }
                catch (Exception se)
                {
                    MessageBox.Show(se.ToString());
                }
            }
            newVersion.Access = esriVersionAccess.esriVersionAccessPublic;
            return newVersion;
        }
Exemple #8
0
        /// <summary>
        ///  删除当前版本
        /// </summary>
        /// <param name="pWorkspace">工作区</param>
        /// <param name="VersionName">版本名称</param>
        /// <returns></returns>
        public static bool DeleteVersion(IWorkspace pWorkspace, string VersionName)
        {
            IVersionedWorkspace pVerWorkspace = (IVersionedWorkspace)pWorkspace;
            IVersion            pVersion      = pVerWorkspace.FindVersion(VersionName);

            pVersion.Delete();
            return(true);
        }
Exemple #9
0
        private bool method_3(IVersionedWorkspace iversionedWorkspace_1, IEnumVersionInfo ienumVersionInfo_0,
                              string string_0, bool bool_0, bool bool_1)
        {
            bool flag = true;

            try
            {
                for (IVersionInfo info = ienumVersionInfo_0.Next(); info != null; info = ienumVersionInfo_0.Next())
                {
                    IVersionEdit edit;
                    if (bool_0)
                    {
                        if (!this.method_3(iversionedWorkspace_1, info.Children, info.VersionName, bool_0, bool_1))
                        {
                            flag = false;
                            this.txtMessage.Text = "无法合并 " + info.VersionName + "的所有子版";
                        }
                        else
                        {
                            this.txtMessage.Text = "正在合并 " + info.VersionName;
                            edit = iversionedWorkspace_1.FindVersion(info.VersionName) as IVersionEdit;
                            if (!this.method_4(edit, string_0, bool_0, bool_1))
                            {
                                flag = true;
                            }
                        }
                    }
                    else
                    {
                        this.txtMessage.Text = "正在合并 " + info.VersionName;
                        edit = iversionedWorkspace_1.FindVersion(info.VersionName) as IVersionEdit;
                        if (this.method_4(edit, string_0, bool_0, bool_1))
                        {
                            this.method_3(iversionedWorkspace_1, info.Children, info.VersionName, bool_0, bool_1);
                        }
                    }
                }
            }
            catch
            {
                flag = false;
            }
            return(flag);
        }
        public void DeleteVersion(IWorkspace workspace, string versionName)
        {
            IVersionedWorkspace vw  = workspace as IVersionedWorkspace;
            IVersion            ver = vw.FindVersion(versionName);
            AppManager          am  = AppManager.GetInstance();

            if (am.CurrentVersion.VersionName == versionName)
            {
                MainForm mf = am.AppForm;
                mf.ChangeToDefaultVersion();
            }
            ver.Delete();
        }
Exemple #11
0
        public static IFIDSet FindVersionDifferences(IWorkspace workspace, String sourceVersionName, String targetVersionName, String tableName, esriDifferenceType differenceType)
        {
            // Get references to the child and parent versions.
            IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspace;
            IVersion            sourceVersion      = versionedWorkspace.FindVersion(sourceVersionName);
            IVersion            targetVersion      = versionedWorkspace.FindVersion(targetVersionName);

            // Cast to the IVersion2 interface to find the common ancestor.
            IVersion2 sourceVersion2        = (IVersion2)sourceVersion;
            IVersion  commonAncestorVersion = sourceVersion2.GetCommonAncestor(targetVersion);

            // Cast the child version to IFeatureWorkspace and open the table.
            IFeatureWorkspace targetFWS   = (IFeatureWorkspace)sourceVersion;
            ITable            targetTable = targetFWS.OpenTable(tableName);

            // Cast the common ancestor version to IFeatureWorkspace and open the table.
            IFeatureWorkspace commonAncestorFWS   = (IFeatureWorkspace)commonAncestorVersion;
            ITable            commonAncestorTable = commonAncestorFWS.OpenTable(tableName);

            // Cast to the IVersionedTable interface to create a difference cursor.
            IVersionedTable   versionedTable   = (IVersionedTable)targetTable;
            IDifferenceCursor differenceCursor = versionedTable.Differences(commonAncestorTable, differenceType, null);

            // Create output variables for the IDifferenceCursor.Next method and a FID set.
            IFIDSet fidSet        = new FIDSetClass();
            IRow    differenceRow = null;
            int     objectID      = -1;

            // Step through the cursor, showing the ID of each modified row.
            differenceCursor.Next(out objectID, out differenceRow);
            while (objectID != -1)
            {
                fidSet.Add(objectID);
                differenceCursor.Next(out objectID, out differenceRow);
            }

            fidSet.Reset();
            return(fidSet);
        }
Exemple #12
0
        public void DeleteTask(string taskName)
        {
            IFeatureWorkspace ws       = Util.ServerWorkspace as IFeatureWorkspace;
            ITable            task_tbl = ws.OpenTable("TaskLog");
            IQueryFilter      filter   = new QueryFilterClass();

            filter.WhereClause = "TaskName = '" + taskName + "'";
            ICursor        cur = task_tbl.Search(filter, false);
            IRow           rw  = cur.NextRow();
            IWorkspaceEdit wse = ws as IWorkspaceEdit;

            if (rw != null)
            {
                string status = rw.get_Value(task_tbl.FindField("Status")) as string;
                if (status == TaskManager.CHECKOUT_STATUS)
                {
                    wse.StartEditing(true);
                    rw.Delete();
                    wse.StopEditing(true);
                }
                else if (status == TaskManager.CHECKIN_STATUS)
                {
                    IVersionedWorkspace vw  = ws as IVersionedWorkspace;
                    IVersion            ver = vw.FindVersion(taskName);
                    ver.Delete();

                    wse.StartEditing(true);
                    rw.Delete();
                    wse.StopEditing(true);
                }
                wse.StartEditing(false);
                ITable       tgl_tbl    = ws.OpenTable("TaskGridLog");
                IQueryFilter tgl_filter = new QueryFilterClass();
                tgl_filter.WhereClause = "TaskName = '" + taskName + "'";
                tgl_tbl.DeleteSearchedRows(tgl_filter);
                wse.StopEditing(true);

                IQueryFilter checkItem_filter = new QueryFilterClass();
                checkItem_filter.WhereClause = "VersionName = '" + taskName + "'";
                wse.StartEditing(false);
                ITable checkItemPtn_fc = ws.OpenTable("CheckItemPtn");
                checkItemPtn_fc.DeleteSearchedRows(checkItem_filter);

                ITable checkItemLn_fc = ws.OpenTable("CheckItemLn");
                checkItemLn_fc.DeleteSearchedRows(checkItem_filter);

                ITable checkItemPoly_fc = ws.OpenTable("CheckItemPoly");
                checkItemPoly_fc.DeleteSearchedRows(checkItem_filter);
                wse.StopEditing(true);
            }
        }
Exemple #13
0
        public static IFIDSet FindVersionDifferences(IWorkspace workspace, string childVersionName,
                                                     string parentVersionName, string tableName, esriDifferenceType differenceType)
        {
            IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspace;
            IVersion            version            = versionedWorkspace.FindVersion(childVersionName);
            IVersion            version1           = versionedWorkspace.FindVersion(parentVersionName);
            IVersion            commonAncestor     = ((IVersion2)version).GetCommonAncestor(version1);
            ITable            table            = ((IFeatureWorkspace)version).OpenTable(tableName);
            ITable            table1           = ((IFeatureWorkspace)commonAncestor).OpenTable(tableName);
            IDifferenceCursor differenceCursor = ((IVersionedTable)table).Differences(table1, differenceType, null);
            IFIDSet           fIDSetClass      = new FIDSet();
            IRow row = null;
            int  num = -1;

            differenceCursor.Next(out num, out row);
            while (num != -1)
            {
                fIDSetClass.Add(num);
                differenceCursor.Next(out num, out row);
            }
            fIDSetClass.Reset();
            return(fIDSetClass);
        }
        public bool ExistVersion(IWorkspace workspace, string versionName)
        {
            IVersionedWorkspace vw = workspace as IVersionedWorkspace;

            try
            {
                IVersion ver = vw.FindVersion(versionName);
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
Exemple #15
0
        public static List <IVersion> GetParentVersionList(IVersion pVersion)
        {
            List <IVersion> versions = new List <IVersion>();

            if (pVersion.HasParent())
            {
                IVersionedWorkspace versionedWorkspace = pVersion as IVersionedWorkspace;
                IEnumVersionInfo    ancestors          = pVersion.VersionInfo.Ancestors;
                IVersionInfo        versionInfo        = ancestors.Next();
                while (versionInfo != null)
                {
                    versions.Add(versionedWorkspace.FindVersion(versionInfo.VersionName));
                    versionInfo = ancestors.Next();
                }
            }
            return(versions);
        }
Exemple #16
0
 private string method_0(string string_0)
 {
     if (this.iworkspace_0 is IVersionedWorkspace)
     {
         IVersionedWorkspace workspace = this.iworkspace_0 as IVersionedWorkspace;
         try
         {
             IVersion version = workspace.FindVersion(string_0);
             if (version.HasParent())
             {
                 return(version.VersionInfo.Parent.VersionName);
             }
         }
         catch
         {
         }
     }
     return("");
 }
Exemple #17
0
        /// <summary>
        ///     Gets the version.
        /// </summary>
        /// <param name="source">The source.</param>
        /// <param name="name">The name.</param>
        /// <returns>Returns a <see cref="IVersion" /> representing the version.</returns>
        public static IVersion GetVersion(this IVersionedWorkspace source, string name)
        {
            try
            {
                var version = source.FindVersion(name);
                version.RefreshVersion();

                return(version);
            }
            catch (COMException e)
            {
                if (e.ErrorCode == (int)fdoError.FDO_E_VERSION_NOT_FOUND ||
                    e.ErrorCode == (int)fdoError.FDO_E_SE_VERSION_NOEXIST)
                {
                    return(null);
                }

                throw;
            }
        }
Exemple #18
0
        public void ChangeToCheckInVersion(string versionName)
        {
            this.superTabControl1.SelectedTabIndex = 1;

            IVersionedWorkspace    vws  = Util.ServerWorkspace as IVersionedWorkspace;
            IVersion               ver  = vws.FindVersion(versionName);
            IMapAdmin3             ma   = this.axMapControl2.Map as IMapAdmin3;
            IBasicMap              bmap = this.axMapControl2.Map as IBasicMap;
            AppManager             am   = AppManager.GetInstance();
            IChangeDatabaseVersion cdv  = new ChangeDatabaseVersionClass();

            //ma.FireChangeVersion(am.CurrentVersion, ver);
            //ILayer lyr = this.axMapControl2.get_Layer(2);

            cdv.Execute(am.CurrentVersion, ver, bmap);

            am.CurrentVersion = ver;
            am.TaskName       = versionName;

            LocateTask(versionName);
            SetUpdateGridList(versionName);
        }
Exemple #19
0
 public void ShowDifferenceGeometry(IVersionedWorkspace iversionedWorkspace_0, int int_0, IMap imap_0,
                                    string string_0, string string_1)
 {
     try
     {
         IQueryFilter      filter       = new QueryFilterClass();
         IDataset          featureClass = null;
         IFeatureWorkspace workspace    = iversionedWorkspace_0.FindVersion(string_1) as IFeatureWorkspace;
         for (int i = 0; i < imap_0.LayerCount; i++)
         {
             IFeatureLayer layer = imap_0.get_Layer(i) as IFeatureLayer;
             if (layer != null)
             {
                 featureClass = layer.FeatureClass as IDataset;
                 if (featureClass.Name.ToUpper() == string_0.ToUpper())
                 {
                     break;
                 }
             }
         }
         if (featureClass != null)
         {
             IFeatureClass class3 = workspace.OpenFeatureClass(featureClass.Name);
             filter.WhereClause = "OBJECTID = " + int_0;
             IFeatureCursor o       = class3.Search(filter, false);
             IFeature       feature = o.NextFeature();
             if (feature != null)
             {
                 this.DrawDifferenceGeometry(feature.Shape, (imap_0 as IActiveView).ScreenDisplay);
             }
             ComReleaser.ReleaseCOMObject(o);
         }
     }
     catch
     {
     }
 }
        public void Check(string taskName, bool isPartial)
        {
            IVersionedWorkspace vws = Util.ServerWorkspace as IVersionedWorkspace;

            m_checkingWS = vws.FindVersion(taskName) as IWorkspace;
            m_errors.Clear();
            m_log.Clear();
            m_log.Add("Start Check");
            IsCheckTaskData = true;
            LoadCheckItems(taskName, isPartial);
            foreach (var checker in Checkers)
            {
                m_log.Add("---------------------");
                m_log.Add("Checker:" + checker.GetType().ToString());
                BaseChecker bc = checker as BaseChecker;
                if (checker.CheckData())
                {
                    if (bc.CheckErrorList != null)
                    {
                        foreach (CheckError err in bc.CheckErrorList)
                        {
                            m_log.Add(err.Description);
                        }
                        m_errors.AddRange(bc.CheckErrorList.OfType <CheckError>());
                    }
                    m_log.Add("Check Successfully");
                }
                else
                {
                    m_log.Add("Check Failed");
                    m_log.Add(bc.Message);
                }
                m_log.Add("---------------------");
            }
            m_log.Add("End Check");
        }
Exemple #21
0
        public bool Do()
        {
            string str = this.txtCheckOutName.Text.Trim();

            if (str.Length == 0)
            {
                MessageBox.Show("请输入检出名称!");
                return(false);
            }
            IVersionedWorkspace workspace =
                (CheckOutHelper.m_pHelper.MasterWorkspaceName as IName).Open() as IVersionedWorkspace;

            try
            {
                if (workspace.FindVersion(str) != null)
                {
                    MessageBox.Show("主数据库中已存在版本: " + str);
                    return(false);
                }
            }
            catch
            {
            }
            string path = this.txtOutGDB.Text.Trim();

            if (path.Length == 0)
            {
                MessageBox.Show("请选择检出位置!");
                return(false);
            }
            if (!(Path.GetExtension(path).ToLower() == ".mdb"))
            {
                MessageBox.Show("请选择正确的检出位置!");
                return(false);
            }
            if (!File.Exists(path))
            {
                IWorkspaceFactory factory = new AccessWorkspaceFactory();
                try
                {
                    IWorkspaceName name = factory.Create(Path.GetDirectoryName(path),
                                                         Path.GetFileNameWithoutExtension(path), null, 0);
                    this.txtOutGDB.Tag = name;
                    goto Label_016D;
                }
                catch (Exception exception)
                {
                    MessageBox.Show(exception.ToString());
                    return(false);
                }
            }
            IWorkspaceName name2 = new WorkspaceNameClass
            {
                WorkspaceFactoryProgID = "esriDataSourcesGDB.AccessWorkspaceFactory",
                PathName = path
            };
            IWorkspace workspace2 = (name2 as IName).Open() as IWorkspace;

            if (!this.method_2(workspace2, CheckOutHelper.m_pHelper.EnumName))
            {
                return(false);
            }
            this.txtOutGDB.Tag = name2;
Label_016D:
            CheckOutHelper.m_pHelper.ReuseSchema           = this.chkResueSchema.Checked;
            CheckOutHelper.m_pHelper.CheckOutName          = str;
            CheckOutHelper.m_pHelper.CheckOnlySchema       = this.rdoType.SelectedIndex == 1;
            CheckOutHelper.m_pHelper.CheckoutWorkspaceName = this.txtOutGDB.Tag as IWorkspaceName;
            return(true);
        }
Exemple #22
0
 public IVersion CreateNewVersion(IVersionedWorkspace versionedWorkspace, string versionName,esriVersionAccess access)
 {
     IVersion newVersion = null;
     IVersion parentVersion = null;
     try
     {
         /*
         *   Delete the version if it exists.
         */
         parentVersion = versionedWorkspace.DefaultVersion;
         newVersion = versionedWorkspace.FindVersion(versionName);
         newVersion.Delete();
         newVersion = parentVersion.CreateVersion(versionName);
         //newVersion = new SeVersion(conn);
     }
     catch (Exception e)
     {
         //if( e.get.getSdeError() == IError.SE_VERSION_NOEXIST )
         try
         {
             newVersion = parentVersion.CreateVersion(versionName);
         }
         catch (Exception se)
         {
             MessageBox.Show(se.ToString());
         }
     }
     newVersion.Access = access;
     return newVersion;
 }
Exemple #23
0
        public int UpdateAssets(List <AssetModified> assetModifieds)
        {
            int num;

            this.dtStartTime = DateTime.Now;
            Assets.logger.Debug(string.Concat("UpdateAssets start at ", this.dtStartTime.ToString()));
            IPropertySet propertySet = Assets.GetPropertySet();
            int          counter     = 0;

            try
            {
                IWorkspace          workspaceName      = (new SdeWorkspaceFactoryClass()).Open(propertySet, 0);
                IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspaceName;
                IEnumVersionInfo    enumVersionInfo    = versionedWorkspace.Versions;
                enumVersionInfo.Reset();
                IVersionInfo existversionInfo = enumVersionInfo.Next();
                while (existversionInfo != null)
                {
                    if (!existversionInfo.VersionName.Trim().Equals("MSD.DTS_EDIT"))
                    {
                        existversionInfo = enumVersionInfo.Next();
                    }
                    else
                    {
                        versionedWorkspace.FindVersion("MSD.DTS_EDIT").Delete();
                        break;
                    }
                }
                enumVersionInfo.Reset();
                IVersion version    = (IVersion)((IFeatureWorkspace)workspaceName);
                string   name       = version.VersionInfo.VersionName;
                IVersion dtsVersion = version.CreateVersion("DTS_EDIT");
                dtsVersion.Access      = esriVersionAccess.esriVersionAccessPublic;
                dtsVersion.Description = "Update DTS to MSD Ownership via DTS app";
                if (dtsVersion.VersionName.Contains("DTS_EDIT"))
                {
                    IMultiuserWorkspaceEdit multiuserWorkspaceEdit = (IMultiuserWorkspaceEdit)dtsVersion;
                    IWorkspaceEdit          workspaceEdit          = (IWorkspaceEdit)dtsVersion;
                    IVersionEdit4           versionEdit            = (IVersionEdit4)workspaceEdit;
                    if (multiuserWorkspaceEdit.SupportsMultiuserEditSessionMode(esriMultiuserEditSessionMode.esriMESMVersioned))
                    {
                        multiuserWorkspaceEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                        versionEdit.Reconcile4("MSD.QC", true, false, false, false);
                        workspaceEdit.StartEditOperation();
                        ILog     log = Assets.logger;
                        DateTime now = DateTime.Now;
                        log.Debug(string.Concat("GetUpdateAssets start at ", now.ToString()));
                        counter = Assets.GetUpdateAssets(assetModifieds, counter, workspaceEdit);
                        ILog log1 = Assets.logger;
                        now = DateTime.Now;
                        log1.Debug(string.Concat("GetUpdateAssets end at ", now.ToString()));
                        if (versionEdit.CanPost())
                        {
                            versionEdit.Post("MSD.QC");
                        }
                        workspaceEdit.StopEditOperation();
                        workspaceEdit.StopEditing(true);
                    }
                }
                this.dtEndTime  = DateTime.Now;
                this.tsDiff     = this.dtEndTime.Subtract(this.dtStartTime);
                this.dlTimeDiff = this.tsDiff.TotalMilliseconds;
                Assets.logger.Debug(string.Concat("UpdateAssets end at ", this.dtStartTime.ToString(), " Total diff : ", this.dlTimeDiff.ToString()));
                num = counter;
            }
            catch (COMException cOMException)
            {
                COMException ex = cOMException;
                Assets.logger.Debug(string.Concat("Error from UpdateAssets : ", ex.Message, " ", ex.StackTrace));
                throw ex;
            }
            catch (Exception exception)
            {
                Exception ex = exception;
                Assets.logger.Debug(string.Concat("Error from UpdateAssets : ", ex.Message, " ", ex.StackTrace));
                throw ex;
            }
            return(num);
        }
Exemple #24
0
        public void UpdateAssetsTest()
        {
            RuntimeManager.Bind(ProductCode.Desktop);
            (new AoInitializeClass()).Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard);
            IPropertySet propertySet = new PropertySetClass();

            propertySet.SetProperty("Server", "RJMSDDBT02");
            propertySet.SetProperty("Instance", "sde:oracle11g:gisdevl");
            propertySet.SetProperty("Database", "GISDEVL");
            propertySet.SetProperty("user", "MSD");
            propertySet.SetProperty("password", "jc_tc1954");
            propertySet.SetProperty("version", "MSD.QC");
            int flag = 0;

            try
            {
                IWorkspace          workspaceName      = (new SdeWorkspaceFactoryClass()).Open(propertySet, 0);
                IVersionedWorkspace versionedWorkspace = (IVersionedWorkspace)workspaceName;
                IEnumVersionInfo    enumVersionInfo    = versionedWorkspace.Versions;
                enumVersionInfo.Reset();
                IVersionInfo existversionInfo = enumVersionInfo.Next();
                while (existversionInfo != null)
                {
                    if (!existversionInfo.VersionName.Trim().Equals("MSD.DTS_EDIT"))
                    {
                        existversionInfo = enumVersionInfo.Next();
                    }
                    else
                    {
                        versionedWorkspace.FindVersion("MSD.DTS_EDIT").Delete();
                        flag = 1;
                        break;
                    }
                }
                enumVersionInfo.Reset();
                IVersion version    = (IVersion)((IFeatureWorkspace)workspaceName);
                string   name       = version.VersionInfo.VersionName;
                IVersion dtsVersion = version.CreateVersion("DTS_EDIT");
                dtsVersion.Access      = esriVersionAccess.esriVersionAccessPublic;
                dtsVersion.Description = "Update DTS to MSD Ownership via DTS app";
                if (dtsVersion.VersionName.Contains("DTS_EDIT"))
                {
                    IMultiuserWorkspaceEdit multiuserWorkspaceEdit = (IMultiuserWorkspaceEdit)dtsVersion;
                    IWorkspaceEdit          workspaceEdit          = (IWorkspaceEdit)dtsVersion;
                    IVersionEdit4           versionEdit            = (IVersionEdit4)workspaceEdit;
                    if (multiuserWorkspaceEdit.SupportsMultiuserEditSessionMode(esriMultiuserEditSessionMode.esriMESMVersioned))
                    {
                        multiuserWorkspaceEdit.StartMultiuserEditing(esriMultiuserEditSessionMode.esriMESMVersioned);
                        versionEdit.Reconcile4("MSD.QC", true, false, false, false);
                        workspaceEdit.StartEditOperation();
                        IFeature featureEdit = ((IFeatureWorkspace)workspaceEdit).OpenFeatureClass("SWRAINGAUGE").GetFeature(330);
                        // Convert.ToString(featureEdit[6]);
                        Convert.ToString(featureEdit.Value[6]);
                        int      Totalfield          = featureEdit.Fields.FieldCount;
                        int      ownershipindex      = featureEdit.Fields.FindField("OWNERSHIP");
                        int      lastmodifieddtindex = featureEdit.Fields.FindField("LAST_MODIFIED_DATE");
                        DateTime lastmodifieddt      = DateTime.Now.Date;
                        //featureEdit[ownershipindex] = "1";
                        //featureEdit[lastmodifieddtindex] = lastmodifieddt.Date;
                        featureEdit.Value[ownershipindex]      = "1";
                        featureEdit.Value[lastmodifieddtindex] = lastmodifieddt.Date;
                        featureEdit.Store();
                        if (versionEdit.CanPost())
                        {
                            versionEdit.Post("MSD.QC");
                        }
                        workspaceEdit.StopEditOperation();
                        workspaceEdit.StopEditing(true);
                    }
                }
            }
            catch (COMException cOMException)
            {
                if (cOMException.ErrorCode == -2147217147)
                {
                }
            }
            catch (Exception exception)
            {
            }
        }