public WebAlbumSelectorViewModel(IMusicSession ims, IModifiableAlbum imad, int iMaxResult=5) { _IModifiableAlbum = imad; _IMS = ims; _IsLoading = true; _FoundSomething = true; _MergeStategy = MergeStategy.OnlyCover; var lookfor = imad.GetAlbumDescriptor(); IWebQuery wb = ims.WebQueryFactory.FromAlbumDescriptor(lookfor); wb.NeedCoverArt = true; wb.MaxResult = iMaxResult; _OriginalAlbumName = lookfor.ToString(); _IInternetFinder = ims.GetInternetFinder(wb); SelectCover = Register(RelayCommand.InstanciateAsync(()=>DoSelect(), () => SelectedInfos.Count>0)); Cancel = Register(RelayCommand.Instanciate(DoCancel, ()=>IsLoading)); Close = RelayCommand.Instanciate(DoClose); //LoadResult().DoNotWaitSafe(); }
public AlbumEditorViewModel(IMusicSession iMusicSession, IModifiableAlbum iModifiableAlbum) { _IModifiableAlbum = iModifiableAlbum; _Session = iMusicSession; ArtistSearchableFactory = new ArtistSearchableFactory(iMusicSession); GenreFactory = FactoryBuilder.Instanciate((n) => iMusicSession.GetGenreFactory().Create(n)); Images = _IModifiableAlbum.Images; SelectedImages = new WrappedObservableCollection<IAlbumPicture>(); if (Images.Count > 0) SelectedImage = Images[0]; Images.CollectionChanged += Images_CollectionChanged; SelectedTracks = new WrappedObservableCollection<IModifiableTrack>(); Authours = _IModifiableAlbum.Artists; _Genre = iMusicSession.GetGenreFactory().Get(_IModifiableAlbum.Genre); Genres = Register(iMusicSession.AllGenres.LiveOrderBy(global => global.FullName)); Tracks = new WrappedObservableCollection<IModifiableTrack>(_IModifiableAlbum.Tracks. OrderBy(t => t.DiscNumber).ThenBy(t => t.TrackNumber).ThenBy(t => t.Name)); SetFrontCover = Register(RelayCommand.Instanciate<IAlbumPicture>(SetToFront, ial => (ial != null) && Images.IndexOf(ial) > 0)); ToLast = Register(RelayCommand.Instanciate<IAlbumPicture>(SetToLast, ial => (ial != null) && Images.IndexOf(ial) != Images.Count - 1)); SplitImage = Register(RelayCommand.Instanciate<IAlbumPicture>(DoSplitImage, ial => ial != null)); RotateImageRight = Register(RelayCommand.Instanciate<IAlbumPicture>((al)=>DoRotateImage(al,true), ial => ial != null)); RotateImageLeft = Register(RelayCommand.Instanciate<IAlbumPicture>((al) => DoRotateImage(al, false), ial => ial != null)); DeleteImage = Register(RelayCommand.Instanciate<IAlbumPicture>(DoDeleteImage, ial => ial != null)); ImageFromFile = RelayCommand.Instanciate(DoImageFromFile); PasteImage = RelayCommand.InstanciateStatic(DoPasteImage, CanExecuteImage); DeleteTrack = Register(RelayCommand.Instanciate<IModifiableTrack>(DoDeleteTrack, ial => ial != null)); WindowOpenTrack = Register(RelayCommand.Instanciate<IModifiableTrack>(DoWindowOpenTrack, ial => ial != null)); UpdateFromFileName = Register(RelayCommand.Instanciate<IModifiableTrack>(DoUpdateFromFileName, ial => ial != null)); RemoveTrackNumber= Register(RelayCommand.Instanciate<IModifiableTrack>(DoRemoveTrackNumber, ial => ial != null)); PreFixByArtistName = Register(RelayCommand.Instanciate<IModifiableTrack>(DoPreFixByArtistName, ial => ial != null)); ChangeDiscNumber = Register(RelayCommand.Instanciate<IModifiableTrack>(DoChangeDiscNumber, ial => ial != null)); FindFromDB = RelayCommand.Instanciate(DoFindFromInternet); BrowseInternet = RelayCommand.Instanciate(FindOnInternet); OK = RelayCommand.Instanciate(DoCommit); }
private bool AddImagesFromFile(IModifiableAlbum imoda) { try { string MainDirectory = imoda.MainDirectory; List<string> myfiles = ImagesFromDirectory(MainDirectory); if (myfiles.Count == 0) { string otherdir = Path.Combine(MainDirectory, "cover"); myfiles = ImagesFromDirectory(otherdir); if (myfiles.Count == 0) { string newotherdir = Path.Combine(MainDirectory, "covers"); myfiles = ImagesFromDirectory(newotherdir); } } if (myfiles.Count == 0) { return false; } int i = 0; foreach (string file in myfiles) { imoda.AddAlbumPicture(file, i++); } return true; } catch (Exception e) { Console.WriteLine("Problem {0}", e); return false; } }
public InternetFinderViewModel(IModifiableAlbum IAl) { _Uri = new Uri (@"http://www.google.com/images?q="+IAl.CreateSearchGoogleSearchString(), UriKind.RelativeOrAbsolute);; }
public DiscEditor(IModifiableAlbum Al, IMusicSession Session) { DataContext = Al; InitializeComponent(); (Editor as ISessionAcessor).Session = Session; }