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); } }
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); }
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 })); } }
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); }