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()); }
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}\""); }
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"); } }