public void CreateChoice(ChoiceBindingModel model)
        {
            int maxId = 0;

            for (int i = 0; i < source.Choices.Count; ++i)
            {
                if (source.Choices[i].Id > maxId)
                {
                    maxId = source.Customers[i].Id;
                }
            }
            source.Choices.Add(new Choice
            {
                Id         = maxId + 1,
                CustomerId = model.CustomerId,
                MenuId     = model.MenuId,
                DateCreate = DateTime.Now,
                Count      = model.Count,
                Sum        = model.Sum,
                Status     = ChoiceStatus.Принят
            });
        }
        public void TakeChoiceInWork(ChoiceBindingModel model)
        {
            int index = -1;

            for (int i = 0; i < source.Choices.Count; ++i)
            {
                if (source.Choices[i].Id == model.Id)
                {
                    index = i;
                    break;
                }
            }
            if (index == -1)
            {
                throw new Exception("Элемент не найден");
            }
            // смотрим по количеству компонентов на складах
            for (int i = 0; i < source.MenuDishs.Count; ++i)
            {
                if (source.MenuDishs[i].MenuId == source.Choices[index].MenuId)
                {
                    int countOnKitchens = 0;
                    for (int j = 0; j < source.KitchenDishs.Count; ++j)
                    {
                        if (source.KitchenDishs[j].DishId == source.MenuDishs[i].DishId)
                        {
                            countOnKitchens += source.KitchenDishs[j].Count;
                        }
                    }
                    if (countOnKitchens < source.MenuDishs[i].Count)
                    {
                        for (int j = 0; j < source.Dishs.Count; ++j)
                        {
                            if (source.Dishs[j].Id == source.MenuDishs[i].DishId)
                            {
                                throw new Exception("Не достаточно компонента " + source.Dishs[j].DishName +
                                                    " требуется " + source.MenuDishs[i].Count + ", в наличии " + countOnKitchens);
                            }
                        }
                    }
                }
            }
            // списываем
            for (int i = 0; i < source.MenuDishs.Count; ++i)
            {
                if (source.MenuDishs[i].MenuId == source.Choices[index].MenuId)
                {
                    int countOnKitchens = source.MenuDishs[i].Count;
                    for (int j = 0; j < source.KitchenDishs.Count; ++j)
                    {
                        if (source.KitchenDishs[j].DishId == source.KitchenDishs[i].DishId)
                        {
                            // компонентов на одном слкаде может не хватать
                            if (source.KitchenDishs[j].Count >= countOnKitchens)
                            {
                                source.KitchenDishs[j].Count -= countOnKitchens;
                                break;
                            }
                            else
                            {
                                countOnKitchens -= source.KitchenDishs[j].Count;
                                source.KitchenDishs[j].Count = 0;
                            }
                        }
                    }
                }
            }
            source.Choices[index].ChefId        = model.ChefId;
            source.Choices[index].DateImplement = DateTime.Now;
            source.Choices[index].Status        = ChoiceStatus.Готовится;
        }