Esempio n. 1
0
        public void FindAllFromServer()
        {
            // arrange
            var pavlovServers =
                PavlovServerServiceTests.InitializePavlovServer(_sshServerSerivce, _pavlovServerService);
            var serverBan = CreatePavlovServerBans(_serverBansService, pavlovServers.First());
            // act
            var serverResult  = _serverBansService.FindOne(serverBan.Id).GetAwaiter().GetResult();
            var serverResult1 = _serverBansService.FindAll().GetAwaiter().GetResult();
            var serverResult2 = _serverBansService.FindAllFromPavlovServerId(pavlovServers.First().Id, false)
                                .GetAwaiter().GetResult();
            var serverResult3 = _serverBansService.FindAllFromPavlovServerId(pavlovServers.First().Id, true)
                                .GetAwaiter().GetResult();
            var serverResult4 = _serverBansService.Delete(serverBan.Id).GetAwaiter().GetResult();
            var serverResult5 = _serverBansService.FindOne(serverBan.Id).GetAwaiter().GetResult();

            // assert
            serverResult.Should().NotBeNull();
            serverResult1.Should().HaveCount(1);
            serverResult2.Should().HaveCount(1);
            serverResult3.Should().HaveCount(1);
            serverResult4.Should().BeTrue();
            serverResult5.Should().BeNull();
        }
        public async Task <IActionResult> ImportBans(PavlovServerImportBansListViewModel viewModel)
        {
            if (viewModel.ServerId <= 0)
            {
                return(BadRequest("Please choose a server!"));
            }

            var user = await _userservice.getUserFromCp(HttpContext.User);

            if (!await RightsHandler.HasRightsToThisPavlovServer(HttpContext.User, user
                                                                 , viewModel.ServerId, _service,
                                                                 _pavlovServerService))
            {
                return(Forbid());
            }
            var server = await _pavlovServerService.FindOne(viewModel.ServerId);

            await using var ms = new MemoryStream();
            await viewModel.BansFromFile.CopyToAsync(ms);

            var fileBytes = ms.ToArray();

            var table = (Encoding.Default.GetString(
                             fileBytes,
                             0,
                             fileBytes.Length - 1)).Split(new string[] { "\r\n", "\r", "\n" },
                                                          StringSplitOptions.None);
            var timespan = "unlimited";

            Statics.BanList.TryGetValue(timespan, out var timespans);
            if (string.IsNullOrEmpty(timespan))
            {
                return(BadRequest("TimeSpan  must be set!"));
            }
            var banlist = Array.Empty <ServerBans>();

            if (server.GlobalBan)
            {
                ViewBag.GlobalBan = true;
                banlist           = await _serverBansService.FindAllGlobal(true);
            }
            else
            {
                banlist = await _serverBansService.FindAllFromPavlovServerId(viewModel.ServerId, true);
            }

            foreach (var steamId in table)
            {
                var singleSteamId = steamId.Replace(";", "").Trim();
                var ban           = new ServerBans
                {
                    SteamId        = singleSteamId,
                    BanSpan        = timespans,
                    BannedDateTime = DateTime.Now,
                    PavlovServer   = server
                };

                if (banlist.FirstOrDefault(x => x.SteamId == ban.SteamId) == null)
                {
                    await _serverBansService.Upsert(ban);
                }
            }
            return(new ObjectResult(true));
        }