public SearchListPage(Utilizatori utilizator, Frigidere frigider, string categorie)
 {
     InitializeComponent();
     m_utilizator = utilizator;
     m_frigider   = frigider;
     m_categorie  = categorie;
 }
Esempio n. 2
0
        /*** FRIGIDERE ***/
        // functii pt frigidere: save, update si delete (pt ingrediente); afisam toate ingredientele ca lista
        // afisam toate ingredientele dintr-o categorie

        //!toreview!
        public Task <int> AddUpdateFrigiderAsync(Frigidere frigider)
        {
            if (frigider.F_id != 0)
            {
                return(_database.UpdateAsync(frigider));
            }
            else
            {/*
              * var m_ingredient = new Ingrediente()
              * {
              *     N_id = 0,
              *     N_nume = "",
              *     N_categorie = "",
              *     N_subcategorie = "",
              *     N_descriere = "",
              *     N_link_imagine = ""
              * };
              *
              * // inseram ingredientul in lista din frigider
              * frigider.F_ingrediente = new List<Ingrediente> { m_ingredient };*/
             /*foreach (Ingrediente ing in frigider.F_ingrediente)
              *  System.Diagnostics.Debug.WriteLine(">>>FCTing: " + ing.N_nume);
              *
              * _database.InsertAsync(frigider);
              *
              * foreach (Ingrediente ing in frigider.F_ingrediente)
              *  System.Diagnostics.Debug.WriteLine(">>>2FCTing: " + ing.N_nume);*/

                return(_database.InsertAsync(frigider));
            }
        }
Esempio n. 3
0
        async void OnSubmitButtonClicked(object sender, EventArgs e)
        {
            // am luat informatiile din transmise prin editoare din xaml convertite la
            // tipul unei inregistrari a tabelului Utilizatori si le-am pus in m_utilizator
            var m_utilizator = (Utilizatori)BindingContext;

            // apelam functia de inregistrare cu informatiile transmise
            // vom "converti" (desface) de la Task<int> la int folosind await
            // in cazul in care result e 1, vom deschide pagina FridgeList
            // daca e 0, vom afisa un mesaj de eroare si vom deschide o pagina de eroare specifica
            // daca e -1, vom afisa un mesaj de eroare si vom deschide o alta pagina de eroare specifica
            var result = await App.Database.CheckRegisterAsync(m_utilizator);

            if (result == 1)
            {
                // cream un frigider nou care il vom insera in tabelul frigiderelor
                // si apoi il vom transmite la o functie pentru a updata utilizatorul curent
                // si a ii adauga acest frigider (trebuie intai sa adaugam frigiderul in tabel
                // pentru a folosi proprietatea frigider.F_id)
                Frigidere m_frigider = new Frigidere();
                m_frigider.F_utilizator_id = m_utilizator.U_id;
                m_frigider.F_ingrediente   = new List <Ingrediente> {
                };

                //foreach (Ingrediente ing in m_frigider.F_ingrediente)
                //System.Diagnostics.Debug.WriteLine(">>>REGing: " + ing.N_nume);

                await App.Database.AddUpdateFrigiderAsync(m_frigider);

                m_utilizator.U_frigider = m_frigider.F_id;
                await App.Database.SaveUtilizatorAsync(m_utilizator);


                // await DisplayAlert("Alerta:", "m_utilizator:" + m_utilizator.U_frigider, "ok??");


                await DisplayAlert("SUCCES!", "Inregistrarea a avut succes!", "Ok.");

                // vom iesi de pe pagina de register
                await Navigation.PopAsync();

                // PUSHasync ne adauga o noua pagina pe stack-ul de pagini de navigare
                // adaugam o pagina de tipul Fridge pentru Frigider deoarece initial dupa reg/login ne va trimite la pagina cu ingredientele
                //await Navigation.PushAsync(new FridgeListPage());
            }
            else if (result == 0)
            {
                await DisplayAlert("ESEC!", "Mai exista numele de utilizator sau email-ul.", "Ok.");
            }
            else if (result == -2)
            {
                await DisplayAlert("ESEC!", "Va rugam introduceti informatii in toate campurile.", "Ok.");
            }
            else
            {
                await DisplayAlert("ESEC!", "Eroare nespecificata. Incercati din nou.", "Ok.");
            }
        }
