示例#1
0
        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);
        }
示例#3
0
        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
            }));
        }