public ActionResult ChangePhoto() { ChangePhotoViewModel model = new ChangePhotoViewModel(); model.UserId = _userService.GetIdByAspId(User.Identity.GetUserId()); return(PartialView("_ChangePhoto", model)); }
public async Task <IActionResult> ChangePhoto(ChangePhotoViewModel changePhotoViewModel) { var userCurrent = await this._userManager.GetUserAsync(this.User); var imageSrc = await this._imageService.SaveImage(changePhotoViewModel.Image); await this._userService.UpdateImage(userCurrent.Id, imageSrc); return(this.RedirectToAction("UserProfile")); }
public ActionResult ChangePhoto(ChangePhotoViewModel viewModel) { if (viewModel.Image != null) { var user = _userService.GetUserById(viewModel.UserId); var img = _userService.СonvertingImg(viewModel.Image); user.Image = img; _userService.UpdateUser(user); return(RedirectToAction("Index", "User")); } return(RedirectToAction("Index", "User")); }
public async Task<IActionResult> ChangePhoto(int photoId) { ApplicationUser user = await GetCurrentUserAsync(); Photo photo = await _db.Photos .Where(x => x.PhotoId == photoId && x.UserId == user.Id) .FirstOrDefaultAsync(); ChangePhotoViewModel model = new ChangePhotoViewModel { Photo = photo }; return View(model); }
public ActionResult ChangePhoto(ChangePhotoViewModel model) { if (!ModelState.IsValid) { return(View(model)); } var userId = User.Identity.GetUserId(); if (userId != null) { db.Database.ExecuteSqlCommand("UPDATE AspNetUsers SET PhotoUrl = {0} WHERE Id = {1}", model.NewPhotoUrl, userId); } return(RedirectToAction("Index")); }
public ActionResult ChangePhoto() { var viewModel = new ChangePhotoViewModel(); return(this.View(viewModel)); }
public async Task <ActionResult> ChangePhoto(ChangePhotoViewModel model) { var user = UserManager.Users.First(u => u.UserName == User.Identity.Name); if (ModelState.IsValid) { // No change if (model.Avatar == null && !model.IsNoPhotoChecked && model.UseGravatar == user.UseGravatar && model.UseSocialNetworkPicture == user.UseSocialNetworkPicture) { return(RedirectToAction("ChangePhoto", new { Message = ManageMessageId.NoChange })); } // Delete photo if photo exist and is not a gravatar or socialnetworkPicture. if (user.AvatarUrl != null) { if (!(user.AvatarUrl.Contains("http://") || user.AvatarUrl.Contains("https://"))) { // Delete file if not the BlankPhoto.jpg and if we change for a gravatar or socialnetworkpicture or new photo if (!user.AvatarUrl.Contains("BlankPhoto.jpg")) { if (model.IsNoPhotoChecked || model.UseGravatar || model.UseSocialNetworkPicture || model.Avatar != null) { string fileToDelete = Path.GetFileName(user.AvatarUrl); var path = Path.Combine(Server.MapPath("~/Content/Avatars"), fileToDelete); FileInfo fi = new FileInfo(path); if (fi.Exists) { fi.Delete(); } } } } } if (model.IsNoPhotoChecked) { //string vPath = HttpRuntime.AppDomainAppVirtualPath; //var path = Path.Combine(vPath, "/Content/Avatars/BlankPhoto.jpg"); // [10015] PB: Migration files VS dev env string vPath = Utils.AppPath(); var path = vPath + "/Content/Avatars/BlankPhoto.jpg"; // [10015] model.AvatarUrl = path; } else // Save on disk only uploaded picture. if (model.Avatar != null) { model.AvatarUrl = Utils.SavePhotoFileToDisk(model.Avatar, this, user.AvatarUrl, false); } if (model.UseGravatar == true) { model.AvatarUrl = JA.Helpers.Utils.GetGravatarUrlForAddress(user.Email); } //[10019] Use provider avatar by default for external login ADD: this function in Profile Change photo. if (model.UseSocialNetworkPicture == true) { var linkedAccounts = UserManager.GetLogins(User.Identity.GetUserId()); var owc = Request.GetOwinContext(); if (linkedAccounts.Count == 0) { return(RedirectToAction("ChangePhoto", new { Message = ManageMessageId.NoExternalProvider })); } model.ExternalProvider = linkedAccounts[0].LoginProvider; if (model.ExternalProvider == "Google") { var imageJSON = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:google:image")).Value; JObject o = JObject.Parse(imageJSON); model.AvatarUrl = o["url"].ToString(); } if (model.ExternalProvider == "Microsoft") { var microsoftAccountId = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:microsoftaccount:id")).Value; model.AvatarUrl = string.Format("https://apis.live.net/v5.0/{0}/picture", microsoftAccountId); } if (model.ExternalProvider == "Facebook") { var facebookAccountId = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:facebook:id")).Value; model.AvatarUrl = string.Format("http://graph.facebook.com/{0}/picture", facebookAccountId); } if (model.ExternalProvider == "Twitter") { var twitterScreenname = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:twitter:screenname")).Value; model.AvatarUrl = string.Format("https://twitter.com/{0}/profile_image?size=original", twitterScreenname); } if (model.ExternalProvider == "GitHub") { var githubId = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:github:id")).Value; model.AvatarUrl = string.Format("https://avatars.githubusercontent.com/u/{0}?v=3", githubId); } } //[10019] user.AvatarUrl = model.AvatarUrl; user.UseGravatar = model.UseGravatar; user.UseSocialNetworkPicture = model.UseSocialNetworkPicture; await UserManager.UpdateAsync(user); return(RedirectToAction("ChangePhoto", new { Message = ManageMessageId.ModifSuccess })); } model.AvatarUrl = user.AvatarUrl; // If we got this far, something failed, redisplay form return(View(model)); }
// GET: /Manage/ChangePhoto public ActionResult ChangePhoto(ManageMessageId?message = null) { ViewBag.StatusMessage = message == ManageMessageId.ModifSuccess ? "Your photo has been changed." : message == ManageMessageId.Error ? "An error has occurred." : message == ManageMessageId.NoChange ? "No change have been made." : message == ManageMessageId.NoExternalProvider ? "No external login provider found." : ""; var user = UserManager.Users.First(u => u.UserName == User.Identity.Name); var model = new ChangePhotoViewModel(); if (user.AvatarUrl == null) { model.AvatarUrl = System.IO.Path.Combine(HttpRuntime.AppDomainAppVirtualPath, @"Content/Avatars", @"BlankPhoto.jpg"); } else { model.AvatarUrl = user.AvatarUrl; } model.UseGravatar = user.UseGravatar; model.Email = user.Email; //[10021] model.Pseudo = user.Pseudo; //[10019] Use provider avatar by default for external login ADD: this function in Profile Change photo. model.UseSocialNetworkPicture = user.UseSocialNetworkPicture; var owc = Request.GetOwinContext(); var linkedAccounts = UserManager.GetLogins(User.Identity.GetUserId()); if (linkedAccounts.Count != 0) { model.ExternalProvider = linkedAccounts[0].LoginProvider; if (model.ExternalProvider == "Google") { var imageJSON = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:google:image")).Value; JObject o = JObject.Parse(imageJSON); model.ParameterProvider = o["url"].ToString(); } if (model.ExternalProvider == "Microsoft") { var microsoftAccountId = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:microsoftaccount:id")).Value; model.ParameterProvider = microsoftAccountId; } if (model.ExternalProvider == "Facebook") { var facebookAccountId = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:facebook:id")).Value; model.ParameterProvider = facebookAccountId; } if (model.ExternalProvider == "Twitter") { var twitterScreenname = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:twitter:screenname")).Value; model.ParameterProvider = twitterScreenname; } //[10026] ADD: Github for external login if (model.ExternalProvider == "GitHub") { var githibId = owc.Authentication.User.Claims.FirstOrDefault(c => c.Type.Equals("urn:github:id")).Value; model.ParameterProvider = githibId; } //[10026] } //[10019] return(View(model)); }