/// <summary> /// 向待发送队列中插入一条告警, 如果前一报文是告警,则增加到其AlarmList当中,否则新建一个CommandMsg /// 如此实现告警发生、恢复事件与告警改变事件的串行化 /// </summary> /// <param name="alarm"></param> public void FillAlarm(TKAlarm alarm) { if (AlarmFilter != "") { if (AlarmFilter.IndexOf(alarm.BusinessType) == -1) { return; } } lock (m_Messages) { CommandMsgV2 alarm_msg = null; if (m_Messages.Count == 0 || m_Messages[m_Messages.Count - 1].TK_CommandType != Constants.TK_CommandType.ALARM_REPORT) { alarm_msg = new CommandMsgV2(); alarm_msg.TK_CommandType = Constants.TK_CommandType.ALARM_REPORT; alarm_msg.SetValue("ClientID", ClientID); alarm_msg.SetValue("AlarmList", new ArrayList()); m_Messages.Add(alarm_msg); } else { alarm_msg = m_Messages[m_Messages.Count - 1]; } ArrayList t = alarm_msg.GetValue("AlarmList") as ArrayList; t.Add(new TKAlarm(alarm)); } }
private void GetAlarms() { /* SNIPPET 1: START */ AlarmFilter alarmFilter = new AlarmFilter { StartTime = new DateTime(2020, 6, 1), EndTime = new DateTime(2020, 6, 18), ExcludeAcknowledged = true }; PagedResult <Alarm> alarmsPager = client.Alarms.Get(alarmFilter); // Prints the number of records fetched and paging information Console.WriteLine("Total:" + alarmsPager.Total); Console.WriteLine("Current page:" + alarmsPager.CurrentPage); Console.WriteLine("Page size:" + alarmsPager.PageSize); Console.WriteLine("Pages:" + alarmsPager.PageCount); /* Console Output: Start * Total:4611 * Current page:1 * Page size:100 * Pages:47 * Console Output: End */ Alarm alarm = alarmsPager.Items.ElementAt(0); Console.WriteLine(alarm); /* Console Output: Start * { * "Self": "https://win-21dj9jv9qh6/api/v3/alarms/e03d81f9-69de-48e8-92d7-81167df19f6c", * "Id": "e03d81f9-69de-48e8-92d7-81167df19f6c", * "ItemReference": "WIN-21DJ9JV9QH6:EECMI-NCE25-3", * "Name": "EECMI-NCE25-3", * "Message": "WIN-21DJ9JV9QH6:EECMI-NCE25-3 is offline", * "IsAckRequired": true, * "TypeUrl": null, * "Type": "alarmValueEnumSet.avOffline", * "Priority": 106, * "TriggerValue": { * "Value": "", * "UnitsUrl": null, * "Units": "unitEnumSet.noUnits" * }, * "CreationTime": "2020-06-17T11:22:30Z", * "IsAcknowledged": false, * "IsDiscarded": false, * "CategoryUrl": null, * "Category": "objectCategoryEnumSet.systemCategory", * "ObjectUrl": "https://win-21dj9jv9qh6/api/v3/objects/e03d81f9-69de-48e8-92d7-81167df19f6c", * "AnnotationsUrl": "https://win-21dj9jv9qh6/api/v3/alarms/e03d81f9-69de-48e8-92d7-81167df19f6c/annotations" * } * Console Output: End */ /* SNIPPET 1: END */ }
public async Task <IActionResult> GetAlarms([FromRoute] int id, [FromQuery] AlarmFilter filter, [FromQuery] int rowsPerPage = 20, [FromQuery] int pageNumber = 1) { string userEmail = User.FindFirst(ClaimTypes.Email).Value; User user = await userManager.FindByEmailAsync(userEmail); PaginatedElement <Alarm> alarms = alarmService.GetByPool(id, filter, rowsPerPage, pageNumber, user); PaginatedDto <AlarmDto> dto = mapper.Map <PaginatedDto <AlarmDto> >(alarms); return(Ok(dto)); }
public void TestGetAll() { //GIVEN Mock <IAlarmRepository> alarmRepo = new Mock <IAlarmRepository>(); AlarmService alarmService = new AlarmService(alarmRepo.Object); //WHEN alarmRepo.Setup(o => o.Count(It.IsAny <DeviceAlarmFilter>())).Returns(3).Verifiable(); alarmRepo.Setup(o => o.Get(It.IsAny <DeviceAlarmFilter>(), 5, 1)).Returns(new List <Alarm> { new Alarm { Id = "A45880", DeviceId = "", SiteId = "", IsActive = true, AlarmType = Alarm.Type.DeviceFailure, AlarmGravity = Alarm.Gravity.Information, OccuredAt = DateTime.UtcNow, ShortDescription = "humidité entre 30 et 39", Description = "L'humidité intérieur est anormale" }, new Alarm { Id = "A45881", DeviceId = "", SiteId = "", IsActive = true, AlarmType = Alarm.Type.DeviceFailure, AlarmGravity = Alarm.Gravity.Information, OccuredAt = DateTime.UtcNow, ShortDescription = "humidité entre 30 et 39", Description = "L'humidité intérieur est anormale" } }).Verifiable(); AlarmFilter alarmFilter = new AlarmFilter { AlarmType = Alarm.Type.DeviceFailure, Gravity = Alarm.Gravity.Critical }; var items = alarmService.GetAll(alarmFilter, rowsPerPage: 5, pageNumber: 1); Check.That(items.PageCount).IsEqualTo(1); Check.That(items.TotalItemsCount).IsEqualTo(3); Check.That(items.Items).HasSize(2); alarmRepo.VerifyAll(); }
public Alarm Get(int id, User user) { IFilter <Alarm> filter = new AlarmFilter(); if (user != null) { filter = new IdentityAlarmFilter(filter, user); } Alarm alarm = alarmRepository.GetById(id, filter); if (alarm == null) { throw new NotFoundException(typeof(Alarm)); } return(alarm); }
private static AlarmFilter ReadUserInput(string[] args) { AlarmFilter alarmFilter = new AlarmFilter { StartTime = DateTime.Parse(args[0], null, DateTimeStyles.RoundtripKind), EndTime = DateTime.Parse(args[1], null, DateTimeStyles.RoundtripKind), PriorityRange = args[2], Type = args[3].ToLower() != "null" ? Convert.ToInt32(args[3].ToString()) : 0, 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" ? Convert.ToInt32(args[7]) : 0, Category = args[8].ToLower() != "null" ? Convert.ToInt32(args[8]) : 0, Page = args[9].ToLower() != "null" ? Convert.ToInt32(args[9]) : 0, PageSize = args[10].ToLower() != "null" ? Convert.ToInt32(args[10]) : 0, Sort = args[11] }; return(alarmFilter); }
private void GetSingleAlarm_GetAlarmsForAnObject_GetAlarmsForNetworkDevice(Alarm alarm, Guid objectId, AlarmFilter alarmFilter, MetasysObject device) { /* SNIPPET 2: START */ Alarm singleAlarm = client.Alarms.FindById(alarm.Id); PagedResult <Alarm> objectAlarms = client.Alarms.GetForObject(objectId, alarmFilter); PagedResult <Alarm> deviceAlarms = client.Alarms.GetForNetworkDevice(device.Id, alarmFilter); /* SNIPPET 2: END */ }
public void Run() { try { /**** Common vars shared between different snippets: modify the following input according to your testing server *****/ Guid objectId = new Guid("8e3b3738-2f5f-494d-bde1-fac15da28c86"); Guid id1 = objectId; Guid id2 = new Guid("01e025e8-0fb3-59da-a9b8-2f238c6f011c"); // Common objects are mocked to do not waste precious roundtrip time on each snippet List <Command> commands = new List <Command> { new Command { CommandId = "Adjust" }, new Command { CommandId = "OperatorOverride" }, new Command(), new Command(), new Command { CommandId = "Release" } }; MetasysObject building = new MetasysObject { Id = new Guid("2f321415-35d9-5c48-b643-60c5132cc001") }; MetasysObject sampleEquipment = new MetasysObject { Id = new Guid("0e8c034b-1586-5ed9-8455-dd33e99c2c7e") }; MetasysObject device = new MetasysObject { Id = new Guid("21c605fb-4755-5d65-8e9f-4fc8283b0366") }; AlarmFilter alarmFilter = new AlarmFilter { StartTime = new DateTime(2020, 06, 01), EndTime = new DateTime(2020, 07, 10), ExcludeAcknowledged = true }; Alarm alarm = new Alarm { Id = new Guid("f1a17676-f421-4649-80a5-b13935ae7404") }; AuditFilter auditFilter = new AuditFilter { StartTime = new DateTime(2020, 06, 01), EndTime = new DateTime(2020, 06, 24), OriginApplications = OriginApplicationsEnum.SystemSecurity | OriginApplicationsEnum.AuditTrails, ActionTypes = ActionTypeEnum.Subsystem | ActionTypeEnum.Command }; Audit audit = new Audit { Id = new Guid("f798591b-e6d6-441f-8f7b-596fc2e6c003") }; Audit auditForAnnotation = new Audit { Id = new Guid("f179a59c-ce36-47e1-afa6-f873b80259ed") }; /********************************************************************************************************************/ var option = ""; while (option != "99") { PrintMenu(); Console.Write("\r\nSelect an option: "); option = Console.ReadLine(); Console.WriteLine(); switch (option) { case "1": TryLogin_Refresh(); break; case "2": GetObjectIdentifier(); break; case "3": ReadProperty(objectId); break; case "4": ReadPropertyMultiple(id1, id2); break; case "5": WriteProperty(); break; case "6": WritePropertyMultiple(id1, id2); break; case "7": GetCommands(objectId); break; case "8": SendCommands(objectId, commands); break; case "9": GetNetworkDeviceTypes_GetNetworkDevices(); break; case "10": GetObjects(); break; case "11": Localize(); break; case "12": GetSpaces(); break; case "13": GetSpaceTypes(); break; case "14": GetEquipment(); break; case "15": GetSpaceEquipment_GetSpaceChildren(building); break; case "16": GetEquipmentPoints(sampleEquipment); break; case "17": GetAlarms(); break; case "18": GetSingleAlarm_GetAlarmsForAnObject_GetAlarmsForNetworkDevice(alarm, objectId, alarmFilter, device); break; case "19": GetAlarmsAnnotation(alarm); break; case "20": GetTrendedAttributes_GetSamples(); break; case "21": GetAudits(); break; case "22": GetSingleAudit_GetAuditsForAnObject(audit, objectId, auditFilter); break; case "23": GetAuditsAnnotation(audit); break; case "24": DiscardSingleAudit(audit); break; case "25": ChangeApiVersion(); break; case "26": ChangeHostname(); break; case "27": AddAuditAnnotation(auditForAnnotation); break; case "28": AddAuditAnnotationMultiple(); break; case "29": DiscardAuditMultiple(); break; case "30": GetServerTime(); break; case "99": return; // Exit from JSON output demo } Console.WriteLine(); Console.WriteLine("Press Enter to return to the JSON output menu..."); Console.ReadLine(); Console.WriteLine(); } } catch (Exception exception) { log.Logger.Error(string.Format("{0}", exception.Message)); Console.WriteLine("\n \nAn Error occurred. Press Enter to return to Main Menu"); Console.ReadLine(); } }
public async Task <IActionResult> Count([FromQuery] AlarmFilter filter) { int count = alarmService.CountAll(filter); return(Ok(count)); }
public async Task <IActionResult> Get([FromQuery] AlarmFilter filter, [FromQuery] int rowsPerPage = 0, [FromQuery] int pageNumber = 1) { PaginatedItems <Alarm> alarms = alarmService.GetAll(filter, rowsPerPage, pageNumber); return(Ok(Mapper.Map <PaginatedItemsDto <AlarmDetailsDto> >(alarms))); }
/// <summary> /// Initializes a new instance of the <see cref="AlarmGetListExRequest"/> class, /// with a filter, records / page, and sort order. /// </summary> /// <param name="alarmFilter">An AlarmFilter object containing the GUID (Alarm.ItemGuid) to filter on</param> /// <param name="recordsPerPage">Number of Records Per Page to be returned</param> /// <param name="sortOrder">A SortOrder object containing an array of SortKeys, and the sort Order</param> public AlarmGetListExRequest(AlarmFilter alarmFilter, string recordsPerPage, SortOrder sortOrder) { AlarmFilter = alarmFilter; RecordsPerPage = recordsPerPage; SortOrder = sortOrder; }
public ActionResult Filter(AlarmFilter alarmFilter) { return(ActionResponse(Data: _AlarmBO.Filter(alarmFilter), BusinessObject: _AlarmBO)); }
public void Run() { try { Console.WriteLine("Enter alarm id to get alarm details: "); string stringAlarmId = Console.ReadLine(); Guid alarmId = Guid.Parse(stringAlarmId); Alarm alarmItem = client.Alarms.FindById(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; AlarmFilter getAlarmsFilter = new AlarmFilter(); Console.WriteLine("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."); getAlarms = Console.ReadLine(); string[] args; args = getAlarms.Split(' '); if (args != null) { getAlarmsFilter = ReadUserInput(args); } Console.WriteLine("\n List of alarms with details"); var alarmItems = client.Alarms.Get(getAlarmsFilter); Console.WriteLine($"\n Total: {alarmItems.Total}"); Console.WriteLine($"\n Page Count: {alarmItems.PageCount}"); Console.WriteLine($"\n Page Size: {alarmItems.PageSize}"); Console.WriteLine($"\n Current Page: {alarmItems.CurrentPage}"); foreach (var item in alarmItems.Items) { Console.WriteLine($"\n Id: {item.Id}, Name: {item.Name}, ItemReference: {item.ItemReference}"); } Console.WriteLine("\nEnter object id to get alarm details: "); string objectId = Console.ReadLine(); string getAlarmsForObject; AlarmFilter alarmFilterForObject = new AlarmFilter(); 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 = client.Alarms.GetForObject(Guid.Parse(objectId), alarmFilterForObject); Console.WriteLine("\nEnter network device id to get alarm details: "); string networkDeviceId = Console.ReadLine(); string getAlarmsForNetworkDevice; AlarmFilter alarmFilterModelForNetworkDevice = new AlarmFilter(); 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 = client.Alarms.GetForNetworkDevice(Guid.Parse(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(); }