private void SyncAspNetUserWithApplication(RegisterModel userData, AzureMathDbContext context)
 {
     if (context.Users.Any(u => u.UserName == userData.UserName))
     {
         User user = context.Users.First(u => u.UserName == userData.UserName);
         user.EmailAddress = userData.Email;
         user.FirstName = userData.FirstName;
         user.LastName = userData.LastName;
         user.LastLogonTime = DateTime.Now;
         context.SaveChanges();
     }
     else
     {
         User user = new User();
         user.UserName = userData.UserName;
         user.EmailAddress = userData.Email;
         user.FirstName = userData.FirstName;
         user.LastName = userData.LastName;
         user.LastLogonTime = DateTime.Now;
         context.Users.Add(user);
         context.SaveChanges();
     }
 }
        public ActionResult Register(RegisterModel model)
        {
            if (ModelState.IsValid)
            {
                // Attempt to register the user
                MembershipCreateStatus createStatus;
                Membership.CreateUser(model.UserName, model.Password, model.Email, null, null, true, null, out createStatus);

                SyncAspNetUserWithApplication(model, new AzureMathDbContext());

                if (createStatus == MembershipCreateStatus.Success)
                {
                    FormsAuthentication.SetAuthCookie(model.UserName, false /* createPersistentCookie */);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    ModelState.AddModelError("", ErrorCodeToString(createStatus));
                }
            }

            // If we got this far, something failed, redisplay form
            return View(model);
        }