Create API Project

Create Basic Directory Structure

Dtos -> Product -> ProductListRequest.cs, ProductListResponse

Controllers -> ProductController.cs

Entites -> Product.cs -> ProductType.cs

Persistence -> ExampleDbContext.cs

Services -> Contracts -> IExampleService.cs
Services -> Implementations -> ExampleService.cs

Set up db

Add Microsoft.EntityFrameworkCore.SqlServer

Add Entities

Add conn string to appsettings

"ConnectionStrings": { "DefaultConnection": "Server=CALVINPC;Database=McsStock;Trusted_Connection=True;TrustServerCertificate=True;" },

Add conn string to program.cs

//Add SQL Server Service builder.Services.AddDbContext<ExampleDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));

Set up dummy endpoint

Set up service

Example Service

Add services to program.cs

builder.Services.AddScoped<IExampleService, ExampleService>();

Create controller

Add controller ExampleController.cs

Create Razor Project

Create Basic Directory Structure

Dtos -> Product -> ProductListRequest.cs, ProductListResponse

Settings -> ApiSettings.cs

Services -> Contracts -> IExampleService.cs
Services -> Implementations -> ExampleService.cs

Add api settings to appsettings (change to actual port api is running on)

"ApiSettings": { "BaseUrl": "https://localhost:7248/" },

Add api settings to program.cs

builder.Services.Configure<ApiSettings>(builder.Configuration.GetSection("ApiSettings"));

Add api settings to ApiSettings.cs

public class ApiSettings { public string BaseUrl { get; set; } = string.Empty; }

Set up service

Example Service

Add Flurl nuget

Add services to program.cs

builder.Services.AddScoped<IExampleService, ExampleService>();

Add Razor Page

Add razor page ProductList.cshtml

Add menu item

Amend _Layout.cshtml