public async Task <IApiResult> CarRequest([FromBody] Models.Parameter.P_Devices.P_CarRequest pars) { return(await ApiAsync(pars, new BLL.DeviceManager.Device().CarRequest)); }
public Task <IApiResult> CarRequest(Models.Parameter.P_Devices.P_CarRequest arg) { return(Task.Run(() => { IApiResult hr = new IApiResult(); using (CarRentEntities cre = new CarRentEntities()) { try { //var deviceQuery = from d in cre.Devices where d.DeviceID == arg.deviceid select new { d.Status,d.DeviceName }; //var device = deviceQuery.First(); //if (device.Status == 1) //{ //} var dev = from d in cre.Devices join l in cre.LeaseRecord on d.DeviceID equals l.DeviceID into lr from dli in lr.DefaultIfEmpty() where d.DeviceID == arg.deviceid && d.Deleted == false orderby dli.Created descending select new{ dli.Status, devStatus = d.Status, d.UserID, d.DeviceID }; var query = dev.FirstOrDefault(); //Status (1:已租,0:未租) if (query.Status == 1) { hr.code = StatusCode.failure; hr.message = "Occupied."; //已经被别人申请了 } else if (query.Status == 2) { hr.code = StatusCode.failure; hr.message = "Occupied.";//已经租出去了 } else { LeaseRecord lr = new LeaseRecord(); lr.DeviceID = query.DeviceID; //1 已申请,等待确认,2 正在出租,3出租完成,4已拒绝 lr.Status = 1; lr.UserPhone = arg.phone; lr.UserID = query.UserID; lr.Created = DateTime.Now; lr = cre.LeaseRecord.Add(lr); //DAL.Devices device = new DAL.Devices(); //device.Status = 1; cre.SaveChanges(); hr.message = "success!"; } } catch (InvalidOperationException ioe) { hr.message = "未找到元素"; hr.code = StatusCode.error; Log.Error(this, ioe); } catch (Exception ex) { hr.message = ex.Message; hr.code = StatusCode.error; Log.Error(this, ex); } return hr; } })); }