示例#1
0
        /// <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);
                    }
                }
            }
        }
示例#2
0
        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"));    
 }
示例#4
0
        /// <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));
        }
示例#6
0
        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));
            }
        }
示例#7
0
        /// <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));
        }
示例#8
0
        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();
        }
示例#10
0
        /// <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;
        }
示例#11
0
        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);
                    }
                }
            }
        }
示例#12
0
 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);
 }
示例#13
0
        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);
        }
示例#14
0
 public LibraryItem GetItem(int id) => LibraryItems.FirstOrDefault(x => x.Id == id);