public AddEditAlarmResponseViewModel()
 {
     //NEW
     AlarmResponse = new ControlSystemAlarmResponse();
     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();

                });
            });
        }
Exemple #4
0
        private static bool MatchResponseFailed(List<ControlSystemAlarmResponse> newResponseListNames, Alarm oldAlarm, out ControlSystemAlarmResponse matchResponse)
        {
            matchResponse = null;

            if (oldAlarm.AlarmResponse == null)
            {
                return false;
            }

            matchResponse = (from x in newResponseListNames where x.Name.Equals(oldAlarm.AlarmResponse.Description, StringComparison.CurrentCultureIgnoreCase) select x).FirstOrDefault();
            if (matchResponse == null)
            {
                Logger.Out(string.Format("MatchResponseFailed on Alarm ID {0}:- could not match Alarm Response using Name '{1}'.", oldAlarm.Id, oldAlarm.AlarmResponse.Description));
                return true;
            }
            return false;
        }
        public DbOperationResult<ControlSystemAlarmResponse> SaveControlSystemAlarmResponse(ControlSystemAlarmResponse response)
        {
            var result = new DbOperationResult<ControlSystemAlarmResponse>();

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

                    if (original == null)
                    {
                        cee.ControlSystemAlarmResponses.Add(response);
                        cee.SaveChanges();
                        result.EntityResult = response;
                    }
                    else
                    {
                        cee.Entry(original).CurrentValues.SetValues(response);
                        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;
        }