Пример #1
0
        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));
            }
        }