public async Task <IApiResult> GetDeviceList([FromUri] P_Devices.P_GetDeviceList pars) { return(await ApiAsync(pars, new BLL.DeviceManager.Device().GetDeviceList)); }
/// <summary> /// 获取设备信息列表 /// </summary> /// <param name="arg"></param> /// <returns></returns> public Task <IApiResult> GetDeviceList(P_Devices.P_GetDeviceList arg) { return(Task.Run(() => { IApiResult ar = new IApiResult(); // var uid = userInfo.UserID;//获取当前登录的用户ID try { using (DAL.CarRentEntities db = new CarRentEntities()) { var index = (arg.p - 1) * arg.pagesize; var deviceQuery = from d in db.Devices join u in db.Users on d.UserID equals u.UserID join g in db.Groups on d.GroupID equals g.GroupID join di in db.Dictionary on d.Model equals di.DataValue join l in db.LKLocation on d.DeviceID equals l.DeviceID into lk from d1 in lk.DefaultIfEmpty() where d.Deleted == false select new Models.Return.R_Devices.GetDeviceListPage.GetDeviceListPage_Result.GetDeviceListPage_List { GroupName = g.GroupName, DeviceID = d.DeviceID, DeviceName = d.DeviceName, SerialNumber = d.SerialNumber, Created = d.Created, PhoneNum = d.PhoneNum, Description = d.Description, UserID = d.UserID, UserName = u.UserName, SortOrder = di.SortOrder ?? 0, LastCommunication = d1.LastCommunication == null ? default(DateTime) : d1.LastCommunication, }; if (arg.start_date != null) { deviceQuery = deviceQuery.Where((d) => d.Created >= arg.start_date); } if (arg.end_date != null) { deviceQuery = deviceQuery.Where((d) => d.Created <= arg.end_date); } if (arg.keyword != null) { deviceQuery = deviceQuery.Where((d) => d.DeviceName.Contains(arg.keyword) || d.SerialNumber.Contains(arg.keyword) || d.Description.Contains(arg.keyword)); } if (arg.userid != null && arg.userid > 0) { deviceQuery = deviceQuery.Where(d => d.UserID == arg.userid); } var count = deviceQuery.Count(); var list = deviceQuery.OrderBy((r) => r.DeviceID).Skip(index).Take(arg.pagesize).ToList(); list.ForEach((s) => { s.RowIndex = ++index; }); ar.message = $"There are {count} data"; ar.result = new { total = count, pages = count % arg.pagesize == 0 ? count / arg.pagesize : count / arg.pagesize + 1, list = list }; } } catch (Exception ex) { Log.Error(this, ex); ar.code = StatusCode.error; ar.message = ex.Message; } return ar; })); }