diff options
Diffstat (limited to 'Project-Unite/Controllers/SkinsController.cs')
| -rw-r--r-- | Project-Unite/Controllers/SkinsController.cs | 61 |
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 |
