/*---------------------- Load Produtos ----------------------*/ public async Task LoadProdutosAsync() { if (!IsBusy) { Exception Error = null; try { IsBusy = true; var _categoria = JsonConvert.DeserializeObject <Categoria>(SettingsPreferences.GetValue("Categoria", "")); DescricaoCategoria = $"Lista de Produtos [{_categoria.Descricao}]"; var _realmDB = Realm.GetInstance(); var _listaProdutos = _realmDB.All <Produto>().Where(p => p.CategoriaID == _categoria.CategoriaID).ToList(); Produtos = new ObservableCollection <Produto>(_listaProdutos.OrderBy(c => c.Descricao)); } catch (Exception ex) { IsBusy = false; Error = ex; } finally { IsBusy = false; } if (Error != null) { IsBusy = false; await DisplayAlert("Ooops!", "Ocorreu algo inesperado!" + Environment.NewLine + "Por favor, tente novamente!", "OK"); } } }
protected async override void OnStart() { if (liteDB == null) { LiteDBHelper.StartLiteDB(); } if (liteErrorLogDB == null) { LiteDBHelper.StartErrorLogLiteDB(); } LiteDBHelper.MigrateLiteDB(); // Handle when your app starts await ThemeManager.LoadThemeAsync(); Jikan = new Jikan(useHttps: true); SettingsPreferences settings = StartSettings(); if (settings.NotificationsIsOn && Device.RuntimePlatform == Device.Android) { await RunJobAsync(typeof(NotificationJob), WorkManagerConsts.AnimesNotificationWorkId); } //TODO: repetir o mesmo procedimento acima para essa parte, para o work de atualização de animes na lista de favoritos //(repetir também no BootBroadcastReceiver) }
/*---------------------- Load Categorias ----------------------*/ public async Task LoadCategoriasAsync() { if (!IsBusy) { Exception Error = null; try { IsBusy = true; var _realmDB = Realm.GetInstance(); var _listaCategorias = _realmDB.All <Categoria>().ToList(); Categorias = new ObservableCollection <Categoria>(_listaCategorias.OrderBy(c => c.Descricao)); } catch (Exception ex) { IsBusy = false; Error = ex; } finally { IsBusy = false; //Limpa os campos CategoriaModel.Descricao = string.Empty; CategoriaModel.Ativo = false; SettingsPreferences.DeleteValue("Categoria"); } if (Error != null) { IsBusy = false; await DisplayAlert("Ooops!", "Ocorreu algo inesperado!" + Environment.NewLine + "Por favor, tente novamente!", "OK"); } } }
private async Task RegistrarCategoriaAsync() { if (!IsBusy) { Exception Error = null; try { IsBusy = true; var _realmDB = Realm.GetInstance(); using (UserDialogs.Instance.Loading("Registrando Categoria...", null, null, true, MaskType.Gradient)) { //Buscar Categoria var _categoria = JsonConvert.DeserializeObject <Categoria>(SettingsPreferences.GetValue("Categoria", "")); //Adicionar nova Categoria if (_categoria == null) { Categoria objCategoria = new Categoria() { Descricao = CategoriaModel.Descricao.Trim(), DataCadastro = System.DateTime.Now, Ativo = CategoriaModel.Ativo, }; _realmDB.Write(() => { _realmDB.Add(objCategoria); }); //Toast Messages UserDialogs.Instance.Toast("Categoria cadastrada com sucesso!", TimeSpan.FromSeconds(1)); } else { //Atualizar Categoria var objCategoria = _realmDB.Find <Categoria>(_categoria.CategoriaID); using (var db = _realmDB.BeginWrite()) { objCategoria.Descricao = CategoriaModel.Descricao.Trim(); objCategoria.Ativo = CategoriaModel.Ativo; db.Commit(); } UserDialogs.Instance.Toast("Categoria atualizada com sucesso!", TimeSpan.FromSeconds(1)); } } } catch (Exception ex) { IsBusy = false; Error = ex; } finally { IsBusy = false; await LoadCategoriasAsync(); } if (Error != null) { IsBusy = false; await DisplayAlert("Ooops!", "Ocorreu algo inesperado!" + Environment.NewLine + "Por favor, tente novamente!", "OK"); } } }
private async Task InitializationAsync() { var _produto = JsonConvert.DeserializeObject <Produto>(SettingsPreferences.GetValue("Produto", "")); if (_produto == null) { ImageSource = "no_image.png"; } await LoadCategoriasAsync(); }
public ProdutoDetalheViewModel() { VoltarCommand = new AsyncCommand(ExecuteVoltarCommandAsync, allowsMultipleExecutions: false); var _produto = JsonConvert.DeserializeObject <Produto>(SettingsPreferences.GetValue("Produto", "")); DescricaoProduto = _produto.Descricao; DetalhesProduto = _produto.Detalhes; Preco = _produto.Preco; PrecoPromocional = _produto.PrecoPromocional; ImagemURL = string.IsNullOrWhiteSpace(_produto.ImagemURL) ? "no_image.png" : _produto.ImagemURL; }
private async Task ExecuteSelectionChangedCommandAsync(Categoria obj) { var _editar = await DisplayAlert("Atenção!", "Editar esta Categoria?", "Sim", "Não"); if (_editar) { SettingsPreferences.SetValue("Categoria", JsonConvert.SerializeObject(obj)); CategoriaModel.Descricao = obj.Descricao; CategoriaModel.Ativo = obj.Ativo; } }
/// <summary> /// Usar após garantir que o LiteDB já foi iniciado /// </summary> /// <returns></returns> public static SettingsPreferences StartSettings() { var db = liteDB.GetCollection <SettingsPreferences>(); var settings = db.FindById(0); if (settings == null) { settings = new SettingsPreferences(); liteDB.GetCollection <SettingsPreferences>().Upsert(0, settings); } return(settings); }
private async Task ExecuteSelectionChangedCommandAsync(Produto obj) { SettingsPreferences.SetValue("Produto", JsonConvert.SerializeObject(obj)); var _editar = await DisplayAlert("Atenção!", "Selecione", "Editar", "Detalhes"); if (_editar) { await Shell.Current.GoToAsync("RegistrarProduto"); } else { await Shell.Current.GoToAsync("ProdutoDetalhe"); } }
private void LoadRecommendationFromCache(SettingsPreferences settings , ILiteCollection <RecommendationAnimes> recommendationAnimesCollection, RecommendationAnimes recommendationsCache) { recommendationsCache.Recommendations = recommendationsCache.Recommendations .Where(recommendation => !App.liteDB.GetCollection <FavoritedAnime>() .Exists(favoritedAnime => recommendation.MalId == favoritedAnime.Anime.MalId)) .ToList(); RecommendationAnimes = recommendationsCache; HasRecommendations = RecommendationAnimes.Recommendations.Count() != 0; recommendationAnimesCollection.Upsert(0, recommendationsCache); }
/// <summary> /// Method to initialize application preferences before startup. /// </summary> public void InitializePreferences() { Trace.WriteLine("-------------------------------------------------------------------------------------------------------"); // Add application storage directories. SettingsPreferences.InitializeStorage(); /* * // Copy program files to My Documents user folder. * Trace.WriteLine((string)Translation.DLogs.CopyingProgramFiles); * ApplicationBase.Directories.CopyConfigFiles(true); */ Trace.WriteLine("-------------------------------------------------------------------------------------------------------"); }
/// <summary> /// Gives current/last selected theme from the local storage. /// </summary> /// <returns></returns> //TODO:implementar os 2 abaixo quando estiver funcionando o json private static Task <Themes> CurrentThemeOrCreateAsync() { var bdCol = App.liteDB.GetCollection <SettingsPreferences>(); var settings = bdCol.FindById(0); if (settings == null) { settings = new SettingsPreferences(); } var theme = (Themes)settings.SelectedThemeIndex; bdCol.Upsert(0, settings); return(Task.FromResult(theme)); }
private async Task ExecuteSelectionChangedCommandAsync(Categoria obj) { if (obj.Ativo == false) { await DisplayAlert("Atenção!", "Não é possível listar os Produtos, Categoria inativa!", "OK"); return; } using (UserDialogs.Instance.Loading("Atualizando...", null, null, true, MaskType.Gradient)) { await Task.Delay(500); SettingsPreferences.SetValue("Categoria", JsonConvert.SerializeObject(obj)); await Shell.Current.GoToAsync("ListarProdutos"); } }
/*---------------------- Load Categorias Async ----------------------*/ public async Task LoadCategoriasAsync() { if (!IsBusy) { Exception Error = null; try { IsBusy = true; IsRefresh = true; using (UserDialogs.Instance.Loading("Atualizando...", null, null, true, MaskType.Gradient)) { //Buscar Produto var _produto = JsonConvert.DeserializeObject <Produto>(SettingsPreferences.GetValue("Produto", "")); if (_produto is not null) { ProdutoModel.Descricao = _produto.Descricao; ProdutoModel.Detalhes = _produto.Detalhes; Preco = _produto.Preco; PrecoPromocional = _produto.PrecoPromocional; ImageSource = _produto.ImagemURL; } //Carregar Categorias var _realmDB = Realm.GetInstance(); var _listaCategorias = _realmDB.All <Categoria>().Where(c => c.Ativo == true).ToList(); Categorias = new ObservableCollection <Categoria>(_listaCategorias.OrderBy(c => c.Descricao)); } } catch (Exception ex) { IsBusy = false; IsRefresh = false; Error = ex; } finally { IsBusy = false; IsRefresh = false; } if (Error != null) { IsBusy = false; IsRefresh = false; await DisplayAlert("Ooops!", "Ocorreu algo inesperado!" + Environment.NewLine + "Por favor, tente novamente!", "OK"); } } }
private async Task ExecuteConfirmarCommandAsync() { if (!ValidaCampos()) { //Toast Messages UserDialogs.Instance.Toast("Campos obrigatórios!", TimeSpan.FromSeconds(1)); return; } if (String.IsNullOrWhiteSpace(ProdutoModel.CategoriaID)) { //Toast Messages UserDialogs.Instance.Toast("Por favor, selecione uma Categoria!", TimeSpan.FromSeconds(1)); return; } var _produto = JsonConvert.DeserializeObject <Produto>(SettingsPreferences.GetValue("Produto", "")); if (_produto is null && _mediaFile is null) { //Toast Messages UserDialogs.Instance.Toast("Por favor, anexar uma imagem!", TimeSpan.FromSeconds(1)); return; } await RegistrarProdutoAsync(); }
private async Task ExecuteRegistrarProdutoCommandAsync() { SettingsPreferences.DeleteValue("Produto"); await Shell.Current.GoToAsync("RegistrarProduto"); }
public MensagemViewModel() { FinalizarCommand = new AsyncCommand(ExecuteFinalizarCommandAsync); Mensagem = SettingsPreferences.GetValue("Mensagem", ""); }
private async Task RegistrarProdutoAsync() { if (!IsBusy) { Exception Error = null; try { IsBusy = true; var _realmDB = Realm.GetInstance(); using (UserDialogs.Instance.Loading("Registrando Produto...", null, null, true, MaskType.Gradient)) { //Buscar Produto var _produto = JsonConvert.DeserializeObject <Produto>(SettingsPreferences.GetValue("Produto", "")); if (!string.IsNullOrWhiteSpace(PrecoPromocional.ToString())) { _precoPromocional = PrecoPromocional; } if (_produto == null) { //Registrar Produto Produto objProduto = new Produto() { Descricao = ProdutoModel.Descricao.Trim(), Detalhes = ProdutoModel.Detalhes.Trim(), Preco = Preco, PrecoPromocional = _precoPromocional, Imagem = _mediaFile.FileName, ImagemURL = _mediaFile.FullPath, DataCadastro = System.DateTime.Now, Ativo = true, CategoriaID = ProdutoModel.CategoriaID }; //------------ Registrar Produto ------------/ _realmDB.Write(() => { _realmDB.Add(objProduto); }); SettingsPreferences.SetValue("Mensagem", "Produto cadastrado com sucesso!"); } else { //Atualizar Produto var objProduto = _realmDB.Find <Produto>(_produto.ProdutoID); using (var db = _realmDB.BeginWrite()) { objProduto.Descricao = ProdutoModel.Descricao.Trim(); objProduto.Detalhes = ProdutoModel.Detalhes.Trim(); objProduto.Preco = Preco; objProduto.PrecoPromocional = _precoPromocional; if (_mediaFile is not null) { objProduto.Imagem = _mediaFile.FileName; objProduto.ImagemURL = _mediaFile.FullPath; } objProduto.DataCadastro = System.DateTime.Now; objProduto.Ativo = true; objProduto.CategoriaID = ProdutoModel.CategoriaID; db.Commit(); } SettingsPreferences.SetValue("Mensagem", "Produto atualizado com sucesso!"); } } } catch (Exception ex) { IsBusy = false; Error = ex; } finally { IsBusy = false; await Shell.Current.GoToAsync("Mensagem", true); } if (Error != null) { IsBusy = false; await DisplayAlert("Ooops!", "Ocorreu algo inesperado!" + Environment.NewLine + "Por favor, tente novamente!", "OK"); } } }