public long SaveWorkplan(Workplan workplan)
        {
            using (var uow = ModelFactory.Create())
            {
                var recipeRepo = uow.GetRepository <IProductRecipeEntityRepository>();
                // Update all non-clone recipes of that workplan
                var affectedRecipes = recipeRepo.Linq
                                      .Where(r => r.WorkplanId == workplan.Id && r.Classification > 0).ToList();

                var entity = RecipeStorage.SaveWorkplan(uow, workplan);
                foreach (var recipe in affectedRecipes)
                {
                    recipe.Workplan = entity;
                }

                uow.SaveChanges();

                foreach (var recipeEntity in affectedRecipes)
                {
                    var recipe = Storage.LoadRecipe(recipeEntity.Id);
                    RaiseRecipeChanged(recipe);
                }

                return(entity.Id);
            }
        }
        public long SaveWorkplan(Workplan workplan)
        {
            using (var uow = ModelFactory.Create())
            {
                var entity = RecipeStorage.SaveWorkplan(uow, workplan);

                uow.SaveChanges();

                return(entity.Id);
            }
        }