/// <summary> /// Imports the ArcFM Properties from the XML files specified by the arguments. /// </summary> /// <param name="args">The arguments.</param> private void Import(Dictionary <string, string> args) { foreach (var arg in args) { var workspace = WorkspaceFactories.Open(Path.GetFullPath(arg.Key)); var dbi = (IDataset)workspace; var directory = Path.GetFullPath(arg.Value); string name = dbi.BrowseName; var versionNumber = ArcFM.Version; Log.Info(this, "Importing ArcFM XML Properties"); Log.Info(this, "- Database: \t{0}", name); Log.Info(this, "- Directory: \t{0}", directory); Log.Info(this, "- Version: \t{0}", versionNumber); var files = Directory.GetFiles(directory, "*.xml", SearchOption.AllDirectories); var results = this.Import(workspace, files); var errors = results.Where(o => !o.Value).ToArray(); if (errors.Any()) { Log.Warn(this, "- Errors: \t{0}", errors.Length); foreach (var error in errors) { Log.Warn(this, "\t{0}", error.Key); } } } }
/// <summary> /// Connects to the geodatabase given the specified parameters. /// </summary> /// <param name="fileName">Name of the file.</param> /// <returns> /// Returns the <see cref="IWorkspace" /> representing the connection to the geodatabase; otherwise <c>null</c>. /// </returns> protected IWorkspace Open(string fileName) { Log.Info(""); Log.Info("Connecting to the geodatabase specified by the {0} file.", Path.GetFileName(fileName)); IWorkspaceFactory factory = WorkspaceFactories.GetFactory(fileName); return(factory.OpenFromFile(fileName, 0)); }
public virtual void Setup() { ComReleaser = new ComReleaser(); _RuntimeAuthorization = new EsriRuntimeAuthorization(); Assert.IsTrue(_RuntimeAuthorization.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard)); Workspace = WorkspaceFactories.Open(_PathName); ComReleaser.ManageLifetime(Workspace); }
/// <summary> /// Exports the ArcFM XML Properties for the database connections specified in the arguments. /// </summary> /// <param name="args">The arguments.</param> private void Export(Dictionary <string, string> args) { foreach (var arg in args) { var workspace = WorkspaceFactories.Open(Path.GetFullPath(arg.Key)); var dbi = (IDataset)workspace; string name = dbi.BrowseName; var versionNumber = ArcFM.Version; var directory = Path.Combine(Path.GetFullPath(arg.Value), name); if (!Directory.Exists(directory)) { Directory.CreateDirectory(directory); } Log.Info(this, "Exporting ArcFM XML Properties"); Log.Info(this, "- Database: \t{0}", name); Log.Info(this, "- Directory: \t{0}", directory); Log.Info(this, "- Version: \t{0}", versionNumber); string fileName = Path.Combine(Path.GetFullPath(arg.Value), name + ".xml"); using (var table = this.CreateCsv(fileName)) { List <IXMLDOMElement> elements = new List <IXMLDOMElement>(); elements.AddRange(this.ExportFeatureClasses(workspace, directory, versionNumber, table)); elements.AddRange(this.ExportTables(workspace, directory, versionNumber, table)); elements.AddRange(this.ExportRelationships(workspace, directory, versionNumber, table)); if (elements.Any()) { var doc = this.CreateDocument(versionNumber); foreach (var element in elements) { doc.lastChild.appendChild(element); } XDocument xdoc = XDocument.Parse(doc.xml); xdoc.Save(fileName, SaveOptions.None); Log.Info(this, "{0}: \t{1}", name, fileName); } table.WriteCsv(Path.ChangeExtension(fileName, ".csv")); } } }
/// <summary> /// Exports or imports the version edits as XML files. /// </summary> /// <param name="args">The arguments.</param> internal void Run(ProgramArguments args) { using (EsriRuntimeAuthorization lic = new EsriRuntimeAuthorization(ProductCode.EngineOrDesktop)) { if (lic.Initialize(esriLicenseProductCode.esriLicenseProductCodeStandard)) { var workspace = WorkspaceFactories.Open(Path.GetFullPath(args.ConnectionFile)); var versionedWorkspace = (IVersionedWorkspace)workspace; switch (args.Task) { case ProgramTask.Import: var version = versionedWorkspace.DefaultVersion.CreateVersion(args.VersionName); var workspaceName = (IWorkspaceName)((IDataset)version).FullName; string changesFileName = Path.GetFullPath(args.Path); IDeltaDataChangesInit2 ddci = new DeltaDataChangesClass(); ddci.Init2(changesFileName, esriExportDataChangesOption.esriExportToXML, false); IImportDataChanges idc = new DataChangesImporterClass(); idc.ImportDataChanges(workspaceName, (IDeltaDataChanges)ddci, true, true); break; case ProgramTask.Export: var source = versionedWorkspace.FindVersion(args.VersionName); var target = source.GetParent(); IWorkspaceName wsNameSource = (IWorkspaceName)((IDataset)source).FullName; IWorkspaceName wsNameTarget = (IWorkspaceName)((IDataset)target).FullName; var exportFileName = Path.Combine(Path.GetFullPath(args.Path), args.VersionName + ".xml"); IVersionDataChangesInit vdci = new VersionDataChangesClass(); vdci.Init(wsNameSource, wsNameTarget); IExportDataChanges2 edc = new DataChangesExporterClass(); edc.ExportDataChanges(exportFileName, esriExportDataChangesOption.esriExportToXML, (IDataChanges)vdci, true); break; } } } }
public void WorkspaceFactories_Open_FileNotFoundException() { Assert.IsNull(WorkspaceFactories.Open("@C:\\*.sde")); }
public void WorkspaceFactories_Open_ArgumentNullException() { Assert.IsNull(WorkspaceFactories.Open("")); }
public void WorkspaceFactories_GetFactory_FileNotFoundException() { Assert.IsNull(WorkspaceFactories.GetFactory("@C:\\kadhfakjfh.sde")); }
public void WorkspaceFactories_GetFactory_Empty_FileNotFoundException() { Assert.IsNull(WorkspaceFactories.GetFactory("")); }
public void WorkspaceFactories_GetFactory_DirectoryNotFoundException() { Assert.IsNull(WorkspaceFactories.GetFactory("@C:\\kadhfakjfh.gdb")); }