private static ComAlarmFilter ReadUserInput(string[] args) { DateTime st = DateTime.Parse(args[0], null, DateTimeStyles.AssumeUniversal); DateTime et = DateTime.Parse(args[1], null, DateTimeStyles.AssumeUniversal); ComAlarmFilter alarmFilter = new ComAlarmFilter { StartTime = st.ToString(), EndTime = et.ToString(), PriorityRange = args[2], Type = args[3].ToLower() != "null" ? args[3].ToString() : null, ExcludePending = args[4].ToLower() != "null" ? Convert.ToBoolean(args[4]) : false, ExcludeAcknowledged = !string.IsNullOrEmpty(args[5]) ? Convert.ToBoolean(args[5]) : false, ExcludeDiscarded = !string.IsNullOrEmpty(args[6]) ? Convert.ToBoolean(args[6]) : false, Attribute = args[7].ToLower() != "null" ? args[7] : null, Category = args[8].ToLower() != "null" ? args[8] : null, Page = args[9].ToLower() != "null" ? args[9] : null, PageSize = args[10].ToLower() != "null" ? args[10] : null, Sort = args[11] }; return(alarmFilter); }
public void Run() { try { Console.WriteLine("Enter alarm id to get alarm details: "); string alarmId = Console.ReadLine(); IComAlarm alarmItem = (IComAlarm)legacyClient.GetSingleAlarm(alarmId); Console.WriteLine(string.Format("\n Alarm details found for {0}", alarmId)); Console.WriteLine($"\n Id: {alarmItem.Id}, Name: {alarmItem.Name}, ItemReference: {alarmItem.ItemReference}"); string getAlarms; ComAlarmFilter getAlarmsFilter = new ComAlarmFilter(); Console.WriteLine("\nPlease enter these parameters separated by space: Start Time, End Time, Priority range, Type, Exclude pending, Exclude acknowledged, Exclude discarded, Attribute, Category, Page, Page Size, Sort" + "\nRefer to the metasys-server/basic-services-dotnet README if you need help getting started."); getAlarms = Console.ReadLine(); string[] args; args = getAlarms.Split(' '); if (args != null) { getAlarmsFilter = ReadUserInput(args); } Console.WriteLine("\n List of alarms with details"); IComPagedResult PagedResult = (IComPagedResult)legacyClient.GetAlarms(getAlarmsFilter); IComAlarm[] alarmItems = (IComAlarm[])PagedResult.Items; Console.WriteLine($"\n Total: {PagedResult.Total}"); Console.WriteLine($"\n Page Count: {PagedResult.PageCount}"); Console.WriteLine($"\n Page Size: {PagedResult.PageSize}"); Console.WriteLine($"\n Current Page: {PagedResult.CurrentPage}"); if (alarmItems != null) { foreach (var item in alarmItems) { Console.WriteLine($"\n Id: {item.Id}, Name: {item.Name}, ItemReference: {item.ItemReference}"); } } else { Console.WriteLine("No alarm found."); } Console.WriteLine("\nEnter object id to get alarm details: "); string objectId = Console.ReadLine(); string getAlarmsForObject; ComAlarmFilter alarmFilterForObject = new ComAlarmFilter(); Console.WriteLine("\n Please enter these parameters separated by space: Start Time, End Time, Priority range, Type, Exclude pending, Exclude acknowledged, Exclude discarded, Attribute, Category, Page, Page Size, Sort" + "\nRefer to the metasys-server/basic-services-dotnet README if you need help getting started."); getAlarmsForObject = Console.ReadLine(); args = getAlarmsForObject.Split(' '); if (args != null) { alarmFilterForObject = ReadUserInput(args); } Console.WriteLine(string.Format("\nAlarm details found for this object {0}", objectId)); var alarmItemsForObject = legacyClient.GetAlarmsForObject(objectId, alarmFilterForObject); Console.WriteLine("\nEnter network device id to get alarm details: "); string networkDeviceId = Console.ReadLine(); string getAlarmsForNetworkDevice; ComAlarmFilter alarmFilterModelForNetworkDevice = new ComAlarmFilter(); Console.WriteLine("\nPlease enter these parameters separated by space: Start Time, End Time, Priority range, Type, Exclude pending, Exclude acknowledged, Exclude discarded, Attribute, Category, Page, Page Size, Sort" + "\nRefer to the metasys-server/basic-services-dotnet README if you need help getting started."); getAlarmsForNetworkDevice = Console.ReadLine(); args = getAlarmsForNetworkDevice.Split(' '); if (args != null || args.Length != 12) { alarmFilterModelForNetworkDevice = ReadUserInput(args); Console.WriteLine(string.Format("\nAlarm details found for this object {0}", objectId)); var alarmItemsForNetworkDevice = legacyClient.GetAlarmsForNetworkDevice(networkDeviceId, alarmFilterModelForNetworkDevice); } else { Console.WriteLine("\nInvalid Input"); } } catch (Exception exception) { log.Logger.Error(string.Format("An error occured while getting alarm information - {0}", exception.Message)); Console.WriteLine("\n \nAn Error occurred. Press Enter to return to Main Menu"); } Console.ReadLine(); }