public HomePageViewModel(ISettingsService settingsService, IDatabaseService databaseService, IToastMessage toastMessage) { _settingsService = settingsService; _databaseService = databaseService; _toastMessage = toastMessage; //_databaseService.DeleteDatabase(); var dbJoke = _databaseService.GetRandomJoke(); if (dbJoke != null) { Joke = dbJoke; } var dbQuote = _databaseService.GetRandomQuote(); if (dbQuote != null) { Quote = new QuoteItem { Tags = dbQuote.Tags.Split(';').ToList(), Icon = dbQuote.Icon, Id = dbQuote.Id, Quote = dbQuote.Quote } } ; var dbMeme = _databaseService.GetRandomMeme(); if (dbMeme != null) { Meme = new MemeDbItem { Image = dbMeme.Image, Id = dbMeme.Id } } ; InitSettings(); if (!ExtensionMethods.IsConnected()) { _toastMessage.ShowToast(notConnectedMessage); } }
public async Task <bool> DeleteMeme(MemeDbItem meme) { try { using (var db = new SQLiteConnection(GetDataPath(), SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.FullMutex)) { await Task.Run(() => db.Delete(meme)); return(true); } } catch (Exception ex) { Debug.WriteLine(ex.Message); return(false); } }
public async void AddMemeAsync() { try { if (!string.IsNullOrEmpty(url)) { var value = await _tronaldDumpService.GetMemeAsync(url); if (value != null) { var id = 1; if (ImageCollection.Count > 0) { id = ImageCollection.Last().Id + 1; } var meme = new MemeDbItem { Id = id, Image = value }; ImageCollection.Add(meme); if (Device.RuntimePlatform == Device.Android || Device.RuntimePlatform == Device.UWP) { await _databaseService.AddMeme(meme); } } else { _toastMessage.ShowToast(commonErrorMessage); } } else { _toastMessage.ShowToast(apiErrorMessage); } } catch { _toastMessage.ShowToast(commonErrorMessage); } }
public async Task <bool> AddMeme(MemeDbItem meme) { if (FileExists()) { try { using (var db = new SQLiteConnection(GetDataPath(), SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.FullMutex)) { await Task.Run(() => db.Insert(meme)); return(true); } } catch { return(false); } } else { if (DbCreate()) { try { using (var db = new SQLiteConnection(GetDataPath(), SQLiteOpenFlags.ReadWrite | SQLiteOpenFlags.FullMutex)) { await Task.Run(() => db.Insert(meme)); return(true); } } catch { return(false); } } else { return(false); } } }