summaryrefslogtreecommitdiff
path: root/Project-Unite/Controllers
diff options
context:
space:
mode:
Diffstat (limited to 'Project-Unite/Controllers')
-rw-r--r--Project-Unite/Controllers/SkinsController.cs61
1 files changed, 61 insertions, 0 deletions
diff --git a/Project-Unite/Controllers/SkinsController.cs b/Project-Unite/Controllers/SkinsController.cs
new file mode 100644
index 0000000..0b6b732
--- /dev/null
+++ b/Project-Unite/Controllers/SkinsController.cs
@@ -0,0 +1,61 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Web;
+using System.Web.Mvc;
+using Microsoft.AspNet.Identity;
+using Project_Unite.Models;
+
+namespace Project_Unite.Controllers
+{
+ public class SkinsController : Controller
+ {
+ // GET: Skins
+ public ActionResult Index()
+ {
+ return View(new ApplicationDbContext().Skins);
+ }
+
+ public ActionResult ViewSkin(string id)
+ {
+ var db = new ApplicationDbContext();
+ var skn = db.Skins.FirstOrDefault(x => x.Name == id);
+ if (skn == null)
+ return new HttpStatusCodeResult(404);
+ return View(skn);
+ }
+
+ [Authorize]
+ public ActionResult PostSkin()
+ {
+ var model = new CreateSkinViewModel();
+ return View(model);
+ }
+
+ [Authorize]
+ [HttpPost]
+ [ValidateAntiForgeryToken]
+ public ActionResult PostSkin(CreateSkinViewModel model)
+ {
+ if(!ModelState.IsValid)
+ {
+ return View(model);
+ }
+ var db = new ApplicationDbContext();
+ var skin = new Skin();
+ skin.Id = Guid.NewGuid().ToString();
+ skin.Name = model.Title;
+ skin.ShortDescription = model.ShortDescription;
+ skin.PostedAt = DateTime.Now;
+ skin.FullDescription = model.LongDescription;
+ skin.UserId = User.Identity.GetUserId();
+ skin.VersionId = "";
+ skin.DownloadUrl = Path.Combine("~/Uploads", model.SkinFile.FileName);
+ model.SkinFile.SaveAs(Path.Combine(Server.MapPath("~/Uploads"), model.SkinFile.FileName));
+ db.Skins.Add(skin);
+ db.SaveChanges();
+ return RedirectToAction("ViewSkin", new { id = skin.Name });
+ }
+ }
+} \ No newline at end of file