{"id":17630225,"url":"https://github.com/scottaddie/contosolending","last_synced_at":"2025-05-05T19:56:57.684Z","repository":{"id":44204764,"uuid":"210389361","full_name":"scottaddie/ContosoLending","owner":"scottaddie","description":"An ASP.NET Core 3.1 app showcasing gRPC, server-side Blazor, SignalR, and C# 8.","archived":false,"fork":false,"pushed_at":"2022-02-11T02:35:40.000Z","size":82,"stargazers_count":14,"open_issues_count":1,"forks_count":6,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-30T23:12:50.375Z","etag":null,"topics":["asp-net-core","azure-functions","azure-signalr-service","blazor-server","dot-net-core","grpc","signalr-core"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/scottaddie.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-23T15:26:57.000Z","updated_at":"2024-01-09T20:00:41.000Z","dependencies_parsed_at":"2022-08-30T14:50:37.117Z","dependency_job_id":null,"html_url":"https://github.com/scottaddie/ContosoLending","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottaddie%2FContosoLending","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottaddie%2FContosoLending/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottaddie%2FContosoLending/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/scottaddie%2FContosoLending/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/scottaddie","download_url":"https://codeload.github.com/scottaddie/ContosoLending/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252568971,"owners_count":21769508,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["asp-net-core","azure-functions","azure-signalr-service","blazor-server","dot-net-core","grpc","signalr-core"],"created_at":"2024-10-23T00:53:13.599Z","updated_at":"2025-05-05T19:56:57.663Z","avatar_url":"https://github.com/scottaddie.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"## App overview\n\nThis ASP.NET Core 3.1 app represents a loan application processing pipeline. The following table outlines projects found in the solution.\n\n|Project\t\t\t\t\t\t  |Description\t\t\t\t\t\t\t\t\t\t\t |\n|---------------------------------|------------------------------------------------------|\n|*ContosoLending.CurrencyExchange*|gRPC project handling currency conversion\t\t\t |\n|*ContosoLending.DomainModel*\t  |.NET Standard project containing shared models\t\t |\n|*ContosoLending.LoanProcessing*  |Durable Functions project for handling loan processing|\n|*ContosoLending.Ui*\t\t\t  |Server-side Blazor UI project\t\t\t\t\t\t |\n\n## Setup\n\n### Install prerequisites\n\nThe following software must be installed:\n\n1. [.NET Core SDK version SDK 3.1.100 or later](https://dotnet.microsoft.com/download/dotnet-core/3.1)\n1. [Visual Studio 2019 version 16.4 or later](https://visualstudio.microsoft.com/downloads/) with the following workloads:\n\t1. **ASP.NET and web development**\n\t1. **Azure development**\n\n### Provision Azure resources\n\n1. Open the [Azure Cloud Shell](https://shell.azure.com) in your web browser.\n\n1. Run the following command to configure your Azure CLI defaults for resource group and region:\n\n\t```bash\n\taz configure --defaults group=\u003cresource_group_name\u003e location=\u003cregion_name\u003e\n\t```\n\n1. Run the following command to provision an Azure Storage account:\n\n\t```bash\n\taz storage account create --name \u003cstorage_resource_name\u003e\n\t```\n\n1. Run the following command to provision an Azure SignalR Service instance:\n\n\t```bash\n\taz signalr create --name \u003csignalr_resource_name\u003e --sku Standard_S1 --service-mode Serverless\n\t```\n\n### Configure the Azure Functions project\n\n1. Create a new *local.settings.json* file in the root of the *ContosoLending.LoanProcessing* project with the following content:\n\n\t```json\n\t{\n\t  \"IsEncrypted\": false,\n\t  \"Values\": {\n\t\t\"AzureSignalRConnectionString\": \"\u003csignalr_connection_string\u003e\",\n\t\t\"AzureWebJobsStorage\": \"\u003cstorage_connection_string\u003e\",\n\t\t\"FUNCTIONS_WORKER_RUNTIME\": \"dotnet\"\n\t  },\n\t  \"Host\": {\n\t\t\"CORS\": \"https://localhost:44364\",\n\t\t\"CORSCredentials\": true,\n\t\t\"LocalHttpPort\": 7071\n\t  }\n\t}\n\t```\n\n1. From the Azure Cloud Shell, run the following command to get the Azure Storage account's connection string:\n\n\t```bash\n\taz storage account show-connection-string --name \u003cstorage_resource_name\u003e --query connectionString\n\t```\n\n\tCopy the resulting value (without the double quotes) to your clipboard.\n\n1. Replace \"\u0026lt;storage_connection_string\u0026gt;\" in *local.settings.json* with the value on your clipboard.\n\n1. Run the following command to get the Azure SignalR Service's connection string:\n\n\t```bash\n\taz signalr key list --name \u003csignalr_resource_name\u003e --query primaryConnectionString\n\t```\n\n\tCopy the resulting value (without the double quotes) to your clipboard.\n\n1. Replace \"\u0026lt;signalr_connection_string\u0026gt;\" in *local.settings.json* with the value on your clipboard.\n\n## Testing\n\n1. Open the solution file (*src\\ContosoLending.sln*).\n1. In **Solution Explorer**, right-click the *libman.json* file in the **ContosoLending.Ui** project \u003e **Restore Client-Side Libraries**.\n1. In **Solution Explorer**, right-click the solution name \u003e **Properties**.\n1. Select the **Multiple startup projects** radio button, and configure the solution as follows:\n\n\t![multiple project launch configuration in Visual Studio](https://user-images.githubusercontent.com/10702007/68152936-39716780-ff0a-11e9-9f62-babf2267ef77.png)\n\n1. Select the **OK** button.\n1. Select the **Start** button next to the **\u0026lt;Multiple Startup Projects\u0026gt;** launch configuration drop-down list.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottaddie%2Fcontosolending","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fscottaddie%2Fcontosolending","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fscottaddie%2Fcontosolending/lists"}