/// <summary>
 /// Setup constructor
 /// </summary>
 /// <param name="oldEnvironment">Old environment</param>
 /// <param name="newEnvironment">New environment</param>
 public ActiveWorkspaceChangedEvent( IWorkspace oldEnvironment, IWorkspace newEnvironment )
 {
     Arguments.CheckNotNull( oldEnvironment, "oldEnvironment" );
     Arguments.CheckNotNull( newEnvironment, "newEnvironment" );
     m_OldWorkspace = oldEnvironment;
     m_NewWorkspace = newEnvironment;
 }
 public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
 {
     IExplorerRepositoryResult item;
     try
     {
         if(values == null)
         {
             throw new ArgumentNullException("values");
         }
         if(theWorkspace == null)
         {
             throw new ArgumentNullException("theWorkspace");
         }
         StringBuilder path;
         if(!values.TryGetValue("path", out path))
         {
             throw new ArgumentException("path value not supplied.");
         }
         StringBuilder newPath;
         if(!values.TryGetValue("newPath", out newPath))
         {
             throw new ArgumentException("newPath value not supplied.");
         }
         Dev2Logger.Log.Info(String.Format("Reanme Folder. Path:{0} NewPath:{1}",path,newPath));
         item = ServerExplorerRepository.Instance.RenameFolder(path.ToString(), newPath.ToString(), theWorkspace.ID);
     }
     catch(Exception e)
     {
         Dev2Logger.Log.Error(e);
         item = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
     }
     var serializer = new Dev2JsonSerializer();
     return serializer.SerializeToBuilder(item);
 }
Beispiel #3
0
        private static IEnumerable<Entity> ImportPlainText(string[] values, IWorkspace workspace)
        {
            IList<Entity> result = new List<Entity>();
            if (values.Length > 0)
            {
                var entityTypes = workspace.All<EntityType>().ToList();
                EntityType currentEntityType = null;

                foreach (var value in values)
                {
                    if (value.StartsWith("#"))
                    {
                        currentEntityType = CreateEntityType(value, entityTypes);
                    }
                    else if (currentEntityType != null)
                    {
                        var entity = CreateEntity(workspace, value, currentEntityType);
                        if (entity != null)
                        {
                            result.Add(entity);
                        }
                    }
                }
            }
            return result;
        }
Beispiel #4
0
 public Folder(string name, IWorkspace workspace)
 {
     this.name = name;
     _workspace = workspace as Workspace;
     this.folders = new List<IFolder>();
     this.items = new List<IItem>();
 }
Beispiel #5
0
 private static Entity CreateEntity(IWorkspace workspace, string name, EntityType currentEntityType)
 {
     var entityName = name.ToLower().Trim();
     return workspace.Single<Entity>(x => x.Name.ToLower() == entityName) != null
         ? null
         : new Entity { Name = name, EntityTypeId = currentEntityType.Id };
 }
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            string type = null;
            Dev2JsonSerializer serializer = new Dev2JsonSerializer();
            StringBuilder tmp;
            values.TryGetValue("ResourceID", out tmp);
            Guid resourceId = Guid.Empty;
            if(tmp != null)
            {
                if(!Guid.TryParse(tmp.ToString(), out resourceId))
                {
                    Dev2Logger.Log.Info("Delete Resource Service. Invalid Parameter Guid:");
                    var failureResult = new ExecuteMessage { HasError = true };
                    failureResult.SetMessage("Invalid guid passed for ResourceID");
                    return serializer.SerializeToBuilder(failureResult);
                }
            }
            values.TryGetValue("ResourceType", out tmp);
            if(tmp != null)
            {
                type = tmp.ToString();
            }

            Dev2Logger.Log.Info("Delete Resource Service. Resource:" + resourceId);
            // BUG 7850 - TWR - 2013.03.11 - ResourceCatalog refactor
            var msg = ResourceCatalog.Instance.DeleteResource(theWorkspace.ID, resourceId, type);

            var result = new ExecuteMessage { HasError = false };
            result.SetMessage(msg.Message);
            result.HasError = msg.Status != ExecStatus.Success;
            return serializer.SerializeToBuilder(result);
        }
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            try
            {

                Dev2Logger.Log.Info("Get Scheduled Resources");
                ObservableCollection<IScheduledResource> resources;
                using(var model = SchedulerFactory.CreateModel(GlobalConstants.SchedulerFolderId, SecurityWrapper))
                {
                    resources = model.GetScheduledResources();
                }

                var sb = new StringBuilder(JsonConvert.SerializeObject(resources, Formatting.Indented, new JsonSerializerSettings
                {
                    TypeNameHandling = TypeNameHandling.Objects,
                    TypeNameAssemblyFormat = FormatterAssemblyStyle.Simple
                }));
                return sb;
            }
            catch (Exception err)
            {
                Dev2Logger.Log.Error(err);
                throw;
            }
        }
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            IExplorerRepositoryResult item;
            var serializer = new Dev2JsonSerializer();
            try
            {
                if (values == null)
                {
                    throw new ArgumentNullException("values");
                }
                StringBuilder itemToBeRenamed;
                StringBuilder newPath;
                if (!values.TryGetValue("itemToMove", out itemToBeRenamed))
                {
                    throw new ArgumentException("itemToMove value not supplied.");
                }
                if (!values.TryGetValue("newPath", out newPath))
                {
                    throw new ArgumentException("newName value not supplied.");
                }

                var itemToMove = serializer.Deserialize<ServerExplorerItem>(itemToBeRenamed);
                Dev2Logger.Log.Info(String.Format("Move Item. Path:{0} NewPath:{1}", itemToBeRenamed, newPath));
                item = ServerExplorerRepo.MoveItem(itemToMove, newPath.ToString(), GlobalConstants.ServerWorkspaceID);
            }
            catch (Exception e)
            {
                Dev2Logger.Log.Error(e);
                item = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
            }
            return serializer.SerializeToBuilder(item);
        }
Beispiel #9
0
        public frmSheetMetaData(IWorkspace workSpace,OracleCommand oraCmd)
        {
            m_textBoxActive = new List<TextBox>();
            m_labelActive = new List<Label>();
            m_customField = new List<string>();

            InitializeComponent();
            m_textBox = new TextBox[9];
            m_textBox[0] = textBox24;
            m_textBox[1] = textBox18;
            m_textBox[2] = textBox20;
            m_textBox[3] = textBox16;
            m_textBox[4] = textBox15;
            m_textBox[5] = textBox17;
            m_textBox[6] = textBox21;
            m_textBox[7] = textBox19;
            m_textBox[8] = textBox14;

            m_label = new Label[9];
            m_label[0] = label26;
            m_label[1] = label20;
            m_label[2] = label25;
            m_label[3] = label18;
            m_label[4] = label17;
            m_label[5] = label19;
            m_label[6] = label24;
            m_label[7] = label21;
            m_label[8] = label16;

            this.m_workSpace = workSpace;
            m_gdata = new GDBData(this.m_workSpace);
            m_oraCmd = oraCmd;
            InitCustom();
        }
Beispiel #10
0
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            try
            {


            string guidCsv = string.Empty;
            string type = null;

            StringBuilder tmp;
            values.TryGetValue("GuidCsv", out tmp);
            if(tmp != null)
            {
                guidCsv = tmp.ToString();
            }
            values.TryGetValue("ResourceType", out tmp);
            if(tmp != null)
            {
                type = tmp.ToString();
            }
            Dev2Logger.Log.Info("Find Resource By Id. "+guidCsv);
            // BUG 7850 - TWR - 2013.03.11 - ResourceCatalog refactor
            var resources = ResourceCatalog.Instance.GetResourceList(theWorkspace.ID, guidCsv, type);

            IList<SerializableResource> resourceList = resources.Select(new FindResourceHelper().SerializeResourceForStudio).ToList();

            Dev2JsonSerializer serializer = new Dev2JsonSerializer();
            return serializer.SerializeToBuilder(resourceList);
            }
            catch (Exception err)
            {
                Dev2Logger.Log.Error(err);
                throw;
            }
        }
        public OperationalDatasetCollection(IWorkspace osdbWorkspace)
        {
            if (osdbWorkspace == null)
                throw new System.ArgumentNullException("osdbWorkspace");

            // Find the table and determine if this user can edit it
            ITable theTable = null;
            string theTableName = "";
            try
            {
                util.SystemDefaults theDefaults = new util.SystemDefaults();
                theTableName = OperationalDatasetCollection.TABLE_NAME;
                theTable = ((IFeatureWorkspace)osdbWorkspace).OpenTable(theTableName);
            }
            catch (Exception) {}

            if (theTable == null)
                throw new Exception("Could not open the QA parameters table '" + theTableName + "'");

            IDataset theDataset = theTable as IDataset;

            this._canRead = false;
            this._canWrite = false;

            int privs = util.PermissionsAnalyzer.Analyze(theDataset);
            this._canWrite = (privs == util.PermissionsAnalyzer.READWRITE_PERMISSION);
            this._canRead = (privs == util.PermissionsAnalyzer.READONLY_PERMISSION) || this._canWrite;

            if (this._canRead)
            {
                this.LoadNames(theTable);
                OperationalDatasetCollection._lightWeight = (ITableName)theDataset.FullName;
            }
        }
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            try
            {

                Dev2Logger.Log.Info("Fetch Server Log Started");
                var result = new ExecuteMessage { HasError = false };
                if (File.Exists(_serverLogPath))
                {
                    var fileStream = File.Open(_serverLogPath, FileMode.Open, FileAccess.Read,FileShare.Read);
                    using (var streamReader = new StreamReader(fileStream))
                    {
                        while(!streamReader.EndOfStream)
                        {
                            result.Message.Append(streamReader.ReadLine());    
                        }
                    }
                }
                Dev2JsonSerializer serializer = new Dev2JsonSerializer();
                return serializer.SerializeToBuilder(result);
            }
            catch (Exception err)
            {
                Dev2Logger.Log.Error("Fetch Server Log Error", err);
                throw;
            }
        }
Beispiel #13
0
        public void Launch()
        {
            if (_workspace == null)
            {
                try
                {
                    $fileinputname$SummaryComponent component = new $fileinputname$SummaryComponent();

                    _workspace = ApplicationComponent.LaunchAsWorkspace(
                        this.Context.DesktopWindow,
                        component,
                        "$fileinputname$");
                    _workspace.Closed += delegate { _workspace = null; };

                }
                catch (Exception e)
                {
                    // failed to launch component
                    ExceptionHandler.Report(e, this.Context.DesktopWindow);
                }
            }
            else
            {
                _workspace.Activate();
            }
        }
        /// <summary>
        /// 将一个要素类从一个工作空间转移到另外一个工作空间
        /// 注意目标工作空间不能有改要素类,必须先清除  
        /// </summary>
        /// <params name="sourceWorkspace">源工作空间</params>
        /// <params name="targetWorkspace">目标工作空间</params>
        /// <params name="nameOfSourceFeatureClass">源要素类名</params>
        /// <params name="nameOfTargetFeatureClass">目标要素类名</params>
        public bool IFeatureDataConverter_ConvertFeatureClass(IWorkspace sourceWorkspace, IWorkspace targetWorkspace, string nameOfSourceFeatureClass, string nameOfTargetFeatureClass)
        {
            bool change = false;
            //create source workspace name
            IDataset sourceWorkspaceDataset = (IDataset)sourceWorkspace;
            IWorkspaceName sourceWorkspaceName = (IWorkspaceName)sourceWorkspaceDataset.FullName;
            //create source dataset name
            IFeatureClassName sourceFeatureClassName = new FeatureClassNameClass();
            IDatasetName sourceDatasetName = (IDatasetName)sourceFeatureClassName;
            sourceDatasetName.WorkspaceName = sourceWorkspaceName;
            sourceDatasetName.Name = nameOfSourceFeatureClass;
            //create target workspace name
            IDataset targetWorkspaceDataset = (IDataset)targetWorkspace;
            IWorkspaceName targetWorkspaceName = (IWorkspaceName)targetWorkspaceDataset.FullName;
            //create target dataset name
            IFeatureClassName targetFeatureClassName = new FeatureClassNameClass();
            IDatasetName targetDatasetName = (IDatasetName)targetFeatureClassName;
            targetDatasetName.WorkspaceName = targetWorkspaceName;
            targetDatasetName.Name = nameOfTargetFeatureClass;
            //Open input Featureclass to get field definitions.
            ESRI.ArcGIS.esriSystem.IName sourceName = (ESRI.ArcGIS.esriSystem.IName)sourceFeatureClassName;
            IFeatureClass sourceFeatureClass = (IFeatureClass)sourceName.Open();

            //Validate the field names because you are converting between different workspace types.
            IFieldChecker fieldChecker = new FieldCheckerClass();
            IFields targetFeatureClassFields;
            IFields sourceFeatureClassFields = sourceFeatureClass.Fields;
            IEnumFieldError enumFieldError;
            // Most importantly set the input and validate workspaces!
            fieldChecker.InputWorkspace = sourceWorkspace;
            fieldChecker.ValidateWorkspace = targetWorkspace;
            fieldChecker.Validate(sourceFeatureClassFields, out enumFieldError, out targetFeatureClassFields);
            // Loop through the output fields to find the geomerty field
            IField geometryField;
            for (int i = 0; i < targetFeatureClassFields.FieldCount; i++)
            {
                if (targetFeatureClassFields.get_Field(i).Type == esriFieldType.esriFieldTypeGeometry)
                {
                    geometryField = targetFeatureClassFields.get_Field(i);
                    // Get the geometry field's geometry defenition
                    IGeometryDef geometryDef = geometryField.GeometryDef;
                    //Give the geometry definition a spatial index grid count and grid size
                    IGeometryDefEdit targetFCGeoDefEdit = (IGeometryDefEdit)geometryDef;
                    targetFCGeoDefEdit.GridCount_2 = 1;
                    targetFCGeoDefEdit.set_GridSize(0, 0);
                    //Allow ArcGIS to determine a valid grid size for the data loaded
                    targetFCGeoDefEdit.SpatialReference_2 = geometryField.GeometryDef.SpatialReference;
                    // we want to convert all of the features
                    IQueryFilter queryFilter = new QueryFilterClass();
                    queryFilter.WhereClause = "";
                    // Load the feature class
                    IFeatureDataConverter fctofc = new FeatureDataConverterClass();
                    IEnumInvalidObject enumErrors = fctofc.ConvertFeatureClass(sourceFeatureClassName, queryFilter, null, targetFeatureClassName, geometryDef, targetFeatureClassFields, "", 1000, 0);
                    if (enumErrors.Next() == null)
                        change = true;
                    break;
                }
            }
            return change;
        }
        public void Initialize(IWorkspace workspace)
        {
            Argument.IsNotNull(() => workspace);

            workspace.SetWorkspaceValue("AView.Width", 200d);
            workspace.SetWorkspaceValue("BView.Width", 200d);
        }
Beispiel #16
0
        private static void CreatePeriodicConsumptionItems(PeriodicConsumption pc, IWorkspace workspace)
        {
            var previousPc = GetPreviousPeriodicConsumption(workspace);
            var transactionItems = GetTransactionItems();
            foreach (var inventoryItem in workspace.All<InventoryItem>())
            {
                var iItem = inventoryItem;
                var pci = new PeriodicConsumptionItem { InventoryItem = inventoryItem };
                pci.UnitMultiplier = pci.InventoryItem.TransactionUnitMultiplier > 0 ? pci.InventoryItem.TransactionUnitMultiplier : 1;
                pc.PeriodicConsumptionItems.Add(pci);
                var previousCost = 0m;
                if (previousPc != null)
                {
                    var previousPci = previousPc.PeriodicConsumptionItems.SingleOrDefault(x => x.InventoryItem.Id == iItem.Id);
                    if (previousPci != null) pci.InStock =
                        previousPci.PhysicalInventory != null
                        ? previousPci.PhysicalInventory.GetValueOrDefault(0)
                        : previousPci.GetInventoryPrediction();
                    if (previousPci != null)
                        previousCost = previousPci.Cost * pci.InStock;
                }
                var tim = transactionItems.Where(x => x.InventoryItem.Id == iItem.Id);
                pci.Purchase = tim.Sum(x => x.Quantity * x.Multiplier) / pci.UnitMultiplier;
                var totalPrice = tim.Sum(x => x.Price * x.Quantity);
                if (pci.InStock > 0 || pci.Purchase > 0)
                {
                    pci.Cost = pci.InStock > 0
                                   ? decimal.Round((totalPrice + previousCost)/(pci.InStock + pci.Purchase), 2)
                                   : decimal.Round(totalPrice/pci.Purchase, 2);
                }

            }
        }
Beispiel #17
0
 public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
 {
     IExplorerRepositoryResult item;
     var serializer = new Dev2JsonSerializer();
     try
     {
         if(values == null)
         {
             throw new ArgumentNullException("values");
         }               
         StringBuilder itemBeingDeleted;
         if(!values.TryGetValue("itemToDelete", out itemBeingDeleted))
         {
             throw new ArgumentException("itemToDelete value not supplied.");
         }
         var itemToDelete = serializer.Deserialize<ServerExplorerItem>(itemBeingDeleted);
         Dev2Logger.Log.Info("Delete Item Service."+itemToDelete);
         item = ServerExplorerRepo.DeleteItem(itemToDelete, GlobalConstants.ServerWorkspaceID);
     }
     catch(Exception e)
     {
         Dev2Logger.Log.Error("Delete Item Error" ,e);
         item = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
     }
     return serializer.SerializeToBuilder(item);
 }
