static void Copy(IWorkspace source, IWorkspace destination, IWorkspaceItem workspaceItem, string roles) { if (source.Equals(destination)) { return; } enDynamicServiceObjectType serviceType; if (!Enum.TryParse(workspaceItem.ServiceType, out serviceType)) { serviceType = enDynamicServiceObjectType.DynamicService; } #region TODO: Fix Map ResourceType from workspaceItem.ServiceType // TODO: FIX mapping ResourceType from workspaceItem.ServiceType switch (serviceType) { case enDynamicServiceObjectType.BizRule: break; case enDynamicServiceObjectType.DynamicService: break; case enDynamicServiceObjectType.ServiceAction: break; case enDynamicServiceObjectType.ServiceActionCase: break; case enDynamicServiceObjectType.ServiceActionCases: break; case enDynamicServiceObjectType.ServiceActionInput: break; case enDynamicServiceObjectType.Source: break; case enDynamicServiceObjectType.Validator: break; case enDynamicServiceObjectType.WorkflowActivity: break; case enDynamicServiceObjectType.UnitTest: break; default: throw new ArgumentOutOfRangeException(); } #endregion ResourceCatalog.Instance.CopyResource(workspaceItem.ID, source.ID, destination.ID, roles); }
static void Copy(IWorkspace source, IWorkspace destination, IWorkspaceItem workspaceItem, string roles) { if(source.Equals(destination)) { return; } enDynamicServiceObjectType serviceType; if(!Enum.TryParse(workspaceItem.ServiceType, out serviceType)) { serviceType = enDynamicServiceObjectType.DynamicService; } #region TODO: Fix Map ResourceType from workspaceItem.ServiceType // TODO: FIX mapping ResourceType from workspaceItem.ServiceType switch(serviceType) { case enDynamicServiceObjectType.BizRule: break; case enDynamicServiceObjectType.DynamicService: break; case enDynamicServiceObjectType.ServiceAction: break; case enDynamicServiceObjectType.ServiceActionCase: break; case enDynamicServiceObjectType.ServiceActionCases: break; case enDynamicServiceObjectType.ServiceActionInput: break; case enDynamicServiceObjectType.Source: break; case enDynamicServiceObjectType.Validator: break; case enDynamicServiceObjectType.WorkflowActivity: break; case enDynamicServiceObjectType.UnitTest: break; default: throw new ArgumentOutOfRangeException(); } #endregion ResourceCatalog.Instance.CopyResource(workspaceItem.ID, source.ID, destination.ID, roles); }
private void btnXOK_Click(object sender, EventArgs e) { IFeatureLayer pFL = getEditLayer.isExistLayer(inMap) as IFeatureLayer; if (pFL != null) { IFeatureSelection pFS = pFL as IFeatureSelection; pMapCtl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); pFS.Clear(); pMapCtl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); } string cPath = Application.StartupPath + "\\..\\Res\\Xml\\EditLayer.xml"; if (!File.Exists(cPath)) { return; } if (this.WriteLog) { Plugin.LogTable.Writelog("设置" + pFL.Name + "为编辑图层"); } XmlDocument cXmlDoc = new XmlDocument(); if (cXmlDoc != null) { cXmlDoc.Load(cPath); string[] nm = cboLayers.Text.Split('(', ')'); XmlNodeList xnl = cXmlDoc.GetElementsByTagName("EditLayerInfo"); xnl.Item(0).Attributes["LayerName"].Value = nm[1]; xnl.Item(0).Attributes["FCName"].Value = nm[0]; } cXmlDoc.Save(cPath); IWorkspace curW = ((getEditLayer.isExistLayer(inMap) as IFeatureLayer).FeatureClass as IDataset).Workspace; if (preW != null && !curW.Equals(preW)) { IWorkspaceEdit preWE = preW as IWorkspaceEdit; bool hasEdit = false; preWE.HasEdits(ref hasEdit); if (hasEdit) { if (MessageBox.Show("您更改了工作空间,是否保存之前的编辑?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) { preWE.StopEditing(true); } else { preWE.StopEditing(false); pMapCtl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeography, null, null); } } } IWorkspaceEdit iWE = curW as IWorkspaceEdit; if (!iWE.IsBeingEdited()) { iWE.StartEditing(false); } }
/// <summary> /// 获取MAP上选择的源要素 /// </summary> private void GetMapFeature() { AttributeShow_state.state_brush = true; //当确定是选择一个要素源时,才改变状态 IEnumFeature IEnum_dataset = myHook.MapControl.Map.FeatureSelection as IEnumFeature; //行到被选择的要素的数据集 IEnum_dataset.Reset(); IFeature Feature = IEnum_dataset.Next(); IWorkspace space = MoData.v_CurWorkspaceEdit as IWorkspace;//得到相应的操作空间 while (Feature != null) { m_CurFeatCls = Feature.Class as IFeatureClass; IDataset dataset_space = m_CurFeatCls as IDataset;//中转成一个要素集合 if (!space.Equals(dataset_space.Workspace)) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "编辑空间不一致,请重新选择要素!"); myHook.MapControl.Map.ClearSelection(); return; } string shape = ""; //确定要素的SHAPE是什么 string Name = Feature.Class.AliasName; //层名 AttributeShow_state.OID = Feature.OID.ToString(); //得到源OID #region 得到要素的SHAPE类型:注记,面,线,点 if (Feature.FeatureType == esriFeatureType.esriFTAnnotation) { shape = "注记"; } else { IGeometry geometry = Feature.Shape; //得到要素的几何图形 switch (geometry.GeometryType.ToString()) //确定它的几何要素类型 { case "esriGeometryPolygon": shape = "面"; break; case "esriGeometryPolyline": shape = "线"; break; case "esriGeometryPoint": shape = "点"; break; } } #endregion IFields fields = Feature.Fields; int count = fields.FieldCount; //得到该要素共有多少个属性 AttributeShow_state.feature_count = count; //将源要素的字段数赋值给总的全局数 string value = ""; //接收该要素的值 for (int n = 0; n < count; n++) { string name = fields.get_Field(n).Name.ToLower(); if (name == "shape") { value += shape + ","; } else { string F_value = Feature.get_Value(n).ToString(); if (F_value == string.Empty) { F_value = "null"; } value += name + " " + F_value + ","; } } string processStr = value.Substring(0, value.Length - 1); AttributeShow_state.hs_Feature.Add(Name, processStr); Feature = IEnum_dataset.Next(); } myHook.MapControl.Map.ClearSelection(); myHook.MapControl.ActiveView.Refresh(); }
/// <summary> /// 当单元格的值更改时,进行编辑修改 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void DT_VIEW_Attriubte_CellValueChanged(object sender, DataGridViewCellEventArgs e) { int count = myHook.MapControl.Map.LayerCount; for (int n = 0; n < count; n++) { ILayer layer = myHook.MapControl.Map.get_Layer(n); if (layer == null) { continue; } //首先判别工程打开的数据是不是以组形式开展的 if (layer is IGroupLayer) { if (layer.Name == "示意图") { continue; } #region 遍历组下面的普通层 IWorkspace space = MoData.v_CurWorkspaceEdit as IWorkspace;//得到相应的操作空间 ICompositeLayer pComLayer = layer as ICompositeLayer; for (int j = 0; j < pComLayer.Count; j++) { ILayer mLayer = pComLayer.get_Layer(j); if (mLayer == null) { return; } IFeatureLayer layer_space = mLayer as IFeatureLayer; //得到要素层 IDataset dataset_space = layer_space.FeatureClass as IDataset; //中转成一个要素集合 if (!space.Equals(dataset_space.Workspace)) { SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "不在同一个操作空间下,不能编辑!"); return;//如果操作的空间不一样就进行下一个 } //////////对SDE图层名称进行处理 string getname = string.Empty; if (layer_space.DataSourceType == "SDE Feature Class") { getname = layer_name.Substring(layer_name.IndexOf('.') + 1); } else { getname = layer_name; } if (mLayer.Name == getname) { IFeatureLayer F_layer = mLayer as IFeatureLayer;//将图层转成要素层 try { MoData.v_CurWorkspaceEdit.StartEditOperation(); //编辑操作开始 string temp = DT_VIEW_Attriubte.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //得到修改后的值 int oid = Convert.ToInt32(OID); //得到要更新的OID int index = F_layer.FeatureClass.FindField(DT_VIEW_Attriubte.Rows[e.RowIndex].Cells[0].Value.ToString()); //得到所有的索引要素行 F_layer.FeatureClass.GetFeature(oid).set_Value(index, temp); //更新值 F_layer.FeatureClass.GetFeature(oid).Store(); //更新到PDB里,存储 MoData.v_CurWorkspaceEdit.StopEditOperation(); //结束编辑操作 UpdateHashTable(temp, e.ColumnIndex, e.RowIndex); } catch (Exception eError) { //****************************************** //guozheng added System Exception log if (SysCommon.Log.Module.SysLog == null) { SysCommon.Log.Module.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog(); } SysCommon.Log.Module.SysLog.Write(eError); //****************************************** Re_readValue(); SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "您输入的内容类型不正确,请重新输入!"); } //break; return; } } #endregion } else { #region 如果不是组,直接遍历 if (layer.Name == layer_name) { IFeatureLayer F_layer = layer as IFeatureLayer; //将图层转成要素层空间 IDataset det = F_layer.FeatureClass as IDataset; //转成数据集,用来得到编辑空间 try { MoData.v_CurWorkspaceEdit.StartEditOperation(); //编辑操作开始 string temp = DT_VIEW_Attriubte.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString(); //得到修改后的值 int oid = Convert.ToInt32(OID); //得到要更新的OID F_layer.FeatureClass.GetFeature(oid).set_Value(e.RowIndex, temp); //更新值 F_layer.FeatureClass.GetFeature(oid).Store(); //更新到PDB里,存储 MoData.v_CurWorkspaceEdit.StopEditOperation(); //结束编辑操作 UpdateHashTable(temp, e.ColumnIndex, e.RowIndex); } catch (Exception eError) { //****************************************** //guozheng added System Exception log if (SysCommon.Log.Module.SysLog == null) { SysCommon.Log.Module.SysLog = new SysCommon.Log.clsWriteSystemFunctionLog(); } SysCommon.Log.Module.SysLog.Write(eError); //****************************************** Re_readValue(); SysCommon.Error.ErrorHandle.ShowFrmErrorHandle("提示", "您输入的内容类型不正确,请重新输入!"); } break; } #endregion } } }