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)); }
private void OnPlayVideo(PlayVideoEventArgs eventArgs) { PlayVideo?.Invoke(this, eventArgs); }