public async new Task <IActionResult> View(string id) { Device device = deviceRepo.GetDevice(id); var events = eventsRepo.GetEvents(device.Id, 5); ViewVM viewModel = new ViewVM(); viewModel.Device = device; viewModel.Events = events; AgentApiClient client = new AgentApiClient(); try { var response = await client.GetConfiguration(device.Address); var hoursWithActivity = eventsRepo.GetEventsForTheLast24Hours(device.Id); var last24Hours = GoogleChartHelpers.To24HourArray(hoursWithActivity); ViewData["Last24Hours"] = GoogleChartHelpers.ToGoogleChartString(last24Hours, "Hour", "Count"); viewModel.Online = true; viewModel.FirewallEnabled = response.FirewallEnabled; } catch (System.Net.Http.HttpRequestException) { viewModel.Online = false; } return(View(viewModel)); }
public new async Task <IActionResult> View(string id) { var ev = eventRepo.GetEvent(id); if (ev == null) { throw new ArgumentException(); } var device = deviceRepo.GetDevice(ev.DeviceId); if (device == null) { throw new ArgumentException(); } if (!string.IsNullOrEmpty(ev.FilterName)) { bool isInRules = await TryFindInRules(device, ev); if (isInRules) { return(RedirectToAction("View", "Rules", new { id = device.Id, name = ev.FilterName })); } } var data = eventRepo.GetEventsForTheLast24Hours(device.Id, ev.FilterName); var last24Hours = GoogleChartHelpers.To24HourArray(data); ViewData["Last24Hours"] = GoogleChartHelpers.ToGoogleChartString(last24Hours, "Time", "Count"); return(View(ev)); }
public IActionResult View(string id, string name) { // TODO: I thought MVC did this automatically... // Remove any extra percent coding var unescapedRuleName = Uri.UnescapeDataString(name); var device = repo.GetDevice(id); if (device == null) { throw new ArgumentOutOfRangeException(); } var rules = HttpContext.Session.GetJson <List <Agent.Generic.Models.Rule> >("rules"); var selectedRule = rules.FirstOrDefault(r => r.Name == unescapedRuleName); // TODO: Add to UI if (selectedRule.Direction == Agent.Generic.Models.Direction.Out) { ushort?tmp = selectedRule.LocalPort; selectedRule.LocalPort = selectedRule.RemotePort; selectedRule.RemotePort = tmp; } ICollection <PacketDroppedEvent> events = null; if (selectedRule.FilterID != null) { events = eventsRepo.GetEvents(device.Id, selectedRule.FilterID); ViewData["MostTriggeredBy"] = eventsRepo.RuleMostTriggeredBy(device.Id, selectedRule.FilterID) ?? "Untriggered"; var data = eventsRepo.GetEventsForTheLast24Hours(device.Id, selectedRule.FilterID); var last24Hours = GoogleChartHelpers.To24HourArray(data); ViewData["Last24Hours"] = GoogleChartHelpers.ToGoogleChartString(last24Hours, "Hour", "Count"); } else { events = eventsRepo.GetEvents(device.Id, selectedRule.RemoteAddress, Convert.ToInt32(selectedRule.LocalPort)); ViewData["MostTriggeredBy"] = eventsRepo.RuleMostTriggeredBy(device.Id, selectedRule.RemoteAddress, Convert.ToInt32(selectedRule.LocalPort)) ?? "Untriggered"; var data = eventsRepo.GetEventsForTheLast24Hours(device.Id, selectedRule.RemoteAddress, Convert.ToInt32(selectedRule.LocalPort)); var last24Hours = GoogleChartHelpers.To24HourArray(data); ViewData["Last24Hours"] = GoogleChartHelpers.ToGoogleChartString(last24Hours, "Hour", "Count"); } ViewData["TimesFired"] = events.Count; ViewData["LastFired"] = events.FirstOrDefault()?.Time.ToString() ?? "Never"; return(View(selectedRule)); }