private void EditGroup(NodeView nodeView) { var cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); EventHandler<GetComponentTypeGroupCompletedEventArgs> getComponentTypeGroupCompleted = null; var existingGroupNames = nodeView.Parent.Children.Where(x => x.Type == NodeType.ComponentTypeGroup).Select(x => x.Name).ToList(); existingGroupNames.Remove(nodeView.Name); getComponentTypeGroupCompleted = (s, eventArgs) => { var componentTypeGroup = eventArgs.Result; var dialog = new AddEditComponentTypeGroupDialog(componentTypeGroup, existingGroupNames, int.Parse(nodeView.SortField)); dialog.Show(); dialog.Closed += (s1, e1) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { EventHandler<AddEditComponentTypeGroupCompletedEventArgs> editCompleted = null; editCompleted = (s2, e2) => { var typeGroup = e2.Result; nodeView.Name = typeGroup.Name; nodeView.Description = typeGroup.Description; nodeView.SortField = dialog.Ordinal.ToString(); UpdateGroupComponentTypeProperty(GetEquipmentComponentPropertyType(nodeView.Parent), nodeView.Id, dialog.Ordinal); cmsWebServiceClient.AddEditComponentTypeGroupCompleted -= editCompleted; nodeView.Parent.Sort(); }; cmsWebServiceClient.AddEditComponentTypeGroupCompleted += editCompleted; cmsWebServiceClient.AddEditComponentTypeGroupAsync(GetEquipmentComponentPropertyType(nodeView.Parent), dialog.ComponentTypeGroup); } }; cmsWebServiceClient.GetComponentTypeGroupCompleted -= getComponentTypeGroupCompleted; }; cmsWebServiceClient.GetComponentTypeGroupCompleted += getComponentTypeGroupCompleted; cmsWebServiceClient.GetComponentTypeGroupAsync(nodeView.GroupId); }
private void AddNewGroup(NodeView nodeView) { var cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint); var existingGroupNames = nodeView.Children.Where(x => x.Type == NodeType.ComponentTypeGroup).Select(x => x.Name).ToList(); var dialog = new AddEditComponentTypeGroupDialog(existingGroupNames); dialog.Show(); dialog.Closed += (s1, e1) => { if (dialog.DialogResult.HasValue && dialog.DialogResult.Value) { EventHandler<AddEditComponentTypeGroupCompletedEventArgs> addCompleted = null; addCompleted = (s2, eventArgs) => { var componentTypeGroup = eventArgs.Result; if (componentTypeGroup != null) { cmsWebServiceClient.AddGroupComponentTypePropertyCompleted += (s, e) => { var child = new NodeView(nodeView) { Id = e.Result, //ComponentTypePropertyId GroupId = componentTypeGroup.Id, Name = dialog.ComponentTypeGroup.Name, Description = dialog.ComponentTypeGroup.Description, Icon = "/CmsEquipmentDatabase;component/Images/Configuration.png", Type = NodeType.ComponentTypeGroup, HasChildren = true, SortField = dialog.Ordinal.ToString() }; if (nodeView.ChildrenLoaded) { nodeView.Children.Add(child); nodeView.Sort(); } }; var controlSystemComponentTypeId = nodeView.Parent.Id; var ordinal = dialog.Ordinal; var componentTypeGroupId = componentTypeGroup.Id; //This will add new row to the Equipment ComponentTypeProperty and mark it as Group cmsWebServiceClient.AddGroupComponentTypePropertyAsync(GetEquipmentComponentPropertyType(nodeView), controlSystemComponentTypeId, componentTypeGroupId, ordinal); } cmsWebServiceClient.AddEditComponentTypeGroupCompleted -= addCompleted; }; cmsWebServiceClient.AddEditComponentTypeGroupCompleted += addCompleted; cmsWebServiceClient.AddEditComponentTypeGroupAsync(GetEquipmentComponentPropertyType(nodeView), dialog.ComponentTypeGroup); } }; }