private void DoPreFixByArtistName(IModifiableTrack iModifiableTrack)
 {
     GetTracks(iModifiableTrack).Apply(
         imt => imt.Name = string.Format("{0}-{1}", imt.Father.Artists.GetDisplayName(), imt.Name));
 }
 private void DoWindowOpenTrack(IModifiableTrack iModifiableTrack)
 {
     FileServices.OpenExplorerWithSelectedFiles(GetTracks(iModifiableTrack)
         .Where(imt => imt.State != ObjectState.Removed).Select(tr => tr.Path).ToList());
 }
        private void DoChangeDiscNumber(IModifiableTrack iModifiableTrack)
        {
            if (DiscNumber == null)
                return;

            GetTracks(iModifiableTrack).Apply(mt => mt.DiscNumber = DiscNumber.Value);
        }
 private void DoUpdateFromFileName(IModifiableTrack iModifiableTrack)
 {
     GetTracks(iModifiableTrack).Apply(mt=> mt.Name = System.IO.Path.GetFileNameWithoutExtension(mt.Path));
 }
 private void DoRemoveTrackNumber(IModifiableTrack iModifiableTrack)
 {
     foreach (IModifiableTrack mt in GetTracks(iModifiableTrack))
     {
         StringTrackParser stp = new StringTrackParser(mt.Name, false);
         if (stp.FounSomething)
         {
             mt.Name = stp.TrackName;
             if ((mt.TrackNumber == 0) && (stp.TrackNumber != null))
                 mt.TrackNumber = (uint)stp.TrackNumber;
         }
     }
 }
 private void DoDeleteTrack(IModifiableTrack iModifiableTrack)
 {
     foreach (var imt in GetTracks(iModifiableTrack))
     {
         imt.Delete();
         Tracks.Remove(imt);
     }
 }
        private IEnumerable<IModifiableTrack> GetTracks(IModifiableTrack icontext)
        {
            if (icontext == null)
                return Enumerable.Empty<IModifiableTrack>();

            return SelectedTracks.Contains(icontext) ? SelectedTracks.ToList() : icontext.SingleItemCollection();
        }