Ejemplo n.º 1
0
        public IngredientAdder AddIngredientUsage(Func <IngredientUsageCreator, IngredientUsageCreator> createAction)
        {
            var creator = createAction(IngredientUsage.Create);
            var usage   = creator.Usage;

            // Validate Ingredient
            usage.Ingredient = context.ReadIngredient(usage.Ingredient.Id);
            //

            if (usage.Form != null) // Verify form
            {
                var forms         = context.ReadFormsForIngredient(usage.Ingredient.Id).Forms;
                var validatedForm = forms.FirstOrDefault(f => f.FormId == usage.Form.FormId);
                if (validatedForm == null)
                {
                    throw new InvalidFormException(usage.Ingredient, usage.Form);
                }

                usage.Form = validatedForm;
            }

            return(AddIngredientUsage(usage));
        }