/// <summary> /// Opens analysis of a single library item game /// </summary> /// <param name="game">Game to analyze</param> private async Task AnalyzeLibraryItemGameAsync(LibraryItemGame game) { var libraryItem = LibraryItems.FirstOrDefault(i => i.Games.Contains(game)); if (libraryItem != null) { //app data library item var appDataLibraryItem = libraryItem as AppDataLibraryItemViewModel; if (appDataLibraryItem != null) { await AnalyzeGameAsync(appDataLibraryItem, game); } } else { //selected item, external if (SelectedLibraryItem?.Games.Contains(game) == true) { var externalLibraryItem = SelectedLibraryItem as ExternalSgfFileViewModel; if (externalLibraryItem != null) { AnalyzeGame(externalLibraryItem, game); } } } }
public void StartScanAndUpdateDB(IList <LibraryItemEntity> list, Action callback) { Func <IDictionary <LibraryItemEntity, IList <DirectoryInfo> > > function = () => { var removeList = LibraryItems.Where(item => list.FirstOrDefault(i => 0 == string.Compare(i.Path, item.Path, true)).IsNull()); var addList = list.Where(item => !LibraryItems.Any(i => 0 == string.Compare(i.Path, item.Path, true))); DeleteLibraryItems(removeList.ToList()); AddLibraryItems(addList.ToList()); HistoryScanner scanner = new HistoryScanner(addList.ToList()); scanner.StartScan(); WriteToDBByScannedResult(scanner.Results); Application.Current.Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { RefreshDBData(); if (!callback.IsNull()) { callback(); } })); return(scanner.Results); }; function.BeginInvoke(ar => { IEnumerable <DirectoryInfo> results = ThreadHelper.EndInvokeFunc <IEnumerable <DirectoryInfo> >(ar); }, function); }
///populates the libraryItems collection protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); DataContext = this; LibraryItems.Add(new PhotoData("Images/greece.jpg")); LibraryItems.Add(new PhotoData("Images/greece1.jpg")); LibraryItems.Add(new PhotoData("Images/greece2.jpg")); LibraryItems.Add(new PhotoData("Images/greece3.jpg")); LibraryItems.Add(new PhotoData("Images/greece4.jpg")); LibraryItems.Add(new PhotoData("Images/greece5.jpg")); LibraryItems.Add(new PhotoData("Images/greece6.jpg")); LibraryItems.Add(new PhotoData("Images/greece7.jpg")); LibraryItems.Add(new PhotoData("Images/germany.jpg")); LibraryItems.Add(new PhotoData("Images/germany1.jpg")); LibraryItems.Add(new PhotoData("Images/germany2.jpg")); LibraryItems.Add(new PhotoData("Images/germany3.jpg")); LibraryItems.Add(new PhotoData("Images/germany4.jpg")); LibraryItems.Add(new PhotoData("Images/germany5.jpg")); LibraryItems.Add(new PhotoData("Images/morocco.jpg")); LibraryItems.Add(new PhotoData("Images/morocco1.jpg")); LibraryItems.Add(new PhotoData("Images/morocco2.jpg")); LibraryItems.Add(new PhotoData("Images/morocco3.jpg")); LibraryItems.Add(new PhotoData("Images/morocco4.jpg")); LibraryItems.Add(new PhotoData("Images/morocco5.jpg")); }
/// <summary> /// Imports a SGF file into library /// </summary> /// <returns></returns> private async Task ImportSgfFileAsync() { IsWorking = true; try { var fileContents = await _filePicker.PickAndReadFileAsync(".sgf"); if (fileContents == null) { return; } string fileName = fileContents.Name; fileName = await SgfExport.SaveToLibraryAsync(fileName, fileContents.Contents); //add to library var fileInfo = await _appDataFileService.GetFileInfoAsync(fileName, SgfFolderName); var newItem = await CreateLibraryItemFromFileContentAsync(new FileContentInfo(fileInfo.Name, fileInfo.Size, fileInfo.LastModified, fileContents.Contents)); if (newItem != null) { LibraryItems.Insert(0, new AppDataLibraryItemViewModel(newItem)); } } catch (Exception e) { //ignore } finally { IsWorking = false; } }
/// <summary> /// Produces a collection of displable instances of assemblies /// </summary> private void LoadAssemblies() { LibraryItems.Clear(); foreach (AssemblyDeclaration ad in MacroUI.GetInstance().GetAssemblies()) { LibraryItems.Add(new DisplayableListViewItem(ad)); } OnPropertyChanged(nameof(LabelVisible)); }
public GalleryViewModel() { var images = GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), new string[] { "*.jpg", "*.jpeg", "*.png", "*.bmp", "*.tif", "*.tiff", "*.webp", "*.gif" }, SearchOption.TopDirectoryOnly); foreach (var item in images) { LibraryItems.Add(new ImageModel(item)); } }
/// <summary> /// Occurs when the window is about to close. /// </summary> /// <param name="e"></param> //Cpode for library bar protected override void OnInitialized(EventArgs e) { base.OnInitialized(e); DataContext = this; LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\Images\wellesley_sunset.jpg", "Wellesley Sunset", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\Imageswellesley_hooproll.jpg", "Hoop Rolling", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\images\wellesley_sci.jpg", "Science Center", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\Videos\video1.jpg", "Video 1", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\Videos\video2.jpg", "Video 2", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\images\racoon.jpg", "Racoon", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\images\teacup_pig.jpg", "Teacup Pig", true)); LibraryItems.Add(new PhotoData(@"C:\Users\balichmac1\Desktop\WEBSEMBLY_FINAL\Resources\images\two_pigs.jpg", "Two Pigs", true)); }
private async Task DeleteItemAsync(LibraryItemViewModel libraryItem) { if ( await _dialogService.ShowConfirmationDialogAsync( Localizer.DeleteWarning, String.Format(Localizer.DeleteQuestion, libraryItem.FileName), Localizer.DeleteCommand, Localizer.No)) { await _appDataFileService.DeleteFileAsync(SgfFolderName, libraryItem.FileName); LibraryItems.Remove(libraryItem); SelectedLibraryItem = null; } }
public LibraryWidgetViewModel(IEventAggregator eventAgg, ILibrary library) { this.eventAgg = eventAgg; eventAgg.Subscribe(this); this.library = library; onCollectionChanged = () => { LibraryItems = library.MediaItems.Where(m => !m.IsDeleted).Select(m => new MediaItemViewModel(eventAgg, m)); log.Info("Found {0} media items to show", LibraryItems.Count()); NotifyOfPropertyChange(() => LibraryItems); }; library.MediaItems.CollectionChanged += (s, e) => onCollectionChanged(); onCollectionChanged(); }
/// <summary> /// Refreshes the library contents /// </summary> /// <returns></returns> private async Task RefreshListAsync() { IsWorking = true; UpdateProgressText(); //load cache await LoadLibraryCacheAsync(); //load all file names await _appDataFileService.EnsureFolderExistsAsync(SgfFolderName); var files = await _appDataFileService.EnumerateFilesInFolderAsync(SgfFolderName); var fileNames = files as string[] ?? files.ToArray(); _totalLibraryItems = fileNames.Length; _loadedLibraryItems = 0; List <Task <LibraryItem> > libraryLoadTasks = new List <Task <LibraryItem> >(); foreach (var fileName in fileNames) { //load each library item libraryLoadTasks.Add(Task.Run(() => RefreshLoadLibraryItemAsync(fileName))); } //get the resuts, include only non-null items var allLoadingTask = Task.WhenAll(libraryLoadTasks); //report progress periodically while (await Task.WhenAny(allLoadingTask, Task.Delay(100)) != allLoadingTask) { //report progress UpdateProgressText(); } var rawResults = await allLoadingTask; //clean up results from invalid files var results = rawResults.Where(i => i != null).OrderByDescending(i => i.FileLastModified).ToList(); LibraryItems.ReplaceCollection(results.Select(li => new AppDataLibraryItemViewModel(li))); await SaveLibraryCacheAsync(results); IsWorking = false; }
public void OnActivated() { if (base.LibraryItems.Count == 0) { foreach (GeneratedTypeInfo pocoType in base.PocoTypes) { LibraryItems.Add(new LibraryItemViewModel { PocoType = pocoType.TypeInfo }); IEnumerable <LibraryItemViewModel> lst = pocoType.Properties.Select(p => new LibraryItemViewModel { PocoProperty = p.PocoProperty }); foreach (LibraryItemViewModel item in lst) { base.LibraryItems.Add(item); } } } }
public void PocoTypeCheckedChange(LibraryItemViewModel pocoTypeInfo, bool isChecked) { LibraryItems.Where(t => t.PocoProperty != null && t.PocoProperty.ReflectedType == pocoTypeInfo.PocoType).ToList() .ForEach(t => t.GenerateThis = pocoTypeInfo.GenerateThis); }
public void GenerateWPF() { IEnumerable <IGrouping <Type, LibraryItemViewModel> > groupedPropsByType = LibraryItems.Where(item => item.PocoProperty != null && item.GenerateThis).GroupBy(item => item.PocoProperty.DeclaringType); SelectedGenerator.Init(base.TargetAssemblyInfo); SelectedGenerator.GenerateGUIProject(OutputFolder, groupedPropsByType.Select(g => g.Key).ToList(), OutputNamespace, 4); Process.Start(OutputFolder); }
public LibraryItem GetItem(int id) => LibraryItems.FirstOrDefault(x => x.Id == id);