Esempio n. 1
0
        public DocumentInfo ProcessStructuredDocument(DocumentRequest request)
        {
            using (var transaction = this.unitOfWork.BeginTransaction())
            {
                IncomingDoc incomingDoc = new IncomingDoc();
                incomingDoc.DocumentGuid = Guid.NewGuid();
                incomingDoc.IncomingDate = DateTime.Now;
                incomingDoc.IncomingDocStatusId = this.unitOfWork.DbContext.Set<IncomingDocStatus>().Single(e => e.Alias == "Pending").IncomingDocStatusId;

                IncomingDocFile incomingDocFile = new IncomingDocFile();
                incomingDocFile.DocFileTypeId = this.unitOfWork.DbContext.Set<DocFileType>().Single(e => e.Alias == "XML").DocFileTypeId;
                incomingDocFile.Name = String.Format("WebPortalApp_{0}_{1}", DateTime.Now.ToString(), Guid.NewGuid().ToString());
                incomingDocFile.DocFileName = String.Format("WebPortalApp_{0}_{1}.xml", DateTime.Now.ToString(), Guid.NewGuid().ToString());
                incomingDocFile.DocFileContent = request.DocumentData;
                incomingDocFile.IncomingDoc = incomingDoc;

                this.unitOfWork.DbContext.Set<IncomingDocFile>().Add(incomingDocFile);
                this.unitOfWork.Save();

                transaction.Commit();

                DocumentInfo documentInfo = new DocumentInfo();
                documentInfo.DocumentGuid = incomingDoc.DocumentGuid;
                documentInfo.RegistrationStatus = DocumentRegistrationStatus.Pending;
                documentInfo.DocumentData = new AISDocument();
                documentInfo.DocumentData.Name = incomingDocFile.Name;
                documentInfo.DocumentData.Content = Utf8Utils.GetBytes(request.DocumentData);

                return documentInfo;
            }
        }
Esempio n. 2
0
        public DocumentInfo GetDocumentInfo(R_0009_000001.DocumentURI uri, Guid? guid)
        {
            if (guid.HasValue)
            {
                IncomingDoc incomingDoc = this.docRepository.GetIncomingDocByDocumentGuid(guid.Value);

                DocumentInfo documentInfo = new DocumentInfo();
                documentInfo.DocumentGuid = guid.Value;

                if (incomingDoc.IncomingDocStatus.Alias == "Pending")
                {
                    documentInfo.RegistrationStatus = DocumentRegistrationStatus.Pending;

                    IncomingDocFile incomingDocFile = incomingDoc.IncomingDocFiles.FirstOrDefault();

                    if (incomingDocFile != null)
                    {
                        documentInfo.DocumentData = new AISDocument();
                        documentInfo.DocumentData.Name = incomingDocFile.Name;
                        documentInfo.DocumentData.Content = Utf8Utils.GetBytes(incomingDocFile.DocFileContent);
                    }
                }
                else if (incomingDoc.IncomingDocStatus.Alias == "Registered" || incomingDoc.IncomingDocStatus.Alias == "NotRegistered")
                {
                    var mainDocIncomingDoc = incomingDoc.DocIncomingDocs.FirstOrDefault(d => d.IsDocInitial);
                    if (mainDocIncomingDoc != null)
                    {
                        Doc doc = this.unitOfWork.DbContext.Set<Doc>()
                            .Include(e => e.DocFiles)
                            .SingleOrDefault(e => e.DocId == mainDocIncomingDoc.DocId);

                        DocFile primary = doc.DocFiles.FirstOrDefault(e => e.IsPrimary);

                        if (primary != null)
                        {
                            documentInfo.DocumentData = new R_0009_000085.AISDocument();
                            documentInfo.DocumentData.Name = primary.Name;
                            documentInfo.DocumentData.Content = ReadFromBlob(primary.DocFileContentId);
                        }
                    }

                    DocumentURI receiptDocumentUri = null;
                    var receiptDocIncomingDoc = incomingDoc.DocIncomingDocs.FirstOrDefault(d => !d.IsDocInitial);
                    if (receiptDocIncomingDoc != null)
                    {
                        var receiptDoc = this.unitOfWork.DbContext.Set<Doc>()
                            .SingleOrDefault(e => e.DocId == receiptDocIncomingDoc.DocId);

                        if (receiptDoc != null)
                        {
                            receiptDocumentUri = new DocumentURI();
                            receiptDocumentUri.RegisterIndex = receiptDoc.RegIndex;
                            receiptDocumentUri.SequenceNumber = receiptDoc.RegNumber.Value.ToString("D6");
                            receiptDocumentUri.ReceiptOrSigningDate = receiptDoc.RegDate;
                        }
                    }

                    if (incomingDoc.IncomingDocStatus.Alias == "Registered")
                    {
                        documentInfo.RegistrationStatus = DocumentRegistrationStatus.Registered;
                        documentInfo.AcceptedDocumentUri = receiptDocumentUri;
                    }
                    else
                    {
                        documentInfo.RegistrationStatus = DocumentRegistrationStatus.NotRegistered;
                        documentInfo.NotAcceptedDocumentUri = receiptDocumentUri;
                    }
                }

                return documentInfo;
            }
            else
            {
                throw new ArgumentException();
            }
        }