Ejemplo n.º 1
0
        public async Task <bool> RemoveClan(RemoveClanRequestModel model, bool lateDelete)
        {
            var leader = await _context.ClanMembers.FirstOrDefaultAsync(t => t.PlayerId == model.PlayerId && t.ClanId == model.ClanId);

            if (leader == null)
            {
                return(false);
            }

            var removeMembers = await RemoveAllClanMembers(model.ClanId, !lateDelete);

            if (!removeMembers)
            {
                return(false);
            }

            var clan = await _context.Clans.FirstOrDefaultAsync(t => t.Id == model.ClanId);

            var removeStatistics = await _context.ClanStatistics.FirstOrDefaultAsync(t => t.ClanId == clan.Id);

            if (removeStatistics == null)
            {
                return(false);
            }

            if (clan == null)
            {
                return(false);
            }

            var invitations = await _context.InvationsPlayerToClan.Where(t => t.ClanId == model.ClanId).ToListAsync();

            if (invitations != null)
            {
                _context.InvationsPlayerToClan.RemoveRange(invitations);
            }

            var leaderResult = _context.ClanMembers.Remove(leader);
            var statsResult  = _context.ClanStatistics.Remove(removeStatistics);
            var clanResult   = _context.Clans.Remove(clan);

            if (leaderResult.State == EntityState.Deleted && clanResult.State == EntityState.Deleted && statsResult.State == EntityState.Deleted)
            {
                if (!lateDelete)
                {
                    await _context.SaveChangesAsync();
                }
                return(true);
            }

            return(false);
        }
Ejemplo n.º 2
0
 public async Task <bool> RemoveClan(RemoveClanRequestModel model)
 {
     return(await _clanService.RemoveClan(model, true));
 }