128 lines
4.0 KiB
C#
128 lines
4.0 KiB
C#
using Microsoft.AspNetCore.Mvc;
|
|
using Microsoft.AspNetCore.SignalR;
|
|
using Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Models;
|
|
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.Web.Framework;
|
|
using Nop.Web.Framework.Controllers;
|
|
using Nop.Web.Framework.Mvc;
|
|
using Nop.Web.Framework.Mvc.Filters;
|
|
using System;
|
|
using System.Linq;
|
|
|
|
namespace Nop.Plugin.Misc.AuctionPlugin.Areas.Admin.Controllers
|
|
{
|
|
[AutoValidateAntiforgeryToken]
|
|
[AuthorizeAdmin]
|
|
[Area(AreaNames.ADMIN)]
|
|
public class AnnouncementController : BasePluginController
|
|
{
|
|
|
|
#region Field
|
|
|
|
private readonly IAnnouncementService _announcementService;
|
|
private IHubContext<AuctionHub> _announcementHubContext;
|
|
|
|
#endregion
|
|
|
|
#region Ctr
|
|
|
|
public AnnouncementController(
|
|
IAnnouncementService announcementService,
|
|
IHubContext<AuctionHub> announcementHubContext)
|
|
{
|
|
_announcementService = announcementService;
|
|
_announcementHubContext = announcementHubContext;
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region Methods
|
|
|
|
public IActionResult GetAnnouncementViewModel()
|
|
{
|
|
var model = new AnnouncementViewModel();
|
|
return View("~/Plugins/Misc.AuctionPlugin/Areas/Admin/Views/Announcement.cshtml", model);
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> GetAnnouncementViewModel(AnnouncementViewModel viewModel)
|
|
{
|
|
Announcement objOfAnnouncementDomain = new Announcement();
|
|
objOfAnnouncementDomain.Name = viewModel.Name;
|
|
objOfAnnouncementDomain.Body = viewModel.Body;
|
|
objOfAnnouncementDomain.IsActive = viewModel.IsActive;
|
|
objOfAnnouncementDomain.Created = DateTime.UtcNow;
|
|
await _announcementService.InsertAsync(objOfAnnouncementDomain);
|
|
|
|
if (viewModel.IsActive == true)
|
|
{
|
|
await _announcementHubContext.Clients.All.SendAsync("send", viewModel.Body.ToString());
|
|
}
|
|
return RedirectToAction("AnnouncementList");
|
|
|
|
}
|
|
|
|
[HttpPost]
|
|
public async Task<IActionResult> Edit(Announcement model)
|
|
{
|
|
var entity = await _announcementService.GetAnnouncementByIdAsync(model.Id);
|
|
entity.Name = model.Name;
|
|
entity.Body = model.Body;
|
|
entity.IsActive = model.IsActive;
|
|
entity.Created = DateTime.UtcNow;
|
|
await _announcementService.UpdateAsync(entity);
|
|
|
|
if (model.IsActive == true)
|
|
{
|
|
await _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 Announcement();
|
|
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<IActionResult> Delete(int Id)
|
|
{
|
|
var singleAnnouncement = await _announcementService.GetAnnouncementByIdAsync(Id);
|
|
await _announcementService.DeleteAsync(singleAnnouncement);
|
|
return new NullJsonResult();
|
|
}
|
|
|
|
|
|
public IActionResult AnnouncementList()
|
|
{
|
|
var model = new AnnouncementViewModel();
|
|
return View("~/Plugins/Misc.Auction/Areas/Admin/Views/AnnouncementList.cshtml", model);
|
|
}
|
|
|
|
//[HttpPost]
|
|
//public IActionResult AnnouncementList()
|
|
//{
|
|
|
|
|
|
|
|
// return View();
|
|
|
|
//}
|
|
|
|
#endregion
|
|
|
|
}
|
|
|
|
}
|