private void AddExistingCalibrationComponentProperty(NodeView nodeView)
        {
            int calibrationEquipmentComponentTypeId = nodeView.Id;
            CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
            AddEditExistingCalibrationComponentPropertyDialog dialog;

            cmsWebServiceClient.GetCalibrationComponentTypeCompleted +=
                (s, e) =>
                {
                    dialog = new AddEditExistingCalibrationComponentPropertyDialog(e.Result);
                    dialog.Show();

                    dialog.Closed += (s1, e1) =>
                    {

                        if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
                        {
                            EventHandler<AddUpdateCalibrationComponentTypePropertyCompletedEventArgs> addCompleted = null;
                            addCompleted = (s2, eventArgs) =>
                            {
                                CalibrationComponentTypeProperty pcpt = eventArgs.Result;

                                if (pcpt != null)
                                {
                                    NodeView child = new NodeView(nodeView)
                                    {
                                        Id = pcpt.Id,
                                        Name = dialog.CalibrationComponentTypeProperty.CalibrationProperty.Name,
                                        Description = dialog.CalibrationComponentTypeProperty.CalibrationProperty.Description,
                                        Icon = "/CmsEquipmentDatabase;component/Images/Configuration.png",
                                        Type = NodeType.CalibrationComponentTypeProperty,
                                        HasChildren = false,
                                        SortField = dialog.CalibrationComponentTypeProperty.Ordinal.ToString()
                                    };
                                    if (nodeView.ChildrenLoaded)
                                    {
                                        nodeView.Children.Add(child);
                                        nodeView.Sort();
                                    }
                                }
                                cmsWebServiceClient.AddUpdateCalibrationComponentTypePropertyCompleted -= addCompleted;

                            };

                            cmsWebServiceClient.AddUpdateCalibrationComponentTypePropertyCompleted += addCompleted;

                            CalibrationComponentTypeProperty calibrationEquipmentComponentTypeProperty = new CalibrationComponentTypeProperty
                            {
                                CalibrationComponentTypeId = calibrationEquipmentComponentTypeId,
                                CalibrationPropertyId = dialog.CalibrationComponentTypeProperty.CalibrationPropertyId,
                                CalibrationEngineeringUnitId = dialog.CalibrationComponentTypeProperty.CalibrationEngineeringUnitId,
                                Ordinal = dialog.CalibrationComponentTypeProperty.Ordinal
                            };

                            cmsWebServiceClient.AddUpdateCalibrationComponentTypePropertyAsync(calibrationEquipmentComponentTypeProperty);
                        }
                    };
                };

            cmsWebServiceClient.GetCalibrationComponentTypeAsync(calibrationEquipmentComponentTypeId);
        }
        private void EditCalibrationComponentTypeProperty(NodeView nodeView)
        {
            AddEditExistingCalibrationComponentPropertyDialog dialog = new AddEditExistingCalibrationComponentPropertyDialog(nodeView.Id);
            dialog.Closed +=
                (s1, e1) =>
                {
                    if (dialog.DialogResult.HasValue && dialog.DialogResult.Value)
                    {
                        CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
                        EventHandler<AddUpdateCalibrationComponentTypePropertyCompletedEventArgs> addCompleted = null;
                        addCompleted = (s2, eventArgs) =>
                        {
                            CalibrationComponentTypeProperty pcpt = eventArgs.Result;

                            if (pcpt != null)
                            {
                                nodeView.Name = dialog.CalibrationComponentTypeProperty.CalibrationProperty.Name;
                                nodeView.Description = dialog.CalibrationComponentTypeProperty.CalibrationProperty.Description;
                                nodeView.SortField = dialog.CalibrationComponentTypeProperty.Ordinal.ToString();
                            }

                            cmsWebServiceClient.AddUpdateCalibrationComponentTypePropertyCompleted -= addCompleted;
                            nodeView.Parent.Sort();
                        };

                        cmsWebServiceClient.AddUpdateCalibrationComponentTypePropertyCompleted += addCompleted;

                        CalibrationComponentTypeProperty CalibrationEquipmentComponentTypeProperty = new CalibrationComponentTypeProperty
                        {
                            CalibrationComponentTypeId = dialog.CalibrationComponentTypeProperty.CalibrationComponentTypeId,
                            CalibrationPropertyId = dialog.CalibrationComponentTypeProperty.CalibrationPropertyId,
                            CalibrationEngineeringUnitId = dialog.CalibrationComponentTypeProperty.CalibrationEngineeringUnitId,
                            Ordinal = dialog.CalibrationComponentTypeProperty.Ordinal
                        };

                        cmsWebServiceClient.AddUpdateCalibrationComponentTypePropertyAsync(CalibrationEquipmentComponentTypeProperty);
                    }
                };
            dialog.Show();
        }