Exemple #1
0
        private void SaveType(object sender, RoutedEventArgs e)
        {
            if (TypeList.SelectedItem != null)
            {
                int         typeId                = (TypeList.SelectedItem as FoodPropertie).FoodId;
                ShopContext shopContext           = new ShopContext();
                List <FoodTypeDictionary> DBNames = shopContext.FoodTypeDictionary
                                                    .Where(d => d.FoodTypeID == typeId).ToList();

                List <FoodTypeDictionary> dictionaryList = new List <FoodTypeDictionary>();
                for (int i = 0; i < TypeNames.Items.Count; i++)
                {
                    ContentPresenter c        = (ContentPresenter)TypeNames.ItemContainerGenerator.ContainerFromItem(TypeNames.Items[i]);
                    ComboBox         comboBox = c.ContentTemplate.FindName("TypeLanguage", c) as ComboBox;
                    TextBox          text     = c.ContentTemplate.FindName("TypeName", c) as TextBox;

                    FoodTypeDictionary dictionary = new FoodTypeDictionary();
                    if (text.Text == "")
                    {
                        continue;
                    }
                    else
                    {
                        dictionary.Name = text.Text;
                    }

                    if (comboBox.SelectedItem == null)
                    {
                        continue;
                    }
                    else
                    {
                        string userLang   = comboBox.SelectedItem.ToString();
                        int    userLangId = shopContext.Language.Where(l => l.Name == userLang).Select(l => l.LanguageID).First();
                        dictionary.LanguageID = userLangId;
                        dictionary.FoodTypeID = typeId;
                    }
                    dictionaryList.Add(dictionary);
                }

                List <FoodTypeDictionary> duplicates = dictionaryList.GroupBy(d => d.LanguageID).SelectMany(d => d.Skip(1)).ToList();
                if (duplicates.Count != 0)
                {
                    MessageBox.Show("Duplicated languages!");
                    return;
                }

                if (dictionaryList.Count > 0)
                {
                    shopContext.FoodTypeDictionary.RemoveRange(DBNames);
                    shopContext.FoodTypeDictionary.AddRange(dictionaryList);
                    shopContext.SaveChanges();
                }
                else
                {
                    MessageBox.Show("Some fields is empty!");
                    return;
                }
                RefreshList();
            }
        }
        private void SaveFood(object sender, RoutedEventArgs e)
        {
            if (!AddedImage)
            {
                if (MessageBox.Show("Image is not selected!", "Do you want to choose it?", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    return;
                }
            }

            ShopContext shopContext = new ShopContext();
            FoodType    foodType    = new FoodType();

            if (AddedImage)
            {
                foodType.Image = Image;
            }
            shopContext.FoodType.Add(foodType);

            List <FoodTypeDictionary> dictionaryList = new List <FoodTypeDictionary>();

            for (int i = 0; i < FoodTypeNames.Items.Count; i++)
            {
                ContentPresenter c        = (ContentPresenter)FoodTypeNames.ItemContainerGenerator.ContainerFromItem(FoodTypeNames.Items[i]);
                ComboBox         comboBox = c.ContentTemplate.FindName("NewTypeLanguage", c) as ComboBox;
                TextBox          text     = c.ContentTemplate.FindName("NewTypeName", c) as TextBox;

                FoodTypeDictionary dictionary = new FoodTypeDictionary();
                if (text.Text == "")
                {
                    continue;
                }
                else
                {
                    dictionary.Name = text.Text;
                }

                if (comboBox.SelectedItem == null)
                {
                    continue;
                }
                else
                {
                    string lang   = comboBox.SelectedItem.ToString();
                    int    langId = shopContext.Language.Where(l => l.Name == lang).Select(l => l.LanguageID).First();
                    dictionary.LanguageID = langId;
                }
                dictionaryList.Add(dictionary);
            }

            List <FoodTypeDictionary> duplicates = dictionaryList.GroupBy(d => d.LanguageID).SelectMany(d => d.Skip(1)).ToList();

            if (duplicates.Count != 0)
            {
                MessageBox.Show("Duplicated languages!");
                return;
            }

            foreach (var item in dictionaryList)
            {
                if (shopContext.FoodTypeDictionary.Where(f => f.Name == item.Name && f.LanguageID == item.LanguageID).Count() > 0)
                {
                    MessageBox.Show("Type is existed!");
                    return;
                }
            }

            if (dictionaryList.Count > 0)
            {
                shopContext.SaveChanges();
            }
            else
            {
                MessageBox.Show("Some fields is empty!");
                return;
            }

            List <int> foodTypeIdList = shopContext.FoodType.Where(f => f.Image == foodType.Image).Select(f => f.FoodTypeID).ToList();

            foreach (var id in foodTypeIdList)
            {
                int idCount = shopContext.FoodTypeDictionary.Where(fd => fd.FoodTypeID == id).Count();
                if (idCount == 0)
                {
                    foreach (var item in dictionaryList)
                    {
                        item.FoodTypeID = id;
                        shopContext.FoodTypeDictionary.Add(item);
                    }
                    break;
                }
            }
            shopContext.SaveChanges();
            FoodTypeNames.Items.Clear();
            FoodTypeNames.Items.Add(new NewLanguage {
                Languages = Languages
            });
        }