mirror of
https://gitlab.com/buildfeed/BuildFeed.git
synced 2024-03-22 21:10:34 +08:00
77 lines
2.3 KiB
C#
77 lines
2.3 KiB
C#
using BuildFeed.Areas.admin.Models.ViewModel;
|
|
using BuildFeed.Models;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.Mvc;
|
|
|
|
namespace BuildFeed.Areas.admin.Controllers
|
|
{
|
|
[Authorize(Roles = "Administrators")]
|
|
public class metaController : Controller
|
|
{
|
|
// GET: admin/meta
|
|
public ActionResult index()
|
|
{
|
|
var currentItems = from i in MetaItem.Select()
|
|
group i by i.Id.Type into b
|
|
select b;
|
|
|
|
var pendingLabs = MetaItem.SelectUnusedLabs();
|
|
|
|
return View(new MetaListing()
|
|
{
|
|
CurrentItems = from i in MetaItem.Select()
|
|
group i by i.Id.Type into b
|
|
select b,
|
|
|
|
NewItems = from i in (from l in MetaItem.SelectUnusedLabs()
|
|
select new MetaItem()
|
|
{
|
|
Id = new MetaItemKey()
|
|
{
|
|
Type = MetaType.Lab,
|
|
Value = l
|
|
}
|
|
})
|
|
group i by i.Id.Type into b
|
|
select b
|
|
});
|
|
}
|
|
|
|
public ActionResult create(MetaType type, string value)
|
|
{
|
|
return View(new MetaItem() { Id = new MetaItemKey() { Type = type, Value = value } });
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult create(MetaItem meta)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
MetaItem.Insert(meta);
|
|
return RedirectToAction("index");
|
|
}
|
|
|
|
return View(meta);
|
|
}
|
|
|
|
public ActionResult edit(MetaType type, string value)
|
|
{
|
|
return View("create", MetaItem.SelectById(new MetaItemKey() { Type = type, Value = value }));
|
|
}
|
|
|
|
[HttpPost]
|
|
public ActionResult edit(MetaItem meta)
|
|
{
|
|
if (ModelState.IsValid)
|
|
{
|
|
MetaItem.Update(meta);
|
|
return RedirectToAction("index");
|
|
}
|
|
|
|
return View("create", meta);
|
|
}
|
|
}
|
|
} |