public async Task <IHttpActionResult> Register(RegisterBindingModel model) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (model.Role == "Parent") { var athleteUser = UserManager.FindByName(model.AthleteUsername); if (athleteUser != null) { var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { var result1 = UserManager.AddToRole(user.Id, "Parent"); var service = new ProfileService(Guid.Parse(user.Id)); var modelCreateProfile = service.CreateProfile(new ProfileCreate { UserID = Guid.Parse(user.Id), AthleteUsername = athleteUser.UserName }); var connectAthlete = service.AddParentToAthlete(Guid.Parse(athleteUser.Id), user.UserName); } return(Ok()); } return(BadRequest()); } else { var user = new ApplicationUser() { UserName = model.Email, Email = model.Email }; IdentityResult result = await UserManager.CreateAsync(user, model.Password); if (result.Succeeded) { //add role to user if (model.Role == "Coach") { var result1 = UserManager.AddToRole(user.Id, "Coach"); var service = new ProfileService(Guid.Parse(user.Id)); var modelCreateProfile = service.CreateProfile(new ProfileCreate { UserID = Guid.Parse(user.Id) }); return(Ok()); } else if (model.Role == "Athlete") { var result1 = UserManager.AddToRole(user.Id, "Athlete"); var service = new ProfileService(Guid.Parse(user.Id)); var modelCreateProfile = service.CreateProfile(new ProfileCreate { UserID = Guid.Parse(user.Id) }); return(Ok()); } return(Ok()); } return(GetErrorResult(result)); } }