Beispiel #18
0
 public Projection(ISpatialReference pSpatialReference, IWorkspace pWorkSpace)
 {
     IProjectedCoordinateSystem pProjectedCoordinateSys = pSpatialReference as IProjectedCoordinateSystem;
     m_pSpatialReference = pSpatialReference;
     m_pIProjection = pProjectedCoordinateSys.Projection;
     m_pWorkspace = pWorkSpace;
 }
Beispiel #19
0
 /// <summary>
 /// Executes the service
 /// </summary>
 /// <param name="values">The values.</param>
 /// <param name="theWorkspace">The workspace.</param>
 /// <returns></returns>
 public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
 {
     Dev2JsonSerializer serializer = new Dev2JsonSerializer();
     var execMessage = new ExecuteMessage { HasError = false };
     if(!values.ContainsKey("resourceId"))
     {
         Dev2Logger.Log.Info("Delete Version. Invalid Resource Id");
         execMessage.HasError = true;
         execMessage.Message = new StringBuilder( "No resourceId sent to server");
     }
     else if(!values.ContainsKey("versionNumber") )
     {
         Dev2Logger.Log.Info("Delete Version. Invalid Version number");
         execMessage.HasError = true;
         execMessage.Message = new StringBuilder("No versionNumber sent to server");
     }
     else
     {
         try
         {
             var guid = Guid.Parse(values["resourceId"].ToString());
             var version = values["versionNumber"].ToString();
             Dev2Logger.Log.Info(String.Format("Delete Version. ResourceId:{0} VersionNumber{1}",guid,version));
             var res = ServerVersionRepo.DeleteVersion(guid,version);
             execMessage.Message = serializer.SerializeToBuilder(res); 
         }
         catch (Exception e)
         {
             Dev2Logger.Log.Error(String.Format("Delete Version Error."),e);
             execMessage.HasError = true;
             execMessage.Message = new StringBuilder( e.Message);
         }
     }
     return serializer.SerializeToBuilder(execMessage);
 }
Beispiel #20
0
		public void Install(IWorkspace workspace)
		{
			// Add parts

			arGraph = new ActiveRecordGraphView(_model);
			arGraph.ParentWorkspace = workspace;

			outView = new OutputView(_model);
			outView.ParentWorkspace = workspace;

			projExplorer = new ProjectExplorer(_model);
			projExplorer.ParentWorkspace = workspace;

			avaShapes = new AvailableShapes(_model);
			avaShapes.ParentWorkspace = workspace;

			// Register Actions
			
			FileActionGroup group1 = new FileActionGroup();
			group1.Init(_model);
			group1.Install(workspace);

			ViewActionSet group2 = new ViewActionSet(arGraph, outView, projExplorer, avaShapes);
			group2.Init(_model);
			group2.Install(workspace);

			HelpActionSet group3 = new HelpActionSet();
			group3.Init(_model);
			group3.Install(workspace);

		}
Beispiel #21
0
		public void Persist(IWorkspace workspace)
		{
			String dirName = Path.GetDirectoryName(Application.ExecutablePath);
			String configFile = Path.Combine(dirName, "Layout.config");

			workspace.MainDockManager.SaveAsXml(configFile);
		}
 public CheckinPolicyEvaluationResult EvaluateCheckin(IWorkspace workspace, IPendingChange[] pendingChanges, string comment, ICheckinNote checkinNote, IEnumerable<IWorkItemCheckinInfo> workItemInfo)
 {
     var result = workspace.EvaluateCheckin(TfsCheckinEvaluationOptions.All, pendingChanges,
                                            pendingChanges, comment, null, checkinNote,
                                            workItemInfo);
     return new CheckinPolicyEvaluationResult(result);
 }
Beispiel #23
0
 public frmSelectBand(IMapControlDefault mapCon, IRasterLayer rasLayer, IWorkspace workSpace)
 {
     InitializeComponent();
     this.m_mapCon = mapCon;
     m_rasLayer = rasLayer;
     m_workSpace = workSpace;
 }
        /// <summary>
        /// Executes the service
        /// </summary>
        /// <param name="values">The values.</param>
        /// <param name="theWorkspace">The workspace.</param>
        /// <returns></returns>
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serializer = new Dev2JsonSerializer();
            try
            {
                var res = new ExecuteMessage { HasError = false };
                if (values == null)
                {
                    throw new ArgumentNullException("values");
                }
                if (!values.ContainsKey("versionInfo"))
                {
// ReSharper disable NotResolvedInText
                    throw new ArgumentNullException("No resourceId was found in the incoming data");
// ReSharper restore NotResolvedInText
                }
               
                var version = serializer.Deserialize<IVersionInfo>(values["versionInfo"]);
                Dev2Logger.Log.Info("Get Version. " + version);
                var result = ServerVersionRepo.GetVersion(version);
                res.Message.Append(result);
                Dev2XamlCleaner dev2XamlCleaner = new Dev2XamlCleaner();
                res.Message = dev2XamlCleaner.StripNaughtyNamespaces(res.Message);


                return serializer.SerializeToBuilder(res);

            }
            catch (Exception e)
            {
                Dev2Logger.Log.Error(e);
                IExplorerRepositoryResult error = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
                return serializer.SerializeToBuilder(error);
            }
        }
Beispiel #25
0
        public IEnumerable<MenuItem> BatchCreateMenuItems(string[] values, IWorkspace workspace)
        {
            var ds = CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;

            IList<MenuItem> result = new List<MenuItem>();
            if (values.Length > 0)
            {
                var currentCategory = Resources.Common;

                foreach (var item in values)
                {
                    if (item.StartsWith("#"))
                    {
                        currentCategory = item.Trim('#', ' ');
                    }
                    else if (item.Contains(" "))
                    {
                        IList<string> parts = new List<string>(item.Split(' '));
                        var price = ConvertToDecimal(parts[parts.Count - 1], ds);
                        parts.RemoveAt(parts.Count - 1);

                        var itemName = string.Join(" ", parts.ToArray());
                        var mi = MenuItem.Create();
                        mi.Name = itemName;
                        mi.Portions[0].Price.Amount = price;
                        mi.GroupCode = currentCategory;
                        workspace.Add(mi);
                        workspace.Add(mi.Portions[0]);
                        result.Add(mi);
                    }
                }
            }
            return result;
        }
Beispiel #26
0
        //public static string LOAI_LOP_DULIEU
        //{
        //    get { return TnTableName._loaiLayer; }
        //    set { if (_loaiLayer == value) return; TnTableName._loaiLayer = value; }
        //}
        public TnTableName(IWorkspace workspace)
        {
            _workspace = workspace;

            //_tblDuongThua.InitIndex();
            //_tblTgdPnnDt.InitIndex();
        }
Beispiel #27
0
 /// <summary>
 /// 直接添加所有层--通过IFeatureClassContainer
 /// </summary>
 /// <param name="mapControlDefault">地图控件</param>
 /// <param name="pFeatureWorkspace">要素工作空间</param>
 /// <param name="strFileName">文件名,包括后缀</param>
 public static void GetALLCADbyWorkspace(IMapControlDefault mapControlDefault,IWorkspace pCADWorkspace, string strFileName)
 {
     IFeatureWorkspace pFeatureWorkspace = pCADWorkspace as IFeatureWorkspace;
     IFeatureDataset pFeatureDataset = pFeatureWorkspace.OpenFeatureDataset(strFileName);
     IFeatureClassContainer pFeatureClassContainer = pFeatureDataset as IFeatureClassContainer;
     for (int i = 0; i < pFeatureClassContainer.ClassCount; i++)
     {
         IFeatureClass pFeatureClass = pFeatureClassContainer.get_Class(i);
         IFeatureLayer pFeatureLayer = null;
         if (pFeatureClass.FeatureType == esriFeatureType.esriFTAnnotation)
         {
             pFeatureLayer = new CadAnnotationLayerClass();
         }
         else
         {
             pFeatureLayer = new CadFeatureLayerClass();
         }
         if (pFeatureLayer != null)
         {
             pFeatureLayer.Name = pFeatureClass.AliasName;
             pFeatureLayer.FeatureClass = pFeatureClass;
             mapControlDefault.AddLayer(pFeatureLayer as ILayer, 0);
         }
     }
 }
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            if(values == null)
            {
                throw new InvalidDataException("Empty values passed.");
            }

            StringBuilder settingsJson;
            values.TryGetValue("Settings", out settingsJson);
            if(settingsJson == null || settingsJson.Length == 0)
            {
                throw new InvalidDataException("Error: Unable to parse values.");
            }
            var serializer = new Dev2JsonSerializer();
            var result = new ExecuteMessage { HasError = false, Message = new StringBuilder() };
            try
            {
                var settings = serializer.Deserialize<Settings>(settingsJson.ToString());
                WriteSecuritySettings(theWorkspace, settings, result);
                WriteLoggingSettings(theWorkspace, settings, result);
            }
            catch (Exception ex)
            {
                Dev2Logger.Log.Error("Error writing settings.", ex);
                result.HasError = true;
                result.Message.AppendLine("Error writing settings.");
            }
            return serializer.SerializeToBuilder(result);
        }
        public StringBuilder Execute(Dictionary<string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var result = new ExecuteMessage { HasError = false };
            Dev2Logger.Log.Info("Delete Scheduled Resource Service");
            StringBuilder tmp;
            values.TryGetValue("Resource", out tmp);
            var serializer = new Dev2JsonSerializer();

            if (tmp != null)
            {
                var res = serializer.Deserialize<IScheduledResource>(tmp);
                Dev2Logger.Log.Info("Delete Scheduled Resource Service." +res);
                using(var model = SchedulerFactory.CreateModel(GlobalConstants.SchedulerFolderId, SecurityWrapper))
                {
                    model.DeleteSchedule(res);
                }
            }
            else
            {
                Dev2Logger.Log.Info("Delete Scheduled Resource Service. No Resource Selected");
                result.Message.Append("No Resource Selected");
                result.HasError = true;
            }
            return serializer.SerializeToBuilder(result);
        }
        public Task ApplyWorkspaceAsync(IWorkspace workspace)
        {
            ApplyWorkspace(workspace);

            return TaskHelper.Completed;

        }
