Beispiel #1
0
        public async Task <IActionResult> Profile(UserDetailsViewModel model, bool Success = false)
        {
            if (ModelState.IsValid)
            {
                Guid loggedInUserID = Guid.Parse(User.Claims.Where(x => x.Type == "http://schemas.microsoft.com/accesscontrolservice/2010/07/claims/UserID").First().Value);

                try
                {
                    var user = _context.Users.Where(x => x.UserID == loggedInUserID).FirstOrDefault();

                    model._context         = _context;
                    model._securityOptions = _securityOptions;
                    model.UserID           = loggedInUserID;
                    model._user            = User;
                    //await model.UpdateUserProfile();
                    if (ModelState.IsValid)
                    {
                        if (model.UserID == await model.UpdateUserProfile())
                        {
                            ViewBag.Success = "Profile updated successfully";

                            return(RedirectToAction(nameof(Profile)));
                        }
                        else
                        {
                            ViewBag.Error = model.errorMessage;
                        }
                    }
                }
                catch (Exception ex)
                {
                    HelperFunctions.Log(_context, PublicEnums.LogLevel.LEVEL_EXCEPTION, "Controllers.AccountController.Profile", ex.Message, User, ex);
                    ViewBag.Error = "An error occurred while updating your profile";
                }
            }
            return(View(model));
        }