Esempio n. 4
0
        void showPageData(Frigidere m_frigider)
        {
            // pentru ca listView... din .xaml sa stie care lista sa o afiseze, folosim functia din CookingDatabase

            // elementele de la listViewIngredient vor avea valorile primite din GetFrigiderIngredientListAsync, metoda din CookingDatabase

            // luam utilizatorul transmis prin binding context de la pagina de Login
            // folosim functia getFrigiderFromUtilizator sa selectam frigiderul care corespunde utilizatorului curent
            // si il transmitem la functia care ne afiseaza ingredientele din frigider

            // daca m_categorie e null, va scoate toate ingredientele
            // daca m_categorie este numele unei categorii, va scoate doar categoria respectiva
            listViewIngredient.ItemsSource = App.Database.GetFrigiderIngredientListAsync(m_frigider, m_categorie);

            //await DisplayAlert("Alerta:","ID:" + m_utilizator.U_nume,"ok??");
            //App.Database.GetFrigiderIngredientListAsync(m_utilizator);
        }
Esempio n. 5
0
        public Task <int> AddIngredientFrigiderAsync(Frigidere frigider, Ingrediente ingredient)
        {
            System.Diagnostics.Debug.WriteLine(">>>Informatii din ingredient: " + ingredient.N_nume);
            System.Diagnostics.Debug.WriteLine(">>>Informatii din Frigider: " + frigider.F_id);

            // cream un nou m_ingredient cu informatiile preluate de la ingredientul transmis

            /*var m_ingredient = new Ingrediente()
             * {
             *  N_id = ingredient.N_id,
             *  N_nume = ingredient.N_nume,
             *  N_categorie = ingredient.N_categorie,
             *  N_subcategorie = ingredient.N_subcategorie,
             *  N_descriere = ingredient.N_descriere,
             *  N_link_imagine = ingredient.N_link_imagine
             * };
             * var m_ingredient = new Ingrediente()
             * {
             *  N_id = 1,
             *  N_nume = "ingredient",
             *  N_categorie = "ingredient",
             *  N_subcategorie = "ingredient",
             *  N_descriere = "ingredient",
             *  N_link_imagine = "ingredient"
             * };*/

            System.Diagnostics.Debug.WriteLine(">>>Informatii din M_ingredient: " + ingredient.N_nume);

            // inseram ingredientul in lista din frigider
            // NU, aici doar cream o lista noua lol: frigider.F_ingrediente = new List<Ingrediente> { m_ingredient };
            frigider.F_ingrediente.Add(ingredient);

            //foreach (Ingrediente ing in frigider.F_ingrediente)
            //System.Diagnostics.Debug.WriteLine(">>>ing: " + ing.N_nume);

            // updatam frigiderul
            return(_database.UpdateAsync(frigider));
        }
Esempio n. 6
0
        public bool CheckIngredientInFridgeAsync(Frigidere frigider, int id)
        {
            // returneaza true daca mai exista ingredientul in frigider
            // si false daca nu mai exista

            int numar_ingrediente = 0;

            foreach (Ingrediente ing in frigider.F_ingrediente)
            {
                if (ing.N_id == id)
                {
                    numar_ingrediente++;
                }
            }

            if (numar_ingrediente == 0)
            {
                return(false);
            }
            else
            {
                return(true);
            }
        }
Esempio n. 7
0
 public RecipesPage(Utilizatori utilizator, Frigidere frigider)
 {
     InitializeComponent();
     m_utilizator = utilizator;
     m_frigider   = frigider;
 }
 public FridgeCategoriesPage(Utilizatori utilizator, Frigidere frigider)
 {
     InitializeComponent();
     m_utilizator = utilizator;
     m_frigider   = frigider;
 }
