Beispiel #1
0
        public void GetCase(string source, string caseID, out CaseObject caseObj, bool IsCaseEditable)
        {
            //request DataSourceAccess to return translated CaseObj.
            caseObj = m_dataSourceAccess.RequestCase(source, caseID, IsCaseEditable);

            //send RequestFile message to DataSourceAccess to retrieve additional information
            //that is part of the CaseObj
            if (caseObj.attachments.Count > 0)
            {
                foreach (DataAttachment xCaseAttachment in caseObj.attachments)
                {
                    FileType fileType = FileType.None;
                    if (xCaseAttachment.attachmentType == AttachmentType.FTIImage)
                    {
                        fileType = FileType.FTIFile;
                    }

                    Stream FileData = m_dataSourceAccess.RequestFile(source, caseObj.CaseId, xCaseAttachment.attachmentId, fileType);
                    xCaseAttachment.attachmentData = new MemoryStream();
                    FileData.CopyTo(xCaseAttachment.attachmentData);
                    xCaseAttachment.attachmentData.Seek(0, SeekOrigin.Begin);
                }
            }

            foreach (DataAttachment attach in caseObj.attachments.GetEventHistoryAttachments())
            {
                caseObj.EventRecords = new List <CaseObject.CaseEventRecord>();
                caseObj.EventRecords = EventHistoryTranslator.Translate(attach.attachmentData);
            }

            foreach (DataAttachment analysisHistory in caseObj.attachments.GetHistoryAttachments())
            {
                caseObj.CaseHistories = HistoryTranslator.Translate(analysisHistory);
            }

            caseObj.SourceAlias = source;

            //add case to the case collection
            m_caseCollection.Add(caseObj);
        }