Пример #1
0
        public void TipResult(WorkstationResult workstationResult)
        {
            if (workstationResult.CaseType == L3.Cargo.Communications.Interfaces.CaseType.FTICase)
            {
                string fileName = FindFileByAssignment(workstationResult.WorkstationId);

                if (!String.IsNullOrWhiteSpace(fileName))
                {
                    m_EndPoint.TipResult(fileName.Remove(fileName.Length - 4), workstationResult);
                    DeleteFTIFile(fileName);
                }
            }
            else if (workstationResult.CaseType == L3.Cargo.Communications.Interfaces.CaseType.CTICase)
            {
                string caseId = FindCaseByAssignment(workstationResult.WorkstationId);

                if (!String.IsNullOrWhiteSpace(caseId))
                {
                    string fileName = GetPXEFromCase(caseId);

                    if (!String.IsNullOrWhiteSpace(fileName))
                    {
                        m_EndPoint.TipResult(fileName.Remove(fileName.Length - 4), workstationResult);
                    }

                    DeleteCTICase(caseId);
                }
            }
        }
Пример #2
0
        private void Tab1DecisionButton_Click(object sender, RoutedEventArgs e)
        {
            WorkstationResult awsResult = new WorkstationResult();


            awsResult.Comment = Tab1CommentTextBox.Text;

            if (Tab1DecisionComboBox.SelectedItem.ToString().Contains("Clear"))
            {
                awsResult.Decision = WorkstationDecision.Clear;
            }
            else if (Tab1DecisionComboBox.SelectedItem.ToString().Contains("Reject"))
            {
                awsResult.Decision = WorkstationDecision.Reject;
            }
            else if (Tab1DecisionComboBox.SelectedItem.ToString().Contains("Unknown"))
            {
                awsResult.Decision = WorkstationDecision.Unknown;
            }
            else
            {
                awsResult.Decision = WorkstationDecision.Caution;
            }

            if (Tab1ReasonComboBox.SelectedItem.ToString().Contains("Not Applicable"))
            {
                awsResult.Reason = WorkstationReason.NotApplicable;
            }
            else if (Tab1ReasonComboBox.SelectedItem.ToString().Contains("Too Complex"))
            {
                awsResult.Reason = WorkstationReason.TooComplex;
            }
            else if (Tab1ReasonComboBox.SelectedItem.ToString().Contains("Too Dense"))
            {
                awsResult.Reason = WorkstationReason.TooDense;
            }
            else
            {
                awsResult.Reason = WorkstationReason.AnomalyIdentified;
            }

            awsResult.UserName = Tab1UsernameTextBox.Text;

            awsResult.WorkstationId = m_AWSId;

            awsResult.CaseId = m_ActiveCase;

            try
            {
                //m_AWSCommEndPoint1.Decision(awsResult);
                Tab1LogListBox.Items.Add("Result: Successed");
            }
            catch (Exception ex)
            {
                Tab1LogListBox.Items.Add("Result: Failed | ErrorMessage: " + ex.Message);
            }
        }
Пример #3
0
        public void TipResult(WorkstationResult workstationResult)
        {
            TIPClient tipClient = FindClientByWorkstationId(workstationResult.WorkstationId);

            try
            {
                if (tipClient != null)
                {
                    tipClient.TipResult(workstationResult);
                }
            }
            catch (Exception)
            {
                tipClient.Dispose();
                m_TIPManagers.Remove(tipClient);
            }
        }
Пример #4
0
 public virtual void TipResult(string tipFile, WorkstationResult workstationResult)
 {
     throw new NotImplementedException(ErrorMessages.INVALID_FUNCTION);
 }