Esempio n. 9
0
        public async Task <List <Retete> > GetReteteResultsListAsync(Frigidere frigider)
        {
            List <Ingrediente> ingrediente_detinute = frigider.F_ingrediente;

            //System.Diagnostics.Debug.WriteLine(">>>>>>>>>>>>TEST frigider id: " + frigider.F_id);

            //foreach (Ingrediente i in ingrediente_detinute)
            //System.Diagnostics.Debug.WriteLine(">>>GRRLISTing: " + i.N_nume);

            List <Retete> rezultat_retete = new List <Retete> {
            };
            List <Retete> toate_retetele  = await _database.Table <Retete>().ToListAsync();

            foreach (Retete r in toate_retetele)
            {
                System.Diagnostics.Debug.WriteLine(">>>RETETA: " + r.R_nume);
                foreach (Ingrediente i in r.R_ingrediente)
                {
                    System.Diagnostics.Debug.WriteLine(">>>>>>INGREDIENT: " + i.N_nume);
                }
            }

            //!toreview! - vezi daca nu poti face functia mai buna / cu sql (poate cu cv select si unions idk)

            // vom lua fiecare reteta care exista pe rand si ii vom verifica toate ingredientele
            // cu cele care le detinem in frigider
            // daca apare macar un ingredient in reteta pe care noi nu il avem, atunci facem break
            // si trecem la urmatoarea reteta
            // daca toate ingredientele retetei apar in ingredientele noastre, atunci o adaugam in lista_retete

            // r_i e ingredientul din reteta
            // f_i e ingredientul din frigider
            foreach (Retete r in toate_retetele)
            {
                // vom presupune ca reteta curenta are toate ingredientele
                bool are_ing = true;
                foreach (Ingrediente r_i in r.R_ingrediente)
                {
                    // !toreview! pe viitor: pt filtrul de "fara condimente", daca categoria ingredientului din
                    // reteta este cea de condiment atunci vom sari peste pasul de cautare si ing_gasit va fi automat
                    // true

                    // intai, ing_gasit va avea valoarea false, adica ingredientul nu a fost gasit
                    bool ing_gasit = false;
                    foreach (Ingrediente f_i in ingrediente_detinute)
                    {
                        if (r_i == f_i)
                        {
                            // daca ingredientul r_i este egal cu oricare din f_i inseamna ca a fost gasit
                            // deci ing_gasit devine true si iesim din functia de cautare
                            ing_gasit = true;
                            break;
                        }
                    }
                    // repetam aceasta cautare pentru toate ingredientele
                    // decat in cazul in care ing_gasit are valoarea false si la final
                    // ceea ce inseamna ca nu a fost gasit ingredientul in frigider
                    // moment in care are_ing va deveni false, deoarece reteta curenta nu are
                    // toate ingredientele, si vom iesi si din acest for
                    if (ing_gasit == false)
                    {
                        are_ing = false;
                        break;
                    }
                }
                // daca reteta are toate ingredientele printre cele din frigider (adica are_ing = true)
                // o vom adauga in lista retetelor rezultate
                rezultat_retete.Add(r);
            }


            // de-comenteaza rezultat_retete
            //return rezultat_retete;
            return(toate_retetele);
        }
Esempio n. 10
0
        public List <Ingrediente> GetFrigiderIngredientListAsync(Frigidere frigider, string categorie)
        {
            // returneaza o lista de obiecte Ingredient
            // daca string e null, atunci returnam toate ingredientele
            // daca string nu e null, returnam doar cele din categoria corespunzatoare

            /*
             * var m_ingredient = new Ingrediente()
             * {
             *  N_id = 1,
             *  N_nume = "ingredient",
             *  N_categorie = "ingredient",
             *  N_subcategorie = "ingredient",
             *  N_descriere = "ingredient",
             *  N_link_imagine = "ingredient"
             * };
             *
             * // inseram ingredientul in lista din frigider
             * frigider.F_ingrediente = new List<Ingrediente> { m_ingredient };
             *
             * // updatam frigiderul
             * _database.UpdateAsync(frigider);*/

            // apoi vom returna lista de ingrediente salvata in frigider

            /*
             * var m_ingrediente = frigider.F_ingrediente;
             */
            /*if (frigider.F_ingrediente != null)
             * {
             *  foreach (Ingrediente ing in frigider.F_ingrediente)
             *      System.Diagnostics.Debug.WriteLine(">>>GETing: " + ing.N_nume);
             * }*/

            // daca nu avem categorie, returnam toate ingredientele
            if (categorie == null)
            {
                return(frigider.F_ingrediente);
            }
            else
            {
                // daca avem categorie, returnam doar ingredientele care apartin categoriei respective
                // cream o lista noua
                var ingredienete_cat = new List <Ingrediente> {
                };

                // verificam daca fiecare ingredient are categoria dorita
                foreach (Ingrediente ing in frigider.F_ingrediente)
                {
                    if (ing.N_categorie == categorie)
                    {
                        // daca da, atunci il adaugam in lista dinainte
                        ingredienete_cat.Add(ing);
                        //System.Diagnostics.Debug.WriteLine(">>>GETing: " + ing.N_nume);
                    }
                }

                // returnam lista
                return(ingredienete_cat);
            }
        }