Exemplo n.º 1
0
        public ISNMPProcessStrategy EditProcess(EnumProcessingType PreviousProcessType, EnumProcessingType NewProcessType)
        {
            ISNMPProcessStrategy ProcessProfile = null;

            //Validation
            if (Processes == null && NewProcessType == EnumProcessingType.None)
            {
                return(null);
            }

            switch (NewProcessType)
            {
            case EnumProcessingType.None:
                break;

            case EnumProcessingType.TopologyDiscovery:

                if (!Processes.ContainsKey(NewProcessType))
                {
                    ProcessProfile = new TopologyBuilderStrategy(this, ChangeTrackerHandler);
                    ProcessProfile.TargetDeviceSettings = Processes[PreviousProcessType].TargetDeviceSettings;

                    Processes.Add(NewProcessType, ProcessProfile);
                }
                else
                {
                    ProcessProfile = Processes[NewProcessType];

                    //MJE - Pending of double-checking
                    ((List <ISNMPDeviceSettingDTO>)ProcessProfile.TargetDeviceSettings).AddRange(Processes[PreviousProcessType].TargetDeviceSettings);
                    ProcessProfile.TargetDeviceSettings = ProcessProfile.TargetDeviceSettings.Distinct().ToList();
                }

                Processes.Remove(PreviousProcessType);

                break;

            case EnumProcessingType.PrinterConsumption:
                break;

            default:
                break;
            }

            return(ProcessProfile);
        }
Exemplo n.º 2
0
        public ISNMPProcessStrategy BuildProcess(string SettingID, EnumProcessingType ProcessType)
        {
            ISNMPProcessStrategy  ProcessProfile = null;
            ISNMPDeviceSettingDTO DeviceProfile  = DeviceSettings?[SettingID];

            switch (ProcessType)
            {
            case EnumProcessingType.None:
                break;

            case EnumProcessingType.TopologyDiscovery:

                //Get existing strategy
                if (!Processes.ContainsKey(ProcessType))
                {
                    ProcessProfile = new TopologyBuilderStrategy(this, ChangeTrackerHandler);
                    Processes.Add(ProcessType, ProcessProfile);
                }
                else
                {
                    ProcessProfile = Processes[ProcessType];
                }

                //Add device setting if found
                if (DeviceProfile != null)
                {
                    ProcessProfile.TargetDeviceSettings.Add(DeviceProfile);
                }

                ChangeTrackerHandler(ProcessProfile, typeof(ISNMPProcessStrategy));

                break;

            case EnumProcessingType.PrinterConsumption:
                break;

            default:
                break;
            }

            return(ProcessProfile);
        }