コード例 #1
0
        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
                });
            }
        }
コード例 #2
0
        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."));
        }
コード例 #3
0
        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
                });
            }
        }