1
0
This repository has been archived on 2026-04-22. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
my-old-website/MyWebsite/MyWebsite/Areas/Admin/Controllers/GUTScheduleController.cs
T
2020-03-16 16:10:39 +03:00

138 lines
3.4 KiB
C#

using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using MyWebsite.Controllers;
using MyWebsite.Models;
using MyWebsite.Models.Databases;
using System.Linq;
using System;
using MyWebsite.ViewModels;
using System.Globalization;
namespace MyWebsite.Areas.Admin.Controllers
{
[Authorize]
[Area("Admin")]
public class GUTScheduleController : ExtendedController
{
const string viewPath = "Areas/Admin/Views/Shared/GUTSchedule.cshtml";
private GUTScheduleDatabaseContext db;
public GUTScheduleController(DatabaseContext context, GUTScheduleDatabaseContext databaseContext) : base(context) =>
db = databaseContext;
[HttpGet]
public IActionResult Index()
{
ViewData["Policies"] = db.PrivacyPolicies;
return View(viewPath, db.OffsetDates.FirstOrDefault());
}
[HttpPost]
public IActionResult Index(CustomData model)
{
if (model == null)
throw new ArgumentNullException(nameof(model));
if (!ModelState.IsValid)
{
ModelState.AddModelError("Error", "Invalid data");
return View(model);
}
db.OffsetDates.RemoveRange(db.OffsetDates);
db.OffsetDates.Add(model);
db.SaveChanges();
return Index();
}
[HttpGet]
public IActionResult CreatePolicy()
{
ViewData["Caption"] = "privacy policy";
return View(viewName: "Areas/Admin/Views/Resume/Create.cshtml");
}
[HttpPost]
public IActionResult CreatePolicy(ResumeModel model)
{
if (model == null)
throw new ArgumentNullException(nameof(model));
if (!ModelState.IsValid)
{
ModelState.AddModelError("Error", "Invalid data");
return View("Areas/Admin/Views/Resume/Create.cshtml", model);
}
model.LastUpdate = DateTime.Now;
if (db.PrivacyPolicies.Any(i => i.Language == model.Language))
{
ModelState.AddModelError("Error", $"Resume with this language ({model.Language}) is already exists");
return View("Areas/Admin/Views/Resume/Create.cshtml", model);
}
db.PrivacyPolicies.Add(model);
db.SaveChanges();
return RedirectToAction("Index");
}
[HttpGet]
public IActionResult DeletePolicy(string id)
{
ViewData["Caption"] = "privacy policy";
return View("Areas/Admin/Views/Resume/Delete.cshtml", db.PrivacyPolicies.Find(id));
}
[HttpPost]
public IActionResult DeletePolicy(ResumeModel model)
{
db.PrivacyPolicies.Remove(model);
db.SaveChanges();
return RedirectToAction("Index");
}
[HttpGet]
public IActionResult EditPolicy(string id)
{
ViewData["Caption"] = "privacy policy";
return View("Areas/Admin/Views/Resume/Edit.cshtml", db.PrivacyPolicies.Find(id));
}
[HttpPost]
public IActionResult EditPolicy(ResumeModel model)
{
if (model == null)
throw new ArgumentNullException(nameof(model));
if (!ModelState.IsValid)
{
ModelState.AddModelError("Error", "Invalid data");
return View("Areas/Admin/Views/Resume/Edit.cshtml", model);
}
model.LastUpdate = DateTime.Now;
db.PrivacyPolicies.Update(model);
db.SaveChanges();
return RedirectToAction("Index");
}
[AllowAnonymous]
[Route("/Projects/GUTSchedule/PrivacyPolicy")]
public IActionResult PrivacyPolicy() =>
View("Areas/Projects/Views/GUTSchedule/PrivacyPolicy.cshtml", new ResumeViewModel(db.PrivacyPolicies.Find(CultureInfo.CurrentCulture.TwoLetterISOLanguageName) ?? db.PrivacyPolicies.Find("en") ?? db.PrivacyPolicies.Find("ru"), Database));
[AllowAnonymous]
[Route("/Projects/GUTSchedule")]
public IActionResult GetGUTSchedule() =>
View();
}
}