コード例 #1
0
 public PreconstructedDecksViewModel()
 {
     _magicDatabase = MagicDatabaseManager.ReadOnly;
     Decks          = LoadReferentialData();
     Collections    = new List <ICardCollection>(_magicDatabase.GetAllCollections()).AsReadOnly();
     Languages      = new List <ILanguage>(_magicDatabase.GetAllLanguages()).AsReadOnly();
 }
コード例 #2
0
        protected UpdateViewModelCommun(string collectionName)
        {
            MagicDatabase = MagicDatabaseManager.ReadOnly;

            SourceCollection = MagicDatabase.GetAllCollections().First(cc => cc.Name == collectionName);

            Display.OkCommandLabel     = "Update";
            Display.CancelCommandLabel = "Close";
        }
コード例 #3
0
ファイル: StatisticViewModel.cs プロジェクト: FleurLotus/MPSD
        public StatisticViewModel(ICardInCollectionCount cardInCollectionCount)
        {
            IMagicDatabaseReadOnly magicDatabase = MagicDatabaseManager.ReadOnly;

            FoilAltArtNumber = cardInCollectionCount.FoilAltArtNumber;
            AltArtNumber     = cardInCollectionCount.AltArtNumber;
            FoilNumber       = cardInCollectionCount.FoilNumber;
            Number           = cardInCollectionCount.Number;
            Collection       = magicDatabase.GetCollection(cardInCollectionCount.IdCollection).Name;
            Edition          = magicDatabase.GetEdition(cardInCollectionCount.IdGatherer).Name;
            Language         = magicDatabase.GetLanguage(cardInCollectionCount.IdLanguage).Name;
        }
コード例 #4
0
ファイル: AuditViewModel.cs プロジェクト: FleurLotus/MPSD
        public AuditViewModel()
        {
            _magicDatabase = MagicDatabaseManager.ReadOnly;
            _allAudit      = _magicDatabase.GetAllAudits().ToArray();

            Display.Title              = "Audit";
            Display.OkCommandLabel     = "Load";
            Display.CancelCommandLabel = "Close";

            MinDate    = DateTime.UtcNow.Date.AddDays(-1);
            MaxDate    = DateTime.UtcNow.Date;
            AuditInfos = new RangeObservableCollection <AuditInfo>();
        }
コード例 #5
0
        public ImportExportViewModel(IDispatcherInvoker dispatcherInvoker)
        {
            _dispatcherInvoker   = dispatcherInvoker;
            ExportFormats        = (ExportFormat[])Enum.GetValues(typeof(ExportFormat));
            ExportFormatSelected = ExportFormat.MPSD;
            IMagicDatabaseReadOnly magicDatabase = MagicDatabaseManager.ReadOnly;

            ExportCollections = magicDatabase.GetAllCollections().Select(cc => new ExportedCollectionViewModel(cc.Name)).ToList();
            ImportCollections = magicDatabase.GetAllCollections().Select(cc => cc.Name).ToList();

            HasCollection = ExportCollections.Count > 0;
            SelectedIndex = HasCollection ? 0 : 1;
            Path          = ".";

            OpenCommand = new RelayCommand(OpenCommandExecute);
        }
コード例 #6
0
        public void Export(string[] collectionNames, string outpath, ExportFormat exportFormatSelected)
        {
            if (!Directory.Exists(outpath))
            {
                throw new ArgumentException("output path doesn't exist", nameof(outpath));
            }

            IImportExportFormatter formatter = ImportExportFormatterFactory.Create(exportFormatSelected);

            if (formatter == null)
            {
                throw new ArgumentException("Can't find appropriate formatter for " + exportFormatSelected, nameof(exportFormatSelected));
            }

            IMagicDatabaseReadOnly magicDatabase = MagicDatabaseManager.ReadOnly;

            foreach (string collectionName in collectionNames)
            {
                ICardCollection cardcollection = magicDatabase.GetCollection(collectionName);
                IEnumerable <ICardInCollectionCount> cardsInCollection = magicDatabase.GetCardCollection(cardcollection);

                if (cardsInCollection == null)
                {
                    throw new ImportExportException("Can't find collection named {0}", collectionName);
                }

                string filePath = Path.Combine(outpath, collectionName + formatter.Extension);

                try
                {
                    using (StreamWriter sw = new StreamWriter(filePath, false))
                    {
                        sw.Write(formatter.ToFile(cardsInCollection));
                    }
                }
                catch (ImportExportException)
                {
                    if (File.Exists(filePath))
                    {
                        File.Delete(filePath);
                    }

                    throw;
                }
            }
        }
