2022-09-08 08:04:32 -07:00

157 lines
5.0 KiB
C#

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Entity;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Net;
using System.Web;
using System.Web.Mvc;
using Chruch.Net.Controllers;
using Church.Net.DAL.EF;
using Church.Net.Entity;
namespace Chruch.Net.Areas.dashboard.Controllers
{
public class WhoIsSpiesController : Controller
{
private ChurchNetContext db = new ChurchNetContext();
// GET: dashboard/WhoIsSpies
public ActionResult Index()
{
return View(db.WhoIsSpy.ToList());
}
// GET: dashboard/WhoIsSpies/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
if (whoIsSpy == null)
{
return HttpNotFound();
}
return View(whoIsSpy);
}
// GET: dashboard/WhoIsSpies/Create
public ActionResult Create()
{
return View();
}
// POST: dashboard/WhoIsSpies/Create
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(WhoIsSpy whoIsSpy)
{
if (ModelState.IsValid)
{
db.WhoIsSpy.Add(whoIsSpy);
db.SaveChanges();
SaveImageFromRequest("Answer1Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer1Image);
SaveImageFromRequest("Answer2Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer2Image);
return RedirectToAction("Index");
}
return View(whoIsSpy);
}
// GET: dashboard/WhoIsSpies/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
if (whoIsSpy == null)
{
return HttpNotFound();
}
return View(whoIsSpy);
}
// POST: dashboard/WhoIsSpies/Edit/5
// 若要免於過量張貼攻擊,請啟用想要繫結的特定屬性,如需
// 詳細資訊,請參閱 https://go.microsoft.com/fwlink/?LinkId=317598。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Edit([Bind(Include = "Id,Answer1Cht,Answer1Chs,Answer1En,Answer2Cht,Answer2Chs,Answer2En,Answer1Image,Answer2Image")] WhoIsSpy whoIsSpy)
{
if (ModelState.IsValid)
{
db.Entry(whoIsSpy).State = EntityState.Modified;
db.SaveChanges();
SaveImageFromRequest("Answer1Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer1Image);
SaveImageFromRequest("Answer2Image", Server.MapPath("~/Images/IceBreak/WhoIsSpy/"), whoIsSpy.Answer2Image);
return RedirectToAction("Index");
}
return View(whoIsSpy);
}
// GET: dashboard/WhoIsSpies/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
if (whoIsSpy == null)
{
return HttpNotFound();
}
return View(whoIsSpy);
}
// POST: dashboard/WhoIsSpies/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
WhoIsSpy whoIsSpy = db.WhoIsSpy.Find(id);
db.WhoIsSpy.Remove(whoIsSpy);
db.SaveChanges();
return RedirectToAction("Index");
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
private void SaveImageFromRequest(string requestParameterName, string filePath,string newFileName)
{
var file = HttpContext.Request.Files[requestParameterName];
bool hasFile = file != null && !string.IsNullOrEmpty(file.FileName);
//string newFileName = hasFile ? $"{model.Id}{file.FileName.Substring(file.FileName.LastIndexOf("."))}" : "";
Directory.CreateDirectory(filePath);
if (hasFile)
{
Church.Net.Utility.Image.SaveThumbnail(new Bitmap(file.InputStream),
filePath + "\\" + newFileName, 200, 200);
}
}
}
}