public ViewResult List(string category)
        {
            string             _category = category;
            IEnumerable <Door> doors;

            string currentCategory = string.Empty;

            if (string.IsNullOrEmpty(category))
            {
                doors           = _doorRepository.Doors.OrderBy(n => n.DoorId);
                currentCategory = "All Doors";
            }
            else
            {
                if (string.Equals("InteriorDoors", _category, StringComparison.OrdinalIgnoreCase))
                {
                    doors = _doorRepository.Doors.Where(p => p.Category.CategoryName.Equals("InteriorDoors")).OrderBy(p => p.Name);
                }
                else
                {
                    doors = _doorRepository.Doors.Where(p => p.Category.CategoryName.Equals("InputDoors")).OrderBy(p => p.Name);
                }

                currentCategory = _category;
            }

            var doorListViewModel = new DoorListViewModel
            {
                Doors           = doors,
                CurrentCategory = currentCategory
            };

            return(View(doorListViewModel));
        }
        public MainWindowViewModel(IDoorService doorService, HubConnection connection)
        {
            _connection           = connection;
            _doorListViewModel    = new DoorListViewModel(doorService, connection);
            _addEditDoorViewModel = new AddEditDoorViewModel(connection);

            ViewModelBase = _doorListViewModel;
            _doorListViewModel.DoorAdded  += _doorListViewModel_DoorAdded;
            _doorListViewModel.DoorEdited += _doorListViewModel_DoorEdited;
            _addEditDoorViewModel.Cancel  += _addEditDoorViewModel_Cancel;
        }
        public IActionResult Index()
        {
            var epoch   = DateTime.Now.AddDays(-1);
            var expired = (from d in DataContext.Doors where !d.IsDeleted && d.LastHeartbeatTimestamp < epoch select d);

            if (expired.Any())
            {
                foreach (var expiredDoor in expired)
                {
                    expiredDoor.IsDeleted = true;
                }
                DataContext.SaveChanges();
            }

            var doors = (from d in DataContext.Doors where !d.IsDeleted select d);
            var model = new DoorListViewModel
            {
                Items = doors.ToList()
            };

            return(View(model));
        }