public ActionResult EditAccount(AppUser model)
        {
            List <string> include_fields = new List <string>()
            {
                "FirstName",
                "LastName",
                "DisplayName",
                "PrefEmail",
                "PrefText",
                "PhoneNumber",
                "LockoutEndDateUtc"
            };

            model.UserName = model.Email;
            var validator = new AppUserValid();
            var errors    = validator.Validate(model);

            if (errors.IsValid)
            {
                using (var userManager = HttpContext.GetOwinContext().GetUserManager <AppUserManager>())
                {
                    AppUser appUser = userManager.FindByEmail(model.Email);
                    model.LockoutEndDateUtc = DateTime.Now;
                    List <ModelUpdates> upd_list = GetModelUpdates.GetUpdates(model, appUser, null, include_fields);
                    userManager.Update(appUser);
                    return(View(appUser));
                }
            }
            else
            {
                return(View());
            }
        }
        public ActionResult CreateAccount(AppUser model)
        {
            ViewBag.backLink = "Login";
            model.UserName   = model.Email;
            var validator = new AppUserValid();
            var errors    = validator.Validate(model);

            if (errors.IsValid)
            {
                model.UserName     = model.Email;
                model.PasswordHash = HashFunctions.HashPassword(model.Password);
                using (var userManager = HttpContext.GetOwinContext().GetUserManager <AppUserManager>())
                {
                    var authManager = HttpContext.GetOwinContext().Authentication;
                    var ident       = userManager.Create(model);
                    if (ident.Errors.Count() > 0)
                    {
                        if (((string[])ident.Errors)[0].Contains("is already taken"))
                        {
                            dynamic errorMessage = new { param1 = "UserName", param2 = "Account already exists." };
                            HttpContext.Response.StatusCode = (int)HttpStatusCode.NotAcceptable;
                            return(Json(errorMessage, JsonRequestBehavior.AllowGet));
                        }
                    }
                }
            }
            else
            {
                //Dictionary<String, String>  err_list = GetModelErrors.GetErrors(ModelState);
            }
            return(View(model));
        }