Пример #1
0
        public void SalveazaMeniu(Cont user, Meniu meniuAles, bool existingRecord, double discount, string numeMeniu, ObservableCollection <Preparat> listaPreparateDinMeniu, double pretFinal)
        {
            RestaurantEntities1 context = new RestaurantEntities1();

            bool exista = false;

            foreach (var meniu in context.Menius.ToList())
            {
                if (meniu.denumireMeniu == numeMeniu && existingRecord == false)
                {
                    MessageBox.Show("Exista deja un meniu cu acest nume!");
                    exista = true;
                }
            }
            if (listaPreparateDinMeniu.Count() == 0)
            {
                MessageBox.Show("Lista de preparate goala!");
                exista = true;
            }
            if (numeMeniu == null || numeMeniu == "")
            {
                MessageBox.Show("Nume necompletat!");
                exista = true;
            }
            if (exista == false)
            {
                if (existingRecord == false)
                {
                    context.AdaugareMeniu(numeMeniu, 0, discount);
                    foreach (var preparat in listaPreparateDinMeniu)
                    {
                        context.AdaugarePreparatInMeniu(numeMeniu, preparat.denumire, preparat.cantitate);
                        MainViewModel.Instance.ActiveScreen = new MeniuViewModel(user);
                    }
                    context.AplicaReducereMeniu(numeMeniu, discount);
                    MessageBox.Show("Meniu Adaugat!");
                    context.SaveChanges();
                }
                else
                {
                    var           preparate = context.AfisarePreparateDinMeniu(numeMeniu).ToList();
                    List <string> aux       = new List <string>();
                    foreach (var preparat in preparate)
                    {
                        aux.Add(preparat.denumire);
                    }
                    foreach (var preparateExistente in aux)
                    {
                        context.StergePreparatInMeniu(meniuAles.denumireMeniu, preparateExistente);
                        context.SaveChanges();
                    }
                    foreach (var preparat in listaPreparateDinMeniu)
                    {
                        context.AdaugarePreparatInMeniu(meniuAles.denumireMeniu, preparat.denumire, preparat.cantitate);
                    }
                    context.ModificaNumeMeniu(meniuAles.denumireMeniu, numeMeniu);
                    context.SaveChanges();
                    context.AplicaReducereMeniu(numeMeniu, discount);

                    MessageBox.Show("Meniu Modificat!");
                    MainViewModel.Instance.ActiveScreen = new MeniuViewModel(user);
                }
            }
        }