public async Task <IActionResult> AssignDevicePopupList(AssignDeviceSearchModel searchModel)
        {
            if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManagePlugins))
            {
                return(AccessDeniedKendoGridJson());
            }

            var model = await _licenseModelFactory.PrepareAssignDeviceListModel(searchModel);

            return(Json(model));
        }
Exemple #2
0
        public async Task <AssignDeviceSearchModel> PrepareAssignDeviceSearchModel(AssignDeviceSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            await _baseModelFactory.PrepareStores(searchModel.AvailableStores);

            searchModel.SetPopupGridPageSize();

            return(searchModel);
        }
Exemple #3
0
        public async Task <AssignDeviceListModel> PrepareAssignDeviceListModel(AssignDeviceSearchModel searchModel)
        {
            if (searchModel == null)
            {
                throw new ArgumentNullException(nameof(searchModel));
            }

            var devices = await _licenseService.GetAssignedDevices(
                storeIds : searchModel.SelectedStoreIds.ToArray(),
                serialNo : searchModel.SearchSerialNo,
                pageIndex : searchModel.Page - 1,
                pageSize : searchModel.PageSize);

            var model = new AssignDeviceListModel
            {
                Data = devices.Select(device =>
                {
                    var devicesModel             = device.ToModel <DeviceModel>();
                    devicesModel.SelectedStoreId = device.StoreId;
                    devicesModel.StoreName       = device.Store != null ? device.Store.P_BranchNo + " - " + device.Store.P_Name : string.Empty;

                    return(devicesModel);
                }),
                Total = devices.TotalCount
            };

            // sort
            if (searchModel.Sort != null && searchModel.Sort.Any())
            {
                foreach (var s in searchModel.Sort)
                {
                    model.Data = await model.Data.Sort(s.Field, s.Dir);
                }
            }

            // filter
            if (searchModel.Filter?.Filters != null && searchModel.Filter.Filters.Any())
            {
                var filter = searchModel.Filter;
                model.Data = await model.Data.Filter(filter);

                model.Total = model.Data.Count();
            }

            return(model);
        }