コード例 #1
0
 /*---------------------- 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");
         }
     }
 }
コード例 #2
0
ファイル: App.xaml.cs プロジェクト: JaoHundred/ANT
        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)
        }
コード例 #3
0
 /*---------------------- 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");
         }
     }
 }
コード例 #4
0
 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");
         }
     }
 }
コード例 #5
0
        private async Task InitializationAsync()
        {
            var _produto = JsonConvert.DeserializeObject <Produto>(SettingsPreferences.GetValue("Produto", ""));

            if (_produto == null)
            {
                ImageSource = "no_image.png";
            }
            await LoadCategoriasAsync();
        }
コード例 #6
0
        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;
        }
コード例 #7
0
        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;
            }
        }
コード例 #8
0
ファイル: App.xaml.cs プロジェクト: JaoHundred/ANT
        /// <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);
        }
コード例 #9
0
        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");
            }
        }
コード例 #10
0
ファイル: HomeViewModel.cs プロジェクト: JaoHundred/ANT
        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);
        }
コード例 #11
0
        /// <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("-------------------------------------------------------------------------------------------------------");
        }
コード例 #12
0
ファイル: ThemeManager.cs プロジェクト: JaoHundred/ANT
        /// <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));
        }
コード例 #13
0
        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");
            }
        }
コード例 #14
0
 /*---------------------- 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");
         }
     }
 }
コード例 #15
0
        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();
        }
コード例 #16
0
 private async Task ExecuteRegistrarProdutoCommandAsync()
 {
     SettingsPreferences.DeleteValue("Produto");
     await Shell.Current.GoToAsync("RegistrarProduto");
 }
コード例 #17
0
 public MensagemViewModel()
 {
     FinalizarCommand = new AsyncCommand(ExecuteFinalizarCommandAsync);
     Mensagem         = SettingsPreferences.GetValue("Mensagem", "");
 }
コード例 #18
0
 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");
         }
     }
 }