public void TestList()
        {
            PlayRequest pr1 = new PlayRequest()
            {
                MusicInfo = new MusicInfo()
                {
                    Title = "Super Song1"
                },
                PlayRequestType = PlayRequest.PlayRequestTypeEnum.Queue,
                RequestDateTime = DateTime.Now,
                Username = "******"
            };

            PlayRequest pr2 = new PlayRequest()
            {
                MusicInfo = new MusicInfo()
                {
                    Title = "Super Song2"
                },
                PlayRequestType = PlayRequest.PlayRequestTypeEnum.Queue,
                RequestDateTime = DateTime.Now,
                Username = "******"
            };

            PlayRequestManager.SavePlayRequest(pr1);
            PlayRequestManager.SavePlayRequest(pr2);

            List<PlayRequest> playRequests = PlayRequestManager.GetPlayList(PlayRequest.PlayRequestTypeEnum.Queue);

            StringAssert.Equals(playRequests[0], pr1);
            StringAssert.Equals(playRequests[1], pr2);
        }
 public async Task UploadWithUserName(string id)
 {
     if (!Request.Content.IsMimeMultipartContent("form-data"))
     {
         throw new HttpResponseException(HttpStatusCode.UnsupportedMediaType);
     }
     MultipartFormDataStreamProvider streamProvider = new MultipartFormDataStreamProvider(Settings.Default.ServerUploadPath);
     await Request.Content.ReadAsMultipartAsync(streamProvider);
     MusicInfoImporter importer = new MusicInfoImporter();
     foreach (MultipartFileData data in streamProvider.FileData)
     {
         string strFileName = data.Headers.ContentDisposition.FileName.Trim('"');
         string strNewFileFullName = Settings.Default.ServerUploadPath + "\\" + Guid.NewGuid() + "_" + strFileName;
         File.Move(data.LocalFileName, strNewFileFullName);
         FileInfo fi = new FileInfo(strNewFileFullName);
         MusicInfo info = importer.ImportMusic(fi);
         if (info != null)
         {
             PlayRequest req = new PlayRequest()
             {
                 MusicInfo = info,
                 RequestDateTime = DateTime.Today,
                 Username = id,
                 PlayRequestType = PlayRequest.PlayRequestTypeEnum.Queue
             };
             PlayRequestManager.SavePlayRequest(req);
         }                
     }
 }        
        public void TestFirstInFirstOut()
        {
            PlayRequest pr1 = new PlayRequest()
            {
                MusicInfo = new MusicInfo()
                {
                    Title = "Super Song1"
                },
                PlayRequestType = PlayRequest.PlayRequestTypeEnum.Queue,
                RequestDateTime = DateTime.Now,
                Username = "******"
            };

            PlayRequest pr2 = new PlayRequest()
            {
                MusicInfo = new MusicInfo()
                {
                    Title = "Super Song2"
                },
                PlayRequestType = PlayRequest.PlayRequestTypeEnum.Queue,
                RequestDateTime = DateTime.Now,
                Username = "******"
            };

            PlayRequestManager.SavePlayRequest(pr1);
            PlayRequestManager.SavePlayRequest(pr2);

            StringAssert.Equals(PlayRequestManager.GetNextRequest(PlayRequest.PlayRequestTypeEnum.Queue), pr1);
        }
 public static void MovePlayRequestToHistory(PlayRequest req)
 {
     req.PlayRequestType = PlayRequest.PlayRequestTypeEnum.History;
     var dbSession = Db.Instance.OpenSession();
     dbSession.Store(req);
     dbSession.SaveChanges();
     dbSession.Dispose();
 }
 /// <summary>
 /// Gets the play list.
 /// </summary>
 /// <param name="PlayRequestType">Type of the play request.</param>
 /// <returns></returns>
 public static List<PlayRequest> GetPlayList(PlayRequest.PlayRequestTypeEnum PlayRequestType)
 {
     var dbSession = Db.Instance.OpenSession();
     List<PlayRequest> playRequestList = dbSession.Query<PlayRequest>()
         .Where(pr => pr.PlayRequestType == PlayRequestType).ToList<PlayRequest>();
     dbSession.Dispose();
     return playRequestList;
 }
        /// <summary>
        /// Gets the next request.
        /// </summary>
        /// <param name="PlayRequestType">Type of the play request.</param>
        /// <returns></returns>
        public static PlayRequest GetNextRequest(PlayRequest.PlayRequestTypeEnum PlayRequestType)
        {
            var dbSession = Db.Instance.OpenSession();
            PlayRequest playRequest = dbSession.Query<PlayRequest>()
               .Where(pr => pr.PlayRequestType == PlayRequestType)
               .OrderBy(pr => pr.RequestDateTime)
               .FirstOrDefault<PlayRequest>();

            dbSession.Dispose();

            return playRequest;
        }
        public DTPlayRequest(PlayRequest pr)
        {
            var sb = new StringBuilder();
            if (!string.IsNullOrEmpty(pr.MusicInfo.Artist))
                sb.Append(pr.MusicInfo.Artist);
            if (!string.IsNullOrEmpty(pr.MusicInfo.Artist) && !string.IsNullOrEmpty(pr.MusicInfo.Album))
                sb.Append(" (" + pr.MusicInfo.Album + ")");
            else if (!string.IsNullOrEmpty(pr.MusicInfo.Album))
                sb.Append(pr.MusicInfo.Album);

            Artist = sb.ToString(); // pr.MusicInfo.Artist + " (" + pr.MusicInfo.Album + ")".Replace("()", "");
            Title = pr.MusicInfo.Title;
            Juker = pr.Username;
        }
        public void Vote(JObject jsonData)
        {
            dynamic json = jsonData;
            string idMusicInfo = json.idMusicInfo;
            string userName = json.userName;
            MusicInfo infotemp = Db.Load<MusicInfo>(idMusicInfo);
            if (infotemp != null)
            {
                PlayRequest req = new PlayRequest()
                {
                    MusicInfo = infotemp,
                    RequestDateTime = DateTime.Today,
                    Username = userName,
                    PlayRequestType = PlayRequest.PlayRequestTypeEnum.Queue
                };

                PlayRequestManager.SavePlayRequest(req);
            }
        }
 /// <summary>
 /// Saves the play request.
 /// </summary>
 /// <param name="playRequest">The play request.</param>
 public static void SavePlayRequest(PlayRequest playRequest)
 {
     var dbSession = Db.Instance.OpenSession();
     dbSession.Store(playRequest);
     dbSession.SaveChanges();
     dbSession.Dispose();
     foreach (IPlayRequestReceiver receiver in _receivers)
     {
         receiver.Update(playRequest.Id);
     }
 }
 public HistoryRequest(PlayRequest pr)
     : base(pr)
 {
     Zeit = pr.PlayedDateTime.ToString("dd.MM.yy HH:mm:ss");
 }