public ActionResult Register()
        {
            var loggedInRole = currentUser.RoleName(HttpContext);

            UserViewModel userViewModel = new UserViewModel();
            userViewModel.Salutations = (from s in salutationRepository.GetAll()
                                         select s).ToList();
            userViewModel.UserRoles = (from s in applicationRoleRepository.GetMany(x => x.Name.ToUpper() != Resource.Admin.ToString().ToUpper())
                                       select s);
            return View(userViewModel);
        }
        public async Task<ActionResult> Register(UserViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser()
                            {
                                FirstName = model.FirstName,
                                LastName = model.LastName,
                                DateOfBirth = model.DateOfBirth,
                                PhoneNumber = model.PhoneNumber,
                                Address = model.Address,
                                SalutationId = model.SalutationId,
                                UserName = model.UserName
                            };
                user.Roles.Add(new IdentityUserRole() { UserId = user.Id, RoleId = model.RoleId });
                var result = await UserManager.CreateAsync(user, "Test@1234");
                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }
            else
            {
                model.Salutations = (from s in salutationRepository.GetAll()
                                             select s).ToList();
                model.UserRoles = (from s in applicationRoleRepository.GetMany(x => x.Name.ToUpper() != Resource.Admin.ToString().ToUpper())
                                           select s);
            }

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