Mango.Nop.Plugins/Nop.Plugin.Misc.AuctionPlugin/Controllers/AnnouncementController.cs

194 lines
3.8 KiB
C#

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<AuctionHub> _announcementHubContext;
#endregion
#region Ctr
public LiveAnnouncementController(
IAnnouncementService announcementService,
IHubContext<AuctionHub> 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 IActionResult Announcement(AnnouncementModel model)
{
AnnouncementEntity objOfAnnouncementDomain = new AnnouncementEntity();
objOfAnnouncementDomain.Name = model.Name;
objOfAnnouncementDomain.Body = model.Body;
objOfAnnouncementDomain.IsActive = model.IsActive;
objOfAnnouncementDomain.CreateDate = DateTime.UtcNow;
_announcementService.Insert(objOfAnnouncementDomain);
if (model.IsActive == true)
{
_announcementHubContext.Clients.All.SendAsync("send", model.Body.ToString());
}
return RedirectToAction("AnnouncementList");
}
[HttpPost]
public IActionResult Edit(AnnouncementEntity model)
{
var entity = _announcementService.GetAnnouncementByIdAsync(model.Id);
entity.Name = model.Name;
entity.Body = model.Body;
entity.IsActive = model.IsActive;
entity.CreateDate = DateTime.UtcNow;
_announcementService.Update(entity);
if (model.IsActive == true)
{
_announcementHubContext.Clients.All.SendAsync("send", model.Body.ToString());
}
return RedirectToAction("AnnouncementList");
}
public async Task<IActionResult> 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 IActionResult Delete(int Id)
{
var singleAnnouncement = _announcementService.GetAnnouncementById(Id);
_announcementService.Delete(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
}
}