コード例 #7
0
        public CardSourceViewModel(IMagicDatabaseReadOnly magicDatabase, ICardCollection sourceCardCollection, ICard card)
        {
            _magicDatabase = magicDatabase;

            Card = card;

            _cardInCollectionCounts = _magicDatabase.GetCollectionStatisticsForCard(sourceCardCollection, Card)
                                      .ToArray();

            _editions = _cardInCollectionCounts.Select(cicc => _magicDatabase.GetEdition(cicc.IdGatherer))
                        .Distinct()
                        .Ordered()
                        .ToArray();

            if (_editions.Length > 0)
            {
                EditionSelected = _editions[0];
            }
        }
コード例 #8
0
        //TODO: Test add/remove splitted card and statistics
        public MainViewModel(IDispatcherInvoker dispatcherInvoker)
        {
            AddLinkedProperty(nameof(Hierarchical), nameof(Title));

            HideResultCommand  = new RelayCommand(o => UpgradeStatus = UpgradeStatus.NotChecked);
            _dispatcherInvoker = dispatcherInvoker;
            _allhierarchical   = new HierarchicalViewModel(MagicCards, AllCardAsViewModel);

            _magicDatabase                    = MagicDatabaseManager.ReadOnly;
            _magicDatabaseForOption           = MagicDatabaseManager.ReadAndWriteOption;
            _magicDatabaseForCollection       = MagicDatabaseManager.ReadAndWriteCollection;
            _magicDatabaseForCardInCollection = MagicDatabaseManager.ReadAndWriteCardInCollection;

            Options         = new OptionsViewModel(_magicDatabaseForOption);
            _programUpdater = new ProgramUpgrader();
            UpgradeStatus   = _programUpdater.Status;

            if (Options.AutoCheckUpgrade)
            {
                ThreadPool.QueueUserWorkItem(DoCheckNewVersion);
            }

            Analysers        = new HierarchicalInfoAnalysersViewModel();
            _menuRoot        = new MenuViewModel();
            _contextMenuRoot = new MenuViewModel();

            CreateMenu();

            //Reload last chosen option
            IOption option = _magicDatabase.GetOption(TypeOfOption.SelectedCollection, "Name");

            if (option != null)
            {
                LoadCollection(option.Value);
            }
            else
            {
                LoadCollection();
            }
        }
コード例 #9
0
ファイル: SearchViewModel.cs プロジェクト: FleurLotus/MPSD
        public SearchViewModel()
        {
            _magicDatabase = MagicDatabaseManager.ReadOnly;
            //Never change
            CountComparator = new[] { "≥", "<" };
            Colors          = (ShardColor[])Enum.GetValues(typeof(ShardColor));
            Types           = ((CardType[])Enum.GetValues(typeof(CardType))).Where(t => t != CardType.Token)
                              .ToArray();
            SubTypes = ((CardSubType[])Enum.GetValues(typeof(CardSubType))).Where(t => t != CardSubType.None)
                       .ToArray();

            Display.Title              = "Search";
            Display.OkCommandLabel     = "Search";
            Display.CancelCommandLabel = "Close";
            Display.OtherCommandLabel  = "Reinit";

            EditionsSelected    = new ObservableCollection <IEdition>();
            CollectionsSelected = new ObservableCollection <ICardCollection>();
            ColorsSelected      = new ObservableCollection <ShardColor>();
            TypesSelected       = new ObservableCollection <CardType>();
            SubTypesSelected    = new ObservableCollection <CardSubType>();
            ReInit();
            Reuse();
        }
コード例 #10
0
 protected FormatterBase(ExportFormat format, string extension)
 {
     Format        = format;
     Extension     = extension;
     MagicDatabase = MagicDatabaseManager.ReadOnly;
 }
コード例 #11
0
 public static IEdition[] GetAllEditionsOrdered(this IMagicDatabaseReadOnly magicDatabase)
 {
     return(magicDatabase.GetAllEditions().Ordered()
            .ToArray());
 }
コード例 #12
0
 public static IEnumerable <ICardInCollectionCount> GetCollectionStatisticsForCard(this IMagicDatabaseReadOnly magicDatabase, ICardCollection collection, ICard card)
 {
     return(magicDatabase.GetCardCollectionStatistics(card).Where(cicc => cicc.IdCollection == collection.Id));
 }
コード例 #13
0
 public static IEnumerable <IEdition> GetAllEditionIncludingCardOrdered(this IMagicDatabaseReadOnly magicDatabase, ICard card)
 {
     return(magicDatabase.GetAllInfos().GetAllEditionIncludingCardOrdered(card));
 }