public async Task <ActionResult> Register(RegisterViewModel model)
        {
            try

            {
                if (ModelState.IsValid)
                {
                    var user = new ApplicationUser {
                        UserName = model.Email, Email = model.Email, RoleId = model.RoleId
                    };
                    var result = await UserManager.CreateAsync(user, model.Password);

                    if (result.Succeeded)
                    {
                        using (IdentityService identityService = new IdentityService())
                        {
                            await identityService.CreateNewUser(model.Email, model.RoleId);

                            await SignInManager.SignInAsync(user, isPersistent : false, rememberBrowser : false);

                            return(RedirectToAction("Index", "Home"));
                        }
                    }
                    AddErrors(result);
                }

                // If we got this far, something failed, redisplay form
                return(View(model));
            }
            catch (System.Exception ex)
            {
                throw;
            }
        }
        public async Task <JsonResult> Create(RegisterViewModel user)
        {
            try
            {
                var applicationUser = new ApplicationUser {
                    UserName = user.Email, Email = user.Email, RoleId = user.RoleId
                };
                var result = await HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>().CreateAsync(applicationUser, user.Password);

                if (result.Succeeded)
                {
                    using (IdentityService identityService = new IdentityService())
                    {
                        await identityService.CreateNewUser(user.Email, user.RoleId);
                    }
                }

                return(Json("Success", JsonRequestBehavior.AllowGet));
            }
            catch (System.Exception ex)
            {
                throw;
            }
        }