public static void ClickDeleteDeck(DeckViewModel deck) { if (deck != null) { FlashcardDataSource.DeleteDeck(deck); } }
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); } }
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; }
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); } }
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; }