public ActionResult Delete() { var playerIsAdmin = _playerAdminChecker.IsAdmin(PlayerId); var recordedGames = _gameRecordingsGetter.GetRecordedGames().OrderByDescending(x => x.StartTimeSeconds); var deletableGameRecordings = new List <IDeletableGameRecording>(); var bkaDatas = _bkaDataGetter.Get().ToList(); foreach (var recordedGame in recordedGames) { var gameRecordings = _gameRecordingsGetter.Get(recordedGame.ServerName, recordedGame.StartTimeSeconds); foreach (var gameRecording in gameRecordings) { var userMayDelete = playerIsAdmin || gameRecording.PlayerId.Equals(PlayerId); if (userMayDelete) { var bkaData = bkaDatas.SingleOrDefault(x => x.PlayerId.Equals(gameRecording.PlayerId)); var game = _gamesGetter.Get(recordedGame.ServerName, recordedGame.StartTimeSeconds); deletableGameRecordings.Add(new DeletableGameRecording(game, gameRecording.PlayerId, bkaData)); } } } return(View(new RecordingsDeleteViewModel { DeletableGameRecordings = deletableGameRecordings })); }
public IEnumerable <string> GetCameraViewNames(string serverName, double startTimeSeconds) { var result = new List <string>(); var gameRecordings = _gameRecordingsGetter.Get(serverName, startTimeSeconds); foreach (var playedGame in gameRecordings.Select(gameRecording => _playedGamesGetter.Get("ns2", gameRecording.PlayerId).SingleOrDefault(x => x.ServerName.Equals(serverName) && x.StartTimeSeconds.Equals(startTimeSeconds)))) { string cameraViewName; if (playedGame != null) { var team = playedGame.MarineSeconds > playedGame.AlienSeconds ? "M" : "A"; var comm = playedGame.CommanderSeconds > playedGame.DurationInSeconds / 2 ? "C" : string.Empty; cameraViewName = $"{team}{comm}"; } else { cameraViewName = "S"; } result.Add(cameraViewName); } return(result); }
public ActionResult Watch(string serverName, double startTimeSeconds) { var cameraOptions = new List <SelectListItem>(); var gameRecordings = _gameRecordingsGetter.Get(serverName, startTimeSeconds); foreach (var gameRecording in gameRecordings) { var bkaData = _bkaDataGetter.Get(gameRecording.PlayerId); if (!string.IsNullOrWhiteSpace(bkaData?.Bka)) { var playedGame = _playedGamesGetter.Get("ns2", gameRecording.PlayerId).SingleOrDefault(x => x.ServerName.Equals(serverName) && x.StartTimeSeconds.Equals(startTimeSeconds)); string cameraTeamInfo = null; if (playedGame != null) { if (playedGame.GameMode == "ns2") { var team = playedGame.MarineSeconds > playedGame.AlienSeconds ? "M" : "A"; var comm = playedGame.CommanderSeconds > playedGame.DurationInSeconds / 2 ? "C" : string.Empty; cameraTeamInfo = $"{team}{comm}"; } } else { cameraTeamInfo = "S"; } var cameraDisplay = $"{bkaData.Bka}"; if (!string.IsNullOrWhiteSpace(cameraTeamInfo)) { cameraDisplay = $"{cameraDisplay} ({cameraTeamInfo})"; } cameraOptions.Add(new SelectListItem { Value = gameRecording.VideoIdentifier, Text = cameraDisplay }); } } return(View(new RecordingWatchViewModel { CameraOptions = cameraOptions })); }