Exemple #1
0
 public static void ClickDeleteDeck(DeckViewModel deck)
 {
     if (deck != null)
     {
         FlashcardDataSource.DeleteDeck(deck);
     }
 }
Exemple #2
0
 public static void ClickAddDeck(String title, String author, String subject, String description, String imagePath, CategoryViewModel category)
 {
     var _deck = GetDeck(category, title);
     if (_deck == null)
     {
         _deck = new DeckViewModel("", category, title, author, subject, description, imagePath);
         FlashcardDataSource.AddDeck(_deck);
     }
 }
Exemple #3
0
 public static void ClickAddCard(DeckViewModel deck, String frontContent, String backContent)
 {
     var _card = GetCard(deck, frontContent);
     if (_card == null)
     {
         _card = new CardsViewModel("", frontContent, backContent, deck);
         FlashcardDataSource.AddCard(_card);
     }
 }
 public FlashcardDataSource()
 {
     databasePath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "MyDatabase.db");
     using (var database = new SQLiteConnection(databasePath))
     {
         database.CreateTable<Category>();
         database.CreateTable<Deck>();
         database.CreateTable<Card>();
     }
     var category1 = new CategoryViewModel("", "english");
     AddCategory(category1);
     AllCategories.Add(category1);
     var deck1 = new DeckViewModel("", category1, "1001 words need to know", "Thang", "toefl", "", "");
     AddDeck(deck1);
     AllDecks.Add(deck1);
     var card1 = new CardsViewModel("", "abc", "abc", deck1);
     AddCard(card1);
     AllCards.Add(card1);
 }
        public async Task<ObservableCollection<DeckViewModel>> GetDecks(int categoryId)
        {
            _decks = new ObservableCollection<DeckViewModel>();
            var db = new SQLiteAsyncConnection(App.DBPath);

            var query = await db.Table<Deck>().OrderBy(d => d.Title).ToListAsync();
            foreach (var d in query)
            {
                var _deck = new DeckViewModel();
                _deck.Id = d.Id;
                _deck.Title = d.Title;
                _deck.Author = d.Author;
                _deck.Subject = d.Subject;
                _deck.Description = d.Description;
                _deck.CategoryId = d.CategoryId;

                _decks.Add(_deck);
            }
            return _decks;
        }
Exemple #6
0
 public static void ClickEditDeck(DeckViewModel deck, String title, String author, String subject, String description, String imagePath)
 {
     if (deck != null)
     {
         deck.Title = title;
         deck.Author = author;
         deck.Subject = subject;
         deck.Description = description;
         deck.ImagePath = imagePath;
         FlashcardDataSource.UpdateDeck(deck);
     }
 }
Exemple #7
0
 public static CardsViewModel GetCard(DeckViewModel deck, String frontContent)
 {
     var _cards = FlashcardDataSource.GetCards(deck);
     foreach (var _card in _cards)
     {
         if (_card.FrontContent == frontContent)
         {
             return _card;
         }
     }
     return null;
 }
 public static void UpdateDeck(DeckViewModel deck)
 {
     using (var database = new SQLiteConnection(databasePath))
     {
         var _deck = database.Find<Deck>(d1 => d1.Id.ToString() == deck.UniqueId);
         if (_deck != null)
         {
             _deck.CategoryId = new Guid(deck.Category.UniqueId);
             _deck.Title = deck.Title;
             _deck.Author = deck.Author;
             _deck.Subject = deck.Subject;
             _deck.Description = deck.Description ;
             _deck.ImagePath = deck.ImagePath;
             database.Update(deck);
         }
     }
 }
        //function for deck
        // get
        // add
        // edit
        // delete
        public static ObservableCollection<DeckViewModel> GetDecks(CategoryViewModel category)
        {
            _flashcardDataSource._allDecks.Clear();

            using (var database = new SQLiteConnection(databasePath))
            {
                var decks = database.Table<Deck>().Where(d1 => d1.Id.ToString() == category.UniqueId).OrderBy(d2 => d2.Title);
                foreach (var deck in decks)
                {
                    DeckViewModel flashcardDataDeck = new DeckViewModel(""+deck.Id,
                                                                                category,
                                                                                deck.Title,
                                                                                deck.Author,
                                                                                deck.Subject,
                                                                                deck.Description,
                                                                                deck.ImagePath);
                    _flashcardDataSource._allDecks.Add(flashcardDataDeck);
                }
            }
            return _flashcardDataSource.AllDecks;
        }
 // function for card
 // get
 // add
 // edit
 // delete
 public static ObservableCollection<CardsViewModel> GetCards(DeckViewModel deck)
 {
     // Simple linear search is acceptable for small data sets
     _flashcardDataSource._allCards.Clear();
     using (var database = new SQLiteConnection(databasePath))
     {
         var _cards = database.Table<Card>().Where(c1 => c1.DeckId.ToString() == deck.UniqueId).OrderBy(c2 => c2.FrontContent);
         foreach (var _card in _cards)
         {
             CardsViewModel cardViewModel = new CardsViewModel(_card.Id.ToString(), _card.FrontContent, _card.BackContent, deck);
             _flashcardDataSource._allCards.Add(cardViewModel);
         }
     }
     return _flashcardDataSource._allCards;
 }
 public static void DeleteDeck(DeckViewModel deck)
 {
     using (var database = new SQLiteConnection(databasePath))
     {
         var _deck = database.Find<Deck>(d1 => d1.Id.ToString() == deck.UniqueId);
         database.Delete(_deck);
     }
 }
 public static void AddDeck(DeckViewModel deck)
 {
     using (var database = new SQLiteConnection(databasePath))
     {
         var _deck = new Deck();
         _deck.Id = Guid.NewGuid();
         _deck.Title = deck.Title;
         _deck.Author = deck.Author;
         _deck.Subject = deck.Subject;
         _deck.Description = deck.Description;
         _deck.ImagePath = deck.ImagePath;
         _deck.CategoryId = new Guid(deck.Category.UniqueId);
         database.Insert(_deck);
         deck.UniqueId = _deck.Id.ToString();
     }
 }
        public async Task<string> SaveDeck(DeckViewModel deck)
        {
            string result = String.Empty;
            var db = new SQLiteAsyncConnection(App.DBPath);

            try
            {
                var existingDeck = await (db.Table<Deck>().Where(d1 => d1.Id == deck.Id)).FirstOrDefaultAsync();

                if (existingDeck != null)
                {
                    existingDeck.Title = deck.Title;
                    existingDeck.Author = deck.Author;
                    existingDeck.Description = deck.Description;
                    existingDeck.Subject = deck.Subject;

                    int success = await db.UpdateAsync(existingDeck);
                }
                else
                {
                    var _deck = new Deck();
                    _deck.Title = deck.Title;
                    _deck.Author = deck.Author;
                    _deck.Description = deck.Description;
                    _deck.Subject = deck.Subject;

                    int success = await db.InsertAsync(_deck);
                }
                result = "Success";
            }
            catch
            {
                result = "this deck was not saved";
            }
            return result;
        }
        public async Task<DeckViewModel> GetDeck(int deckId)
        {
            var deck = new DeckViewModel();
            var db = new SQLiteAsyncConnection(App.DBPath);

            var _deck = await db.FindAsync<Deck>(d1 => d1.Id == deckId);
            if (_deck == null)
                return null;

            deck.Id = _deck.Id;
            deck.Title = _deck.Title;
            deck.Author = _deck.Author;
            deck.Subject = _deck.Subject;
            deck.Description = _deck.Description;
            deck.CategoryId = _deck.CategoryId;

            return deck;
        }