diff --git a/Controllers/HomeController.cs b/Controllers/HomeController.cs index 255af9f..228a9c3 100644 --- a/Controllers/HomeController.cs +++ b/Controllers/HomeController.cs @@ -6,14 +6,14 @@ namespace MyDarling.Controllers { public class HomeController : Controller { - private DataContext context; - public HomeController(DataContext context) + private IRepository repository; + public HomeController(IRepository repository) { - this.context = context; + this.repository = repository; } public IActionResult Index() { - return View(context.UnderwearBundles.Include(bundle => bundle.Figures).Where(x => x.Price != 0)); + return View(repository); } } } \ No newline at end of file diff --git a/Models/IRepository.cs b/Models/IRepository.cs new file mode 100644 index 0000000..363f48d --- /dev/null +++ b/Models/IRepository.cs @@ -0,0 +1,10 @@ +namespace MyDarling.Models +{ + public interface IRepository + { + public IQueryable Bundles { get; } + public void Add(UnderwearBundle b); + public void Remove(UnderwearBundle p); + public void Save(); + } +} \ No newline at end of file diff --git a/Models/MyDarlingRepository.cs b/Models/MyDarlingRepository.cs new file mode 100644 index 0000000..07caff8 --- /dev/null +++ b/Models/MyDarlingRepository.cs @@ -0,0 +1,32 @@ +using Microsoft.EntityFrameworkCore; + +namespace MyDarling.Models +{ + public class MyDarlingRepository : IRepository + { + private DataContext context; + public MyDarlingRepository(IServiceProvider provider) + { + context = provider.CreateScope().ServiceProvider.GetRequiredService(); + } + + public IQueryable Bundles => context.UnderwearBundles.Include(b => b.Figures); + + public void Add(UnderwearBundle b) + { + context.UnderwearBundles.Add(b); + context.SaveChanges(); + } + + public void Remove(UnderwearBundle b) + { + context.UnderwearBundles.Remove(b); + context.SaveChanges(); + } + + public void Save() + { + context.SaveChanges(); + } + } +} \ No newline at end of file diff --git a/Program.cs b/Program.cs index 7a4bd1d..2d52ee9 100644 --- a/Program.cs +++ b/Program.cs @@ -3,11 +3,12 @@ using MyDarling.Models; var builder = WebApplication.CreateBuilder(args); -builder.Services.AddDbContext(opts => +builder.Services.AddDbContext(opts => { - opts.UseSqlite(builder.Configuration["ConnectionStrings:MyDarlingDb"]); - opts.EnableSensitiveDataLogging(true); + opts.UseSqlite(builder.Configuration["ConnectionStrings:MyDarlingDb"]); + opts.EnableSensitiveDataLogging(true); }); +builder.Services.AddSingleton(); builder.Services.AddControllersWithViews(); var app = builder.Build(); @@ -16,7 +17,7 @@ app.UseStaticFiles(); app.MapControllers(); app.MapDefaultControllerRoute(); -var context = app.Services.CreateScope().ServiceProvider.GetRequiredService(); -SeedData.SeedDatabase(context); +// var context = app.Services.CreateScope().ServiceProvider.GetRequiredService(); +// SeedData.SeedDatabase(context); app.Run(); \ No newline at end of file diff --git a/Views/Home/_Projects.cshtml b/Views/Home/_Projects.cshtml index d35fc11..314a9f0 100644 --- a/Views/Home/_Projects.cshtml +++ b/Views/Home/_Projects.cshtml @@ -1,10 +1,10 @@ -@model IQueryable; +@model MyDarling.Models.IRepository; @using System.Globalization;
- @foreach (var bundle in @Model) + @foreach (var bundle in @Model.Bundles.Where(b => b.Price != 0)) {