Beispiel #31
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            bool resultErr = false;

            if (txtCtrlPtPath.Text == "" || txtSrcPath.Text == "" || txtToPath.Text == "")
            {
                return;
            }
            if (lstFC.CheckedItems.Count == 0)
            {
                return;
            }
            try
            {
                initTransformation();
            }
            catch (Exception ex)
            {
                ErrorHandle.ShowFrmErrorHandle("提示", ex.Message);
                return;
            }
            if (rdoMDB.Checked)//personal GDB
            {
                try
                {
                    pWF = new AccessWorkspaceFactoryClass();
                    string         path  = txtToPath.Text.Substring(0, txtToPath.Text.LastIndexOf("\\") + 1);
                    string         name  = txtToPath.Text.Substring(txtToPath.Text.LastIndexOf("\\") + 1);
                    IWorkspaceName pToWN = pWF.Create(path, name, null, 0);
                    if (pToWN == null)
                    {
                        return;
                    }

                    pToWorkspace = pWF.OpenFromFile(txtToPath.Text, 0);
                }
                catch { }
                if (pToWorkspace == null)
                {
                    return;
                }
            }
            else if (rdoGDB.Checked)//file GDB
            {
                pWF = new FileGDBWorkspaceFactoryClass();
                string         path  = txtToPath.Text.Substring(0, txtToPath.Text.LastIndexOf("\\") + 1);
                string         name  = txtToPath.Text.Substring(txtToPath.Text.LastIndexOf("\\") + 1);
                IWorkspaceName pToWN = pWF.Create(path, name, null, 0);
                if (pToWN == null)
                {
                    return;
                }
                try
                {
                    pToWorkspace = pWF.OpenFromFile(txtToPath.Text, 0);
                }
                catch { }
                if (pToWorkspace == null)
                {
                    return;
                }
            }
            else if (rdoSHP.Checked)//shp
            {
                pWF = new ShapefileWorkspaceFactoryClass();
                try
                {
                    pToWorkspace = pWF.OpenFromFile(txtToPath.Text, 0);
                }
                catch { }
                if (pToWorkspace == null)
                {
                    return;
                }
            }
            try
            {
                toPath             = txtToPath.Text;//保存目标路径,因转换结束要清空目标文本框防止用户再次点击转换,查看日志需要知道目标路径
                pbCoorTran.Value   = 0;
                pbCoorTran.Minimum = 0;
                pbCoorTran.Maximum = lstFC.CheckedItems.Count;
                pbCoorTran.Step    = 1;
                pbCoorTran.Visible = true;
                start = DateTime.Now;//开始时间
                Application.DoEvents();
                pResult = new Dictionary <string, string>();
                IWorkspaceEdit pWorkSpaceEdit = pToWorkspace as IWorkspaceEdit;
                pWorkSpaceEdit.StartEditing(false);
                foreach (ListViewItem lvi in lstFC.CheckedItems)
                {
                    IDataset pToD = null;
                    try
                    {
                        IFeatureClass pFc = (pSrcWorkspace as IFeatureWorkspace).OpenFeatureClass(lvi.Text);
                        IDataset      pD  = pFc as IDataset;
                        lblRMS.Text = "正在转换要素类" + pD.Name + "...";
                        Application.DoEvents();
                        IFeatureClass pToFC = TransFeatures.CreateFeatureClass(pD.Name, pFc, pToWorkspace, null, null, pFc.ShapeType);
                        pToD = pToFC as IDataset;
                        TransFeatures.CopyFeatureAndTran(pFc.Search(null, false), pToFC, pTransformation);
                        IGeoDataset           pGD  = pToD as IGeoDataset;
                        IGeoDatasetSchemaEdit pGDS = pGD as IGeoDatasetSchemaEdit;
                        if (pSR != null && pGDS.CanAlterSpatialReference)
                        {
                            pGDS.AlterSpatialReference(pSR);//定义空间参考
                        }
                        pResult.Add(pToD.Name, "转换成功");
                        pbCoorTran.PerformStep();
                    }
                    catch (Exception ex)
                    {
                        pResult.Add(pToD.Name, "转换失败/" + ex.Message);
                        if (ex.Message == "The coordinates or measures are out of bounds.")
                        {
                            pResult[pToD.Name] = "转换失败/控制点坐标超出该要素类坐标域边界";
                        }
                        pToD.Delete();
                        resultErr = true;
                    }

                    //if (rdoSHP.Checked)
                    //    pD.Copy(pD.Name, pToWorkspace);
                    //else
                    //    CopyPasteGDBData.CopyPasteGeodatabaseData(pSrcWorkspace, pToWorkspace, pD.Name, esriDatasetType.esriDTFeatureClass);
                }//foreach
                #region 20110815前代码
                //IWorkspaceEdit pWorkSpaceEdit = pToWorkspace as IWorkspaceEdit;
                //pWorkSpaceEdit.StartEditing(false);
                //IEnumDataset enumDS = pToWorkspace.get_Datasets(esriDatasetType.esriDTFeatureClass);
                //IDataset pDs = enumDS.Next();
                //while (pDs != null)
                //{
                //    lblRMS.Text = "正在转换要素类"+pDs.Name+"...";
                //    try
                //    {
                //        IFeatureClass pFC = pDs as IFeatureClass;
                //        coordTransfermation(pFC, pTransformation);
                //        pResult.Add(pDs.Name, "转换成功");
                //    }
                //    catch (Exception ex)
                //    {
                //        pResult.Add(pDs.Name, "转换失败/" + ex.Message);
                //        if (ex.Message == "The coordinates or measures are out of bounds.")
                //            pResult[pDs.Name] = "转换失败/控制点坐标超出该要素类坐标域边界";
                //        pDs.Delete();
                //        resultErr = true;

                //    }
                //    finally
                //    {
                //        pbCoorTran.PerformStep();
                //        pDs = enumDS.Next();
                //    }
                //}
                //IEnumDataset enumDS1 = pToWorkspace.get_Datasets(esriDatasetType.esriDTFeatureDataset);
                //IDataset pDs1 = enumDS1.Next();
                //while (pDs1 != null)
                //{
                //    lblRMS.Text = "正在转换要素集" + pDs1.Name + "...";
                //    IEnumDataset pED = pDs1.Subsets;
                //    IDataset pDs2 = pED.Next();
                //    while (pDs2 != null)
                //    {
                //        try
                //        {
                //            IFeatureClass pFC2 = pDs2 as IFeatureClass;
                //            coordTransfermation(pFC2, pTransformation);
                //            pResult.Add(pDs2.Name, "转换成功");
                //        }
                //        catch (Exception ex)
                //        {

                //            pResult.Add(pDs2.Name, "转换失败/" + ex.Message);
                //            if (ex.Message == "The coordinates or measures are out of bounds.")
                //                pResult[pDs2.Name] = "转换失败/控制点坐标超出该要素类坐标域边界";
                //            pDs2.Delete();
                //            resultErr = true;
                //        }
                //        finally
                //        {

                //            pDs2 = pED.Next();
                //        }
                //    }
                //    pbCoorTran.PerformStep();
                //    pDs1 = enumDS1.Next();
                //}


                //}
                //foreach (KeyValuePair<string, string> kvp in pResult)
                //{
                //    ListViewItem lvi = lstViewResult.Items.Add(kvp.Key);
                //    lvi.SubItems.Add(kvp.Value);
                //}
                //lstViewResult.Refresh();
                //this.Height = 529;
                #endregion
                pWorkSpaceEdit.StopEditing(true);
            }
            catch (Exception ex)
            {
                MessageBox.Show("坐标转换失败!" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            finally
            {
                //vProgress.Close();
                pToWorkspace       = null;
                txtToPath.Text     = "";
                pbCoorTran.Visible = false;
            }

            if (!resultErr)
            {
                lblRMS.Text = "转换成功!";
            }
            else
            {
                lblRMS.Text = "转换结束!但是部分要素转换失败,请查看日志。";
            }
            stop = DateTime.Now;//结束时间
        }
Beispiel #32
0
 static void ResetRotation(IWorkspace workspace, Vector3 forward)
 {
     workspace.transform.rotation = Quaternion.LookRotation(forward) * DefaultWorkspaceTilt;
 }
        public async Task <bool> Execute(IWorkspace workspace, object arg)
        {
            var points   = new List <Vertex>();
            var segments = new List <PrimitiveLine>();

            var input = await workspace.InputService.GetPoint(new UserDirective("Start"));

            if (input.Cancel)
            {
                return(false);
            }
            if (!input.HasValue)
            {
                return(true);
            }
            var first = input.Value;

            points.Add(new Vertex(first));
            Point last = first;

            while (true)
            {
                // TODO: allow adding arcs, too
                var current = await workspace.InputService.GetPoint(new UserDirective("Next or [c]lose", "c"), (p) =>
                {
                    var toDraw = segments.Concat(new[] { new PrimitiveLine(last, p) });
                    if (ClosePolyline)
                    {
                        toDraw = toDraw.Concat(new[] { new PrimitiveLine(p, first) });
                    }

                    return(toDraw);
                });

                if (current.Cancel)
                {
                    break;
                }
                if (current.HasValue)
                {
                    segments.Add(new PrimitiveLine(last, current.Value));
                    points.Add(new Vertex(current.Value));
                    last = current.Value;
                    if (last == first)
                    {
                        break;                // closed
                    }
                }
                else if (current.Directive == "c")
                {
                    if (last != first)
                    {
                        points.Add(new Vertex(first));
                    }
                    break;
                }
                else
                {
                    break;
                }
            }

            if (ClosePolyline)
            {
                points.Add(points.First());
            }

            var polyline = new Polyline(points);

            workspace.AddToCurrentLayer(polyline);
            return(true);
        }
        public void Grind(IWorkspace output)
        {
            // Check for null values in the SGID Roads and AddressPoints - in the required fields before we begin.
            Console.WriteLine("Check for null values in SGID Roads and AddressPoints: " + DateTime.Now);
            var          connectionStringSgid            = @"Data Source=" + _options.SgidServer + @";Initial Catalog=" + _options.SgidDatabase + @";User ID=" + _options.SgidId + @";Password="******"";
            const string checkForNullsRoadsQuery         = @"select count(*) from Transportation.Roads (nolock) where CARTOCODE not in ('1','7','99') and NAME is null or POSTTYPE is null or ADDRSYS_L is null or ADDRSYS_R is null or PREDIR is null or POSTDIR is null or A1_NAME is null or A1_POSTTYPE is null or A2_NAME is null or A2_POSTTYPE is null or AN_NAME is null or AN_POSTDIR is null;";
            const string checkForNullsAddressPointsQuery = @"select count(*) from Location.ADDRESSPOINTS (nolock) where AddNum is null or PrefixDir is null or StreetName is null or StreetType is null or SuffixDir is null or AddNumSuffix is null;";

            using (var connection = new SqlConnection(connectionStringSgid))
            {
                connection.Open();
                var rowCount = connection.ExecuteScalar <int>(checkForNullsRoadsQuery);
                if (rowCount != 0)
                {
                    Console.WriteLine(rowCount + " Null Values were found in SGID Roads in one of these fields: ADDRSYS_L, ADDRSYS_R PREDIR, NAME, POSTTYPE, POSTDIR, A1_NAME, A1_POSTTYPE, A2_NAME, A2_POSTTYPE, AN_NAME, AN_POSTDIR.  Remove nulls from SGID.Transportation.Roads and try again.");
                    Console.ReadLine();
                    return;
                }
            }
            using (var connection = new SqlConnection(connectionStringSgid))
            {
                connection.Open();
                var rowCount = connection.ExecuteScalar <int>(checkForNullsAddressPointsQuery);
                if (rowCount != 0)
                {
                    Console.WriteLine(rowCount + " Null Values were found in SGID AddressPoints in one of these fields: AddNum, AddNumSuffix, PrefixDir, StreetName, StreetType, SuffixDir.  Remove nulls from SGID.Location.AddressPoints and try again.");
                    //Console.ReadLine();
                    //return;
                }
            }

            var startTime = DateTime.Now;

            Console.WriteLine("Begin creating Geocode FC: " + DateTime.Now);
            IWorkspaceEdit outputEditWorkspace = null;

            try
            {
                var outputFeatureWorkspace = (IFeatureWorkspace)output;

                // create a feature cursor from the source roads data and loop through this subset
                // create the query filter to filter results
                const string geocodableRoads = @"CARTOCODE not in ('1','7','99') and 
                                                    ((FROMADDR_L <> 0 and TOADDR_L <> 0) OR (FROMADDR_R <> 0 and TOADDR_R <> 0)) and 
                                                    NAME <> '' and NAME not like '%ROUNDABOUT%'";

                // GO LIVE...
                //geocodableRoads = @"CARTOCODE not in ('1','7','99') and ((L_F_ADD <> 0 and L_T_ADD <> 0) OR (R_F_ADD <> 0 and R_T_ADD <> 0)) and STREETNAME <> '' and STREETNAME not like '%ROUNDABOUT%'";
                var roadsFilter = new QueryFilter
                {
                    WhereClause = geocodableRoads
                };

                outputEditWorkspace = (IWorkspaceEdit)outputFeatureWorkspace;
                // begin an edit session on the file geodatabase (maybe) that way we can roll back if it errors out
                outputEditWorkspace.StartEditing(false);
                outputEditWorkspace.StartEditOperation();

                // create a ComReleaser for feature cursor's life-cycle management
                using (var comReleaser = new ComReleaser())
                {
                    var roadsCursor = _roads.Search(roadsFilter, false);
                    comReleaser.ManageLifetime(roadsCursor);

                    // begin an edit session on the file geodatabase (maybe) that way we can roll back if it errors out
                    //outputEditWorkspace.StartEditing(false);
                    //outputEditWorkspace.StartEditOperation();

                    IFeature roadFeature;
                    var      fieldIndexMap = new FindIndexByNameCommand(_roads, new[]
                    {
                        "ADDRSYS_L", "ADDRSYS_R", "FROMADDR_L", "TOADDR_L", "FROMADDR_R", "TOADDR_R", "PREDIR",
                        "NAME", "POSTTYPE", "POSTDIR", "A1_NAME", "A1_POSTTYPE", "A2_NAME",
                        "A2_POSTTYPE", "AN_NAME", "AN_POSTDIR", "ZIPCODE_L", "ZIPCODE_R", "GlobalID"
                    }).Execute();

                    // loop through the sgid roads' feature cursor
                    while ((roadFeature = roadsCursor.NextFeature()) != null)
                    {
                        var valueMap = new AddValueToIndexFieldMapCommand(fieldIndexMap, roadFeature).Execute();

                        // begin to populate the geocode feature class in the newly-created file geodatabase
                        // check if this segment has a primary streetname
                        if (!string.IsNullOrEmpty(valueMap["NAME"].Value.ToString()))
                        {
                            // only write necessary key/values
                            var streetValueMap = valueMap;
                            //RemoveKeys(streetValueMap);

                            // create a new feature for the primary street name in the roads feature class
                            EsriHelper.InsertFeatureInto(roadFeature, _geocodeRoads, streetValueMap, true);

                            // create a new feature in the scratch roads fc
                            EsriHelper.InsertFeatureInto(roadFeature, _scratchRoadsFC, streetValueMap, true);
                        }
                        // check if this segment has an alias name
                        if (!string.IsNullOrEmpty(valueMap["A1_NAME"].Value.ToString()))
                        {
                            var aliasValueMap = valueMap;
                            aliasValueMap["NAME"]     = aliasValueMap["A1_NAME"];
                            aliasValueMap["POSTTYPE"] = aliasValueMap["A1_POSTTYPE"];

                            // check if primary name is acs, if so remove the sufdir for new alias1-based feature
                            if (!aliasValueMap["NAME"].ToString().Any(char.IsLetter))
                            {
                                // acs primary street
                                aliasValueMap.Remove("POSTDIR");
                            }

                            //RemoveKeys(aliasValueMap);

                            // create a new feature in the altnames table
                            EsriHelper.InsertRowInto(roadFeature, _altnameTableRoads, aliasValueMap, true, false);
                            //EsriHelper.InsertFeatureInto(roadFeature, _geocodeRoads, aliasValueMap, true);

                            // create a new feature in the scratch roads fc
                            EsriHelper.InsertFeatureInto(roadFeature, _scratchRoadsFC, aliasValueMap, true);
                        }
                        // check if this segment has a second alias name
                        if (!string.IsNullOrEmpty(valueMap["A2_NAME"].Value.ToString()))
                        {
                            var aliasValueMap = valueMap;
                            aliasValueMap["NAME"]     = aliasValueMap["A2_NAME"];
                            aliasValueMap["POSTTYPE"] = aliasValueMap["A2_POSTTYPE"];

                            // check if primary name is acs, if so remove the sufdir for new alias2-based feature
                            // check if primary name is acs, if so remove the sufdir for new alias1-based feature
                            if (!aliasValueMap["NAME"].ToString().Any(char.IsLetter))
                            {
                                // acs primary street
                                aliasValueMap.Remove("POSTDIR");
                            }

                            //RemoveKeys(aliasValueMap);

                            // create a new feature in the altnames table
                            EsriHelper.InsertRowInto(roadFeature, _altnameTableRoads, aliasValueMap, true, false);
                            //EsriHelper.InsertFeatureInto(roadFeature, _geocodeRoads, aliasValueMap, true);

                            // create a new feature in the scratch roads table
                            EsriHelper.InsertFeatureInto(roadFeature, _scratchRoadsFC, aliasValueMap, true);
                        }
                        // check if this segment has an acs alias name
                        if (!string.IsNullOrEmpty(valueMap["AN_NAME"].Value.ToString()))
                        {
                            var acsValueMap = valueMap;
                            acsValueMap["NAME"]    = acsValueMap["AN_NAME"];
                            acsValueMap["POSTDIR"] = acsValueMap["AN_POSTDIR"];

                            acsValueMap.Remove("POSTTYPE");
                            //RemoveKeys(acsValueMap);

                            // create a new feature in the altnames table
                            EsriHelper.InsertRowInto(roadFeature, _altnameTableRoads, acsValueMap, false, false);
                            //EsriHelper.InsertFeatureInto(roadFeature, _geocodeRoads, acsValueMap, false);

                            // create a new feature in the scratch roads table
                            EsriHelper.InsertFeatureInto(roadFeature, _scratchRoadsFC, acsValueMap, false);
                        }
                    }
                    outputEditWorkspace.StopEditOperation();
                    outputEditWorkspace.StopEditing(true);
                }

                Console.WriteLine("begin indexing fields: " + DateTime.Now);
                // Add Indexes to query fields.
                string[] fieldsToIndex = { "ADDRSYS_L", "ADDRSYS_R", "FROMADDR_L", "TOADDR_L", "FROMADDR_R", "TOADDR_R",
                                           "PREDIR",    "NAME",      "POSTTYPE",   "POSTDIR" };
                foreach (var field in fieldsToIndex)
                {
                    AddIndexToFieldCommand.Execute(_scratchRoadsFC, field + "_IDX", field);
                }
                Console.WriteLine("finished indexing fields: " + DateTime.Now);

                // Create the AltNamesRoads table.
                PopulateAltNamesRoadsTableCommand.Execute(outputEditWorkspace, _altnameTableRoads, _scratchRoadsFC);

                // Create the AltNamesAddrPnts table.
                PopulateAltNamesAddrPntsTableCommand.Execute(outputEditWorkspace, _altnameTableAddrPnts, connectionStringSgid);

                Console.WriteLine("Started at: " + startTime);
                Console.WriteLine("Finished at: " + DateTime.Now);
                Console.WriteLine("Press any key to continue...");
                Console.ReadLine();
            }
            finally
            {
                // stop editing and don't save the edits
                if (outputEditWorkspace != null && outputEditWorkspace.IsBeingEdited())
                {
                    outputEditWorkspace.StopEditOperation();
                    outputEditWorkspace.StopEditing(false);
                }
            }
        }
Beispiel #35
0
        /// <summary>
        /// 在SDE库体上建立一个任务的范围图层
        /// </summary>
        /// <param name="in_sTaskLayerName"></param>
        /// <param name="in_pSDEWs"></param>
        /// <param name="ex"></param>
        /// <returns></returns>
        private IFeatureClass CreateTaskRangeLayerInSDE(string in_sTaskLayerName, IWorkspace in_pSDEWs, IDataset in_UserDBDataSet, out Exception ex)
        {
            IFeatureClass ResFeaCls = null;

            ex = null;
            /////////首先在SDE中查找该图层,找到即返回//////
            try
            {
                ResFeaCls = (in_pSDEWs as IFeatureWorkspace).OpenFeatureClass(in_sTaskLayerName);
                if (ResFeaCls != null)
                {
                    return(ResFeaCls);
                }
            }
            catch (Exception eError)
            {
            }
            try
            {
                /////////没有找到则建立这一图层//////////
                IFields     fields = new FieldsClass();
                IFieldsEdit fsEdit = fields as IFieldsEdit;
                //添加Object字段
                IField     newfield2  = new FieldClass();
                IFieldEdit fieldEdit2 = newfield2 as IFieldEdit;
                fieldEdit2.Name_2      = "OBJECTID";
                fieldEdit2.Type_2      = esriFieldType.esriFieldTypeOID;
                fieldEdit2.AliasName_2 = "OBJECTID";
                newfield2 = fieldEdit2 as IField;
                fsEdit.AddField(newfield2);

                //添加Geometry字段
                IField     newfield1  = new FieldClass();
                IFieldEdit fieldEdit1 = newfield1 as IFieldEdit;
                fieldEdit1.Name_2 = "SHAPE";
                fieldEdit1.Type_2 = esriFieldType.esriFieldTypeGeometry;

                IGeometryDef     geoDef     = new GeometryDefClass();
                IGeometryDefEdit geoDefEdit = geoDef as IGeometryDefEdit;
                geoDefEdit.GeometryType_2     = esriGeometryType.esriGeometryPolygon;
                geoDefEdit.SpatialReference_2 = (in_UserDBDataSet as IGeoDataset).SpatialReference;
                fieldEdit1.GeometryDef_2      = geoDefEdit as GeometryDef;
                newfield1 = fieldEdit1 as IField;
                fsEdit.AddField(newfield1);
                fields = fsEdit as IFields;

                //任务相关字段//范围号
                IField     newfield  = new FieldClass();
                IFieldEdit fieldEdit = newfield as IFieldEdit;
                fieldEdit.Name_2      = "RANGEID";
                fieldEdit.AliasName_2 = "RANGEID";
                fieldEdit.Type_2      = esriFieldType.esriFieldTypeString;
                fieldEdit.Length_2    = 255;
                newfield = fieldEdit as IField;
                fsEdit.AddField(newfield);
                //范围名称
                IField     newfield3  = new FieldClass();
                IFieldEdit fieldEdit3 = newfield3 as IFieldEdit;
                fieldEdit3.Name_2      = "RANGENAME";
                fieldEdit3.AliasName_2 = "RANGENAME";
                fieldEdit3.Type_2      = esriFieldType.esriFieldTypeString;
                fieldEdit3.Length_2    = 255;
                newfield = fieldEdit3 as IField;
                fsEdit.AddField(newfield3);
                //分配状态
                IField     newfield4  = new FieldClass();
                IFieldEdit fieldEdit4 = newfield4 as IFieldEdit;
                fieldEdit4.Name_2      = "assign";
                fieldEdit4.AliasName_2 = "assign";
                fieldEdit4.Type_2      = esriFieldType.esriFieldTypeInteger;
                fieldEdit4.Length_2    = 255;
                newfield = fieldEdit4 as IField;
                fieldEdit4.DefaultValue_2 = 0;
                fsEdit.AddField(newfield4);
                //分配的用户
                IField     newfield5  = new FieldClass();
                IFieldEdit fieldEdit5 = newfield5 as IFieldEdit;
                fieldEdit5.Name_2      = "USERNAME";
                fieldEdit5.AliasName_2 = "USERNAME";
                fieldEdit5.Type_2      = esriFieldType.esriFieldTypeString;
                fieldEdit5.Length_2    = 255;
                newfield = fieldEdit5 as IField;
                fieldEdit5.DefaultValue_2 = 0;
                fsEdit.AddField(newfield5);

                ResFeaCls = (in_pSDEWs as IFeatureWorkspace).CreateFeatureClass(in_sTaskLayerName, fields, null, null, esriFeatureType.esriFTSimple, "SHAPE", "");
                return(ResFeaCls);
            }
            catch (Exception eError)
            {
                if (null == ModuleData.v_SysLog)
                {
                    ModuleData.v_SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                }
                ModuleData.v_SysLog.Write(eError);
                ex = eError;
                return(null);
            }
        }
Beispiel #36
0
        public override void OnClick()
        {
            Exception outError = null;

            ////////guozheng 2011-3-14 added
            if (this.m_DBConInfoele == null)
            {
                return;
            }
            string sDBConStr  = this.m_DBConInfoele.GetAttribute("数据库连接信息");
            string sDBID      = this.m_DBConInfoele.GetAttribute("数据库ID");
            string sDBType    = this.m_DBConInfoele.GetAttribute("数据库类型");
            string sDBFormate = this.m_DBConInfoele.GetAttribute("数据库平台");

            //cyf 20110603 delete
            //if (sDBFormate != "ARCGISSDE") return;
            //end
            if (string.IsNullOrEmpty(sDBConStr))
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据库工程的连接信息失败"); return;
            }
            //////////不为SDE数据库不进行任务分配///////
            /////////首先获取SDE上的Workspace///////////

            //cyf 20110603 modify:连接geodatabase
            //IPropertySet pPropSet = new PropertySetClass();
            SysCommon.Gis.SysGisDB pSysDb = new SysCommon.Gis.SysGisDB();
            //IWorkspaceFactory pSdeFact = new SdeWorkspaceFactoryClass();
            string[] SDEConnectInfo = null;
            try
            {
                SDEConnectInfo = sDBConStr.Split('|');
                if (SDEConnectInfo.Length < 7)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "获取数据库工程用户库数据集失败"); return;
                }
                //pPropSet.SetProperty("SERVER", SDEConnectInfo[0]);
                //pPropSet.SetProperty("INSTANCE", SDEConnectInfo[1]);
                //pPropSet.SetProperty("DATABASE", SDEConnectInfo[2]);
                //pPropSet.SetProperty("USER", SDEConnectInfo[3]);
                //pPropSet.SetProperty("PASSWORD", SDEConnectInfo[4]);
                //pPropSet.SetProperty("VERSION", SDEConnectInfo[5]);
                //this.m_SDEWs = pSdeFact.Open(pPropSet, 0);
                if (sDBFormate == enumInterDBFormat.ARCGISGDB.ToString())
                {
                    pSysDb.SetWorkspace(SDEConnectInfo[2], SysCommon.enumWSType.GDB, out outError);
                }
                else if (sDBFormate == enumInterDBFormat.ARCGISPDB.ToString())
                {
                    pSysDb.SetWorkspace(SDEConnectInfo[2], SysCommon.enumWSType.PDB, out outError);
                }
                else if (sDBFormate == enumInterDBFormat.ARCGISPDB.ToString())
                {
                    pSysDb.SetWorkspace(SDEConnectInfo[0], SDEConnectInfo[1], SDEConnectInfo[2], SDEConnectInfo[3], SDEConnectInfo[4], SDEConnectInfo[5], out outError);
                }
                if (outError != null)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "连接Geodatabase库体失败," + outError.Message);
                    return;
                }
                this.m_SDEWs = pSysDb.WorkSpace;
            }
            catch (Exception eError)
            {
                /////系统运行日志
                if (null == ModuleData.v_SysLog)
                {
                    ModuleData.v_SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                }
                ModuleData.v_SysLog.Write(eError);
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "连接Geodatabase库体失败," + eError.Message);
                return;
            }
            //end
            /////////获取本地的任务分配图层,转储至SDE中////////
            IDataset      pUserDataSet  = null; ///////////////////////用户库数据集
            IFeatureClass pTaskRangeCls = null; ////////////////Range图层

            try
            {
                if (SDEConnectInfo[6].Trim() == "")
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "目标库数据集不存在,请先创建数据库!");
                    return;
                }
                pUserDataSet = (this.m_SDEWs as IFeatureWorkspace).OpenFeatureDataset(SDEConnectInfo[6]);
                Exception ex = null;
                pTaskRangeCls = CreateTaskRangeLayerInSDE("RANGE", this.m_SDEWs, pUserDataSet, out ex);
                if (ex != null)
                {
                    SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "SDE中建立任务范围图层失败," + ex.Message);
                    return;
                }
            }
            catch (Exception eError)
            {
                SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", eError.Message);
                if (null == ModuleData.v_SysLog)
                {
                    ModuleData.v_SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                }
                ModuleData.v_SysLog.Write(eError);
                return;
            }
            ////////获取本地的数据库图层,导入至SDE图层中///////////////
            FrmGetTaskLayerGuide GetTaskLayerGuideFrm = new FrmGetTaskLayerGuide(m_Hook, this.m_SDEWs, sDBID);

            GetTaskLayerGuideFrm.ShowDialog();
        }
