Esempio n. 1
0
        public ActionResult ChangePhoto()
        {
            ChangePhotoViewModel model = new ChangePhotoViewModel();

            model.UserId = _userService.GetIdByAspId(User.Identity.GetUserId());
            return(PartialView("_ChangePhoto", model));
        }
Esempio n. 2
0
        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"));
        }
Esempio n. 3
0
        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);
        }
Esempio n. 5
0
        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"));
        }
Esempio n. 6
0
        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));
        }