Пример #5
0
        public override void UpdateCase(UpdateCaseMessage message)
        {
            if (caseList.AssignedId(message.CaseId) == message.WorkstationId)
            {
                if (message.Type == CaseUpdateEnum.ReleaseCase)
                {
                    try
                    {
                        m_CargoHostEndPoint.ReleaseCase(message.CaseId);
                        SetLoadBalancecaseRequestedCurrently(message.WorkstationId, false);

                        if (m_TIPManagerComm != null)
                        {
                            m_TIPManagerComm.ProcessedCase(message.CaseId);
                        }
                    }
                    catch (Exception exp)
                    {
                        throw new FaultException(new FaultReason(exp.Message));
                    }
                }
                else if (message.Type == CaseUpdateEnum.CloseCase && message.CaseType != L3.Cargo.Communications.Interfaces.CaseType.FTICase)
                {
                    lock (_updateCaseAssignmentLock)
                    {
                        base.ClearAssignment(message.CaseId);
                        CaseListUpdateEvent(message.CaseId, string.Empty, string.Empty, true);

                        if (message.CaseType == L3.Cargo.Communications.Interfaces.CaseType.CTICase)
                        {
                            m_TIPManagerComm.RemoveCTICaseAssignment(message.CaseId);
                            CaseListUpdateEvent(message.CaseId, String.Empty, String.Empty, false);
                            base.caseList.Delete(message.CaseId);
                        }
                    }
                }
                else if (message.Type == CaseUpdateEnum.CloseCase && message.CaseType == L3.Cargo.Communications.Interfaces.CaseType.FTICase)
                {
                    WorkstationResult result = new WorkstationResult();

                    TimeSpan analysisTime = DateTime.Now.Subtract(DateTime.Parse(message.CreateTime));

                    result.AnalysisTime  = (uint)analysisTime.TotalSeconds;
                    result.CaseId        = message.CaseId;
                    result.CaseType      = message.CaseType;
                    result.Comment       = string.Empty;
                    result.CreateTime    = message.CreateTime;
                    result.Decision      = WorkstationDecision.Unknown;
                    result.Reason        = WorkstationReason.NotApplicable;
                    result.UserName      = message.UserName;
                    result.WorkstationId = message.WorkstationId;
                    m_TIPManagerComm.TipResult(result);
                }
                else if (message.Type == CaseUpdateEnum.Result)
                {
                    try
                    {
                        if (message.CaseType == L3.Cargo.Communications.Interfaces.CaseType.CTICase ||
                            message.CaseType == L3.Cargo.Communications.Interfaces.CaseType.FTICase)
                        {
                            if (message.workstationResult.CaseType == L3.Cargo.Communications.Interfaces.CaseType.CTICase)
                            {
                                lock (_updateCaseAssignmentLock)
                                {
                                    CaseListUpdateEvent(message.CaseId, String.Empty, String.Empty, false);
                                    base.caseList.Delete(message.CaseId);
                                }
                            }

                            m_TIPManagerComm.TipResult(message.workstationResult);
                        }
                        else
                        {
                            l3.cargo.corba.Result result = new l3.cargo.corba.Result();
                            result.mAnalysisTime = message.workstationResult.AnalysisTime.ToString();
                            result.mComment      = message.workstationResult.Comment;
                            result.mCreateTime   = message.workstationResult.CreateTime;

                            if (message.workstationResult.Decision == WorkstationDecision.Unknown)
                            {
                                result.mDecision = l3.cargo.corba.ResultDecision.RESULT_UNKNOWN;
                            }
                            else if (message.workstationResult.Decision == WorkstationDecision.Reject)
                            {
                                result.mDecision = l3.cargo.corba.ResultDecision.REJECT;
                            }
                            else if (message.workstationResult.Decision == WorkstationDecision.Clear)
                            {
                                result.mDecision = l3.cargo.corba.ResultDecision.CLEAR;
                            }
                            else
                            {
                                result.mDecision = l3.cargo.corba.ResultDecision.CAUTION;
                            }

                            result.mReason      = message.workstationResult.Reason.ToString();
                            result.mStationType = message.workstationResult.WorkstationType;
                            result.mUserName    = message.workstationResult.UserName;

                            m_CargoHostEndPoint.SetResult(message.CaseId, result);
                        }
                    }
                    catch (Exception exp)
                    {
                        throw new FaultException(new FaultReason(exp.Message));
                    }
                }
                else if (message.CaseType == L3.Cargo.Communications.Interfaces.CaseType.FTICase || message.CaseType == L3.Cargo.Communications.Interfaces.CaseType.CTICase)
                {
                    //Do Nothing
                }
                else if (message.Type == CaseUpdateEnum.AttachFile)
                {
                    String TempDirectory = ConfigurationManager.AppSettings["hostTempDirectory"];
                    try
                    {
                        if (!Directory.Exists(TempDirectory))
                        {
                            Directory.CreateDirectory(TempDirectory);
                        }

                        using (FileStream stream = new FileStream(Path.Combine(TempDirectory, message.Filename), FileMode.OpenOrCreate))
                        {
                            message.File.CopyTo(stream);
                        }

                        m_CargoHostEndPoint.AddAttachment(message.CaseId, Path.Combine(TempDirectory, message.Filename),
                                                          message.AttachFileType.ToString(), message.UserName, message.CreateTime);
                    }
                    catch (Exception exp)
                    {
                        throw new FaultException(new FaultReason(exp.Message));
                    }
                }
                else if (message.Type == CaseUpdateEnum.ObjectID)
                {
                    try
                    {
                        m_CargoHostEndPoint.SetContainerID(message.CaseId, message.ObjectId);
                    }
                    catch (Exception exp)
                    {
                        throw new FaultException(new FaultReason(exp.Message));
                    }
                }
            }
        }
