public async Task <IActionResult> AddUserToTeam([FromBody] TeamUserModel model) { if (ModelState.IsValid) { CoalyticsTeam team = _repository.GetTeambyTeamName(model.TeamName); if (team == null) { return(BadRequest("Cannot Find the Team")); } else { CoalyticsUser user = await _userManager.FindByNameAsync(model.UserName); if (user == null) { return(BadRequest("Cannot Find the User")); } else if (team.TeamUsers.Where(u => u.UserId == user.Id).Count() > 0) { return(BadRequest("User already in Team")); } else { team.TeamUsers.Add(new TeamUser() { TeamId = team.TeamId, UserId = user.Id }); _repository.Save(); } } return(Ok("User has been added into Team")); } return(BadRequest()); }
public async Task <IActionResult> DeleteUserFromTeam([FromBody] TeamUserModel model) { if (ModelState.IsValid) { CoalyticsUser user = await _userManager.FindByNameAsync(model.UserName); if (user == null) { return(BadRequest("Cannot Find the User")); } CoalyticsTeam team = _repository.GetTeambyTeamName(model.TeamName); if (team == null) { return(BadRequest("Cannot Find the Team")); } else { TeamUser teamuser = team.TeamUsers.Where(t => t.UserId == user.Id).FirstOrDefault(); if (teamuser == null) { return(BadRequest("User not in the Team")); } else { team.TeamUsers.Remove(teamuser); _repository.Save(); } } return(Ok("User has been removed from Team")); } return(BadRequest()); }
public async Task <IActionResult> Register([FromBody] RegistrationDataModel registrationDataModel) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } CoalyticsUser applicationUser = new CoalyticsUser() { UserName = registrationDataModel.Email, Email = registrationDataModel.Email }; var result = await _userManager.CreateAsync(applicationUser, registrationDataModel.Password); if (result.Succeeded) { var code = await _userManager.GenerateEmailConfirmationTokenAsync(applicationUser); var callbackUrl = Url.EmailConfirmationLink(applicationUser.Id, code, Request.Scheme); await _emailSender.SendEmailConfirmationAsync(registrationDataModel.Email, callbackUrl); await _signInManager.SignInAsync(applicationUser, isPersistent : false); return(new OkResult()); } return(new BadRequestObjectResult(result.Errors)); }