/// <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); }
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; }
public Folder(string name, IWorkspace workspace) { this.name = name; _workspace = workspace as Workspace; this.folders = new List<IFolder>(); this.items = new List<IItem>(); }
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); }
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(); }
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; } }
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); }
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); } } }
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); }
public Projection(ISpatialReference pSpatialReference, IWorkspace pWorkSpace) { IProjectedCoordinateSystem pProjectedCoordinateSys = pSpatialReference as IProjectedCoordinateSystem; m_pSpatialReference = pSpatialReference; m_pIProjection = pProjectedCoordinateSys.Projection; m_pWorkspace = pWorkSpace; }
/// <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); }
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); }
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); }
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); } }
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; }
//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(); }
/// <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; }
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;//结束时间 }
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); } } }
/// <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); } }
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(); }
//列出全部的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)); } }
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); } }
//连接测试 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; }
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)); }
/// <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); } }
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); }
/// <summary> /// 获取数据库下全部的FD名称 /// </summary> /// <returns></returns> private List <string> GetAllFeatureDatasetNames(IWorkspace pWS) { return(GetDatasetNames(pWS, esriDatasetType.esriDTFeatureDataset)); }
/// <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); } }
//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); } }
/// <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); }
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); }
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!"; }
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())); }
protected override void Initialize(IWorkspace workspace) { Roles = workspace.All <UserRole>(); }
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; } } } }
/// <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; }
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)); }