Пример #6
0
        public void UpdateCase(string sourceAlias, string caseId, CaseUpdateEnum type, string filename, Stream file, AttachFileTypeEnum attachFileType,
                               WorkstationResult result, string ContainerNum, string UserName, string CreateTime, L3.Cargo.Communications.Interfaces.CaseType caseType)
        {
            UpdateCaseMessage updateCaseMessage = new UpdateCaseMessage(caseId, type, caseType);

            if (type == CaseUpdateEnum.AttachFile)
            {
                updateCaseMessage.AttachFileType = attachFileType;
                updateCaseMessage.File           = file;
                updateCaseMessage.Filename       = filename;
                updateCaseMessage.UserName       = UserName;
            }

            updateCaseMessage.WorkstationId     = m_SysConfigMgrAccess.GetDefaultConfig().WorkstationAlias;
            updateCaseMessage.CaseId            = caseId;
            updateCaseMessage.ObjectId          = ContainerNum;
            updateCaseMessage.workstationResult = result;
            updateCaseMessage.Type       = type;
            updateCaseMessage.CreateTime = CreateTime;
            updateCaseMessage.UserName   = UserName;

            CaseSource <WSCommEndpoint>             WSCommSource = FindSource <WSCommEndpoint>(sourceAlias);
            CaseSource <CaseRequestManagerEndpoint> ACSSource    = FindSource <CaseRequestManagerEndpoint>(sourceAlias);

            if (default(CaseSource <WSCommEndpoint>) != WSCommSource)
            {
                try
                {
                    WSCommSource.EndPoint.UpdateCase(updateCaseMessage);
                }
                catch (FaultException ex)
                {
                    throw;
                }
                catch (Exception)
                {
                    WSCommSource.EndPoint.Abort();
                    if (m_SysConfigMgrAccess.Contains(WSCommSource.Alias))
                    {
                        m_SysConfigMgrAccess.Delete(WSCommSource.Alias);
                    }
                    m_WSCommSources.RemoveSource(WSCommSource);
                    throw;
                }
            }
            else if (default(CaseSource <CaseRequestManagerEndpoint>) != ACSSource)
            {
                try
                {
                    ACSSource.EndPoint.UpdateCase(updateCaseMessage);
                }
                catch (FaultException ex)
                {
                    throw;
                }
                catch (Exception ex)
                {
                    ACSSource.EndPoint.Abort();
                    if (m_SysConfigMgrAccess.Contains(ACSSource.Alias))
                    {
                        m_SysConfigMgrAccess.Delete(ACSSource.Alias);
                    }
                    m_ACSSources.RemoveSource(ACSSource);
                    throw;
                }
            }
            else
            {
                throw new Exception(ErrorMessages.SOURCE_NOT_AVAILABLE);
            }
        }
Пример #7
0
 public void UpdateCase(String sourceAlias, String caseId, CaseUpdateEnum type, String filename, Stream file, AttachFileTypeEnum attachFileType,
                        WorkstationResult result, String ContainerNum, String UserName, String CreateTime, L3.Cargo.Communications.Interfaces.CaseType caseType)
 {
     m_CaseSourceManager.UpdateCase(sourceAlias, caseId, type, filename, file, attachFileType, result, ContainerNum, UserName, CreateTime, caseType);
 }
Пример #8
0
 public void TipResult(string tipFile, WorkstationResult workstationResult)
 {
     base.Channel.TipResult(tipFile, workstationResult);
 }
Пример #9
0
 public virtual void Decision(WorkstationResult awsResult)
 {
     throw new NotImplementedException(ErrorMessages.INVALID_FUNCTION);
 }