From b4e8b975048791ea050264f0e4a63303e9cd6c5d Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 14 Nov 2024 10:33:59 +0100 Subject: [PATCH] Add and view announcements --- .../Controllers/AnnouncementController.cs | 38 +++++-- .../Admin/Models/KendoGridRequestModel.cs | 21 ++++ .../Areas/Admin/Views/AnnouncementList.cshtml | 103 ++++-------------- .../Areas/Admin/Views/_ViewImports.cshtml | 4 +- 4 files changed, 76 insertions(+), 90 deletions(-) create mode 100644 Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/KendoGridRequestModel.cs diff --git a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AnnouncementController.cs b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AnnouncementController.cs index 105b709..7c17820 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AnnouncementController.cs +++ b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Controllers/AnnouncementController.cs @@ -5,8 +5,10 @@ using Nop.Plugin.Misc.AuctionPlugin.Domains; using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities; using Nop.Plugin.Misc.AuctionPlugin.Hubs; using Nop.Plugin.Misc.AuctionPlugin.Services; +using Nop.Services.Logging; using Nop.Web.Framework; using Nop.Web.Framework.Controllers; +using Nop.Web.Framework.Models.DataTables; using Nop.Web.Framework.Mvc; using Nop.Web.Framework.Mvc.Filters; using System; @@ -24,6 +26,7 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers private readonly IAnnouncementService _announcementService; private IHubContext _announcementHubContext; + private readonly ILogger _logger; #endregion @@ -31,10 +34,12 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers public AnnouncementController( IAnnouncementService announcementService, - IHubContext announcementHubContext) + IHubContext announcementHubContext, + ILogger logger) { _announcementService = announcementService; _announcementHubContext = announcementHubContext; + _logger = logger; } #endregion @@ -104,21 +109,36 @@ namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers } - public IActionResult AnnouncementList() + public async Task AnnouncementList() { + await _logger.InformationAsync("AnnouncementList called!"); var model = new AnnouncementViewModel(); return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/AnnouncementList.cshtml", model); } - //[HttpPost] - //public IActionResult AnnouncementList() - //{ + [HttpPost] + //public async Task GetAnnouncementList([FromBody] KendoGridRequestModel request) + public async Task GetAnnouncementList() + { + //await _logger.InformationAsync("GetAnnouncementList called!"); + //var total = (await _announcementService.GetAnnouncementsAsync()).Count(); + //var result = await _announcementService.GetAnnouncementsAsync(request.Page, request.PageSize); + //return Json(new + //{ + // Data = result, + // Total = total + //}); - - // return View(); - - //} + try + { + return Ok(new DataTablesModel { Data = await _announcementService.GetAnnouncementsAsync() }); + } + catch (Exception ex) + { + return BadRequest(ex); + } + } #endregion diff --git a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/KendoGridRequestModel.cs b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/KendoGridRequestModel.cs new file mode 100644 index 0000000..d130d8c --- /dev/null +++ b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Models/KendoGridRequestModel.cs @@ -0,0 +1,21 @@ +namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Models +{ + public class KendoGridRequestModel + { + // Page number + public int Page { get; set; } = 1; + + // Page size (number of items per page) + public int PageSize { get; set; } = 10; + + // Field to sort by + public string SortField { get; set; } + + // Sort direction (e.g., "asc" or "desc") + public string SortDirection { get; set; } + + // Optional: Filtering parameters, can be customized to fit your needs + public string FilterField { get; set; } + public string FilterValue { get; set; } + } +} diff --git a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/AnnouncementList.cshtml b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/AnnouncementList.cshtml index d3a5b24..29dd9a6 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/AnnouncementList.cshtml +++ b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/AnnouncementList.cshtml @@ -2,6 +2,7 @@ @using Nop.Core.Infrastructure @using Nop.Web.Framework + @{ var defaultGridPageSize = EngineContext.Current.Resolve().DefaultGridPageSize; var gridPageSizes = EngineContext.Current.Resolve().GridPageSizes; @@ -13,7 +14,7 @@
- + Add @@ -25,87 +26,29 @@
-
- + +
diff --git a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/_ViewImports.cshtml b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/_ViewImports.cshtml index 65e616a..57ae384 100644 --- a/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/_ViewImports.cshtml +++ b/Nop.Plugin.Misc.AuctionPlugin/Areas/Admin/Views/_ViewImports.cshtml @@ -12,4 +12,6 @@ @using Nop.Web.Framework.Events @using Nop.Core.Infrastructure @using Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Models; -@using Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers; \ No newline at end of file +@using Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers; +@using Nop.Web.Framework.Models.DataTables +@using Nop.Plugin.Misc.AuctionPlugin.Domains.Entities \ No newline at end of file