diff options
| author | Michael <[email protected]> | 2017-03-25 15:59:50 -0400 |
|---|---|---|
| committer | Michael <[email protected]> | 2017-03-25 15:59:50 -0400 |
| commit | 9f238cc47fd5b9ec546b37986371e73d6ed3c626 (patch) | |
| tree | e1d9175d58999ca99d5308c2b42749bab5806581 /Project-Unite/Controllers | |
| parent | 84285d2ffb84f470ab7b09708075427ae31541f0 (diff) | |
| download | project-unite-9f238cc47fd5b9ec546b37986371e73d6ed3c626.tar.gz project-unite-9f238cc47fd5b9ec546b37986371e73d6ed3c626.tar.bz2 project-unite-9f238cc47fd5b9ec546b37986371e73d6ed3c626.zip | |
Avatar system :smiley:
Diffstat (limited to 'Project-Unite/Controllers')
| -rw-r--r-- | Project-Unite/Controllers/ManageController.cs | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/Project-Unite/Controllers/ManageController.cs b/Project-Unite/Controllers/ManageController.cs index 4543307..6ade427 100644 --- a/Project-Unite/Controllers/ManageController.cs +++ b/Project-Unite/Controllers/ManageController.cs @@ -20,6 +20,67 @@ namespace Project_Unite.Controllers { } + public ActionResult SetAvatar(string id) + { + var db = new ApplicationDbContext(); + var usr = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId()); + var avtr = db.UserAvatars.FirstOrDefault(x => x.Id == id); + usr.AvatarUrl = avtr.AvatarUrl; + db.SaveChanges(); + return RedirectToAction("Index"); + } + + public ActionResult UploadAvatar() + { + var model = new UploadImageViewModel(); + return View(model); + } + + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult UploadAvatar(UploadImageViewModel model) + { + string[] allowedTypes = new[] { ".png", ".jpg", ".bmp", ".jpeg", ".gif" }; + + bool containsAllowedType = !string.IsNullOrWhiteSpace(allowedTypes.FirstOrDefault(x => model.Image.FileName.EndsWith(x))); + if (containsAllowedType == false) + ModelState.AddModelError("UploadImageViewModel", new Exception("File type not allowed.")); + + if (ModelState.IsValid == true) + { + var db = new ApplicationDbContext(); + var usr = db.Users.FirstOrDefault(x => x.Id == User.Identity.GetUserId()); + string avatarRoot = $"~/Uploads/{usr.DisplayName}/Avatars"; + string serverPath = Server.MapPath(avatarRoot); + if (!System.IO.Directory.Exists(serverPath)) + System.IO.Directory.CreateDirectory(serverPath); + + avatarRoot += "/" + model.Image.FileName; + serverPath += "\\" + model.Image.FileName; + + model.Image.SaveAs(serverPath); + + var avatar = new Avatar(); + avatar.Id = Guid.NewGuid().ToString(); + avatar.AvatarUrl = avatarRoot.Remove(0, 1); + avatar.UserId = usr.Id; + avatar.UploadedAt = DateTime.Now; + usr.AvatarUrl = avatar.AvatarUrl; + db.UserAvatars.Add(avatar); + db.SaveChanges(); + return RedirectToAction("Index"); + } + + + return View(model); + } + + public ActionResult ListAvatars() + { + var avatars = new ApplicationDbContext().UserAvatars.Where(x => x.UserId == User.Identity.GetUserId()); + return View(avatars); + } + public ManageController(ApplicationUserManager userManager, ApplicationSignInManager signInManager) { UserManager = userManager; |
