Example #1
0
        private void AddButton_Click(object sender, RoutedEventArgs e)
        {
            Potrawy recipe = new Potrawy();

            recipe.NazwaPotrawy  = NameTextBox.Text;
            recipe.Skladniki     = IngTextBox.Text;
            recipe.Przygotowanie = PrepTextBox.Text;

            try
            {
                using (var dbCtx = new KitchenEntities1())
                {
                    dbCtx.Entry(recipe).State = EntityState.Added;
                    dbCtx.SaveChanges();

                    Skladniki ingridient = new Skladniki();
                    string[]  ingr       = System.Text.RegularExpressions.Regex.Split(recipe.Skladniki, "\r\n");

                    ingridient.IdPotrawy = recipe.IdPotrawy;
                    foreach (string i in ingr)
                    {
                        ingridient.Skladnik           = i;
                        dbCtx.Entry(ingridient).State = EntityState.Added;
                        dbCtx.SaveChanges();
                    }
                }
                this.Close();
            }
            catch (Exception)
            {
                MessageBox.Show("Added failed");
            }
        }
        public EditWindow(Potrawy p, KitchenEntities1 dataEntities)
        {
            InitializeComponent();
            this.p           = p;
            NameTextBox.Text = p.NazwaPotrawy;
            IngTextBox.Text  = p.Skladniki;
            PrepTextBox.Text = p.Przygotowanie;
            IdLabel.Content  = "" + p.IdPotrawy;

            this.dataEntities = dataEntities;
        }
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                Potrawy recipeRow = new Potrawy();
                //int dataGridSelection = DataGrid.SelectedIndex + 1;
                //recipeRow.IdPotrawy = dataGridSelection;
                using (var dataEntities = new KitchenEntities1())
                {
                    var              original = dataEntities.Potrawy.Find(GetSelectedId());
                    string           msgtext  = "Do you really want to delete that row?";
                    string           txt      = "Deleting row";
                    MessageBoxButton button   = MessageBoxButton.YesNoCancel;
                    MessageBoxResult result   = MessageBox.Show(msgtext, txt, button);
                    switch (result)
                    {
                    case MessageBoxResult.Yes:
                        original.NazwaPotrawy  = "NULL";
                        original.Skladniki     = "NULL";
                        original.Przygotowanie = "NULL";

                        dataEntities.Entry(original).State = EntityState.Modified;
                        dataEntities.SaveChanges();

                        dataEntities.Database.ExecuteSqlCommand("DELETE FROM Skladniki WHERE IdPotrawy=" + original.IdPotrawy);

                        Window_Loaded(sender, e);
                        break;

                    case MessageBoxResult.No:
                        break;

                    case MessageBoxResult.Cancel:
                        break;
                    }
                }
            }
            catch (Exception Ex)
            {
                MessageBox.Show(Ex.Message);
                return;
            }
        }
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            //ObjectQuery<Potrawy> recipes = dataEntities.Potrawy;
            using (var dataEntities = new KitchenEntities1())
            {
                var query =
                    from recipe in dataEntities.Potrawy
                    where recipe.Skladniki != "NULL"
                    select new  { recipe.IdPotrawy, recipe.NazwaPotrawy, recipe.Skladniki, recipe.Przygotowanie };
                DataGrid.ItemsSource = query.ToList();
            }

            /*KitchenDbApp.KitchenDataSet kitchenDataSet = ((KitchenDbApp.KitchenDataSet)(this.FindResource("kitchenDataSet")));
             * // Load data into the table Potrawy. You can modify this code as needed.
             * KitchenDbApp.KitchenDataSetTableAdapters.PotrawyTableAdapter kitchenDataSetPotrawyTableAdapter = new KitchenDbApp.KitchenDataSetTableAdapters.PotrawyTableAdapter();
             * kitchenDataSetPotrawyTableAdapter.Fill(kitchenDataSet.Potrawy);
             * System.Windows.Data.CollectionViewSource potrawyViewSource = ((System.Windows.Data.CollectionViewSource)(this.FindResource("potrawyViewSource")));
             * potrawyViewSource.View.MoveCurrentToFirst();*/
        }
 private void EditButton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Potrawy recipeRow = new Potrawy();
         using (var dataEntities = new KitchenEntities1())
         {
             var original  = dataEntities.Potrawy.Find(GetSelectedId());
             var newWindow = new EditWindow(original, dataEntities);
             newWindow.ShowDialog();
         }
         Window_Loaded(sender, e);
     }
     catch (Exception Ex)
     {
         MessageBox.Show(Ex.Message);
         return;
     }
 }
