Add example for fetching and displaying data from database

- Privacy.cshtml shows random items from postgres
- Proper tables names in DataAccess sql strings
This commit is contained in:
Eero Holmala 2024-03-13 16:27:42 +02:00
parent 313b79a63b
commit ea907db5de
4 changed files with 15 additions and 5 deletions

View File

@ -23,7 +23,7 @@ public class DataAccess: IDataAccess, IDisposable
public User? GetUser(int id) public User? GetUser(int id)
{ {
return GetFromCache<User>("select * from dbo\"users\"")?.FirstOrDefault(); return GetFromCache<User>("select * from dbo.\"users\"")?.FirstOrDefault();
} }
protected virtual void Dispose(bool disposing) protected virtual void Dispose(bool disposing)
@ -64,6 +64,6 @@ public class DataAccess: IDataAccess, IDisposable
public IEnumerable<Item>? GetItems() public IEnumerable<Item>? GetItems()
{ {
return GetFromCache<Item>("select * from dbo.\"Items\";"); return GetFromCache<Item>("SELECT * FROM public.\"Items\";");
} }
} }

View File

@ -7,7 +7,7 @@ namespace WretchedMachines.Pages;
public class IndexModel : PageModel public class IndexModel : PageModel
{ {
private readonly ILogger<IndexModel> _logger; public readonly ILogger<IndexModel> _logger;
public IndexModel(ILogger<IndexModel> logger) public IndexModel(ILogger<IndexModel> logger)
{ {

View File

@ -6,3 +6,11 @@
<h1>@ViewData["Title"]</h1> <h1>@ViewData["Title"]</h1>
<p>Use this page to detail your site's privacy policy.</p> <p>Use this page to detail your site's privacy policy.</p>
<div>
<ul>
@foreach(var item in Model.Items)
{
<li>@item.Id&nbsp;<span>@item.Name</span>&nbsp;@item.Price$</li>
}
</ul>
</div>

View File

@ -9,16 +9,18 @@ namespace WretchedMachines.Pages;
public class PrivacyModel : PageModel public class PrivacyModel : PageModel
{ {
private readonly IDataAccess dataAccess; private readonly IDataAccess dataAccess;
public IEnumerable<Item>? Items {get; set;}
public PrivacyModel(IDataAccess dataAccess) public PrivacyModel(IDataAccess dataAccess)
{ {
this.dataAccess = dataAccess; this.dataAccess = dataAccess;
this.Items = new List<Item>();
} }
public void OnGet() public void OnGet()
{ {
var item = dataAccess.GetItems()?.FirstOrDefault(); Items = dataAccess.GetItems();
Log.Information(item?.Name!); Log.Information(Items!.Count().ToString());
} }
} }