Beispiel #37
0
        //列出全部的FC
        private void LstAllLyrFile(IWorkspace pWks)
        {
            try
            {
                lstFC.Clear();
                IFeatureWorkspace pFeaWks = pWks as IFeatureWorkspace;
                if (pFeaWks == null)
                {
                    return;
                }

                ESRI.ArcGIS.Geometry.ISpatialReference pSpa = null;

                IEnumDatasetName pEnumFeaCls = pWks.get_DatasetNames(esriDatasetType.esriDTFeatureClass);
                IDatasetName     pFeaClsName = pEnumFeaCls.Next();
                while (pFeaClsName != null)
                {
                    if (pSpa == null)
                    {
                        IName         pPrjName    = pFeaClsName as IName;
                        IFeatureClass pFeaCls     = pPrjName.Open() as IFeatureClass;
                        IGeoDataset   pGeodataset = pFeaCls as IGeoDataset;

                        //获得空间参看 源的
                        //pSpa = pGeodataset.SpatialReference;
                        //m_strInPrj = ExportToESRISpatialReference(pSpa);
                    }

                    this.lstFC.Items.Add(pFeaClsName.Name);
                    pFeaClsName = pEnumFeaCls.Next();
                }

                IEnumDatasetName pEnumDataNames = pWks.get_DatasetNames(esriDatasetType.esriDTFeatureDataset);
                IDatasetName     pDatasetName   = pEnumDataNames.Next();
                while (pDatasetName != null)
                {
                    IEnumDatasetName pSubNames = pDatasetName.SubsetNames;
                    IDatasetName     pSubName  = pSubNames.Next();
                    while (pSubName != null)
                    {
                        if (pSpa == null)
                        {
                            IName         pPrjName    = pSubName as IName;
                            IFeatureClass pFeaCls     = pPrjName.Open() as IFeatureClass;
                            IGeoDataset   pGeodataset = pFeaCls as IGeoDataset;

                            //获得空间参看 源的
                            //pSpa = pGeodataset.SpatialReference;
                            //m_strInPrj = ExportToESRISpatialReference(pSpa);
                        }

                        this.lstFC.Items.Add(pSubName.Name);
                        pSubName = pSubNames.Next();
                    }

                    pDatasetName = pEnumDataNames.Next();
                }

                for (int i = 0; i < this.lstFC.Items.Count; i++)
                {
                    this.lstFC.Items[i].Checked = true;
                }
            }
            catch
            {
            }
        }
        public static void TestThumbnailBuilder(string rasterTypeName, string rasterTypeProductFilter,
                                                string rasterTypeProductName, string dataSource, string dataSourceFilter, string fgdbParentFolder,
                                                bool saveToArt, string customTypeFilePath, bool clearGdbDirectory)
        {
            try
            {
                string[] rasterProductNames = rasterTypeProductName.Split(';');
                string   nameString         = rasterTypeName.Replace(" ", "") + rasterTypeProductFilter.Replace(" ", "") +
                                              rasterProductNames[0].Replace(" ", "");

                #region Directory Declarations
                string fgdbName          = nameString + ".gdb";
                string fgdbDir           = fgdbParentFolder + "\\" + fgdbName;
                string MosaicDatasetName = nameString + "MD";
                #endregion

                #region Global Declarations
                IMosaicDataset                  theMosaicDataset          = null;
                IMosaicDatasetOperation         theMosaicDatasetOperation = null;
                IMosaicWorkspaceExtensionHelper mosaicExtHelper           = null;
                IMosaicWorkspaceExtension       mosaicExt = null;
                #endregion

                #region Create File GDB
                Console.WriteLine("Creating File GDB: " + fgdbName);
                if (clearGdbDirectory)
                {
                    try
                    {
                        Console.WriteLine("Emptying Gdb folder.");
                        System.IO.Directory.Delete(fgdbParentFolder, true);
                        System.IO.Directory.CreateDirectory(fgdbParentFolder);
                    }
                    catch (System.IO.IOException EX)
                    {
                        Console.WriteLine(EX.Message);
                        return;
                    }
                }

                // Create a File Gdb
                Type factoryType = Type.GetTypeFromProgID("esriDataSourcesGDB.FileGDBWorkspaceFactory");
                IWorkspaceFactory FgdbFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
                FgdbFactory.Create(fgdbParentFolder,
                                   fgdbName, null, 0);
                #endregion

                #region Create Mosaic Dataset
                try
                {
                    Console.WriteLine("Create Mosaic Dataset: " + MosaicDatasetName);
                    // Setup workspaces.
                    IWorkspaceFactory workspaceFactory = (IWorkspaceFactory)Activator.CreateInstance(factoryType);
                    IWorkspace        fgdbWorkspace    = workspaceFactory.OpenFromFile(fgdbDir, 0);
                    // Create Srs
                    ISpatialReferenceFactory spatialrefFactory = new SpatialReferenceEnvironmentClass();
                    ISpatialReference        mosaicSrs         = spatialrefFactory.CreateProjectedCoordinateSystem(
                        (int)(esriSRProjCSType.esriSRProjCS_World_Mercator));
                    // Create the mosaic dataset creation parameters object.
                    ICreateMosaicDatasetParameters creationPars = new CreateMosaicDatasetParametersClass();
                    // Create the mosaic workspace extension helper class.
                    mosaicExtHelper = new MosaicWorkspaceExtensionHelperClass();
                    // Find the right extension from the workspace.
                    mosaicExt = mosaicExtHelper.FindExtension(fgdbWorkspace);
                    // Use the extension to create a new mosaic dataset, supplying the
                    // spatial reference and the creation parameters object created above.
                    theMosaicDataset = mosaicExt.CreateMosaicDataset(MosaicDatasetName,
                                                                     mosaicSrs, creationPars, "");
                    theMosaicDatasetOperation = (IMosaicDatasetOperation)(theMosaicDataset);
                }
                catch (Exception exc)
                {
                    Console.WriteLine("Error: Failed to create Mosaic Dataset : {0}.",
                                      MosaicDatasetName + " " + exc.Message);
                    return;
                }
                #endregion

                #region Create Custom Raster Type
                Console.WriteLine("Preparing Raster Type");
                // Create a Raster Type Name object.
                IRasterTypeName theRasterTypeName = new RasterTypeNameClass();
                // Assign the name of the Raster Type to the name object.
                // The Name field accepts a path to an .art file as well
                // the name for a built in Raster Type.
                theRasterTypeName.Name = rasterTypeName;
                // Use the Open function from the IName interface to get the Raster Type object.
                IRasterType theRasterType = (IRasterType)(((IName)theRasterTypeName).Open());
                if (theRasterType == null)
                {
                    Console.WriteLine("Error:Raster Type not found " + rasterTypeName);
                    return;
                }
                #endregion

                #region Prepare Raster Type
                // Set the URI Filter on the loaded raster type.
                if (rasterTypeProductFilter != "")
                {
                    // Get the supported URI filters from the raster type object using the
                    // raster type properties interface.
                    IArray         mySuppFilters = ((IRasterTypeProperties)theRasterType).SupportedURIFilters;
                    IItemURIFilter productFilter = null;
                    for (int i = 0; i < mySuppFilters.Count; ++i)
                    {
                        // Set the desired filter from the supported filters.
                        productFilter = (IItemURIFilter)mySuppFilters.get_Element(i);
                        if (productFilter.Name == rasterTypeProductFilter)
                        {
                            theRasterType.URIFilter = productFilter;
                        }
                    }
                }
                // Enable the correct templates in the raster type.
                bool enableTemplate = false;
                if (rasterProductNames.Length >= 1 && (rasterProductNames[0] != ""))
                {
                    // Get the supported item templates from the raster type.
                    IItemTemplateArray templateArray = theRasterType.ItemTemplates;
                    for (int i = 0; i < templateArray.Count; ++i)
                    {
                        // Go through the supported item templates and enable the ones needed.
                        IItemTemplate template = templateArray.get_Element(i);
                        enableTemplate = false;
                        for (int j = 0; j < rasterProductNames.Length; ++j)
                        {
                            if (template.Name == rasterProductNames[j])
                            {
                                enableTemplate = true;
                            }
                        }
                        if (enableTemplate)
                        {
                            template.Enabled = true;
                        }
                        else
                        {
                            template.Enabled = false;
                        }
                    }
                }
                ((IRasterTypeProperties)theRasterType).DataSourceFilter = dataSourceFilter;
                #endregion

                #region Save Custom Raster Type
                if (saveToArt)
                {
                    IRasterTypeProperties  rasterTypeProperties = (IRasterTypeProperties)theRasterType;
                    IRasterTypeEnvironment rasterTypeHelper     = new RasterTypeEnvironmentClass();
                    rasterTypeProperties.Name = customTypeFilePath;

                    IMemoryBlobStream ipBlob = rasterTypeHelper.SaveRasterType(theRasterType);
                    ipBlob.SaveToFile(customTypeFilePath);
                }
                #endregion

                #region Preparing Data Source Crawler
                Console.WriteLine("Preparing Data Source Crawler");
                // Create a new property set to specify crawler properties.
                IPropertySet crawlerProps = new PropertySetClass();
                // Specify a file filter
                crawlerProps.SetProperty("Filter", dataSourceFilter);
                // Specify whether to search subdirectories.
                crawlerProps.SetProperty("Recurse", true);
                // Specify the source path.
                crawlerProps.SetProperty("Source", dataSource);
                // Get the recommended crawler from the raster type based on the specified
                // properties using the IRasterBuilder interface.
                // Pass on the Thumbnailtype to the crawler...
                IDataSourceCrawler theCrawler = ((IRasterBuilder)theRasterType).GetRecommendedCrawler(crawlerProps);
                #endregion

                #region Add Rasters
                try
                {
                    Console.WriteLine("Adding Rasters");
                    // Create a AddRaster parameters object.
                    IAddRastersParameters AddRastersArgs = new AddRastersParametersClass();
                    // Specify the data crawler to be used to crawl the data.
                    AddRastersArgs.Crawler = theCrawler;
                    // Specify the Thumbnail raster type to be used to add the data.
                    AddRastersArgs.RasterType = theRasterType;
                    // Use the mosaic dataset operation interface to add
                    // rasters to the mosaic dataset.
                    theMosaicDatasetOperation.AddRasters(AddRastersArgs, null);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: Add raster Failed." + ex.Message);
                    return;
                }
                #endregion

                #region Compute Pixel Size Ranges
                Console.WriteLine("Computing Pixel Size Ranges.");
                try
                {
                    // Create a calculate cellsize ranges parameters object.
                    ICalculateCellSizeRangesParameters computeArgs = new CalculateCellSizeRangesParametersClass();
                    // Use the mosaic dataset operation interface to calculate cellsize ranges.
                    theMosaicDatasetOperation.CalculateCellSizeRanges(computeArgs, null);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: Compute Pixel Size Failed." + ex.Message);
                    return;
                }
                #endregion

                #region Building Boundary
                Console.WriteLine("Building Boundary");
                try
                {
                    // Create a build boundary parameters object.
                    IBuildBoundaryParameters boundaryArgs = new BuildBoundaryParametersClass();
                    // Set flags that control boundary generation.
                    boundaryArgs.AppendToExistingBoundary = true;
                    // Use the mosaic dataset operation interface to build boundary.
                    theMosaicDatasetOperation.BuildBoundary(boundaryArgs, null);
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error: Build Boundary Failed." + ex.Message);
                    return;
                }
                #endregion

                #region Report
                Console.WriteLine("Successfully created MD: " + MosaicDatasetName + ". ");
                #endregion
            }
            catch (Exception exc)
            {
                #region Report
                Console.WriteLine("Exception Caught in TestThumbnailBuilder: " + exc.Message);
                Console.WriteLine("Failed.");
                Console.WriteLine("Shutting down.");
                #endregion
            }
        }
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            Dev2Logger.Info("Fetch Duplicate ResourcesError", GlobalConstants.WarewolfInfo);
            var serializer = new Dev2JsonSerializer();

            try
            {
                var item    = ServerExplorerRepo.LoadDuplicate();
                var message = new CompressedExecuteMessage();
                message.SetMessage(serializer.Serialize(item));
                return(serializer.SerializeToBuilder(message));
            }
            catch (Exception e)
            {
                Dev2Logger.Info("Fetch Duplicate ResourcesError", e, GlobalConstants.WarewolfInfo);
                IExplorerRepositoryResult error = new ExplorerRepositoryResult(ExecStatus.Fail, e.Message);
                return(serializer.SerializeToBuilder(error));
            }
        }
