using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.SignalR; using Nop.Plugin.Misc.AuctionPlugin; using Nop.Plugin.Misc.AuctionPlugin.Domains; using Nop.Plugin.Misc.AuctionPlugin.Models; using Nop.Plugin.Misc.AuctionPlugin.Services; using Nop.Web.Areas.Admin.Controllers; //using Nop.Web.Framework.Kendoui; using Nop.Web.Framework.Mvc; using System; using System.Linq; namespace Nop.Plugin.Misc.AuctionPlugin.Controllers { public class LiveAnnouncementController : BaseAdminController { #region Field private readonly IAnnouncementService _announcementService; private IHubContext _announcementHubContext; #endregion #region Ctr public LiveAnnouncementController( IAnnouncementService announcementService, IHubContext announcementHubContext) { _announcementService = announcementService; _announcementHubContext = announcementHubContext; } #endregion #region Methods public IActionResult Announcement() { var model = new AnnouncementModel(); return View("~/Plugins/Misc.AuctionPlugin/Views/LiveAnnouncementView/Announcement.cshtml", model); } [HttpPost] public async Task Announcement(AnnouncementModel model) { AnnouncementEntity objOfAnnouncementDomain = new AnnouncementEntity(); objOfAnnouncementDomain.Name = model.Name; objOfAnnouncementDomain.Body = model.Body; objOfAnnouncementDomain.IsActive = model.IsActive; objOfAnnouncementDomain.CreateDate = DateTime.UtcNow; await _announcementService.InsertAsync(objOfAnnouncementDomain); if (model.IsActive == true) { _announcementHubContext.Clients.All.SendAsync("send", model.Body.ToString()); } return RedirectToAction("AnnouncementList"); } [HttpPost] public async Task Edit(AnnouncementEntity model) { var entity = await _announcementService.GetAnnouncementByIdAsync(model.Id); entity.Name = model.Name; entity.Body = model.Body; entity.IsActive = model.IsActive; entity.CreateDate = DateTime.UtcNow; await _announcementService.UpdateAsync(entity); if (model.IsActive == true) { _announcementHubContext.Clients.All.SendAsync("send", model.Body.ToString()); } return RedirectToAction("AnnouncementList"); } public async Task Edit(int Id) { var singleAnnouncement = await _announcementService.GetAnnouncementByIdAsync(Id); var model = new AnnouncementEntity(); model.Id = singleAnnouncement.Id; model.Name = singleAnnouncement.Name; model.Body = singleAnnouncement.Body; model.IsActive = singleAnnouncement.IsActive; return View("~/Plugins/Widget.LiveAnnouncement/Views/LiveAnnouncementView/Announcement.cshtml", model); } public async Task Delete(int Id) { var singleAnnouncement = await _announcementService.GetAnnouncementByIdAsync(Id); await _announcementService.DeleteAsync(singleAnnouncement); return new NullJsonResult(); } public IActionResult AnnouncementList() { var model = new AnnouncementModel(); return View("~/Plugins/Widget.LiveAnnouncement/Views/LiveAnnouncementView/AnnouncementList.cshtml", model); } //[HttpPost] //public IActionResult AnnouncementList() //{ // return View(); //} #endregion } }