/// <summary> /// next -> initiate client play of next song in queue; update database if client is leader /// </summary> /// <param name="id">id -> current song id (for db)</param> public void next(int id) { OneMusicDBEntities db = new OneMusicDBEntities(); Song current = db.Songs.FirstOrDefault(s => s.status == 1); Song next = new Song(); if (current.id == id) { next = db.Songs.FirstOrDefault(s => s.status == 0); // && s.channel == current.channel); if (next == null) next = db.Songs.FirstOrDefault(s => s.id > id); if (next == null) next = db.Songs.FirstOrDefault(); current.status = 2; current.position = null; next.status = 1; db.SaveChanges(); } else { next = current; } Media output = new Media(next); output.Position = 0; Clients.Caller.play(output); }
public Media(Song song) { Id = song.id; Track_Id = song.track_id; Track_Title = song.track_title; Url = song.url; Position = song.position.HasValue ? song.position.Value : 0; SubmittedBy = new Submitter(); SubmittedBy.Name = song.User.user_name; SubmittedBy.Email = song.User.user_email; }
public ActionResult Add(Media model) { if(User.Identity.IsAuthenticated) { OneMusicDBEntities db = new OneMusicDBEntities(); Song n = new Song(); n.track_id = model.Track_Id; n.track_title = model.Track_Title; n.status = 0; n.url = model.Url; n.date_added = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, TimeZoneInfo.FindSystemTimeZoneById("Eastern Standard Time")); n.submitted_by = db.Users.FirstOrDefault(u => u.user_name == User.Identity.Name).user_id; db.Songs.Add(n); db.SaveChanges(); } return RedirectToAction("Play"); }