コード例 #1
0
        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));
        }
コード例 #2
0
ファイル: EventsController.cs プロジェクト: bchapman949/Selly
        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));
        }
コード例 #3
0
        public IActionResult Index()
        {
            var events    = eventRepo.GetEvents(10);
            var ports     = eventRepo.GetViolationsByPortNumber();
            var addresses = eventRepo.GetRemoteIpAddresses();

            ViewData["TopPorts"]     = GoogleChartHelpers.ToGoogleChartString(ports, "Port No", "Count");
            ViewData["TopAddresses"] = addresses;

            return(View(events));
        }
コード例 #4
0
ファイル: RulesController.cs プロジェクト: Alex-Stevens/Selly
        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));
        }