private void EditProcess()
        {
            string[]             ProcessingOptions;
            bool                 wrongInput = true;
            int                  optionInput;
            EnumProcessingType   selectedOption;
            string               skey    = null;
            ISNMPProcessStrategy sresult = null;

            //Ask for key
            do
            {
                Console.Write("Insert process definition name: ");
                skey = Console.ReadLine();

                wrongInput = string.IsNullOrWhiteSpace(skey);
                if (wrongInput)
                {
                    Console.WriteLine("Insert non-empty value.");
                }
            }while (wrongInput);

            Console.WriteLine();

            //Pull exiting data and editing
            sresult = _controller.GetSNMPProcessStrategy(skey).FirstOrDefault();
            ShowData(sresult);

            if (sresult != null)
            {
                //Redefine values
                Console.WriteLine("Select processing option:");

                ProcessingOptions = Enum.GetNames(typeof(EnumProcessingType));
                for (int i = 0; i < ProcessingOptions.Length; i++)
                {
                    Console.WriteLine($"{i} - {ProcessingOptions[i]}");
                }

                do
                {
                    Console.Write("Select option: ");
                    wrongInput = !int.TryParse(Console.ReadLine(), out optionInput);
                    wrongInput = !Enum.TryParse <EnumProcessingType>(ProcessingOptions[optionInput], out selectedOption) & wrongInput;
                }while (wrongInput);

                wrongInput = false;
                Console.WriteLine();

                //Save data
                _controller.EditProcess(sresult.ProcessID, selectedOption);
            }
            else
            {
                Console.WriteLine("Process setting not found.\n");
            }

            NextActionHandle();
        }
        private void DeleteProcess()
        {
            bool   wrongInput = true, confirmdeletion = false;
            string skey = null, deletioncmd = null;
            ISNMPProcessStrategy sresult = null;

            //Ask for key
            do
            {
                Console.Write("Insert process definition name: ");
                skey = Console.ReadLine();

                wrongInput = string.IsNullOrWhiteSpace(skey);
                if (wrongInput)
                {
                    Console.WriteLine("Insert non-empty value.");
                }
            }while (wrongInput);

            Console.WriteLine();

            //Pull exiting data and editing
            sresult = _controller.GetSNMPProcessStrategy(skey).FirstOrDefault();
            ShowData(sresult);

            if (sresult != null)
            {
                //Ask for confirmation
                do
                {
                    Console.Write("WARNING: Continue with deletion of this process setting? [Y/N]?");
                    deletioncmd = Console.ReadLine().ToUpper();

                    wrongInput = string.IsNullOrWhiteSpace(skey) && !(deletioncmd == "Y" || deletioncmd == "N");

                    if (wrongInput)
                    {
                        Console.WriteLine("Insert valid value.");
                    }
                    else
                    {
                        confirmdeletion = deletioncmd == "Y";
                    }
                }while (wrongInput);

                //Delete command
                if (confirmdeletion)
                {
                    _controller.DeleteProcess(sresult.ProcessID);
                }
            }
            else
            {
                Console.WriteLine("Process setting not found.\n");
            }

            NextActionHandle();
        }
 private void ShowData(ISNMPProcessStrategy data)
 {
     if (data != null)
     {
         ViewHelper.RedirectConsoleToFile(true);
         Console.WriteLine($"Process setting \"{data.ProcessID}\" related to following Device Settings:\n" +
                           $"\t-{string.Join("\n\t-", data.TargetDeviceSettings.Select(x => x.ID))}.\n");
         ViewHelper.RedirectConsoleToFile(false);
     }
 }
Beispiel #4
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);
        }
Beispiel #5
0
        public IList <ISNMPProcessStrategy> GetSNMPProcessStrategy(string key = null)
        {
            if (string.IsNullOrWhiteSpace(key))
            {
                return(Model.Processes.Values.ToList());
            }
            else
            {
                ISNMPProcessStrategy res = null;

                EnumProcessingType skey = EnumProcessingType.None;
                if (Enum.TryParse <EnumProcessingType>(key, out skey))
                {
                    Model.Processes.TryGetValue(skey, out res);
                }

                return(res == null ? new List <ISNMPProcessStrategy>() : new List <ISNMPProcessStrategy>(new[] { res }));
            }
        }
Beispiel #6
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);
        }