/// <summary>
        /// Gets a filtered and paginated list of LifeCycleManagers
        /// </summary>
        /// <param name="query">containing pagenumber, itemcount, name, project and status</param>
        /// <returns>DevicesListViewDataModel containing the devices, query and amount of pages</returns>
        private async Task <DevicesListViewModel> FilterDevices(DevicesFilter query)
        {
            if (query.Status.Equals("ALL"))
            {
                query.Status = "";
            }

            string httpResponse = await restService.PostRequest($"/api/devices", query);

            DevicesListViewModel response = ParseJSONResponse(httpResponse);

            response.Filter = query;
            return(response);
        }
        public IActionResult Filter(DevicesFilter filter)
        {
            if (filter.Project == null)
            {
                filter.Project = "";
            }

            if (filter.Name == null)
            {
                filter.Name = "";
            }

            return(RedirectToAction("Index",
                                    new
            {
                page = filter.Page, items = filter.Items, name = filter.Name, project = filter.Project,
                status = filter.Status
            }));
        }
        public void EmptyProjectFilter()
        {
            DevicesListViewController devicesListViewController = new DevicesListViewController(fakeDataRestService);
            DevicesFilter             nullFilter = new DevicesFilter();

            nullFilter.Project = null;
            nullFilter.Name    = null;
            nullFilter.Status  = "ALL";
            Assert.Null(nullFilter.Project);
            Assert.Null(nullFilter.Name);
            RedirectToActionResult redirectResult =
                (RedirectToActionResult)devicesListViewController.Filter(nullFilter);

            Assert.NotNull(redirectResult);

            Assert.Equal(1, redirectResult.RouteValues["page"]);
            Assert.Equal(25, redirectResult.RouteValues["items"]);
            Assert.Equal("", redirectResult.RouteValues["name"]);
            Assert.Equal("", redirectResult.RouteValues["project"]);
            Assert.Equal("ALL", redirectResult.RouteValues["status"]);
        }
示例#4
0
 public DevicesDataController()
 {
     _filter = new DevicesFilter(_repo.GetDevices());
 }
示例#5
0
        public DevicesListViewModel(IDeviceRelatedRepository repo, IUserSession userSession)
        {
            Repository = repo;

            UserSession = userSession;

            AllDevices = Repository.AllDevices.ToList();

            InitDevicesLocationWithInstances();

            FilterDevicesAccordingToCriteria();

            ShowAddDeviceViewCommand = RegisterCommandAction(
                (obj) =>
            {
                AddDeviceView             = new AddDeviceView();
                AddDeviceView.DataContext = ResolveDependency <IAddDeviceViewModel>();
                AddDeviceView.ShowDialog();
            },
                (obj) =>
                UserSession.IsAuthorizedUserAllowedTo(UserActions.AddDevice)
                );

            RemoveDeviceCommand = RegisterCommandAction(
                (obj) =>
            {
                Repository.RemoveDevice(SelectedDevice);

                Repository.DeleteAllDeviceMovementHistory(SelectedDevice);

                Repository.SaveChanges();
                AllDevices.Remove(AllDevices.Find(d => d.ID == SelectedDevice.ID));
                FilteredDevices.Remove(SelectedDevice);
            },
                (obj) =>
            {
                if (UserSession.IsAuthorizedUserAllowedTo(UserActions.RemoveDevice))
                {
                    return(SelectedDevice != null);
                }
                else
                {
                    return(false);
                }
            }
                );

            SubscribeActionOnDeviceAddition(
                (device) =>
            {
                device.DeviceType      = Repository.AllDeviceTypes.Single(dt => dt.ID == device.DeviceTypeID);
                device.Cabinet         = Repository.FindCabinet(device.CabinetID);
                device.Cabinet.Housing = DeviceLocationViewModel.
                                         AllHousings.
                                         First(h => h.ID == device.Cabinet.HousingID);

                AllDevices.Add(device);
                if (DevicesFilter.DoesMeetSearchingAndFilteringCriteria(device))
                {
                    FilteredDevices.Add(device);
                }
            }
                );

            SubscribeActionOnFilteringCriteraChanges(
                (filteredDevices) =>
                FilteredDevices = filteredDevices.ToObservableCollection()
                );
        }