summaryrefslogtreecommitdiff
path: root/Project-Unite/Controllers
diff options
context:
space:
mode:
authorMichael <[email protected]>2017-03-25 15:59:50 -0400
committerMichael <[email protected]>2017-03-25 15:59:50 -0400
commit9f238cc47fd5b9ec546b37986371e73d6ed3c626 (patch)
treee1d9175d58999ca99d5308c2b42749bab5806581 /Project-Unite/Controllers
parent84285d2ffb84f470ab7b09708075427ae31541f0 (diff)
downloadproject-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.cs61
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;