public AddEditAlarmPriorityViewModel()
 {
     //NEW
     AlarmPriority = new ControlSystemAlarmPriority();
     LoadData();
     InitialiseCommandButtons();
 }
        private void LoadData()
        {
            var getPurposeListTask = DatabaseLoader.GetControlSystemAlarmPurposes();
            var getConsequenceListTask = DatabaseLoader.GetControlSystemAlarmConsequences();
            var getResponseListTask = DatabaseLoader.GetControlSystemAlarmResponses();
            var getAlarmColoursTask = DatabaseLoader.GetControlSystemAlarmColours();
            var getAlarmPrioritiesTask = DatabaseLoader.GetControlSystemAlarmPriorities();

            var tasks = new List<Task>
            {
                getPurposeListTask,
                getConsequenceListTask,
                getResponseListTask,
                getAlarmColoursTask,
                getAlarmPrioritiesTask
            };

            Task.Factory.ContinueWhenAll(tasks.ToArray(), xx =>
            {
                CMS.UiFactory.StartNew(() =>
                {
                    Consequences = getConsequenceListTask.Result;
                    Responses = getResponseListTask.Result;
                    Purposes = getPurposeListTask.Result;
                    Priorities = getAlarmPrioritiesTask.Result;

                    ControlSystemAlarmPriority noSelectionPriority = new ControlSystemAlarmPriority { Id = -1, Name = " -- " };
                    Priorities.Insert(0, noSelectionPriority);

                    Colours = getAlarmColoursTask.Result;
                    ControlSystemAlarmColour noSelectionColour = new ControlSystemAlarmColour { Id = -1, Name = " -- " };
                    Colours.Insert(0, noSelectionColour);

                    ControlSystemAlarmPurpose noSelectionPurpose = new ControlSystemAlarmPurpose { Id = -1, Name = " -- " };
                    Purposes.Insert(0, noSelectionPurpose);

                    ControlSystemAlarmResponse noSelectionResponse = new ControlSystemAlarmResponse { Id = -1, Name = " -- " };
                    Responses.Insert(0, noSelectionResponse);

                    ControlSystemAlarmConsequence noSelectionConsequence = new ControlSystemAlarmConsequence { Id = -1, Name = " -- " };
                    Consequences.Insert(0, noSelectionConsequence);

                    OnDataLoaded();

                    RaiseAllPropertyChangedEvents();

                });
            });
        }
        private void LoadData()
        {
            //Task<List<ControlSystemAlarmPurpose>> getPurposeListTask = DatabaseLoader.GetControlSystemAlarmPurposes();
            //Task<List<ControlSystemAlarmConsequence>> getConsequenceListTask = DatabaseLoader.GetControlSystemAlarmConsequences();
            //Task<List<ControlSystemAlarmResponse>> getResponseListTask = DatabaseLoader.GetControlSystemAlarmResponses();
            //Task<List<ControlSystemAlarmColour>> getAlarmColoursTask = DatabaseLoader.GetControlSystemAlarmColours();
            //Task<List<ControlSystemAlarmPriority>> getAlarmPrioritiesTask = DatabaseLoader.GetControlSystemAlarmPriorities();

            var getCentumsForLevelTask = DatabaseLoader.GetControlSystemAlarmMappingCentumsForLevel(mLevel);
            var getAlarmPropertyValuesRequiredForComponentTypeTask = DatabaseLoader.GetAlarmPropertyValuesRequiredForComponentType(mControlSystemComponent.ControlSystemComponentTypeId);

            var tasks = new List<Task>
            {
                //getPurposeListTask,
                //getConsequenceListTask,
                //getResponseListTask,
                //getAlarmColoursTask,
                //getAlarmPrioritiesTask,
                getCentumsForLevelTask,
                getAlarmPropertyValuesRequiredForComponentTypeTask
            };

            Task.Factory.ContinueWhenAll(tasks.ToArray(), xx =>
            {
                CMS.UiFactory.StartNew(() =>
                {
                    var consequences = mAlarmLists.Consequences;//getConsequenceListTask.Result;
                    var responses = mAlarmLists.Responses;//getResponseListTask.Result;
                    var purposes = mAlarmLists.Purposes;//getPurposeListTask.Result;
                    var priorities = mAlarmLists.Priorities;//getAlarmPrioritiesTask.Result;
                    var colours = mAlarmLists.AlarmColours;//getAlarmColoursTask.Result;
                    var centums = getCentumsForLevelTask.Result;

                    ControlSystemAlarmPriority noSelectionPriority = new ControlSystemAlarmPriority { Id = -1, Name = " -- " };
                    priorities.Insert(0, noSelectionPriority);

                    ControlSystemAlarmColour noSelectionColour = new ControlSystemAlarmColour { Id = -1, Name = " -- " };
                    colours.Insert(0, noSelectionColour);

                    ControlSystemAlarmPurpose noSelectionPurpose = new ControlSystemAlarmPurpose { Id = -1, Name = " -- " };
                    purposes.Insert(0, noSelectionPurpose);

                    ControlSystemAlarmResponse noSelectionResponse = new ControlSystemAlarmResponse { Id = -1, Name = " -- " };
                    responses.Insert(0, noSelectionResponse);

                    ControlSystemAlarmConsequence noSelectionConsequence = new ControlSystemAlarmConsequence { Id = -1, Name = " -- " };
                    consequences.Insert(0, noSelectionConsequence);

                    if (AlarmPropertyValues.Any())
                    {
                        AlarmPropertyValues.Clear();
                    }

                    if (mControlSystemComponent.Id == 0 && !mSaveRequiredShown)
                    {
                        mSaveRequiredShown = true;
                        PopupDialog pop = new PopupDialog(PopupDialogType.Information, "Save the new Component first in order to see the Alarm Details.", "Save Required");
                        pop.Show();
                    }
                    else
                    {
                        if (getAlarmPropertyValuesRequiredForComponentTypeTask.Result != null && getAlarmPropertyValuesRequiredForComponentTypeTask.Result.Any())
                        {
                            foreach (var propertyValue in getAlarmPropertyValuesRequiredForComponentTypeTask.Result)
                            {
                                var match = (from x in mControlSystemComponent.ControlSystemAlarmPropertyValues where x.ControlSystemAlarmPropertyId == propertyValue.ControlSystemAlarmPropertyId select x).FirstOrDefault();

                                if (match == null)
                                {
                                    propertyValue.ControlSystemAlarmProperty = propertyValue.ControlSystemAlarmProperty;
                                    propertyValue.ControlSystemComponent = mControlSystemComponent;
                                    mControlSystemComponent.ControlSystemAlarmPropertyValues.Add(propertyValue);
                                }
                            }
                        }
                    }

                    var orderedByNameList = (from x in mControlSystemComponent.ControlSystemAlarmPropertyValues orderby x.ControlSystemAlarmProperty.Name select x).ToList();

                    orderedByNameList.ForEach(x => AlarmPropertyValues.Add(
                        new ControlSystemAlarmPropertiesWrapViewModel(centums, x, mLevel, priorities, colours, purposes, responses, consequences)));

                    RaisePropertyChanged("AlarmPropertyValues");
                    SelectedAlarmPropertyValue = AlarmPropertyValues.FirstOrDefault();

                });
            });
        }
