public DocumentInfo GetDocumentByTicketId(string ticketId) { Guid ticketIdGuid = Guid.Parse(ticketId); Ticket ticket = this.unitOfWork.DbContext.Set<Ticket>().Single(e => e.TicketId == ticketIdGuid); DocFile docFile = this.unitOfWork.DbContext.Set<DocFile>().Include(e => e.Doc).Single(e => e.DocFileId == ticket.DocFileId); var fileContent = ReadFromBlob(ticket.BlobOldKey.Value); string uri = this.unitOfWork.DbContext.Set<DocFileType>().Single(e => e.DocFileTypeId == docFile.DocFileTypeId).DocTypeUri; string xmlContent = Utf8Utils.GetString(fileContent); var documentMetaData = rioDocumentParser.GetDocumentMetadataFromXml(xmlContent); string signatureXPath = documentMetaData.SignatureXPath; Dictionary<string, string> signatureXPathNamespaces = new Dictionary<string, string>(documentMetaData.SignatureXPathNamespaces); DocumentInfo documentInfo = new DocumentInfo(); documentInfo.DocumentXml = xmlContent; documentInfo.DocumentTypeURI = uri; documentInfo.VisualizationMode = ticket.VisualizationMode.HasValue ? (VisualizationMode)ticket.VisualizationMode.Value : VisualizationMode.DisplayWithoutSignature; documentInfo.SignatureXPath = signatureXPath; documentInfo.SignatureXPathNamespaces = signatureXPathNamespaces; return documentInfo; }
public DocumentInfo GetDocumentByTicketId(string ticketId) { Guid ticketIdGuid = Guid.Parse(ticketId); Ticket ticket = this.unitOfWork.DbContext.Set<Ticket>().Single(e => e.TicketId == ticketIdGuid); string xmlContent = null; string docTypeUri = null; if (ticket.DocFileId.HasValue) { DocFile docFile = this.unitOfWork.DbContext.Set<DocFile>().Include(e => e.Doc).Single(e => e.DocFileId == ticket.DocFileId); docTypeUri = this.unitOfWork.DbContext.Set<DocFileType>().Single(e => e.DocFileTypeId == docFile.DocFileTypeId).DocTypeUri; var fileContent = ReadFromBlob(ticket.BlobOldKey.Value); xmlContent = Utf8Utils.GetString(fileContent); } else { using (var channelFactory = new ChannelFactory<IAbbcdn>("AbbcdnEndpoint")) using (var abbcdnStorage = new AbbcdnStorage(channelFactory)) { docTypeUri = ticket.DocTypeUri; var fileContent = abbcdnStorage.DownloadFile(ticket.AbbcdnKey.Value).ContentBytes; xmlContent = Utf8Utils.GetString(fileContent); } } var documentMetaData = rioDocumentParser.GetDocumentMetadataFromXml(xmlContent); string signatureXPath = documentMetaData.SignatureXPath; Dictionary<string, string> signatureXPathNamespaces = new Dictionary<string, string>(documentMetaData.SignatureXPathNamespaces); DocumentInfo documentInfo = new DocumentInfo(); documentInfo.DocumentXml = xmlContent; documentInfo.DocumentTypeURI = docTypeUri; documentInfo.VisualizationMode = ticket.VisualizationMode.HasValue ? (VisualizationMode)ticket.VisualizationMode.Value : VisualizationMode.DisplayWithoutSignature; documentInfo.SignatureXPath = signatureXPath; documentInfo.SignatureXPathNamespaces = signatureXPathNamespaces; return documentInfo; }