Пример #1
0
        public IActionResult RemoveGroup([FromBody] RemoveGroupForDto model)
        {
            var adminUserId = User.FindFirst(ClaimTypes.NameIdentifier).Value;

            if (ModelState.IsValid)
            {
                var group = _groupService.RemoveGroupAsync(adminUserId, model);

                if (group.Result.IsSuccess)
                {
                    return(Ok(group.Result));
                }

                return(BadRequest(group.Result));
            }

            return(BadRequest("Some properties are not valid."));
        }
Пример #2
0
        public async Task <GroupManagerResponse> RemoveGroupAsync(string userId, RemoveGroupForDto model)
        {
            if (model == null || userId == null)
            {
                throw new NullReferenceException("Model is null.");
            }

            await using (_context)
            {
                var games = await _context.Games.Where(p => p.GroupId == model.GroupId).ToListAsync();

                var group = await _context.Groups.FindAsync(model.GroupId);

                var members = _context.GroupMembers.Where(p => p.GroupId == group.Id).ToList();

                if (_context.GroupMembers.SingleOrDefaultAsync(u =>
                                                               u.UserId == userId && u.GroupId == model.GroupId).Result.Role != "Admin")
                {
                    return new GroupManagerResponse
                           {
                               Message   = "You are not authorized to do this.",
                               IsSuccess = false
                           }
                }
                ;
                _context.RemoveRange(games);
                _context.RemoveRange(members);
                _context.Remove(group);
                await _context.SaveChangesAsync();

                return(new GroupManagerResponse
                {
                    Message = "Grup silindi.",
                    IsSuccess = true
                });
            }
        }