Example #6
0
        private void findRecipes()
        {
            if (ingridients.Count() > 0)
            {
                using (var dataEntities = new KitchenEntities1())
                {
                    //var query =
                    //    from ingr in dataEntities.Skladniki
                    //    where ingridients.Contains(ingr.Skladnik)
                    //    select new { ingr.IdPotrawy };

                    //var quer =
                    //    from ingr in dataEntities.Skladniki
                    //    select new { ingr.Skladnik, ingr.IdPotrawy };


                    //bool[,] found = new bool[ingridients.Length, quer.Count()];
                    //for (int i = 0; i < ingridients.Length ; i++)
                    //{
                    //    for (int j = 0 ; j < quer.Count(); j++)
                    //    {
                    //        found[i, j] = false;
                    //    }
                    //}

                    //int iI = 0;
                    //int iQ = 0;
                    //foreach (var ingrid in ingridients)
                    //{
                    //    foreach (var que in quer)
                    //    {
                    //        if (que.Skladnik.Contains(ingrid))
                    //        {
                    //            ID.Add((int)que.IdPotrawy);
                    //            INGR.Add(que.Skladnik);
                    //            found[iI,iQ] = true;
                    //            continue;
                    //        }
                    //        iQ++;
                    //    }
                    //    iQ = 0;
                    //    iI++;
                    //}

                    foreach (var ingrid in ingridients)
                    {
                        var quer =
                            from ingr in dataEntities.Skladniki
                            where ingr.Skladnik.Contains(ingrid)
                            group ingr by ingr.IdPotrawy into IdPotrawy
                            select new { IDpotrawy = IdPotrawy.Key };
                        try
                        {
                            foreach (var el in quer)
                            {
                                bufID.Add((int)el.IDpotrawy);
                            }
                        }
                        catch (Exception)
                        {
                        }
                    }

                    var q =
                        from data in dataEntities.Skladniki
                        group data by data.IdPotrawy into g
                        select new { Id = g.Key };


                    foreach (var item in q)
                    {
                        int howMany = bufID.Count <int>(x => x == (int)item.Id);
                        if (howMany == ingridients.Count())
                        {
                            ID.Add((int)item.Id);
                        }
                    }


                    //for (int i = 0; i < quer.Count(); i++)
                    //{
                    //    if (found[0, i] == true)
                    //    {
                    //        for (int j = 0; j < ingridients.Length; j++)
                    //        {
                    //            if (found[j, i] == false)
                    //            {
                    //                try
                    //                {
                    //                    int f = INGR.FindIndex(x => x == ingridients[j]);
                    //                    ID.RemoveAt(f);
                    //                    break;
                    //                }
                    //                catch (Exception) {/*...*/ }
                    //            }


                    //        }
                    //    }
                    //}

                    //var query = dataEntities.Skladniki
                    //    .GroupBy(x => x.IdPotrawy)
                    //    .Select(x => x.FirstOrDefault());

                    var query =
                        from ingr in dataEntities.Skladniki
                        where ingr.IdPotrawy == ID.FirstOrDefault(x => x == ingr.IdPotrawy)
                        select new { ingr.IdPotrawy };

                    List <int> iList = new List <int>();
                    foreach (var row in query)
                    {
                        iList.Add((int)row.IdPotrawy);
                        //int counter = 0;
                        //foreach (var r in query)
                        //{
                        //    if (r.IdPotrawy == row.IdPotrawy) counter++;
                        //}
                        //if (counter == ingridients.Count())
                    }



                    var nextQuery =
                        from recipe in dataEntities.Potrawy
                        where iList.Contains(recipe.IdPotrawy)
                        where recipe.Skladniki != "NULL"
                        select new { recipe.IdPotrawy, recipe.NazwaPotrawy, recipe.Skladniki, recipe.Przygotowanie };
                    result = new DataGrid();

                    result.ItemsSource = nextQuery.ToList();
                }
            }
        }