private void LoadAssignedIngredients()
        {
            var assignedIngredients = _formulationIngredientRepository.GetByFormulationId(_formulationBusinessModel.Id);

            AssignedIngredientBusinessModels.Clear();

            foreach (var ingredient in assignedIngredients)
            {
                var ingredientModel = _ingredientRepository.GetById(ingredient.IngredientId);
                AssignedIngredientBusinessModels.Add(new FormulationIngredientBusinessModel(ingredient, ingredientModel));
            }
        }
        private void UpdateAvailableIngredients()
        {
            var assignedIngredients = AssignedIngredientBusinessModels.Select(i => i.IngredientId).ToList();

            var availableIngredients = _allIngredients.Where(i => !assignedIngredients.Contains(i.Id));

            AvailableIngredients.Clear();

            foreach (var ingredient in availableIngredients)
            {
                AvailableIngredients.Add(ingredient);
            }
        }
        private void OnAddSelectedIngredient()
        {
            _formulationIngredientRepository.Add(FormulationIngredientBusinessModel.Model);

            AssignedIngredientBusinessModels.Add(FormulationIngredientBusinessModel);

            UpdateAvailableIngredients();

            CalculateTotalFormulationPrice();

            FormulationIngredientBusinessModel = null;

            SelectedIngredient = null;
        }
        private void OnRemoveFormulationIngredient(object id)
        {
            if (id.GetType() != typeof(int))
            {
                return;
            }

            var itemToRemove = AssignedIngredientBusinessModels.FirstOrDefault(i => i.Id == (int)id);

            if (itemToRemove == null)
            {
                return;
            }

            itemToRemove.PropertyChanged -= FormulationIngredientBusinessModel_PropertyChanged;

            AssignedIngredientBusinessModels.Remove(itemToRemove);

            CalculateTotalFormulationPrice();

            UpdateAvailableIngredients();
        }