Case Study: 1,
You are a developer for Litware Inc., a SaaS company that provides a solution for managing
employee expenses. The solution consists of an ASP.NET Core Web API project that is
deployed as an Azure Web App.
Employees upload receipts for the system to process. When processing is complete, the
employee receives a summary report email that details the processing results. Employees then
use a web application to manage their receipts and perform any additional tasks needed for
Employees may upload receipts in two ways:
? Uploading using an Azure Files mounted folder
? Uploading using the web application
Receipt and employee information is stored in an Azure SQL database.
Employees are provided with a getting started document when they first use the solution. The
documentation includes details on supported operating systems for Azure File upload, and
instructions on how to configure the mounted folder.
You enable MSI for the Web App and configure the Web App to use the security principal name,
Processing is performed by an Azure Function that uses version 2 of the Azure Function
runtime. Once processing is completed, results are stored in Azure Blob. Storage and an Azure
SQL database. Then, an email summary is sent to the user with a link to the processing report.
The link to the report must remain valid if the email is forwarded to another user.
Concurrent processing of a receipt must be prevented.
Azure Application Insights is used for telemetry and logging in both the processor and the web
application. The processor also has Trace Writer logging enabled. Application Insights must
always contain all log messages.