public ActionResult Track(int politicianId, int trackId = 0)
        {
            var config = ConfigHelper.GetConfig();
            var person = config.Persons.FirstOrDefault(p => p.Id == politicianId);

            if (person == null)
            {
                ViewBag.Error = "Person wasn't found";
                Response.RedirectToRoute("/Error");
                return(null);
            }

            var neededTrack = new Track();

            if (trackId != 0)
            {
                neededTrack = person.Tracks.FirstOrDefault(track => track.Id == trackId);
            }

            var trackDto = TrackMapper.MapTrack(neededTrack);

            trackDto.PoliticianId   = person.Id;
            trackDto.PoliticianName = person.Name;
            return(View(trackDto));
        }
        public ActionResult Track(HttpPostedFileBase audioFile, TrackDto trackDto)
        {
            var personRepo        = new PersonRepository();
            var parliamentManager = new ParliamentManager();
            var person            = personRepo.GetAll().FirstOrDefault(p => p.Id == trackDto.PoliticianId);

            if (person == null)
            {
                ViewBag.Error = "Person wasn't found";
                Response.RedirectToRoute("/Error");
                return(null);
            }

            trackDto.PoliticianName = person.Name;
            trackDto = parliamentManager.FillAudioFile(audioFile, trackDto);
            var trackToUpdate = TrackMapper.MapTrackDto(trackDto);
            var updatedTrack  = personRepo.UpsertTrack(trackDto.PoliticianId, trackToUpdate);

            TempData["Notifications"] = "Added...";
            return(RedirectToAction("Track", new { politicianId = person.Id, trackId = updatedTrack.Id }));
        }
示例#3
0
        public Album BrowseAlbum(string link)
        {
            Login();
            logger.Debug("Album Browse started for link {0}", link);
            const string prefix = "spotify:album:";
            using (var album = session.ParseLink(prefix + link).As<IAlbum>())
            using (var browse = album.Browse())
            {
                browse.WaitForCompletion();
                if (!browse.IsComplete)
                {
                    logger.Error("Album Browse timed out");
                    return null;
                }

                var albumResult = new AlbumMapper().Map(album, true);
                var trackMapper = new TrackMapper();
                var tracks = browse.Tracks
                    .Select(t => trackMapper.Map(t, false, true))
                    .ToArray();

                albumResult.Tracks = tracks;
                logger.Info("Album Browse completed for link {0}", link);
                return albumResult;
            }
        }