public override Result <Session> PerformCommand(Session session, string line)
        {
            var workingSession = session.Clone();

            var getVideos = _videoAccessor.GetVideoData(default(VideoGenre?));
            var videos    = getVideos.Value.Where(vmd => vmd.Genre != VideoGenre.CockHero && vmd.Genre != VideoGenre.Joi).ToList();

            var selected = videos[new Random().Next(videos.Count)];

            var ea = new PlayVideoEventArgs()
            {
                ShouldRandomizeStart = line.Contains(Keyword.JumpVideo),
                VideoMetaData        = selected,
            };

            OnCommandProcessed(workingSession, ea);

            if (ea.Result.IsFailure)
            {
                return(Result.Fail <Session>(ea.Result.Error));
            }

            workingSession.VideoPlaying = selected;
            return(Result.Ok(workingSession));
        }
        public override Result <Session> PerformCommand(Session session, string line)
        {
            var workingSession = session.Clone();
            var getVideos      = _videoAccessor.GetVideoData(VideoGenre.Joi);
            var videos         = getVideos.Value;
            var selected       = videos[_randomNumberService.Roll(0, videos.Count)];

            var ea = new PlayVideoEventArgs()
            {
                ShouldRandomizeStart = false,
                VideoMetaData        = selected,
            };

            OnCommandProcessed(workingSession, ea);

            if (ea.Result.IsSuccess)
            {
                return(Result.Ok(workingSession));
            }

            return(Result.Fail <Session>(ea.Result.Error));
        }
Beispiel #3
0
 private void OnPlayVideo(PlayVideoEventArgs eventArgs)
 {
     PlayVideo?.Invoke(this, eventArgs);
 }