// Pretraga za devicove, public async Task <List <Device> > DeviceSearch(DeviceSearchModel search) { var result = new List <Device>(); //var types = from b in _context.DeviceTypes // select b; var devices = from m in _context.Devices select m; int skip = (search.PageNumber - 1) * search.NumberOfDevicesPerPage; if (search != null) { // U slucaju da se ne po1salje NumberOfDevicesPerPage dobicemo samo 5 devicova u rezultatu, default-na vrijednost je u DeviceSearchModel.cs if (!string.IsNullOrEmpty(search.Name)) { devices = devices.Where(n => n.Name.Contains(search.Name)); } if (!string.IsNullOrEmpty(search.Type)) { devices = devices.Where(d => d.DeviceType.Name.Contains(search.Type)); } result = await devices .Include(dt => dt.DeviceType) .ThenInclude(f => f.Features) .Skip(skip) .Take(search.NumberOfDevicesPerPage) .ToListAsync(); //result.Types = await types // .Include(f => f.Features) // .Include(p => p.Parent) // .ToListAsync(); //if (!string.IsNullOrEmpty(search.Name)) // result.Devices = await devices.Where(n => n.Name == search.Name) // .Include(dt => dt.DeviceType) // .ThenInclude(f => f.Features) // .Skip(skip) // .Take(search.NumberOfDevicesPerPage) // .ToListAsync(); //if (!string.IsNullOrEmpty(search.Type)) // result.Types = await types.Where(t => t.Name == search.Type) // .Include(f => f.Features) // .Include(p => p.Parent) // .ToListAsync(); } return(result); }
public async Task <IActionResult> DeviceList(DeviceSearchModel searchModel) { if (!await _permissionService.AuthorizeAsync(StandardPermissionProvider.ManageDevices)) { return(AccessDeniedKendoGridJson()); } var model = await _deviceModelFactory.PrepareDeviceListModel(searchModel); return(Json(model)); }
public async Task <DeviceSearchModel> PrepareDeviceSearchModel(DeviceSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } await _baseModelFactory.PrepareStores(searchModel.AvailableStores); searchModel.SetGridPageSize(); return(searchModel); }
public async Task <DeviceListModel> PrepareDeviceListModel(DeviceSearchModel searchModel) { if (searchModel == null) { throw new ArgumentNullException(nameof(searchModel)); } var devices = await _deviceService.GetDevicesAsync( storeIds : searchModel.SelectedStoreIds.ToArray(), serialNo : searchModel.SearchSerialNo, pageIndex : searchModel.Page - 1, pageSize : searchModel.PageSize); var model = new DeviceListModel { Data = devices.Select(device => { var devicesModel = device.ToModel <DeviceModel>(); devicesModel.SerialNo = device.SerialNo; devicesModel.ModelNo = device.ModelNo; devicesModel.SelectedStoreId = device.StoreId; devicesModel.StoreName = device.Store != null ? device.Store.P_BranchNo + " - " + device.Store.P_Name : string.Empty; devicesModel.CreatedOn = _dateTimeHelper.ConvertToUserTime(device.CreatedOnUtc, DateTimeKind.Utc); devicesModel.LastActivityDate = _dateTimeHelper.ConvertToUserTime(device.ModifiedOnUtc.GetValueOrDefault(DateTime.UtcNow), DateTimeKind.Utc); 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); }
public async Task <IActionResult> DeviceSearch(DeviceSearchModel search) { var result = await _unitOfWork.DeviceRepository.DeviceSearch(search); return(Ok(result)); }