Beispiel #40
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            //首先进行坐标系x,y变换
            //string fileExpTran;//进行x,y做表转换后输出的tiff文件存储路径,用这一文件在进行后期的Z转换
            //fileExpTran = System.IO.Path.GetDirectoryName(LayerExpName) +"\\"+ System.IO.Path.GetFileNameWithoutExtension(LayerExpName)+"XY.tif";
            //try
            //{
            //    if (NorthEastToEastNorth(pRasterLayer, LayerExpName))
            //    {
            //        RasterLayerClass rasterlayer = new RasterLayerClass();
            //        rasterlayer.CreateFromFilePath(LayerExpName);
            //        IRaster2 pRaster2 = rasterlayer.Raster as IRaster2;
            //        IRasterDataset2 pRasterDataset = pRaster2.RasterDataset as IRasterDataset2;
            //        ChangeRasterValue(pRasterDataset, -1, 0);
            //        pMapControl.AddLayer(rasterlayer as ILayer);
            //        this.Close();
            //    }
            //}
            //catch (System.Exception ex)
            //{
            //    MessageBox.Show(ex.Message);
            //}

            try
            {
                IFeatureClass    pFC        = pFeatureLayer.FeatureClass;
                IDataset         pDS        = pFC as IDataset;
                IWorkspace       pWS        = pDS.Workspace;
                string           filedir    = pWS.PathName;
                string           fdestname  = System.IO.Path.GetFileNameWithoutExtension(txtFeatureName.Text);
                ClsGDBDataCommon CGD        = new ClsGDBDataCommon();
                IWorkspace       pTargetWS  = CGD.OpenFromShapefile(txtLayerExp.Text);
                IWorkspace2      workspace2 = pTargetWS as IWorkspace2;

                if (workspace2.get_NameExists(ESRI.ArcGIS.Geodatabase.esriDatasetType.esriDTFeatureClass, fdestname))
                {
                    MessageBox.Show("目标文件已存在!");
                    return;
                }
                //shape文件直接拷贝后再修改
                if (pDS.CanCopy() == true)
                {
                    pDS.Copy(txtFeatureName.Text, pTargetWS);
                    IFeatureWorkspace pFW = pTargetWS as IFeatureWorkspace;
                    pTargetFeatureClass = pFW.OpenFeatureClass(txtFeatureName.Text);
                    TransCoordiante(pFW as IWorkspace, pTargetFeatureClass);
                }
                //表示为gdb的feature,只能往gdb拷贝
                else
                {
                    // Create workspace name objects.
                    IWorkspaceName sourceWorkspaceName = new WorkspaceNameClass();
                    IWorkspaceName targetWorkspaceName = new WorkspaceNameClass();
                    IName          targetName          = (IName)targetWorkspaceName;

                    // Set the workspace name properties.
                    sourceWorkspaceName.PathName = pWS.PathName;
                    sourceWorkspaceName.WorkspaceFactoryProgID =
                        "esriDataSourcesGDB.FileGDBWorkspaceFactory";
                    // targetWorkspaceName.PathName = @"PartialMontgomery.gdb";
                    targetWorkspaceName.PathName = txtLayerExp.Text;
                    targetWorkspaceName.WorkspaceFactoryProgID =
                        "esriDataSourcesGDB.FileGDBWorkspaceFactory";

                    //if (txtLayerExp.Text.Length>4 && txtLayerExp.Text.Substring(txtLayerExp.Text.Length-4,4) == ".gdb")
                    //{
                    //    targetWorkspaceName.WorkspaceFactoryProgID =
                    //      "esriDataSourcesGDB.FileGDBWorkspaceFactory";
                    //}
                    //else
                    //{
                    //    targetWorkspaceName.WorkspaceFactoryProgID =
                    //     "esriDataSourcesFile.ShapefileWorkspaceFactory";
                    //}

                    // Create a name object for the source feature class.
                    IFeatureClassName featureClassName = new FeatureClassNameClass();

                    // Set the featureClassName properties.
                    IDatasetName sourceDatasetName = (IDatasetName)featureClassName;
                    sourceDatasetName.WorkspaceName = sourceWorkspaceName;
                    sourceDatasetName.Name          = pDS.BrowseName;
                    IName sourceName = (IName)sourceDatasetName;


                    // Create an enumerator for source datasets.
                    IEnumName     sourceEnumName     = new NamesEnumeratorClass();
                    IEnumNameEdit sourceEnumNameEdit = (IEnumNameEdit)sourceEnumName;

                    // Add the name object for the source class to the enumerator.
                    sourceEnumNameEdit.Add(sourceName);

                    // Create a GeoDBDataTransfer object and a null name mapping enumerator.
                    IGeoDBDataTransfer geoDBDataTransfer = new GeoDBDataTransferClass();
                    IEnumNameMapping   enumNameMapping   = null;

                    // Use the data transfer object to create a name mapping enumerator.
                    Boolean conflictsFound = geoDBDataTransfer.GenerateNameMapping(sourceEnumName,
                                                                                   targetName, out enumNameMapping);
                    enumNameMapping.Reset();
                    //修改拷贝的文件名
                    INameMapping nameMapping = enumNameMapping.Next();
                    if ((nameMapping != null))
                    {
                        nameMapping.TargetName = txtFeatureName.Text;
                    }

                    // Check for conflicts.
                    //if (conflictsFound)
                    //{
                    //    // Iterate through each name mapping.
                    //    INameMapping nameMapping = null;
                    //    while ((nameMapping = enumNameMapping.Next()) != null)
                    //    {
                    //        // Resolve the mapping's conflict (if there is one).
                    //        if (nameMapping.NameConflicts)
                    //        {
                    //            nameMapping.TargetName = nameMapping.GetSuggestedName(targetName);
                    //        }

                    //        // See if the mapping's children have conflicts.
                    //        IEnumNameMapping childEnumNameMapping = nameMapping.Children;
                    //        if (childEnumNameMapping != null)
                    //        {
                    //            childEnumNameMapping.Reset();

                    //            // Iterate through each child mapping.
                    //            INameMapping childNameMapping = null;
                    //            while ((childNameMapping = childEnumNameMapping.Next()) != null)
                    //            {
                    //                if (childNameMapping.NameConflicts)
                    //                {
                    //                    childNameMapping.TargetName = childNameMapping.GetSuggestedName
                    //                        (targetName);
                    //                }
                    //            }
                    //        }
                    //    }
                    //}

                    // Start the transfer.
                    geoDBDataTransfer.Transfer(enumNameMapping, targetName);
                    IFeatureWorkspace pFW = CGD.OpenFromFileGDB(txtLayerExp.Text) as IFeatureWorkspace;
                    pTargetFeatureClass = pFW.OpenFeatureClass(txtFeatureName.Text);
                    TransCoordiante(pFW as IWorkspace, pTargetFeatureClass);
                }

                if (pTargetFeatureClass != null)
                {
                    //添加到图层中
                    IFeatureLayer featureLayer = new FeatureLayerClass();
                    featureLayer.FeatureClass = pTargetFeatureClass;
                    featureLayer.Name         = fdestname;
                    pMapControl.AddLayer(featureLayer as ILayer);
                    pMapControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);
                }

                this.DialogResult = DialogResult.OK;
            }
            catch (System.Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
Beispiel #41
0
        //连接测试
        private void btnTest_Click(object sender, EventArgs e)
        {
            Exception err = null;

            cmbDataset.Items.Clear();
            //连接数据库
            try
            {
                switch (comBoxType.Text)
                {
                case "GDB":
                    if (txtDB.Text.Trim() == "")
                    {
                        MessageBox.Show("请选择数据库", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    m_WS = SetWorkspace(txtDB.Text, "GDB", out err);
                    break;

                case "SDE":
                    if (txtServer.Text.Trim() == "" || txtInstance.Text.Trim() == "" || txtUser.Text.Trim() == "" || txtPassword.Text.Trim() == "" || txtVersion.Text.Trim() == "")
                    {
                        MessageBox.Show("请填写完整的SDE参数!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    m_WS = SetWorkspace(txtServer.Text, txtInstance.Text, "", txtUser.Text, txtPassword.Text, txtVersion.Text, out err);
                    break;

                case "PDB":
                    if (txtDB.Text.Trim() == "")
                    {
                        MessageBox.Show("请选择数据库", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        return;
                    }
                    m_WS = SetWorkspace(txtDB.Text, "PDB", out err);
                    break;
                }
                if (err != null)
                {
                    MessageBox.Show("连接数据库失败,原因:" + err.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
            }
            catch (Exception eex)
            {
                MessageBox.Show("连接数据库失败,原因:" + eex.Message, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            //获得数据集
            Dictionary <string, IFeatureDataset> dicFeaDtInfo = new Dictionary <string, IFeatureDataset>();
            IEnumDataset pEnumDt = m_WS.get_Datasets(esriDatasetType.esriDTFeatureDataset);

            pEnumDt.Reset();
            IDataset pDt = pEnumDt.Next();

            //遍历数据集,将数据集加载在comboBox中
            while (pDt != null)
            {
                string pFeaDtName = pDt.Name;
                if (m_WS.WorkspaceFactory.WorkspaceType == esriWorkspaceType.esriRemoteDatabaseWorkspace)
                {
                    if (!pFeaDtName.ToUpper().Contains(txtUser.Text.Trim().ToUpper()))
                    {
                        pDt = pEnumDt.Next();
                        continue;
                    }
                }
                IFeatureDataset pFeaDt = pDt as IFeatureDataset;
                if (!dicFeaDtInfo.ContainsKey(pFeaDtName))
                {
                    dicFeaDtInfo.Add(pFeaDtName, pFeaDt);
                    cmbDataset.Items.Add(pFeaDtName);
                }
                pDt = pEnumDt.Next();
            }
            if (cmbDataset.Items.Count > 0)
            {
                cmbDataset.SelectedIndex = 0;
                cmbDataset.Tag           = dicFeaDtInfo;
            }
            //if (m_FeaType == EnumFeatureType.更新要素)
            //{
            //    if (m_DBName != "")
            //    {
            //        cmbDataset.Text = m_DBName;
            //    }
            //}
            btnOK.Enabled = true;
        }
Beispiel #42
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            ExecuteMessage result = new ExecuteMessage {
                HasError = false
            };

            string resourceID   = null;
            string resourceType = null;

            StringBuilder tmp;

            values.TryGetValue("ResourceID", out tmp);
            if (tmp != null)
            {
                resourceID = tmp.ToString();
            }

            values.TryGetValue("ResourceType", out tmp);
            if (tmp != null)
            {
                resourceType = tmp.ToString();
            }
            Dev2Logger.Log.Info(String.Format("Reload Resource. Id:{0} Type:{1}", resourceID, resourceType));
            try
            {
                // 2012.10.01: TWR - 5392 - Server does not dynamically reload resources
                if (resourceID == "*")
                {
                    ResourceCatalog.Instance.LoadWorkspace(theWorkspace.ID);
                }
                else
                {
                    //
                    // Ugly conversion between studio resource type and server resource type
                    //
                    enDynamicServiceObjectType serviceType;
                    switch (resourceType)
                    {
                    case "HumanInterfaceProcess":
                    case "Website":
                    case "WorkflowService":
                        serviceType = enDynamicServiceObjectType.WorkflowActivity;
                        break;

                    case "Service":
                        serviceType = enDynamicServiceObjectType.DynamicService;
                        break;

                    case "Source":
                        serviceType = enDynamicServiceObjectType.Source;
                        break;

                    case "Server":
                        serviceType = enDynamicServiceObjectType.Source;
                        break;

                    default:
                        throw new Exception("Unexpected resource type '" + resourceType + "'.");
                    }
                    Guid getID;
                    if (resourceID != null && Guid.TryParse(resourceID, out getID))
                    {
                        //
                        // Copy the file from the server workspace into the current workspace
                        //
                        theWorkspace.Update(
                            new WorkspaceItem(theWorkspace.ID, HostSecurityProvider.Instance.ServerID, Guid.Empty, getID)
                        {
                            Action          = WorkspaceItemAction.Edit,
                            IsWorkflowSaved = true,
                            ServiceType     = serviceType.ToString()
                        }, false);
                    }
                    else
                    {
                        theWorkspace.Update(
                            new WorkspaceItem(theWorkspace.ID, HostSecurityProvider.Instance.ServerID, Guid.Empty, Guid.Empty)
                        {
                            Action          = WorkspaceItemAction.Edit,
                            ServiceName     = resourceID,
                            IsWorkflowSaved = true,
                            ServiceType     = serviceType.ToString()
                        }, false);
                    }
                    //
                    // Reload resources
                    //
                    ResourceCatalog.Instance.LoadWorkspace(theWorkspace.ID);
                    result.SetMessage(string.Concat("'", resourceID, "' Reloaded..."));
                }
            }
            catch (Exception ex)
            {
                result.SetMessage(string.Concat("Error reloading '", resourceID, "'..."));
                Dev2Logger.Log.Error(ex);
            }

            Dev2JsonSerializer serializer = new Dev2JsonSerializer();

            return(serializer.SerializeToBuilder(result));
        }
Beispiel #43
0
 /// <summary>
 /// 获取数据库下全部的离散FC名称
 /// </summary>
 /// <returns></returns>
 private List <string> GetFeatureClassNames(IWorkspace pWs)
 {
     return(GetDatasetNames(pWs, esriDatasetType.esriDTFeatureClass));
 }
        public void DataImport(IWorkspace sourceWorkspace, IWorkspace targetWorkspace, IFeatureClass sourceFeatureClass, IDataset targetFeatureDataset, string storeName)
        {
            int errorRowCount = 0;
            int totalRowCount = 0;
            Dictionary <int, string> dicError         = new Dictionary <int, string>();
            IDataset       sourceWorkspaceDataset     = (IDataset)sourceWorkspace;
            IDataset       targetWorkspaceDataset     = (IDataset)targetWorkspace;
            string         sourceLayerName            = ((IDataset)sourceFeatureClass).Name;
            IName          sourceWorkspaceDatasetName = sourceWorkspaceDataset.FullName;
            IName          targetWorkspaceDatasetName = targetWorkspaceDataset.FullName;
            IWorkspaceName sourceWorkspaceName        = (IWorkspaceName)sourceWorkspaceDatasetName;
            IWorkspaceName targetWorkspaceName        = (IWorkspaceName)targetWorkspaceDatasetName;

            // Create a name object for the shapefile and cast it to the IDatasetName interface.
            IFeatureClassName sourceFeatureClassName = new FeatureClassNameClass();
            IDatasetName      sourceDatasetName      = (IDatasetName)sourceFeatureClassName;

            sourceDatasetName.Name          = sourceLayerName;
            sourceDatasetName.WorkspaceName = sourceWorkspaceName;

            // Create a name object for the FGDB feature class and cast it to the IDatasetName interface.
            IFeatureClassName targetFeatureClassName = new FeatureClassNameClass();
            IDatasetName      targetDatasetName      = (IDatasetName)targetFeatureClassName;

            targetDatasetName.Name          = storeName;// importMappingScheme.StoreDatasetName;"GEODATA.DLTB7"
            targetDatasetName.WorkspaceName = targetWorkspaceName;

            // Create the objects and references necessary for field validation.
            IFieldChecker   fieldChecker   = new FieldCheckerClass();
            IFields         sourceFields   = sourceFeatureClass.Fields;
            IFields         targetFields   = null;
            IEnumFieldError enumFieldError = null;

            // Set the required properties for the IFieldChecker interface.
            fieldChecker.InputWorkspace    = sourceWorkspace;
            fieldChecker.ValidateWorkspace = targetWorkspace;

            // Validate the fields and check for errors.
            fieldChecker.Validate(sourceFields, out enumFieldError, out targetFields);

            // Find the shape field.
            String shapeFieldName  = sourceFeatureClass.ShapeFieldName;
            int    shapeFieldIndex = sourceFeatureClass.FindField(shapeFieldName);
            IField shapeField      = sourceFields.get_Field(shapeFieldIndex);

            // Get the geometry definition from the shape field and clone it.
            IGeometryDef geometryDef            = shapeField.GeometryDef;
            IClone       geometryDefClone       = (IClone)geometryDef;
            IClone       targetGeometryDefClone = geometryDefClone.Clone();
            IGeometryDef targetGeometryDef      = (IGeometryDef)targetGeometryDefClone;

            // Cast the IGeometryDef to the IGeometryDefEdit interface.
            IGeometryDefEdit targetGeometryDefEdit = (IGeometryDefEdit)targetGeometryDef;

            // Set the IGeometryDefEdit properties.
            targetGeometryDefEdit.GridCount_2 = 1;
            targetGeometryDefEdit.set_GridSize(0, 0.75);

            //修改目标字段
            string fieldNameString = ChangeTargetFields(targetFields);

            if (fieldNameString != string.Empty)
            {
                fieldNameString += string.Format(",{0}", shapeFieldName);
            }
            else
            {
                fieldNameString = shapeFieldName;
            }
            IQueryFilter queryFilter = new QueryFilterClass();

            queryFilter.SubFields = fieldNameString;

            //设置导出的要素集
            IFeatureDatasetName featureDatasetName = null;

            if (targetFeatureDataset != null)
            {
                featureDatasetName = (IFeatureDatasetName)targetFeatureDataset.FullName;
            }

            // Create the converter and run the conversion.
            IFeatureDataConverter featureDataConverter = new FeatureDataConverterClass();
            IEnumInvalidObject    enumInvalidObject    = featureDataConverter.ConvertFeatureClass
                                                             (sourceFeatureClassName, queryFilter, featureDatasetName, targetFeatureClassName,
                                                             targetGeometryDef, targetFields, "", 1000, 0);

            // Check for errors.
            IInvalidObjectInfo invalidObjectInfo = null;

            enumInvalidObject.Reset();
            while ((invalidObjectInfo = enumInvalidObject.Next()) != null)
            {
                if (dicError.ContainsKey(invalidObjectInfo.InvalidObjectID) == false)
                {
                    // Handle the errors in a way appropriate to the application.
                    dicError.Add(invalidObjectInfo.InvalidObjectID, invalidObjectInfo.ErrorDescription);
                    errorRowCount++;
                }
                Console.WriteLine(invalidObjectInfo.InvalidObjectID + "" + invalidObjectInfo.ErrorDescription);
            }
        }
Beispiel #45
0
        public void CanFormatTicket()
        {
            WorkspaceFactory.SetDefaultConnectionString("c:\\testData.txt");
            IWorkspace workspace = WorkspaceFactory.Create();

            Thread.CurrentThread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;

            var user = new User("Emre", "1");

            workspace.Add(user);

            var menuItem1 = MenuItem.Create();

            menuItem1.Name = "Kurufasülye";
            menuItem1.Portions[0].Price.Amount = 5;

            var menuItem2 = MenuItem.Create();

            menuItem2.Name = "Pilav";
            menuItem2.Portions[0].Price.Amount = 3;

            menuItem2.AddPortion("Az", 1, "TL");

            workspace.Add(menuItem1);
            workspace.Add(menuItem2);

            var d      = new Department();
            var ticket = Ticket.Create(d);

            ticket.AddTicketItem(user.Id, menuItem1, "Normal");
            ticket.AddTicketItem(user.Id, menuItem2, "Normal");
            ticket.Date = new DateTime(2010, 1, 1);
            ticket.AddTicketDiscount(DiscountType.Amount, 1, user.Id);

            var template = new PrinterTemplate();

            template.HeaderTemplate = @"SAMBA
Adisyon Tarihi:{ADİSYON TARİH}
[Müşteri Adı:
{MÜŞTERİ ADI}]";
            template.LineTemplate   = @"{MİKTAR} {ÜRÜN} {FİYAT}";
            template.FooterTemplate = @"{VARSA İSKONTO}
[<C>İkram: {TOPLAM İKRAM}, teşekkürler]
[Toplam: {TOPLAM BAKİYE}]";

            var formatResult = TicketFormatter.GetFormattedTicket(ticket, ticket.GetUnlockedLines(), template);

            var expectedResult = @"SAMBA
Adisyon Tarihi:01.01.2010
1 Kurufasülye 5,00
1 Pilav 3,00
Belge TOPLAMI:|8,00
<J>İskonto:|1,00
Toplam: 7,00";

            var result = string.Join("\r\n", formatResult);

            Assert.IsTrue(result == expectedResult);

            template.MergeLines = true;
            formatResult        = TicketFormatter.GetFormattedTicket(ticket, ticket.GetUnlockedLines(), template);
            result = string.Join("\r\n", formatResult);
            Assert.AreEqual(expectedResult, result);

            var l1 = ticket.AddTicketItem(user.Id, menuItem1, "Normal");

            l1.Quantity = 5;
            var l2 = ticket.AddTicketItem(user.Id, menuItem2, "Az");

            formatResult   = TicketFormatter.GetFormattedTicket(ticket, ticket.GetUnlockedLines(), template);
            result         = string.Join("\r\n", formatResult);
            expectedResult = @"SAMBA
Adisyon Tarihi:01.01.2010
1 Pilav 3,00
6 Kurufasülye 5,00
1 Pilav.Az 1,00
Belge TOPLAMI:|34,00
<J>İskonto:|1,00
Toplam: 33,00";

            Assert.AreEqual(expectedResult, result);

            var c = new Customer {
                Name = "Emre EREN"
            };

            workspace.Add(c);

            ticket.CustomerId   = c.Id;
            ticket.CustomerName = c.Name;

            ticket.AddTicketDiscount(DiscountType.Amount, 0, user.Id);
            formatResult = TicketFormatter.GetFormattedTicket(ticket, ticket.GetUnlockedLines(), template);

            expectedResult = @"SAMBA
Adisyon Tarihi:01.01.2010
Müşteri Adı:
Emre EREN
1 Pilav 3,00
6 Kurufasülye 5,00
1 Pilav.Az 1,00
Toplam: 34,00";

            result = string.Join("\r\n", formatResult);
            Assert.IsTrue(result == expectedResult);

            l2.Gifted = true;
            template.GiftLineTemplate = "{MİKTAR} {ÜRÜN} İKRAM";

            expectedResult = @"SAMBA
Adisyon Tarihi:01.01.2010
Müşteri Adı:
Emre EREN
1 Pilav 3,00
6 Kurufasülye 5,00
1 Pilav.Az İKRAM
<C>İkram: 1,00, teşekkürler
Toplam: 33,00";

            formatResult = TicketFormatter.GetFormattedTicket(ticket, ticket.GetUnlockedLines(), template);
            result       = string.Join("\r\n", formatResult);
            Assert.IsTrue(result == expectedResult);
        }
Beispiel #46
0
 /// <summary>
 /// 获取数据库下全部的FD名称
 /// </summary>
 /// <returns></returns>
 private List <string> GetAllFeatureDatasetNames(IWorkspace pWS)
 {
     return(GetDatasetNames(pWS, esriDatasetType.esriDTFeatureDataset));
 }
Beispiel #47
0
        /// <summary>
        /// 创建默认的更新时使用的一系列表

        /// </summary>
        /// <param name="FIDIsAutoIncrease">标识FID记录表记录中的GOFID字段是否自动增值</param>
        ///<param name="commonTableCreate">标识是否创建除FID记录表以外的其他表</param>
        /// <returns></returns>
        public bool CreateDefaultTables(bool FIDIsAutoIncrease, bool commonTableCreate)
        {
            Exception  eError     = null;
            IWorkspace pWorkspace = this._Workspace;

            try
            {
                if (pWorkspace.Type == esriWorkspaceType.esriLocalDatabaseWorkspace)   //如果是本地文件库
                {
                    if (commonTableCreate)
                    {
                        //创建更新任务表

                        pWorkspace.ExecuteSQL("create table ICE_CASE (CASE_ID varchar(50),U_ID integer,G_ID integer,PRO_ID integer,CREATEDATE date,ENDDATE date,REMARK varchar(255))");

                        //创建任务关联表

                        pWorkspace.ExecuteSQL("create table ICE_CASEJOIN (JOIN_GROUP text,U_ID integer,G_ID integer,PRO_ID integer,CREATEDATE date,ENDDATE date,C_REMARK varchar(255))");

                        //创建跨区要素表

                        pWorkspace.ExecuteSQL("create table ICE_CORSSFEATURE (GOFID integer primary key,CASE_ID varchar(50),PRO_ID integer)");

                        //创建数据源表
                        pWorkspace.ExecuteSQL("create table ICE_DATASOURCE (MAP_ID varchar(50),CASE_NAME varchar(50),PRO_NAME varchar(50),USER_TYPE varchar(100),CREATEDATE date,ENDDATE date,REMARK varchar(200))");

                        //创建工程信息表

                        pWorkspace.ExecuteSQL("create table ICE_PROJECTINFO (PRO_ID AUTOINCREMENT primary key,PRO_NAME varchar(50),MASTER_ID integer,PROINFO Memo,CREATEDATE date,ENDDATE date,P_REMARK varchar(200),STATE integer)");

                        //创建更新地图信息表

                        pWorkspace.ExecuteSQL("create table ICE_UPDATEMAPINFO (MAP_ID varchar(20),CASE_ID varchar(50),PRO_ID integer,STATE varchar(50),U_NAME varchar(50))");

                        //创建用户组信息表
                        pWorkspace.ExecuteSQL("create table ICE_USERGROUPINFO (G_ID AUTOINCREMENT primary key,G_NAME varchar(50),G_TYPE varchar(50),G_PURVIEW OLEObject,G_REMARK varchar(200))");

                        //创建用户组关系表
                        pWorkspace.ExecuteSQL("create table ICE_USERGROUPRELATION (U_ID integer,G_ID integer)");

                        //创建用户信息表

                        pWorkspace.ExecuteSQL("create table ICE_USERINFO (U_ID AUTOINCREMENT primary key,U_NAME varchar(50),U_PWD varchar(50),U_SEX integer,U_JOB varchar(50),U_REMARK varchar(200),LOGININFO Memo)");

                        //创建更新日志表

                        pWorkspace.ExecuteSQL("create table UPDATELOG (GOFID integer,STATE integer,OID integer,EID integer,STATUS integer,SAVE integer,NEW integer,LAYERNAME varchar(50),LASTUPDATE varchar(50),PROJECTID integer,CASEID varchar(50))");

                        //创建DID与FID关系表

                        pWorkspace.ExecuteSQL("create table DID与FID关系表 (DID integer,FID integer)");

                        pWorkspace.ExecuteSQL("create table UPDATERES (PRO_ID integer,FCNAME varchar(50),OID integer)");
                    }

                    if (FIDIsAutoIncrease)
                    {    //创建FID记录表
                        pWorkspace.ExecuteSQL("create table FID记录表 (GOFID AUTOINCREMENT,FCNAME varchar(50),OID integer)");
                    }
                    else
                    {
                        //创建FID记录表

                        pWorkspace.ExecuteSQL("create table FID记录表 (GOFID integer,FCNAME varchar(50),OID integer)");
                    }
                }
                else     //如果是SDE
                {
                    //首先删除已有的表对象
                    //pWorkspace.ExecuteSQL("drop table ICE_CASE");
                    //pWorkspace.ExecuteSQL("drop table ICE_CASEJOIN");
                    //pWorkspace.ExecuteSQL("drop table ICE_CORSSFEATURE");

                    //pWorkspace.ExecuteSQL("drop trigger ICE_PROJECTINFO_TG");
                    //pWorkspace.ExecuteSQL("drop sequence ICE_PROJECTINFO_SEQ");
                    //pWorkspace.ExecuteSQL("drop table ICE_PROJECTINFO");
                    //pWorkspace.ExecuteSQL("drop table ICE_UPDATEMAPINFO");
                    //pWorkspace.ExecuteSQL("drop table ICE_USERGROUPINFO");
                    //pWorkspace.ExecuteSQL("drop table ICE_USERGROUPRELATION");

                    //pWorkspace.ExecuteSQL("drop trigger ICE_USERINFO_TG");
                    //pWorkspace.ExecuteSQL("drop sequence ICE_USERINFO_SEQ");
                    //pWorkspace.ExecuteSQL("drop table ICE_USERINFO");
                    //pWorkspace.ExecuteSQL("drop table UPDATELOG");

                    //pWorkspace.ExecuteSQL("drop trigger FID记录表_TG");
                    //pWorkspace.ExecuteSQL("drop sequence FID记录表_SEQ");
                    //pWorkspace.ExecuteSQL("drop table FID记录表");
                    //pWorkspace.ExecuteSQL("drop table DID与FID关系表");

                    if (commonTableCreate)
                    {
                        //创建更新任务表

                        pWorkspace.ExecuteSQL("create table ICE_CASE(CASE_ID    NVARCHAR2(50),U_ID       INTEGER,G_ID       INTEGER,PRO_ID     INTEGER,CREATEDATE DATE,ENDDATE    DATE,REMARK     NVARCHAR2(255))");

                        //创建任务关联表

                        pWorkspace.ExecuteSQL("create table ICE_CASEJOIN(JOIN_GROUP NVARCHAR2(500),U_ID       INTEGER,G_ID       INTEGER,PRO_ID     INTEGER,CREATEDATE DATE,ENDDATE    DATE,C_REMARK   NVARCHAR2(255))");

                        //创建跨区要素表

                        pWorkspace.ExecuteSQL("create table ICE_CORSSFEATURE(GOFID    INTEGER,CASE_ID  NVARCHAR2(50),PRO_ID   INTEGER)");

                        //创建数据源表
                        pWorkspace.ExecuteSQL("create table ICE_DATASOURCE(MAP_ID     NVARCHAR2(20),CASE_NAME  NVARCHAR2(50),PRO_NAME   NVARCHAR2(50),USER_TYPE  NVARCHAR2(100),CREATEDATE DATE,ENDDATE    DATE,REMARK     NVARCHAR2(200))");

                        //创建工程信息表//需要创建触发器
                        pWorkspace.ExecuteSQL("create table ICE_PROJECTINFO(PRO_ID     INTEGER not null,PRO_NAME   NVARCHAR2(50),MASTER_ID  INTEGER,PROINFO    NVARCHAR2(500),CREATEDATE DATE,ENDDATE    DATE,P_REMARK   NVARCHAR2(200))");
                        pWorkspace.ExecuteSQL("create sequence ICE_PROJECTINFO_SEQ minvalue 1 maxvalue 9999999999 start with 1 increment by 1 cache 30 order");
                        pWorkspace.ExecuteSQL("create or replace trigger ICE_PROJECTINFO_TG before insert on ICE_PROJECTINFO for each row begin if :NEW.PRO_ID=0 or :NEW.PRO_ID is null then SELECT ICE_PROJECTINFO_SEQ.NEXTVAL   INTO   :NEW.PRO_ID   FROM   DUAL; end if; end;");

                        //创建更新地图信息表

                        pWorkspace.ExecuteSQL("create table ICE_UPDATEMAPINFO(MAP_ID   NVARCHAR2(20),CASE_ID  NVARCHAR2(50),PRO_ID   INTEGER,STATE    NVARCHAR2(50),U_NAME   NVARCHAR2(50))");

                        //创建用户组信息表//需要创建触发器
                        pWorkspace.ExecuteSQL("create table ICE_USERGROUPINFO(G_ID      INTEGER not null,G_NAME    NVARCHAR2(50),G_TYPE    NVARCHAR2(50),G_PURVIEW BLOB,G_REMARK  NVARCHAR2(200))");
                        pWorkspace.ExecuteSQL("create sequence ICE_USERGROUPINFO_SEQ minvalue 1 maxvalue 9999999999 start with 1 increment by 1 cache 30 order");
                        pWorkspace.ExecuteSQL("create or replace trigger ICE_USERGROUPINFO_TG before insert on  ICE_USERGROUPINFO for each row begin if :NEW.G_ID=0 or :NEW.G_ID is null then SELECT  ICE_USERGROUPINFO_SEQ.NEXTVAL   INTO   :NEW.G_ID   FROM   DUAL; end if; end;");

                        //创建用户组关系表
                        pWorkspace.ExecuteSQL("create table ICE_USERGROUPRELATION(U_ID     INTEGER,G_ID     INTEGER)");

                        //创建用户信息表//需要创建触发器
                        pWorkspace.ExecuteSQL("create table ICE_USERINFO(U_ID      INTEGER not null,U_NAME    NVARCHAR2(50),U_PWD     NVARCHAR2(50),U_SEX     INTEGER,U_JOB     NVARCHAR2(50),U_REMARK  NVARCHAR2(200),LOGININFO NVARCHAR2(500))");
                        pWorkspace.ExecuteSQL("create sequence ICE_USERINFO_SEQ minvalue 1 maxvalue 9999999999 start with 1 increment by 1 cache 30 order");
                        pWorkspace.ExecuteSQL("create or replace trigger ICE_USERINFO_TG before insert on ICE_USERINFO for each row begin if :NEW.U_ID=0 or :NEW.U_ID is null then SELECT ICE_USERINFO_SEQ.NEXTVAL   INTO   :NEW.U_ID   FROM   DUAL; end if; end;");

                        //创建更新日志表

                        pWorkspace.ExecuteSQL("create table UPDATELOG(GOFID      INTEGER,STATE      INTEGER,OID        INTEGER,EID        INTEGER,STATUS     INTEGER,SAVE       INTEGER,NEW        INTEGER,LAYERNAME  NVARCHAR2(50),LASTUPDATE NVARCHAR2(50),PROJECTID  INTEGER,CASEID     NVARCHAR2(50))");

                        //创建DID与FID关系表

                        pWorkspace.ExecuteSQL("create table DID与FID关系表(DID      INTEGER,FID      INTEGER)");

                        pWorkspace.ExecuteSQL("create table UPDATERES(PRO_ID INTEGER,FCNAME NVARCHAR2(50),OID INTEGER)");
                    }

                    if (FIDIsAutoIncrease)
                    {   //创建FID记录表//创建触发器
                        pWorkspace.ExecuteSQL("create table FID记录表(GOFID  INTEGER not null,FCNAME NVARCHAR2(50),OID    INTEGER)");
                        pWorkspace.ExecuteSQL("create sequence FID记录表_SEQ minvalue 1 maxvalue 9999999999 start with 1 increment by 1 cache 30 order");
                        pWorkspace.ExecuteSQL("create or replace trigger FID记录表_TG before insert on FID记录表 for each row begin if :NEW.GOFID=0 or :NEW.GOFID is null then SELECT FID记录表_SEQ.NEXTVAL   INTO   :NEW.GOFID   FROM   DUAL; end if; end;");
                    }
                    else
                    {
                        pWorkspace.ExecuteSQL("create table FID记录表(GOFID  INTEGER,FCNAME NVARCHAR2(50),OID    INTEGER)");
                    }
                }
            }
            catch (Exception ex)
            {
                //*******************************************************************
                //Exception Log
                if (ModData.SysLog != null)
                {
                    ModData.SysLog.Write(ex, null, DateTime.Now);
                }
                else
                {
                    ModData.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog();
                    ModData.SysLog.Write(ex, null, DateTime.Now);
                }
                //********************************************************************
                eError = ex;
            }

            pWorkspace = null;

            if (eError != null)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Beispiel #48
0
        //private rstPixelType GetRasterPixelType(string strType)
        //{
        //    if (strType == rstPixelType.PT_CHAR.ToString())
        //    {
        //        return rstPixelType.PT_CHAR;
        //    }
        //    else if (strType == rstPixelType.PT_UCHAR.ToString())
        //    {
        //        return rstPixelType.PT_UCHAR;
        //    }
        //    else if (strType == rstPixelType.PT_SHORT.ToString())
        //    {
        //        return rstPixelType.PT_SHORT;
        //    }
        //    else if (strType == rstPixelType.PT_USHORT.ToString())
        //    {
        //        return rstPixelType.PT_USHORT;
        //    }
        //    else if (strType == rstPixelType.PT_LONG.ToString())
        //    {
        //        return rstPixelType.PT_LONG;
        //    }
        //    else if (strType == rstPixelType.PT_ULONG.ToString())
        //    {
        //        return rstPixelType.PT_ULONG;
        //    }
        //    else if (strType == rstPixelType.PT_CSHORT.ToString())
        //    {
        //        return rstPixelType.PT_CSHORT;
        //    }
        //    else if (strType == rstPixelType.PT_CLONG.ToString())
        //    {
        //        return rstPixelType.PT_CLONG;
        //    }
        //    else if (strType == rstPixelType.PT_FLOAT.ToString())
        //    {
        //        return rstPixelType.PT_FLOAT;
        //    }
        //    else if (strType == rstPixelType.PT_DOUBLE.ToString())
        //    {
        //        return rstPixelType.PT_DOUBLE;
        //    }

        //    return rstPixelType.PT_CHAR;
        //}
        //private rstResamplingTypes GetRasterResample(string strType)
        //{
        //    if (strType == "NearestNeighbor")
        //    {
        //        return rstResamplingTypes.RSP_NearestNeighbor;
        //    }
        //    else if (strType == "BilinearInterpolation")
        //    {
        //        return rstResamplingTypes.RSP_BilinearInterpolation;
        //    }
        //    else if (strType == "CubicConvolution")
        //    {
        //        return rstResamplingTypes.RSP_CubicConvolution;
        //    }
        //    else if (strType == "Majority")
        //    {
        //        return rstResamplingTypes.RSP_Majority;
        //    }
        //    return rstResamplingTypes.RSP_NearestNeighbor;
        //}

        #endregion

        private bool ExportToTif()
        {
            if (!txtOutData.Text.EndsWith("tif"))
            {
                MessageBox.Show("输出文件名不是tif文件!");
                return(false);
            }

            String strFullName = txtOutData.Text;
            string strPath     = System.IO.Path.GetDirectoryName(strFullName); //导出文件路径
            string strName     = System.IO.Path.GetFileName(strFullName);      //导出文件名

            try
            {
                IRasterBandCollection bandsOut    = m_pRaster as IRasterBandCollection;
                IRasterBandCollection rasterBands = m_pRaster.RasterDataset as IRasterBandCollection;
                double[] dNodata;
                int      nBandOut = 1;
                //IRaster pRasterOut = null;
                IRasterBand pBand = null;

                if (comboBoxExBands.SelectedIndex == 0)//所有波段
                {
                    //添加其他波段
                    for (int i = 3; i < rasterBands.Count; i++)
                    {
                        pBand = rasterBands.Item(i);
                        bandsOut.AppendBand(pBand);
                    }
                    nBandOut = rasterBands.Count;
                }
                else
                {
                    #region 原代码
                    //pRasterOut = new RasterClass();
                    //IRasterBandCollection pRB2 = pRasterOut as IRasterBandCollection;
                    //pRB2.AppendBand(rasterBands.Item(comboBoxExBands.SelectedIndex - 1));
                    //m_pRasterProps = pRasterOut as IRasterProps;
                    #endregion
                    //导出单波段时,不能用Clear(),会清除图层的几何校正属性
                    int nOut = bandsOut.Count;
                    for (int i = 0; i < nOut; i++)
                    {
                        bandsOut.Remove(i);
                    }
                    pBand = rasterBands.Item(comboBoxExBands.SelectedIndex - 1);
                    bandsOut.AppendBand(pBand);
                }
                //重新设置NoData
                dNodata = new double[nBandOut];
                if (!string.IsNullOrEmpty(textNoData.Text))
                {
                    for (int i = 0; i < nBandOut; i++)
                    {
                        dNodata[i] = Convert.ToDouble(textNoData.Text);
                    }
                    m_pRasterProps.NoDataValue = dNodata;
                }
                //else
                //{
                //    for (int i = 0; i < nBandOut; i++)
                //    {
                //        dNodata[i] = ClsGDBDataCommon.getNoDataValue((rasterBands.Item(i) as IRasterProps).NoDataValue);// Convert.ToDouble((rasterBands.Item(i) as IRasterProps).NoDataValue);
                //    }
                //    m_pRasterProps.NoDataValue = dNodata;
                //}


                IWorkspaceFactory pWSF = new RasterWorkspaceFactoryClass();
                IWorkspace        pWS  = pWSF.OpenFromFile(System.IO.Path.GetDirectoryName(txtOutData.Text), 0);

                //导出时要保持分辨率和行列数
                m_pRasterProps.Width  = Convert.ToInt32(txtOutColumns.Text);
                m_pRasterProps.Height = Convert.ToInt32(txtOutRows.Text);
                double dcellSizeX = double.Parse(txtCellSizeX.Text);
                double dcellSizeY = double.Parse(txtCellSizeY.Text);

                IEnvelope pEnvelope = new EnvelopeClass();
                pEnvelope.XMin        = m_pRasterProps.Extent.UpperLeft.X;
                pEnvelope.YMax        = m_pRasterProps.Extent.UpperLeft.Y;
                pEnvelope.XMax        = m_pRasterProps.Extent.UpperLeft.X + m_pRasterProps.Width * dcellSizeX;
                pEnvelope.YMin        = m_pRasterProps.Extent.UpperLeft.Y - m_pRasterProps.Height * dcellSizeY;
                m_pRasterProps.Extent = pEnvelope;
                //设置存储位数
                m_pRasterProps.PixelType = (rstPixelType)cmbPixelType.SelectedIndex;

                ISaveAs2 pSaveAs = m_pRasterProps as ISaveAs2;

                IRasterStorageDef  pRSDef  = new RasterStorageDefClass();
                IRasterStorageDef2 pRsDef2 = pRSDef as IRasterStorageDef2;
                //将存储栅格的分辨率设置为与原始图像相同,其实经过上面行列计算之后已经是相同的
                IPnt pPntdec = new PntClass();
                pPntdec.X                   = dcellSizeX;
                pPntdec.Y                   = dcellSizeY;
                pRsDef2.CellSize            = pPntdec;
                pRsDef2.PyramidResampleType = (rstResamplingTypes)cmbResample.SelectedIndex;
                IRasterDataset      pDataset    = pSaveAs.SaveAsRasterDataset(System.IO.Path.GetFileName(txtOutData.Text), pWS, "TIFF", pRSDef);
                IRasterDatasetEdit3 rasterEdit3 = pDataset as IRasterDatasetEdit3;
                //rasterEdit3.DeleteStats();//This method is avaliable only on raster datasets in File and ArcSDE geodatabases.
                rasterEdit3.ComputeStatisticsHistogram(1, 1, null, true);


                //导出数据之后要恢复图像的原始属性
                m_pRasterProps.SpatialReference = m_pSpatialRef;
                m_pRasterProps.Extent           = m_Envelope;
                m_pRasterProps.Width            = m_nCols;
                m_pRasterProps.Height           = m_nRows;
                //加到当前地图中
                IRasterLayer layerNew = new RasterLayerClass();
                layerNew.CreateFromDataset(pDataset);
                m_pMap.AddLayer(layerNew);
                IActiveView activeView = m_pMap as IActiveView;
                activeView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null);

                return(true);
            }
            catch (Exception exc)
            {
                MessageBox.Show(exc.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                return(false);
            }
        }
Beispiel #49
0
        /// <summary>
        /// Initialize the solver by calling the network analyst functions.
        /// </summary>
        private void Initialize()
        {
            IFeatureWorkspace featureWorkspace = null;
            INetworkDataset   networkDataset   = null;

            try
            {
                // Open the Network Dataset
                //IWorkspace workspace = OpenWorkspace(Application.StartupPath + @"\..\..\..\..\..\Data\SanFrancisco\SanFrancisco.gdb");
                IWorkspace workspace = OpenWorkspace("C:\\Users\\Yuanyun\\Desktop\\Instance\\SanFrancisco\\SanFrancisco.gdb");
                networkDataset   = OpenNetworkDataset(workspace, "Transportation", "Streets_ND");
                featureWorkspace = workspace as IFeatureWorkspace;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Unable to open dataset. Error Message: " + ex.Message);
                this.Close();
                return;
            }

            // Create NAContext and NASolver
            m_NAContext = CreateSolverContext(networkDataset);

            // Get available cost attributes from the network dataset
            INetworkAttribute networkAttribute;

            for (int i = 0; i < networkDataset.AttributeCount - 1; i++)
            {
                networkAttribute = networkDataset.get_Attribute(i);
                if (networkAttribute.UsageType == esriNetworkAttributeUsageType.esriNAUTCost)
                {
                    comboCostAttribute.Items.Add(networkAttribute.Name);
                }
            }
            comboCostAttribute.SelectedIndex = 0;
            textTargetFacility.Text          = "";
            textCutoff.Text = "";

            // Load locations from feature class
            IFeatureClass inputFClass = featureWorkspace.OpenFeatureClass("Stores");

            LoadNANetworkLocations("Origins", inputFClass, 100);
            inputFClass = featureWorkspace.OpenFeatureClass("Hospitals");
            LoadNANetworkLocations("Destinations", inputFClass, 100);

            // Create layer for network dataset and add to ArcMap
            INetworkLayer networkLayer = new NetworkLayerClass();

            networkLayer.NetworkDataset = networkDataset;
            ILayer layer = networkLayer as ILayer;

            layer.Name = "Network Dataset";
            axMapControl.AddLayer(layer, 0);

            // Create a network analysis layer and add to ArcMap
            INALayer naLayer = m_NAContext.Solver.CreateLayer(m_NAContext);

            layer      = naLayer as ILayer;
            layer.Name = m_NAContext.Solver.DisplayName;
            axMapControl.AddLayer(layer, 0);
        }
Beispiel #50
0
        public static IFeatureClass CreateStandaloneFeatureClass(
            IWorkspace workspace,
            string featureClassName,
            Dictionary <string, string> uniqueNames,
            bool allowNull,
            double defaultValue)
        {
            var featureWorkspace            = (IFeatureWorkspace)workspace;
            IFeatureClassDescription fcDesc = new FeatureClassDescriptionClass();
            var ocDesc = (IObjectClassDescription)fcDesc;

            // Use IFieldChecker to create a validated fields collection.
            IFieldChecker   fieldChecker    = new FieldCheckerClass();
            IEnumFieldError enumFieldError  = null;
            IFields         validatedFields = null;

            fieldChecker.ValidateWorkspace = workspace;

            IFields fields = new FieldsClass();

            // if a fields collection is not passed in then supply our own
            var fieldsEdit = (IFieldsEdit)fields; // Explicit Cast

            var        tmpField     = new FieldClass();
            IFieldEdit tmpFieldEdit = tmpField;

            tmpFieldEdit.Name_2   = "GeoHash";
            tmpFieldEdit.Type_2   = esriFieldType.esriFieldTypeString;
            tmpFieldEdit.Length_2 = 20;
            fieldsEdit.AddField(tmpField);

            foreach (var name in uniqueNames.Keys)
            {
                var        tempField     = new FieldClass();
                IFieldEdit tempFieldEdit = tempField;
                tempFieldEdit.Name_2 = "DG_" + uniqueNames[name];
                if (name.EndsWith("_str"))
                {
                    tempFieldEdit.Type_2         = esriFieldType.esriFieldTypeString;
                    tempFieldEdit.Length_2       = 250;
                    tempFieldEdit.AliasName_2    = name;
                    tempFieldEdit.IsNullable_2   = allowNull;
                    tempFieldEdit.DefaultValue_2 = "";
                }
                else
                {
                    tempFieldEdit.Name_2         = "DG_" + uniqueNames[name];
                    tempFieldEdit.Type_2         = esriFieldType.esriFieldTypeDouble;
                    tempFieldEdit.Length_2       = 20;
                    tempFieldEdit.AliasName_2    = name;
                    tempFieldEdit.IsNullable_2   = allowNull;
                    tempFieldEdit.DefaultValue_2 = defaultValue;
                }

                fieldsEdit.AddField(tempField);
            }

            ISpatialReferenceFactory spatialReferenceFactory = new SpatialReferenceEnvironment();
            var geographicCoordinateSystem =
                spatialReferenceFactory.CreateGeographicCoordinateSystem((int)esriSRGeoCSType.esriSRGeoCS_WGS1984);

            IGeometryDef geometryDef     = new GeometryDefClass();
            var          geometryDefEdit = (IGeometryDefEdit)geometryDef;

            geometryDefEdit.GeometryType_2     = esriGeometryType.esriGeometryPolygon;
            geometryDefEdit.SpatialReference_2 = geographicCoordinateSystem;
            var        shapeField     = new FieldClass();
            IFieldEdit shapeFieldEdit = shapeField;

            shapeFieldEdit.Name_2        = "SHAPE";
            shapeFieldEdit.Type_2        = esriFieldType.esriFieldTypeGeometry;
            shapeFieldEdit.GeometryDef_2 = geometryDef;
            shapeFieldEdit.IsNullable_2  = true;
            shapeFieldEdit.Required_2    = true;
            fieldsEdit.AddField(shapeField);
            fields = fieldsEdit;

            fieldChecker.Validate(fields, out enumFieldError, out validatedFields);
            fieldChecker.ValidateTableName(featureClassName, out featureClassName);
            // The enumFieldError enumerator can be inspected at this point to determine
            // which fields were modified during validation.
            try
            {
                var featureClass = featureWorkspace.CreateFeatureClass(
                    featureClassName,
                    validatedFields,
                    ocDesc.InstanceCLSID,
                    ocDesc.ClassExtensionCLSID,
                    esriFeatureType.esriFTSimple,
                    "SHAPE",
                    string.Empty);
                return(featureClass);
            }
            catch (Exception ex)
            {
                Logger.Error(ex);
                throw new Exception("Issue with creating feature class");
            }
        }
        public static List <ILayer> AnalyzeLayers(IWorkspace workspace)
        {
            var          list        = new List <ILayer>();
            IEnumDataset enumDataset = workspace.get_Datasets(esriDatasetType.esriDTAny);

            enumDataset.Reset();
            IDataset dataset = enumDataset.Next();

            while (dataset != null)
            {
                if (dataset is IFeatureDataset)
                {
                    IFeatureWorkspace featureWorkspace = workspace as IFeatureWorkspace;
                    IFeatureDataset   featureDataset   = featureWorkspace.OpenFeatureDataset(dataset.Name);
                    IEnumDataset      enumdataset1     = featureDataset.Subsets;
                    enumdataset1.Reset();
                    IGroupLayer groupLayer = new GroupLayerClass();
                    groupLayer.Name = featureDataset.Name;
                    IDataset dataset1 = enumdataset1.Next();
                    while (dataset1 != null)
                    {
                        if (dataset1 is IFeatureClass)
                        {
                            IFeatureLayer featureLayer = new FeatureLayerClass();
                            featureLayer.FeatureClass = featureWorkspace.OpenFeatureClass(dataset1.Name);
                            if (featureLayer.FeatureClass != null)
                            {
                                featureLayer.Name = featureLayer.FeatureClass.AliasName;
                                list.Add(featureLayer);
                                groupLayer.Add(featureLayer);
                            }
                        }
                        dataset1 = enumdataset1.Next();
                    }
                    //list.Add(groupLayer);
                }
                else if (dataset is IFeatureClass)
                {
                    IFeatureWorkspace featureworkSpace = workspace as IFeatureWorkspace;
                    IFeatureLayer     featurelayer     = new FeatureLayerClass();
                    featurelayer.FeatureClass = featureworkSpace.OpenFeatureClass(dataset.Name);
                    featurelayer.Name         = featurelayer.FeatureClass.AliasName;
                    list.Add(featurelayer);
                }
                else if (dataset is IRasterDataset)
                {
                    IRasterWorkspaceEx rasterWorkspace = workspace as IRasterWorkspaceEx;
                    IRasterDataset     rasterDataset   = rasterWorkspace.OpenRasterDataset(dataset.Name);
                    IRasterPyramid3    rasterPyramid   = rasterDataset as IRasterPyramid3;
                    if (rasterPyramid != null)
                    {
                        if (!(rasterPyramid.Present))
                        {
                            rasterPyramid.Create();
                        }
                    }

                    IRasterLayer rasterLayer = new RasterLayerClass();
                    rasterLayer.CreateFromDataset(rasterDataset);
                    ILayer layer = rasterLayer as ILayer;
                    list.Add(layer);
                }

                dataset = enumDataset.Next();
            }

            return(list);
        }
Beispiel #52
0
        private void button2_Click(object sender, EventArgs e)
        {
            this.toolStripStatusLabel1.Text = "Calculating...";
            const int m = 25, p = 22, R = 2;

            double[] hi = new double[m] {
                15, 10, 12, 18, 5, 24, 11, 16, 13, 22, 19, 20, 15, 10, 12, 18, 5, 24, 11, 16, 13, 22, 19, 20, 10
            };
            double[,] dij      = ODM;//初始ODCost矩阵,自由流成本矩阵
            double[,] net_free = new double[m, p]
            {
                { 0, 15, 0, 0, 24, 0, 18, 0, 0, 0, 0, 0, 0, 15, 0, 0, 24, 0, 18, 0, 0, 0 },
                { 15, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 22, 0, 0, 0, 0, 0, 0, 0 },
                { 0, 22, 0, 18, 16, 0, 0, 0, 20, 0, 0, 0, 0, 22, 0, 18, 16, 0, 0, 0, 20, 0 },
                { 0, 0, 18, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 24, 0, 0, 0, 0 },
                { 24, 0, 16, 0, 0, 0, 25, 12, 24, 0, 0, 0, 24, 0, 16, 0, 0, 0, 25, 12, 24, 0 },
                { 0, 0, 0, 24, 0, 0, 0, 0, 12, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 0, 12, 0 },
                { 18, 0, 0, 0, 25, 12, 0, 15, 0, 22, 0, 0, 18, 0, 0, 0, 25, 12, 0, 15, 0, 22 },
                { 0, 0, 0, 0, 0, 0, 15, 0, 30, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 30, 0 },
                { 0, 0, 20, 0, 24, 12, 0, 30, 0, 0, 19, 19, 0, 0, 20, 0, 24, 12, 0, 30, 0, 0 },
                { 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0 },
                { 0, 0, 0, 0, 0, 0, 0, 15, 19, 19, 0, 21, 0, 0, 0, 0, 0, 0, 0, 15, 19, 19 },
                { 0, 0, 0, 0, 0, 22, 0, 0, 19, 0, 21, 0, 0, 0, 0, 0, 0, 22, 0, 0, 19, 0 },
                { 0, 15, 0, 0, 24, 0, 18, 0, 0, 0, 0, 0, 0, 15, 0, 0, 24, 0, 18, 0, 0, 0 },
                { 15, 0, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 22, 0, 0, 0, 0, 0, 0, 0 },
                { 0, 22, 0, 18, 16, 0, 0, 0, 20, 0, 0, 0, 0, 22, 0, 18, 16, 0, 0, 0, 20, 0 },
                { 0, 0, 18, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 24, 0, 0, 0, 0 },
                { 24, 0, 16, 0, 0, 0, 25, 12, 24, 0, 0, 0, 24, 0, 16, 0, 0, 0, 25, 12, 24, 0 },
                { 0, 0, 0, 24, 0, 0, 0, 0, 12, 0, 0, 22, 0, 0, 0, 24, 0, 0, 0, 0, 12, 0 },
                { 18, 0, 0, 0, 25, 12, 0, 15, 0, 22, 0, 0, 18, 0, 0, 0, 25, 12, 0, 15, 0, 22 },
                { 0, 0, 0, 0, 0, 0, 15, 0, 30, 0, 15, 0, 0, 0, 0, 0, 0, 0, 15, 0, 30, 0 },
                { 0, 0, 20, 0, 24, 12, 0, 30, 0, 0, 19, 19, 0, 0, 20, 0, 24, 12, 0, 30, 0, 0 },
                { 0, 0, 0, 0, 0, 0, 22, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 22, 0, 0, 0 },
                { 0, 0, 0, 0, 0, 0, 0, 15, 19, 19, 0, 21, 0, 0, 0, 0, 0, 0, 0, 15, 19, 19 },
                { 0, 0, 0, 0, 0, 22, 0, 0, 19, 0, 21, 0, 0, 0, 0, 0, 0, 22, 0, 0, 19, 0 },
                { 0, 0, 0, 0, 0, 22, 0, 0, 19, 0, 21, 0, 0, 0, 0, 0, 0, 22, 0, 0, 19, 0 },
            };                                     //自由流邻接矩阵
            //int[] x = { 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, 0 };//已经选定的设施点的位置
            int[] r = new int[p];                  //被中断设施点的位置
            double[,] OD       = new double[m, p]; //由于服务关系产生的OD
            double[,] NET      = new double[m, p]; //用于分配的行程时间矩阵
            double[,] ODCost   = new double[m, p]; //用于选址的行程时间矩阵
            double[,] capacity = new double[m, p]; //路网容量
            //得到已经选定的设施点的位置标号
            //int[] index_x = new int[p];
            //for (int i = 0, j = 0; i < m; i++)
            //    if (x[i] == 1) { index_x[j] = i; j++; }
            for (int i = 0; i < m; i++)
            {
                for (int j = 0; j < p; j++)
                {
                    if (i != j)
                    {
                        capacity[i, j] = 30;
                    }
                }
            }
            //记录程序开始的时间
            DateTime start_time = new DateTime();
            DateTime final_time = new DateTime();

            start_time = System.DateTime.Now;
            System.Array.Copy(net_free, NET, net_free.Length);
            System.Array.Copy(dij, ODCost, dij.Length);
            //Console.WriteLine();
            //Console.WriteLine("initial OD cost:");
            //for (int i = 0; i < m; i++)
            //{
            //    Console.WriteLine();
            //    for (int j = 0; j < m; j++)
            //        Console.Write(dij[i, j] + " ");
            //}
            //初始化OD
            for (int i = 0; i < m; i++)
            {
                double temp  = double.MaxValue;
                int    index = 0;
                for (int j = 0; j < p; j++)
                {
                    if (ODCost[i, j] < temp && i != j && r[j] == 0)
                    {
                        temp  = ODCost[i, j];
                        index = j;
                    }
                }
                OD[i, index] = hi[i];
            }
            //Console.WriteLine();
            //Console.WriteLine("initial OD:");
            //for (int i = 0; i < m; i++)
            //{
            //    Console.WriteLine();
            //    for (int j = 0; j < m; j++)
            //        Console.Write(OD[i, j] + " ");
            //}
            Parameter par = new Parameter(hi, ODCost, p, R, m);
            GA        g   = new GA(par);

            g.MutationRate = 0.6;
            g.CrossRate    = 0.6;
            g.optimal();
            r = g.output();
            //Console.WriteLine();
            //for (int i = 0; i < p; i++) Console.Write(r[i] + " ");
            //Console.Read();
            SUE sue = new SUE(NET, capacity, OD);

            ODCost = sue.traffic_assignment();
            bool flag  = false;
            int  flag2 = 0;

            while (!flag)
            {
                par = new Parameter(hi, ODCost, p, R, m);
                g   = new GA(par);
                g.optimal();
                bool flag1 = false;
                for (int i = 0; i < p; i++)
                {
                    if (r[i] != g.output()[i])
                    {
                        flag1 = true;
                    }
                }
                if (!flag1)
                {
                    flag2++;
                }
                else
                {
                    r = g.output();
                }
                if (flag2 == 3)
                {
                    flag = true;
                }
                //Console.WriteLine();
                //for (int i = 0; i < p; i++) Console.Write(r[i] + " ");
                //Console.Read();
                //中断后的OD
                OD = new double[m, m];
                for (int i = 0; i < m; i++)
                {
                    double temp  = double.MaxValue;
                    int    index = 0;
                    for (int j = 0; j < p; j++)
                    {
                        if (ODCost[i, j] < temp && i != j && r[j] == 0)
                        {
                            temp  = ODCost[i, j];
                            index = j;
                        }
                    }
                    OD[i, index] = hi[i];
                }

                sue    = new SUE(NET, capacity, OD);
                ODCost = sue.traffic_assignment();
            }
            //输出结果
            //Console.WriteLine("R-interdiction");
            //for (int i = 0; i < p; i++)
            //    Console.Write(r[i] + " ");
            lbOutput.Items.Clear();
            lbOutput.Items.Add("R-interdiction");
            string output = null;

            for (int i = 0; i < p; i++)
            {
                output += (r[i].ToString() + " ");
            }
            lbOutput.Items.Add(output);
            //输出程序所花费的时间
            final_time = System.DateTime.Now;
            //Console.WriteLine();
            //Console.WriteLine("Used Time:" + (final_time - start_time).ToString());
            //Console.Read();
            lbOutput.Items.Add("Used Time:" + (final_time - start_time).ToString());
            lbOutput.Refresh();
            IFeatureWorkspace featureWorkspace = null;

            try
            {
                // Open the Network Dataset
                //IWorkspace workspace = OpenWorkspace(Application.StartupPath + @"\..\..\..\..\..\Data\SanFrancisco\SanFrancisco.gdb");
                IWorkspace workspace = OpenWorkspace("C:\\Users\\Yuanyun\\Desktop\\Instance\\SanFrancisco\\SanFrancisco.gdb");
                featureWorkspace = workspace as IFeatureWorkspace;
            }
            catch (Exception ex)
            {
                System.Windows.Forms.MessageBox.Show("Unable to open dataset. Error Message: " + ex.Message);
                this.Close();
                return;
            }
            GetFacilityInterdicted(featureWorkspace, r);
            this.toolStripStatusLabel1.Text = "Done!";
        }
Beispiel #53
0
        public async Task <bool> Execute(IWorkspace workspace, object arg)
        {
            var drawingPlane = workspace.DrawingPlane;
            var distance     = await workspace.InputService.GetDistance(defaultDistance : lastOffsetDistance);

            if (distance.Cancel)
            {
                return(false);
            }

            double dist;

            if (distance.HasValue)
            {
                dist = distance.Value;
            }
            else
            {
                dist = lastOffsetDistance;
            }

            workspace.OutputService.WriteLine("Using offset distance of {0}", dist);
            lastOffsetDistance = dist;
            var selection = await workspace.InputService.GetEntity(new UserDirective("Select entity"));

            while (!selection.Cancel && selection.HasValue)
            {
                var ent = selection.Value.Entity;
                if (!EditUtilities.CanOffsetEntity(ent))
                {
                    workspace.OutputService.WriteLine("Unable to offset {0}", ent.Kind);
                    selection = await workspace.InputService.GetEntity(new UserDirective("Select entity"));

                    continue;
                }

                if (!drawingPlane.Contains(ent))
                {
                    workspace.OutputService.WriteLine("Entity must be entirely on the drawing plane to offset");
                    selection = await workspace.InputService.GetEntity(new UserDirective("Select entity"));

                    continue;
                }

                workspace.SelectedEntities.Clear();
                workspace.SelectedEntities.Add(ent);
                var point = await workspace.InputService.GetPoint(new UserDirective("Side to offset"));

                if (point.Cancel || !point.HasValue)
                {
                    break;
                }

                if (!drawingPlane.Contains(point.Value))
                {
                    workspace.OutputService.WriteLine("Point must be on the drawing plane to offset");
                    selection = await workspace.InputService.GetEntity(new UserDirective("Select entity"));

                    continue;
                }

                // do the actual offset
                var updated = EditUtilities.Offset(workspace, ent, point.Value, dist);

                if (updated != null)
                {
                    var oldLayer = workspace.Drawing.ContainingLayer(ent);
                    workspace.Add(oldLayer, updated);
                }

                workspace.SelectedEntities.Clear();
                selection = await workspace.InputService.GetEntity(new UserDirective("Select entity"));
            }

            return(true);
        }
 public ExtendedAttributesAccess(IWorkspace theWorkspace)
 {
     m_ExtendedAttributesTable = commonFunctions.OpenTable(theWorkspace, "ExtendedAttributes");
     m_theWorkspace            = theWorkspace;
 }
        public override StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            var serialiser = new Dev2JsonSerializer();

            return(serialiser.SerializeToBuilder(GetVersion().ToString()));
        }
Beispiel #56
0
 protected override void Initialize(IWorkspace workspace)
 {
     Roles = workspace.All <UserRole>();
 }
Beispiel #57
0
        private  void GetXyDomain(IWorkspace ipWs, ref double dblXMin, ref double dblYMin, ref double dblXMax, ref double dblYMax)
        {
            dblXMin = 10000000;
            dblYMin = 10000000;
            dblXMax = -10000000;
            dblYMax = -10000000;

            IEnumDataset ipEnumFeatureClassDataset;
            ipEnumFeatureClassDataset = ipWs.get_Datasets(esriDatasetType.esriDTAny);
            IDataset ipFeatureClassDataset = ipEnumFeatureClassDataset.Next();
            double x1;
            double y1;
            double x2;
            double y2;
            string sX1, sY1;
            if (ipFeatureClassDataset != null)
            {
                esriDatasetType enuEsriDsType = ipFeatureClassDataset.Type;

                //独立要素类
                if (enuEsriDsType == esriDatasetType.esriDTFeatureClass)
                {
                    IFeatureClass ipFeaCls = (IFeatureClass)ipFeatureClassDataset;
                    IGeoDataset ipGeoDataset = ipFeaCls as IGeoDataset;
                    IEnvelope ipEnve = ipGeoDataset.Extent;
                    if (ipGeoDataset == null)
                    {
                        ipFeatureClassDataset = ipEnumFeatureClassDataset.Next();
                    }

                    x1 = ipEnve.XMin;
                    y1 = ipEnve.YMin;
                    x2 = ipEnve.XMax;
                    y2 = ipEnve.YMax;

                    sX1 = x1.ToString();
                    sY1 = y1.ToString();

                    if (x1 < dblXMin && sX1.IndexOf("QNAN", 0) == -1)
                    {
                        dblXMin = x1;
                    }
                    if (y1 < dblYMin && sY1.IndexOf("QNAN", 0) == -1)
                    {
                        dblYMin = y1;
                    }
                    if (x2 > dblXMax)
                    {
                        dblXMax = x2;
                    }
                    if (y2 > dblYMax)
                    {
                        dblYMax = y2;
                    }

                }
                //要素集中的要素类
                else if (enuEsriDsType == esriDatasetType.esriDTFeatureDataset)
                {
                    IEnumDataset ipEnumDs = ipFeatureClassDataset.Subsets;
                    IDataset ipDs;

                    while ((ipDs = ipEnumDs.Next()) != null)
                    {
                        IFeatureClass ipFeaCls = ipDs as IFeatureClass;
                        IGeoDataset ipGeoDataset = ipFeaCls as IGeoDataset;
                        IEnvelope ipEnve;
                        if (ipGeoDataset == null)
                            continue;
                        ipEnve = ipGeoDataset.Extent;

                        x1 = ipEnve.XMin;
                        y1 = ipEnve.YMin;
                        x2 = ipEnve.XMax;
                        y2 = ipEnve.YMax;

                        sX1 = x1.ToString();
                        sY1 = y1.ToString();

                        if (x1 < dblXMin && sX1.IndexOf("QNAN", 0) == -1)
                        {
                            dblXMin = x1;
                        }
                        if (y1 < dblYMin && sY1.IndexOf("QNAN", 0) == -1)
                        {
                            dblYMin = y1;
                        }
                        if (x2 > dblXMax)
                        {
                            dblXMax = x2;
                        }
                        if (y2 > dblYMax)
                        {
                            dblYMax = y2;
                        }
                        break;
                    }
                }
            }
        }
Beispiel #58
0
 /// <inheritdoc/>
 public Task <bool?> TryConvertModuleToEvaluationAsync(IModuleRegistry moduleRegistry, ParsedModule module, IWorkspace workspace)
 {
     // No conversion needed.
     return(Task.FromResult <bool?>(true));
 }
 public frmCallMapByCommon(OracleCommand oraCmd, IMapControlDefault mapControl, IWorkspace workSpace)
 {
     InitializeComponent();
     m_oraCmd     = oraCmd;
     m_mapControl = mapControl;
     m_gdata      = new GDBData(workSpace);
     m_workSpace  = workSpace;
 }
Beispiel #60
0
        public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace)
        {
            string filePath  = null;
            string directory = null;

            ExecuteMessage msg = new ExecuteMessage {
                HasError = false
            };

            StringBuilder tmp;

            values.TryGetValue("ResourcePath", out tmp);
            if (tmp != null)
            {
                filePath = tmp.ToString();
            }
            values.TryGetValue("Directory", out tmp);
            if (tmp != null)
            {
                directory = tmp.ToString();
            }
            if (string.IsNullOrWhiteSpace(filePath))
            {
                msg.HasError = true;
                msg.SetMessage(FormatMessage(ErrorResource.CannotDeleteFileWithoutFilename, filePath, directory));
                Dev2Logger.Info(msg.Message.ToString());
            }
            else if (string.IsNullOrWhiteSpace(directory))
            {
                msg.HasError = true;
                msg.SetMessage(FormatMessage(ErrorResource.CannotDeleteFileWithoughtDirectory, filePath, directory));
                Dev2Logger.Info(msg.Message.ToString());
            }
            else if (!Directory.Exists(directory))
            {
                msg.HasError = true;
                msg.SetMessage(FormatMessage(string.Format(ErrorResource.DirectoryDoesNotExist, directory), filePath, directory));
                Dev2Logger.Info(msg.Message.ToString());
            }
            else
            {
                var path = Path.Combine(directory, filePath);

                if (!File.Exists(path))
                {
                    msg.HasError = true;
                    msg.SetMessage(FormatMessage(ErrorResource.FileDoesNotExist, filePath, directory));
                    Dev2Logger.Info(msg.Message.ToString());
                }
                else
                {
                    try
                    {
                        File.Delete(path);
                        msg.SetMessage("Success");
                    }
                    catch (Exception ex)
                    {
                        msg.HasError = true;
                        msg.SetMessage(FormatMessage(ex.Message, filePath, directory));
                        Dev2Logger.Error(ex);
                    }
                }
            }

            Dev2JsonSerializer serializer = new Dev2JsonSerializer();

            return(serializer.SerializeToBuilder(msg));
        }