コード例 #1
0
        public static void RefreshTrackQueue(object obj)
        {
            var track = new PlayHistoryViewModel();

            _playList         = PlayListController.Instance;
            _player           = MediaPlayerController.Instance;
            _jukeboxAutoqueue = JukeBoxController.Instance;
            using (var uow = new Uow(new MusicFarmerEntities()))
            {
                var repoVotes = new RepositoryVote(uow);
                InitializeRepos(uow);
                SetPlayerSettings();
                SetJukeBoxSettings();
                if (_player.IsMuted)
                {
                    return;
                }

                if (!_player.IsPlaying())
                {
                    ChangeTrack();
                }

                if (_playList.IsPlayingTrack() && !(_player.IsPlaying()))
                {
                    track = _playList.GetPlayingTrack();
                }
                else if ((_player.IsPlaying()) && (!(_playList.IsPlayingTrack())))
                {
                    //Trust me on this one.
                    //___________________________________________________
                    //| Stop the track to resync the DB with the Player  |
                    //|__________________________________________________|

                    _player.Stop();
                    _jukeboxAutoqueue.IncrementPosition();
                    return;
                }
                else if (_playList.HasTrackQueued() && !(_player.IsPlaying()))
                {
                    track = _playList.GetNextQueuedTrack();
                }
                else if (!_player.IsPlaying())
                {
                    SpinUpJukeBox();
                    return;
                }


                if (_player.IsPlaying())
                {
                    track = _playList.GetPlayingTrack();
                    SetPlayerVolumeBasedOnVotes(repoVotes.GetUpVotes(track.PlayHistoryId).Count, repoVotes.GetDownVotes(track.PlayHistoryId).Count);
                }
                else
                {
                    LoadNewTrack(track);
                }
            }
        }
コード例 #2
0
 public ActionResult GetDownVoteCount(int PlayHistoryId)
 {
     using (var context = new Uow(this.context))
     {
         var repos = new RepositoryVote(context);
         var items = repos.GetDownVotes(PlayHistoryId);
         ViewBag.DownCount = items.Count.ToString();
         return(PartialView(items));
     }
 }
コード例 #3
0
 public ActionResult AddDownVote(int PlayHistoryId)
 {
     using (var context = new Uow(this.context))
     {
         var        repos   = new RepositoryVote(context);
         AuthHelper _ah     = new AuthHelper(context);
         var        _userId = _ah.SetupUser();
         repos.DownVote(PlayHistoryId);
         Success("Vote", "Save successful.");
         return(Redirect(Request.UrlReferrer.ToString()));
     }
 }
コード例 #4
0
 public VoteController()
 {
     _vote = new RepositoryVote(new Uow(new MusicFarmerEntities()));
 }
コード例 #5
0
 public void InitializeTests()
 {
     context = new Mock.Database.MockData.MockVoteTests().MockContext;
     repos   = new RepositoryVote(new Uow(context.Object));
     MockIIS.MockIISHost();
 }
コード例 #6
0
        static void Main(string[] args)
        {
            int JukeBoxWakeUp = 8;
            int JukeBoxSleep  = 18;

            Console.CursorVisible = false;
            Player = new WMPLib.WindowsMediaPlayer();
            Player.settings.volume = 50;
            var sleepTimer    = 0;
            var jukeBoxOffset = 0;

            using (var _uow = new Uow(new MusicFarmerEntities()))
            {
                var currentVolume = 0;
                RepositoryPlayHistory repo;
                RepositoryVote        repoVote;

                var spin = new ConsoleSpinner();
                while (true)
                {
                    repo     = new RepositoryPlayHistory(_uow);
                    repoVote = new RepositoryVote(_uow);
                    var currentList = repo.GetCurrentlyPlaying();
                    PlayHistoryViewModel _CurrentTrack = currentList.FirstOrDefault();

                    if (!currentList.Any())
                    {
                        if (repo.GetCurrentlyQueued().Any())
                        {
                            _CurrentTrack = repo.GetCurrentlyQueued().FirstOrDefault();
                            repo.SetTrackToPlay(_CurrentTrack.PlayHistoryId);
                        }
                        else
                        {
                            Console.Write("\rThe DJ has left the building... ");
                            spin.SleepTurn();
                            Thread.Sleep(1000);

                            if (DateTime.Now.Hour >= JukeBoxWakeUp && DateTime.Now.Hour <= JukeBoxSleep)
                            {
                                sleepTimer += 1;
                                if (sleepTimer >= 20)
                                {
                                    var jukeBoxRepo = new RepositoryJukeBox(_uow);
                                    List <JukeBoxViewModel> items = jukeBoxRepo.GetJukeBoxTracks();
                                    JukeBoxViewModel        jbvm  = items.ElementAt(jukeBoxOffset);
                                    repo.Queue(jbvm.TrackId);
                                    jukeBoxOffset += 1;
                                    if (jukeBoxOffset > items.Count())
                                    {
                                        jukeBoxOffset = 0;
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        RepositoryTrack repoTrack = new RepositoryTrack(_uow);
                        var             nextSong  = repoTrack.SearchTrackByName("").Find(i => i.TrackId == _CurrentTrack.TrackId).TrackURL;
                        Uri             songUri   = new Uri(nextSong);

                        Player.URL = nextSong;
                        Player.controls.play();
                        while (Player.playState == WMPPlayState.wmppsPlaying || Player.playState == WMPPlayState.wmppsBuffering || Player.playState == WMPPlayState.wmppsTransitioning)
                        {
                            sleepTimer    = 0;
                            _CurrentTrack = repo.GetCurrentlyPlaying().FirstOrDefault();
                            Thread.Sleep(500);
                            //Console.WriteLine("{0}", _CurrentTrack == null ? "" : _CurrentTrack.TrackName);

                            Console.Write("\r{0} / {1} Volume level: ({3})", Player.controls.currentPositionString, Player.currentMedia.durationString, _CurrentTrack == null ? "" : _CurrentTrack.TrackName, Player.settings.volume.ToString());
                            DJDrop(Player.controls.currentPosition, Player.currentMedia.duration);
                            spin.Turn();
                            try
                            {
                                if ((_CurrentTrack.PlayCompleted == true) || (_CurrentTrack == null))
                                {
                                    Console.Clear();
                                    break;
                                }
                            }
                            catch
                            {
                                Player.controls.stop();
                                Console.Clear();
                                break;
                            }

                            var currentVotes = repoVote.GetUpVotes(_CurrentTrack.PlayHistoryId).Count - repoVote.GetDownVotes(_CurrentTrack.PlayHistoryId).Count;
                            if (currentVotes < 0)
                            {
                                VolumeDown(50, currentVotes);
                            }
                            else if (currentVotes > 0)
                            {
                                VolumeUp(50, currentVotes);
                            }
                            else
                            {
                                Player.settings.volume = 50;
                            }
                        }
                        if (_CurrentTrack != null)
                        {
                            repo.AnonSetTrackToStop(_CurrentTrack.PlayHistoryId);
                            Console.Clear();
                        }
                    }
                }
            }
        }