Exemple #1
0
 public async Task <IApiResult> GetDeviceList([FromUri] P_Devices.P_GetDeviceList pars)
 {
     return(await ApiAsync(pars, new BLL.DeviceManager.Device().GetDeviceList));
 }
Exemple #2
0
 /// <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;
     }));
 }