private bool TryAdd()
        {
            string name = this.txtName.Text.Trim();

            if (string.IsNullOrEmpty(name))
            {
                MessageBox.Show("食材单位名称不能为空!");
                return(false);
            }

            var unit = new IngredientUnit()
            {
                Name = name
            };
            IDictionary <Guid, IngredientUnit> unitDict = IngredientUnit.GetAll();
            var result = from item in unitDict.Values
                         where item.Name == unit.Name
                         select item;

            if (result.Count() > 0)
            {
                MessageBox.Show(string.Format("已存在名为【{0}】的食材单位名称!", name), "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return(false);
            }

            unitDict.Add(unit.Id, unit);
            IngredientUnit.SaveDatabase(typeof(IngredientUnit).Name);

            return(true);
        }
        private void btnDelete_Click(object sender, EventArgs e)
        {
            var selectedItem = this.lstUnit.SelectedItem;

            if (selectedItem != null)
            {
                if (MessageBox.Show(string.Format("是否确认删除【{0}】单位名称?(这将同步删除使用此单位名称的食材和使用这些食材的菜品!)", selectedItem), "询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes)
                {
                    // 删除category
                    var unit = selectedItem as IngredientUnit;
                    IDictionary <Guid, IngredientUnit> categoryDict = IngredientUnit.GetAll();
                    categoryDict.Remove(unit.Id);
                    // 删除关联到unit的食材ingredient
                    IDictionary <Guid, Ingredient> ingredientDict = Ingredient.GetAll();
                    var toBeDeletedIngredients = (from item in ingredientDict.Values
                                                  where item.Unit.Id == unit.Id
                                                  select item.Id).ToList();
                    foreach (var id in toBeDeletedIngredients)
                    {
                        ingredientDict.Remove(id);
                    }
                    // 删除关联到食材ingredient的菜品dish
                    IDictionary <Guid, Dish> dishDict = Dish.GetAll();
                    var toBeDeletedDishes             = new List <Dish>();
                    foreach (var dish in dishDict.Values)
                    {
                        foreach (var weightedIngredient in dish.WeightedIngredientList)
                        {
                            if (toBeDeletedIngredients.Contains(weightedIngredient.Ingredient.Id))
                            {
                                toBeDeletedDishes.Add(dish);
                                break;
                            }
                        }
                    }
                    foreach (var dish in toBeDeletedDishes)
                    {
                        dishDict.Remove(dish.Id);
                    }

                    IngredientUnit.SaveDatabase(typeof(IngredientUnit).Name);
                    Ingredient.SaveDatabase(typeof(Ingredient).Name);
                    Dish.SaveDatabase(typeof(Dish).Name);

                    this.lstUnit.Items.Remove(selectedItem);
                    MessageBox.Show("已删除此单位名称!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
        }
예제 #3
0
        private bool TryAdd()
        {
            string name = this.txtName.Text.Trim();

            if (string.IsNullOrEmpty(name))
            {
                MessageBox.Show("食材单位名称不能为空!");
                return(false);
            }

            this.unit.Name = this.txtName.Text.Trim();
            IngredientUnit.SaveDatabase(typeof(IngredientUnit).Name);

            return(true);
        }