public async Task <ResponseViewModel <GenericResponseModel> > UpdateTheoryWeighValue(TheoryWeighValueModel theoryWeighValueModel) { ResponseViewModel <GenericResponseModel> response = new ResponseViewModel <GenericResponseModel>(); try { if (await _authService.CheckUserPermission(theoryWeighValueModel.employeeID, theoryWeighValueModel.employeeRFID, "UpdateTheoryWeighValue")) { var gatePass = await _gatePassRepository.GetAsync(gt => gt.ID == theoryWeighValueModel.gatePassID && gt.isDelete == false); if (gatePass == null) { response = ResponseConstructor <GenericResponseModel> .ConstructBoolRes(ResponseCode.ERR_QUE_NO_GATEPASS_FOUND, false); } else { gatePass.theoryWeightValue = theoryWeighValueModel.theoryWeighValue; _gatePassRepository.Update(gatePass); if (await _unitOfWork.SaveChangesAsync()) { response = ResponseConstructor <GenericResponseModel> .ConstructBoolRes(ResponseCode.SUCCESS, true); } else { response = ResponseConstructor <GenericResponseModel> .ConstructBoolRes(ResponseCode.ERR_SEC_UNKNOW, false); } } } else { response = ResponseConstructor <GenericResponseModel> .ConstructBoolRes(ResponseCode.ERR_USER_PERMISSION, false); } return(response); } catch (Exception) { return(response = ResponseConstructor <GenericResponseModel> .ConstructBoolRes(ResponseCode.ERR_SEC_UNKNOW, false)); } }
public async Task <ResponseViewModel <QueueListViewModel> > CallNextTruck(int truckGroupID) { ResponseViewModel <QueueListViewModel> response = new ResponseViewModel <QueueListViewModel>(); var queues = await _queueListRepository.GetManyAsync(qu => qu.gatePass.truckGroupID == truckGroupID && qu.isDelete == false, QueryIncludes.QUEUELISTFULLINCLUDES); var firstqueue = queues.OrderBy(q => q.queueNumber).First(); var gatePass = await _gatePassRepository.GetAsync(gt => gt.ID == firstqueue.gatePassID && gt.isDelete == false, QueryIncludes.GATEPASSFULLINCLUDES); if (gatePass == null) { response = ResponseConstructor <QueueListViewModel> .ConstructBoolRes(ResponseCode.ERR_QUE_NO_QUEUE_FOUND, false); } else { // Change GatePass state switch (gatePass.stateID) { case GatepassState.STATE_REGISTERED: gatePass.stateID = GatepassState.STATE_CALLING_1; break; case GatepassState.STATE_CALLING_1: gatePass.stateID = GatepassState.STATE_CALLING_2; break; case GatepassState.STATE_CALLING_2: gatePass.stateID = GatepassState.STATE_CALLING_3; break; case GatepassState.STATE_CALLING_3: // Update state & Update queueList gatePass.stateID = GatepassState.STATE_REGISTERED; var currentQueue = await _queueListRepository.GetAsync(qu => qu.gatePassID == gatePass.ID && qu.isDelete == false); var queueList = await _queueListRepository.GetManyAsync(qu => qu.queueNumber > currentQueue.queueNumber && qu.queueNumber <= (currentQueue.queueNumber + 5) && qu.gatePass.truckGroup.ID == gatePass.truckGroup.ID && qu.isDelete == false); // If there are less than 5 - move to the last if (queueList.Count() < 5) { // Set new Order currentQueue.queueNumber += queueList.Count(); // Shift up 1 item for orther QueueItem foreach (var queueItem in queueList) { queueItem.queueNumber -= 1; _queueListRepository.Update(queueItem); } } else // If more than 5 - move down 5 { // Set new order currentQueue.queueNumber += 5; // Shift up 1 item for orther QueueItem foreach (var queueItem in queueList) { queueItem.queueNumber -= 1; _queueListRepository.Update(queueItem); } } break; default: return(response = ResponseConstructor <QueueListViewModel> .ConstructBoolRes(ResponseCode.ERR_QUE_NO_QUEUE_FOUND, false)); } _gatePassRepository.Update(gatePass); if (await _unitOfWork.SaveChangesAsync()) { response = ResponseConstructor <QueueListViewModel> .ConstructBoolRes(ResponseCode.SUCCESS, true); } else { response = ResponseConstructor <QueueListViewModel> .ConstructBoolRes(ResponseCode.ERR_SEC_UNKNOW, false); } } return(response); }