public async Task <GroupManagerResponse> InviteGroupAsync(JoinGroupForDto model, string userId) { if (model == null || userId == null) { throw new NullReferenceException("Model is null."); } await using (_context) { var inviteUser = await _context.Users.SingleOrDefaultAsync(u => u.UserName == model.UserName); if (inviteUser == null) { return(new GroupManagerResponse { Message = "Kullanıcı bulunamadı.", IsSuccess = false }); } if (await _context.GroupMembers.FirstOrDefaultAsync(u => u.UserId == inviteUser.Id && u.GroupId == model.GroupId) != null) { return(new GroupManagerResponse { Message = "Kullanıcı gruba zaten üye.", IsSuccess = false }); } var user = await _userManager.FindByIdAsync(inviteUser.Id); var member = new GroupMember { GroupId = model.GroupId, Role = "User", UserId = user.Id, FirstName = user.FirstName, LastName = user.LastName }; await _context.AddAsync(member); await _context.SaveChangesAsync(); return(new GroupManagerResponse { Message = $"{member.FirstName} {member.LastName} gruba alındı.", IsSuccess = true }); } }
public IActionResult InviteGroup([FromBody] JoinGroupForDto model) { var userId = User.FindFirst(ClaimTypes.NameIdentifier).Value; if (ModelState.IsValid) { var group = _groupService.InviteGroupAsync(model, userId); if (group.Result.IsSuccess) { return(Ok(group.Result)); } return(BadRequest(group.Result)); } return(BadRequest("Some properties are not valid.")); }
public async Task <GroupManagerResponse> JoinGroupAsync(JoinGroupForDto model, string userId) { if (model == null || userId == null) { throw new NullReferenceException("Model is null."); } await using (_context) { if (await _context.GroupMembers.FirstOrDefaultAsync(u => u.UserId == userId && u.GroupId == model.GroupId) != null) { return(new GroupManagerResponse { Message = "Gruba zaten üyesiniz.", IsSuccess = false }); } var user = await _userManager.FindByIdAsync(userId); var newUser = new GroupMember { GroupId = model.GroupId, Role = "User", UserId = userId, FirstName = user.FirstName, LastName = user.LastName }; await _context.AddAsync(newUser); await _context.SaveChangesAsync(); return(new GroupManagerResponse { Message = "Gruba katıldınız.", IsSuccess = true }); } }