Beispiel #1
0
        public void LoanDocument_Serialization()
        {
            var document = new LoanDocument("Mortgage Insurance", "All");

            Assert.AreEqual(@"{""title"":""Mortgage Insurance"",""applicationId"":""All""}", document.ToString(SerializationOptions.Dirty));
            document.Dirty = false;
            Assert.AreEqual("{}", document.ToString(SerializationOptions.Dirty));
            document.Status = "expected";
            Assert.IsNotNull(document.Status.EnumValue);
            Assert.AreEqual(DocumentStatus.Expected, document.Status.EnumValue.GetValueOrDefault());
            Assert.AreEqual(@"{""status"":""expected""}", document.ToString(SerializationOptions.Dirty));
            document.Status = "ready to ship";
            Assert.IsNull(document.Status.EnumValue);
            Assert.AreEqual(@"{""status"":""ready to ship""}", document.ToString(SerializationOptions.Dirty));
            document.Dirty = false;
            Assert.AreEqual("{}", document.ToString(SerializationOptions.Dirty));
            document.Status = DocumentStatus.Added;
            Assert.AreEqual("added", document.Status.Value);
            Assert.AreEqual(@"{""status"":""added""}", document.ToString(SerializationOptions.Dirty));
        }
Beispiel #2
0
        public async Task LoanDocument_Upload()
        {
            var client = await GetTestClientAsync();

            var loan   = new Loan(client);
            var loanId = await client.Loans.CreateLoanAsync(loan);

            try
            {
                var document   = new LoanDocument("Final 1003", "All");
                var documentId = await loan.LoanApis.Documents.CreateDocumentAsync(document, true);

                Assert.IsFalse(string.IsNullOrEmpty(documentId));

                document = await loan.LoanApis.Documents.GetDocumentAsync(documentId);

                Assert.AreEqual("Final 1003", document.Title);
                Assert.AreEqual("All", document.ApplicationId);
                Assert.AreEqual(0, document.Attachments.Count);

                document = new LoanDocument(documentId)
                {
                    Title = "Updated Title"
                };
                await loan.LoanApis.Documents.UpdateDocumentAsync(document);

                document = await loan.LoanApis.Documents.GetDocumentAsync(documentId);

                Assert.AreEqual("Updated Title", document.Title);
                Assert.AreEqual("All", document.ApplicationId);
                Assert.AreEqual(0, document.Attachments.Count);

                var attachment = new LoanAttachment("Testing Attachment", "Text.txt", AttachmentCreateReason.Upload)
                {
                    DocumentRefId = documentId
                };
                var text         = "TESTING, TESTING, 1, 2, 3";
                var attachmentId = await loan.LoanApis.Attachments.UploadAttachmentAsync(attachment, Encoding.UTF8.GetBytes(text), true);

                Assert.IsFalse(string.IsNullOrEmpty(attachmentId));
                await Task.Delay(10000);

                var retrievedText = Encoding.UTF8.GetString(await loan.LoanApis.Attachments.DownloadAttachmentAsync(attachmentId));
                Assert.AreEqual(text, retrievedText);
                var stream = await loan.LoanApis.Attachments.DownloadAttachmentStreamAsync(attachmentId);

                using (var sr = new StreamReader(stream, Encoding.UTF8))
                {
                    Assert.AreEqual(text, sr.ReadToEnd());
                }

                document = await loan.LoanApis.Documents.GetDocumentAsync(documentId);

                Assert.AreEqual("Updated Title", document.Title);
                Assert.AreEqual("All", document.ApplicationId);
                Assert.AreEqual(1, document.Attachments.Count);
                Assert.AreEqual(attachmentId, document.Attachments[0].EntityId);
                Assert.AreEqual(EntityType.Attachment, document.Attachments[0].EntityType.EnumValue);
            }
            finally
            {
                try
                {
                    await Task.Delay(5000);

                    await client.Loans.DeleteLoanAsync(loanId);
                }
                catch
                {
                }
            }
        }
        public long CreateDocument(DocumentViewModel documentViewModel)
        {
            Data.Entities.Context.Document document = null;
            document = repository.GetContext().Documents.Where(e => e.Id == documentViewModel.Id).FirstOrDefault();

            if (document == null)
            {   //Directory with same name already exists
                var documentType = repository.GetContext().DocumentTypes.Where(x => x.Name.ToLower() == documentViewModel.DocumentTypeViewModel.Name.ToLower()).FirstOrDefault();
                if (documentType == null)
                {
                    documentType = repository.GetContext().DocumentTypes.FirstOrDefault(x => x.Name.ToLower() == "file");
                }
                if (documentType != null)
                {
                    document = new Data.Entities.Context.Document()
                    {
                        DocumentType = documentType,
                        Name         = documentViewModel.Name,
                        Title        = documentViewModel.Title
                    };
                    document = repository.SaveNew(document);

                    if (document?.Id > 0)
                    {
                        if (documentViewModel.CustomerId > 0)
                        {
                            ///Customer related documents

                            CustomerDocument customerDocument = new CustomerDocument()
                            {
                                CustomerId = documentViewModel.CustomerId,
                                DocumentId = document.Id
                            };

                            try
                            {
                                customerDocument = repository.SaveNew(customerDocument);
                            }
                            catch (Exception ex)
                            {
                                throw;
                            }
                        }
                        else if (documentViewModel.LoanId > 0)
                        {
                            ///Loan related documents
                            LoanDocument loanDocument = new LoanDocument()
                            {
                                DocumentId = document.Id,
                                LoanId     = documentViewModel.LoanId
                            };
                            try
                            {
                                loanDocument = repository.SaveNew(loanDocument);
                            }
                            catch (Exception ex)
                            {
                                throw;
                            }
                        }
                    }
                }
            }
            return(document != null ? document.Id : 0);
        }