Esempio n. 4
0
 private static bool MatchPriorityNameFailed(List<ControlSystemAlarmPriority> newPriorityListNames, AlarmTable matchedAlarmTable, Alarm oldAlarm, out ControlSystemAlarmPriority matchedPriority)
 {
     matchedPriority = (from x in newPriorityListNames where x.Name.Equals(matchedAlarmTable.AlarmPriority.Priority, StringComparison.CurrentCultureIgnoreCase) select x).FirstOrDefault();
     if (matchedPriority == null)
     {
         //Logger.Out(string.Format("MatchPriorityNameFailed on Alarm ID {0}:- could not match Alarm Priority using name '{1}'. Step 3 in trying to detemine 'Priority' property.", oldAlarm.Id, matchedAlarmTable.AlarmPriority.Priority));
         return true;
     }
     return false;
 }
        public DbOperationResult<ControlSystemAlarmPriority> SaveControlSystemAlarmPriority(ControlSystemAlarmPriority priority)
        {
            var result = new DbOperationResult<ControlSystemAlarmPriority>();

            try
            {
                using (var cee = new CmsEntities())
                {
                    var original = (from x in cee.ControlSystemAlarmPriorities where x.Id == priority.Id select x).FirstOrDefault();

                    if (original == null)
                    {
                        cee.ControlSystemAlarmPriorities.Add(priority);
                        cee.SaveChanges();
                        result.EntityResult = priority;
                    }
                    else
                    {
                        cee.Entry(original).CurrentValues.SetValues(priority);
                        cee.SaveChanges();
                        result.EntityResult = original;
                    }
                }
            }
            catch (Exception ex)
            {
                log.Error("", ex, ex.ToString());
                result.ServerErrorMessages.Add(string.Format("Could not Save ControlSystem Alarm Consequence.{0}{1}", Environment.NewLine, ex.Message));
            }
            return result;
        }