Example #1
0
 public static Task<List<ControlSystemProperty>> GetAllControlSystemProperties()
 {
     var task = new TaskCompletionSource<List<ControlSystemProperty>>();
     var cee = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
     cee.GetAllControlSystemPropertiesCompleted += (s, e) => task.SetResult(e.Result);
     cee.GetAllControlSystemPropertiesAsync();
     return task.Task;
 }
        public AddEditExistingControlSystemComponentPropertyViewModel(ControlSystemComponentType controlSystemEquipmentComponentType, int? groupId)
        {
            //Adding
            PropertyComboEnabled = true;
            GroupComboEnabled = true;
            mGroupId = groupId;

            mComponentTypeId = controlSystemEquipmentComponentType.Id;
            OkButtonCommand = new DelegateCommand<object>(OkButtonHander, CanModify);
            CancelButtonCommand = new DelegateCommand<object>(CancelButtonHander, x => true);

            var cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);
            Properties = new List<ControlSystemProperty>();

            //Load Component types
            EventHandler<GetAllControlSystemPropertiesCompletedEventArgs> fetchCompleted =
                (s, eventArgs) =>
                {
                    var getControlSystemPropertiesTask = DatabaseLoader.GetControlSystemProperties(controlSystemEquipmentComponentType.Id);
                    var getControlSystemComponentTypeGroupsTask = DatabaseLoader.GetControlSystemComponentTypeGroups(
                        CommonUtils.EquipmentPropertyType.ControlEngineeringProperty, controlSystemEquipmentComponentType.Id);

                    var tasks = new List<Task> {getControlSystemPropertiesTask, getControlSystemComponentTypeGroupsTask};

                    Task.Factory.ContinueWhenAll(tasks.ToArray(), xx =>
                    {
                        CMS.UiFactory.StartNew(() =>
                        {
                            Groups = getControlSystemComponentTypeGroupsTask.Result;
                            Groups.Insert(0, new ComponentTypeGroup {Name = "Null"});

                            var listOfAssignedPropertyIds = new List<int>();
                            getControlSystemPropertiesTask.Result.ForEach(x => listOfAssignedPropertyIds.Add(x.Id));

                            foreach (var componentProperty in eventArgs.Result)
                            {
                                if (!listOfAssignedPropertyIds.Contains(componentProperty.Id))
                                {
                                    Properties.Add(componentProperty);
                                }
                            }

                            if (Properties.Count > 0) SelectedProperty = Properties[0];
                            if (Groups.Count > 0)
                            {
                                if (groupId.HasValue)
                                {
                                    Group = Groups.FirstOrDefault(x => x.Id == groupId.Value);

                                    GroupComboEnabled = false;
                                }
                                else
                                {
                                    Group = Groups[0];
                                }
                                OriginalSelectedGroup = Group;
                            }

                            Loaded();
                        });
                    });

                    cmsWebServiceClient.GetControlSystemPropertiesAsync(controlSystemEquipmentComponentType.Id);
                };
            cmsWebServiceClient.GetAllControlSystemPropertiesCompleted += fetchCompleted;
            cmsWebServiceClient.GetAllControlSystemPropertiesAsync();
        }
        private void LoadControlSystemEngineeringProperties(NodeView expandedNode)
        {
            var cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);

            EventHandler<GetAllControlSystemPropertiesCompletedEventArgs> fetchCompleted = null;
            fetchCompleted = (s, eventArgs) =>
            {
                var properties = eventArgs.Result;
                if (properties != null)
                {
                    foreach (var property in properties)
                    {
                        var child = new NodeView(expandedNode)
                        {
                            Id = property.Id,
                            Name = property.Name,
                            Description = property.Description,
                            Icon = "/CmsEquipmentDatabase;component/Images/Configuration.png",
                            Type = NodeType.ControlSystemProperty,
                            HasChildren = false,
                            SortField = property.Name
                        };
                        expandedNode.Children.Add(child);
                        cmsWebServiceClient.GetAllControlSystemPropertiesCompleted -= fetchCompleted;
                    }
                    expandedNode.Sort();
                }
            };
            cmsWebServiceClient.GetAllControlSystemPropertiesCompleted += fetchCompleted;
            cmsWebServiceClient.GetAllControlSystemPropertiesAsync();
        }
        public void LoadExistingProperties()
        {
            CmsWebServiceClient cmsWebServiceClient = new CmsWebServiceClient(Utils.WcfBinding, Utils.WcfEndPoint);

            switch (mEquipmentPropertyType)
            {
                case CommonUtils.EquipmentPropertyType.ControlEngineeringProperty:
                    cmsWebServiceClient.GetAllControlSystemPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllControlSystemPropertiesAsync();
                    break;
                case CommonUtils.EquipmentPropertyType.ControlTuningProperty:
                    cmsWebServiceClient.GetAllControlSystemTuningPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllControlSystemTuningPropertiesAsync();
                    break;

                case CommonUtils.EquipmentPropertyType.ControlInterlockProperty:
                    cmsWebServiceClient.GetAllInterlockPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllInterlockPropertiesAsync();
                    break;
                case CommonUtils.EquipmentPropertyType.ElectricalProperty:
                    cmsWebServiceClient.GetAllElectricalEquipmentPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllElectricalEquipmentPropertiesAsync();
                    break;
                case CommonUtils.EquipmentPropertyType.InstrumentProperty:
                    cmsWebServiceClient.GetAllInstrumentPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllInstrumentPropertiesAsync();
                    break;
                case CommonUtils.EquipmentPropertyType.MechanicalProperty:
                    cmsWebServiceClient.GetAllMechanicalEquipmentPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllMechanicalEquipmentPropertiesAsync();
                    break;
                case CommonUtils.EquipmentPropertyType.MobilePlantProperty:
                    cmsWebServiceClient.GetAllMobilePlantPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllMobilePlantPropertiesAsync();
                    break;
                case CommonUtils.EquipmentPropertyType.PipeProperty:
                    cmsWebServiceClient.GetAllPipePropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllPipePropertiesAsync();
                    break;

                case CommonUtils.EquipmentPropertyType.SystemTestingProperty:
                    cmsWebServiceClient.GetAllControlSystemTestingPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllControlSystemTestingPropertiesAsync();
                    break;

                case CommonUtils.EquipmentPropertyType.ComponentTestingProperty:
                    cmsWebServiceClient.GetAllControlSystemComponentTestingPropertiesCompleted += (s, e) =>
                    {
                        if (ExistingProperties == null) ExistingProperties = new List<IComponentProperty>();
                        ExistingProperties.Clear();

                        e.Result.ForEach(ExistingProperties.Add);
                        mPropertiesLoaded = true;
                        OnDataLoaded();

                    };
                    cmsWebServiceClient.GetAllControlSystemComponentTestingPropertiesAsync();
                    break;
            }
        }