public string GetCaseManagerScanCaseId() { if (_cargoHostEndPoint.IsHostAvailable && _cargoHostEndPoint.IsScanAreaScanning()) { XCase xcase = _cargoHostEndPoint.GetCase(_cargoHostEndPoint.GetScanAreaScanningCase()); return(xcase.getId()); } return(null); }
/// <summary> /// CreateCase. This interface function Creates new Case using container id /// /// Arguments: /// containerid: The container id /// Exceptions: /// none /// Return: /// Caseid /// </summary> public string CreateCase(string containerid) { string caseid = null; try { //m_XRayHost = GetXrayHost(); caseid = _cargoHostEndPoint.CreateInitAreaCase(); //caseid = m_XRayHost.makeCase(containerid); XCase currentCase = _cargoHostEndPoint.GetCase(caseid); currentCase.setContainerId(containerid); } catch (Exception e1) { _logger.LogError("OM - " + e1.Message); } return(caseid); }
public override CaseRequestMessageResponse RequestCase(CaseMessage message) { try { lock (m_CaseListLock) { //if caseId is empty then auto select a case for this workstation if (String.IsNullOrWhiteSpace(message.CaseId)) { //for load balancing figure out whether this workstation should get the requested case string workstation = GetNextLoadBalanceWorkstationId(message.WorkstationId); //string[] caseIdList = null;// string.Empty;//GetAssignedCaseID(workstation); //if (caseIdList == null || caseIdList.Length == 0) //{ //select next available case from the case list that matches the workstation mode(Analyst or ManualCodig) message.CaseId = GetUnassignedCaseId(message.WorkstationMode); //} //else //{ // message.CaseId = caseIdList[0]; //} //case id is empty there are currently no live cases if (String.IsNullOrWhiteSpace(message.CaseId)) { throw new FaultException(new FaultReason(ErrorMessages.NO_LIVE_CASE)); } else if (workstation != message.WorkstationId) { throw new FaultException(new FaultReason(ErrorMessages.LOAD_BALANCE_DELAY_CASE_REQUEST)); } } if (IsCaseAvailable(message.CaseId, message.WorkstationId)) { CaseRequestMessageResponse response = base.RequestCase(message); string ftiFile = string.Empty; if (m_TIPManagerComm != null) { ftiFile = m_TIPManagerComm.RequestFTIFile(message.WorkstationId); } if (!String.IsNullOrWhiteSpace(ftiFile)) { response.AdditionalFiles.Add(FileType.FTIFile, ftiFile); response.caseType = L3.Cargo.Communications.Interfaces.CaseType.FTICase; ClearAssignment(message.CaseId); } else { string caseArea = string.Empty; if (caseList.IsCTI(message.CaseId)) { m_TIPManagerComm.AssignCTICase(message.CaseId, message.WorkstationId); response.caseType = L3.Cargo.Communications.Interfaces.CaseType.CTICase; caseArea = l3.cargo.corba.WorkstationArea.AWS.ToString(); } else { caseArea = m_CargoHostEndPoint.GetCase(message.CaseId).getCurrentArea(); response.caseType = L3.Cargo.Communications.Interfaces.CaseType.LiveCase; } lock (_updateCaseAssignmentLock) { base.AssignId(message.CaseId, message.WorkstationId); CaseListUpdateEvent(message.CaseId, message.WorkstationId, caseArea, true); //Set this workstation has currently requested case and increment number of cases requested IncrementLoadBalanceNumRequestedCases(message.WorkstationId, true); } } return(response); } else { throw new FaultException(new FaultReason(ErrorMessages.CASE_CURRENTLY_IN_USE)); } } } catch (Exception ex) { throw new FaultException(new FaultReason(ex.Message)); } }