Example #1
0
        public MarkupsApplyingOrder()
        {
            var allPolicies = _agentPolicies
                              .Union(_globalPolicies)
                              .Union(_agencyPolicies)
                              .ToList();

            var edoContextMock = MockEdoContextFactory.Create();

            edoContextMock.Setup(c => c.Agencies)
            .Returns(DbSetMockProvider.GetDbSetMock(_agencies));

            var currencyRateServiceMock = new Mock <ICurrencyRateService>();

            currencyRateServiceMock
            .Setup(c => c.Get(It.IsAny <Currencies>(), It.IsAny <Currencies>()))
            .Returns(new ValueTask <Result <decimal> >(Result.Success((decimal)1)));

            var markupPolicyStorage = new MarkupPolicyStorage(Mock.Of <IOptionsMonitor <MarkupPolicyStorageOptions> >(_ => _.CurrentValue ==
                                                                                                                      new MarkupPolicyStorageOptions {
                Timeout = TimeSpan.FromMilliseconds(1)
            }));

            markupPolicyStorage.Set(allPolicies);

            _markupPolicyService = new MarkupPolicyService(markupPolicyStorage);

            var discountServiceMock = new  Mock <IDiscountFunctionService>();

            discountServiceMock.Setup(service => service.Get(It.IsAny <MarkupPolicy>(), It.IsAny <MarkupSubjectInfo>()))
            .ReturnsAsync((price => new ValueTask <MoneyAmount>(price)));

            _markupService = new MarkupService(_markupPolicyService, discountServiceMock.Object, new MarkupPolicyTemplateService(), currencyRateServiceMock.Object, new FakeMemoryFlow());
        }
Example #2
0
        private async Task ProcessPageByIdAsync(string pageId, ExpandoObject dataModel)
        {
            await LoggerService.WriteLogMessage($"{DateTime.Now.ToLongTimeString()}: Started precessing of page \"{pageId}\"");

            var page = await PageModelReaderService.LoadContentByIdAsync(pageId).ConfigureAwait(false);

            var html = await TemplateService.RenderTemplateAsync(page.Content, page, dataModel);

            html = await MarkupService.RenderMarkupAsync(html).ConfigureAwait(false);

            page.Content = html;

            var template = await TemplateReaderService.LoadContentByIdAsync(page.TemplateId).ConfigureAwait(false);

            html = await TemplateService.RenderTemplateAsync(template.Template, page, dataModel).ConfigureAwait(false);

            html = await HtmlMinificationService.CompressHtmlAsync(html).ConfigureAwait(false);

            var result = new TextContentModel();

            result.Id         = page.Id;
            result.ContentRaw = html;

            await PageModelWriterService.SaveContentAsync(page.Url, result).ConfigureAwait(false);

            await LoggerService.WriteLogMessage($"{DateTime.Now.ToLongTimeString()}: Finished page precessing \"{pageId}\"");
        }
Example #3
0
        public static async Task Run([BlobTrigger("parseddocuments/w2/{name}", Connection = "Documents")] CloudBlockBlob parsedBlob,
                                     [Blob("parseddocuments", Connection = "Documents")] CloudBlobContainer blobDirectory,
                                     [Blob("rawdocuments/{name}", FileAccess.Read)] Stream originalImage,
                                     [Blob("parseddocuments/markedup/{name}", FileAccess.ReadWrite)] CloudBlockBlob markedUpImage,
                                     ILogger log, Microsoft.Azure.WebJobs.ExecutionContext context, CancellationToken cancellationToken)
        {
            try
            {
                MortgageApplicationDocument mortgageApplicationDocument = new MortgageApplicationDocument();
                mortgageApplicationDocument.PopuplateFromBlobProperties(parsedBlob);
                mortgageApplicationDocument.HasParsedResults = true;
                mortgageApplicationDocument.DocumentType     = "w2";

                string jsonContents = await parsedBlob.DownloadTextAsync();

                ProcessedDocument document = JsonConvert.DeserializeObject <ProcessedDocument>(jsonContents);

                CloudBlockBlob finalBlob = blobDirectory.GetBlockBlobReference(parsedBlob.Name.Replace("w2/", "final/"));
                mortgageApplicationDocument.Status        = MortgageApplicationStatus.Processed;
                mortgageApplicationDocument.DateProcessed = DateTimeOffset.UtcNow;
                mortgageApplicationDocument.SetBlobProperties(finalBlob);

                FindDataLine(document, "SSN", "Social Security Number", mortgageApplicationDocument, "a. Employee's social security number", "social security number", "Employee's soc. sec. number", "Employee's social security number");
                FindMoneyLine(document, "Wages", "Total Wages", mortgageApplicationDocument, "Wages");
                FindMoneyLine(document, "FedTax", "Federal Tax Witholding", mortgageApplicationDocument, "2. Federal income tax", "Federal income tax withheld");
                FindDataLine(document, "CopyType", "Copy Type", mortgageApplicationDocument, "Copy");
                FindMoneyLine(document, "SocialSecurityWage", "Social Security Wage", mortgageApplicationDocument, "Social security wages");
                FindMoneyLine(document, "SocialSecurityTax", "Social Security Tax", mortgageApplicationDocument, "Social security tax withheld");
                FindMoneyLine(document, "MedicareWage", "Medicare Wage", mortgageApplicationDocument, "Medicare wages and tips");
                FindMoneyLine(document, "MedicareTax", "Medicare Tax", mortgageApplicationDocument, "Medicare tax withheld");
                FindMoneyLine(document, "SocialSecurityTips", "Social Security Tips", mortgageApplicationDocument, "Social security tips");
                FindDataLine(document, "EmployerDetails", "Employer Details", mortgageApplicationDocument, "Employer's name, address, and ZIP code");
                FindDataLine(document, "EmployeeDetails", "Employee Details", mortgageApplicationDocument, "Employee's first name and initial", "Last name", "Employee's name, address, and ZIP code", "Employee's name (first, middle indial, last)");

                await finalBlob.UploadTextAsync(JsonConvert.SerializeObject(mortgageApplicationDocument));

                await MarkupService.HighlightHits(document, originalImage, markedUpImage);
            }
            catch (Exception ex)
            {
                log.LogError(ex, "W2 Processor Failed");
            }
        }