diff --git a/Services/Implemnetation/BannerRepository.cs b/Services/Implemnetation/BannerRepository.cs index 7b6b296..d7051ff 100644 --- a/Services/Implemnetation/BannerRepository.cs +++ b/Services/Implemnetation/BannerRepository.cs @@ -37,12 +37,17 @@ namespace Services.Implemnetation } + public List GetAllBanners() + { + return _context.Banners.AsNoTracking().ToList(); + } + public Banner GetBannerById(int id) { return _context.Banners.AsNoTracking().Where(x => x.Id == id).FirstOrDefault(); } - public async Task> GetBanners() + public async Task> GetBanners() { return await _context.Banners.AsNoTracking().ToListAsync(); } diff --git a/Services/Interaces/IBannerRepository.cs b/Services/Interaces/IBannerRepository.cs index 2a6e2e4..01aea70 100644 --- a/Services/Interaces/IBannerRepository.cs +++ b/Services/Interaces/IBannerRepository.cs @@ -9,7 +9,8 @@ namespace Services.Interaces { public interface IBannerRepository { - Task> GetBanners(); + Task> GetBanners(); + List GetAllBanners(); Banner GetBannerById(int id); diff --git a/Web/Areas/Admin/Controllers/BannerController.cs b/Web/Areas/Admin/Controllers/BannerController.cs index 92fe843..9e15cf2 100644 --- a/Web/Areas/Admin/Controllers/BannerController.cs +++ b/Web/Areas/Admin/Controllers/BannerController.cs @@ -1,5 +1,8 @@ using Microsoft.AspNetCore.Mvc; +using Model; using Services.Interaces; +using System.Collections.Immutable; +using Web.ViewModel; namespace Web.Areas.Admin.Controllers { @@ -13,9 +16,55 @@ namespace Web.Areas.Admin.Controllers } public IActionResult Index() { + var bannerFromdb = _banner.GetAllBanners(); + var viewmodel = new List(); - var baner = _banner.GetBanners(); - return View(baner); + foreach(var Banner in bannerFromdb) + { + viewmodel.Add(new BannerViewModel + { + Id = Banner.Id, + Title = Banner.Title, + Content=Banner.Content, + Description=Banner.Description, + ImageUrl=Banner.ImageUrl, + LinkUrl=Banner.LinkUrl, + + }); + } + + return View(viewmodel); + } + + [HttpGet] + public IActionResult Create() + { + return View(); + } + [HttpPost] + public async Task Create(BannerViewModel viewmodel) + { + if(ModelState.IsValid) + { + + var banner = new Banner + { + + Title = viewmodel.Title, + Content = viewmodel.Content, + Description = viewmodel.Description, + LinkUrl = viewmodel.LinkUrl, + ImageUrl = viewmodel.ImageUrl, + }; + + await _banner.Add(banner); + + await _banner.commitAsync(); + + return RedirectToAction(nameof(Index)); + + } + return View(viewmodel); } } } diff --git a/Web/Areas/Admin/Views/Banner/Create.cshtml b/Web/Areas/Admin/Views/Banner/Create.cshtml new file mode 100644 index 0000000..fb8e1f7 --- /dev/null +++ b/Web/Areas/Admin/Views/Banner/Create.cshtml @@ -0,0 +1,68 @@ +@model BannerViewModel + +@{ + ViewData["Title"] = "Create"; +} + + +
+
+
+
Create banner
+ +
+ + +
+
+ +
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ + + +
+
+ | Back to list +
+ +
+
+
+
+
+ + +@section Scripts{ + + + + @{ + + } +} + + + + diff --git a/Web/Areas/Admin/Views/Banner/Index.cshtml b/Web/Areas/Admin/Views/Banner/Index.cshtml index 4ec1300..dcb550b 100644 --- a/Web/Areas/Admin/Views/Banner/Index.cshtml +++ b/Web/Areas/Admin/Views/Banner/Index.cshtml @@ -1,4 +1,4 @@ -@model IEnumerable +@model IEnumerable @{ ViewData["Title"] = "Index"; @@ -7,7 +7,7 @@

Index

- Create New + Create New

@@ -30,7 +30,9 @@ - + diff --git a/Web/Areas/Admin/Views/Shared/_Layout.cshtml b/Web/Areas/Admin/Views/Shared/_AdminLayout.cshtml similarity index 84% rename from Web/Areas/Admin/Views/Shared/_Layout.cshtml rename to Web/Areas/Admin/Views/Shared/_AdminLayout.cshtml index 8e89e26..188577f 100644 --- a/Web/Areas/Admin/Views/Shared/_Layout.cshtml +++ b/Web/Areas/Admin/Views/Shared/_AdminLayout.cshtml @@ -4,15 +4,16 @@ @ViewData["Title"] - Web - + +
@Html.DisplayNameFor(model => model.ImageUrl) + Action +