Exemple #1
0
        private void tsmiAddDeckNew_Click(object sender, EventArgs e)
        {
            var deckViewItem = new DeckViewItem();

            lvDecks.Items.Add(deckViewItem);

            HandleDeckManagement(deckViewItem);
            _changeMade = true;
        }
Exemple #2
0
        private void LoadDecks()
        {
            var deckViewItemsList = new List <DeckViewItem>();

            if (!File.Exists(Config.DeckInformationFilePath))
            {
                foreach (var dataFilePath in Directory.GetFiles(Config.ApplicationPath, "*.dat"))
                {
                    var deck = new Deck
                    {
                        Name     = Path.GetFileNameWithoutExtension(dataFilePath),
                        FilePath = dataFilePath
                    };
                    deckViewItemsList.Add(new DeckViewItem(deck));
                    _changeMade = true;
                }
                lvDecks.Items.AddRange(deckViewItemsList.ToArray());
                return;
            }

            var content = File.ReadAllText(Config.DeckInformationFilePath);

            foreach (var deck in JsonConvert.DeserializeObject <Deck[]>(content))
            {
                deckViewItemsList.Add(new DeckViewItem(deck));
            }
            lvDecks.Items.AddRange(deckViewItemsList.ToArray());

            if (string.IsNullOrWhiteSpace(_lastOpenedDeckName))
            {
                return;
            }

            DeckViewItem lastOpenedDeckViewItem = null;

            foreach (DeckViewItem deckViewItem in lvDecks.Items)
            {
                if (deckViewItem.Deck.Name == _lastOpenedDeckName)
                {
                    lastOpenedDeckViewItem = deckViewItem;
                    break;
                }
            }
            if (lastOpenedDeckViewItem != null)
            {
                HandleDeckManagement(lastOpenedDeckViewItem);
            }
        }
Exemple #3
0
        private void HandleDeckManagement(DeckViewItem deckViewItem)
        {
            using (var deckManagementDialog = new DeckManagementForm(deckViewItem.Deck))
            {
                deckManagementDialog.SetDependencies(_ankiProvider, _cambridgeProvider, _htmlFormatter, _simpleTextFormatter, _textFormatter, _comparer);

                Hide();
                var dialogResult = deckManagementDialog.ShowDialog();
                Show();
                if (dialogResult != DialogResult.OK)
                {
                    return;
                }

                _changeMade         = true;
                _lastOpenedDeckName = deckManagementDialog.Deck.Name;
                deckViewItem.Deck   = deckManagementDialog.Deck;
            }
        }
Exemple #4
0
        private void tsmiAddDeckFromFile_Click(object sender, EventArgs e)
        {
            using (var dialog = new OpenFileDialog())
            {
                if (dialog.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var deck = new Deck
                {
                    Name     = Path.GetFileNameWithoutExtension(dialog.FileName),
                    FilePath = dialog.FileName
                };
                var deckViewItem = new DeckViewItem(deck);
                lvDecks.Items.Add(deckViewItem);

                HandleDeckManagement(deckViewItem);
                _changeMade = true;
            }
        }