예제 #1
0
        public long Save(IProductRecipe recipe)
        {
            var saved = Storage.SaveRecipe(recipe);

            RaiseRecipeChanged(recipe);
            return(saved);
        }
예제 #2
0
 private static void ValidateRecipe(IProductRecipe recipe)
 {
     if (recipe == null)
     {
         throw new ArgumentException("Recipe could not be found");
     }
 }
예제 #3
0
        public long SaveRecipe(IProductRecipe recipe)
        {
            ValidateHealthState();
            var recipeId = RecipeManagement.Save(recipe);

            return(recipeId);
        }
예제 #4
0
        /// <summary>
        /// Saves <see cref="ProductRecipe"/> to database and return the <see cref="ProductRecipeEntity"/>
        /// </summary>
        protected ProductRecipeEntity SaveRecipe(IUnitOfWork uow, IProductRecipe recipe)
        {
            var entity = RecipeStorage.SaveRecipe(uow, recipe);

            RecipeStrategies[recipe.GetType().Name].SaveRecipe(recipe, entity);

            return(entity);
        }
예제 #5
0
 ///
 public long SaveRecipe(IProductRecipe recipe)
 {
     using (var uow = Factory.Create())
     {
         SaveRecipe(uow, recipe);
         uow.SaveChanges();
         return(recipe.Id);
     }
 }
예제 #6
0
        public IProductRecipe ConvertRecipeBack(RecipeModel recipe, IProductRecipe productRecipe, IProductType productType)
        {
            productRecipe.Name     = recipe.Name;
            productRecipe.Revision = recipe.Revision;
            productRecipe.State    = recipe.State;

            // Only load workplan if it changed
            var workplanRecipe = productRecipe as IWorkplanRecipe;

            if (workplanRecipe != null && workplanRecipe.Workplan?.Id != recipe.WorkplanId)
            {
                workplanRecipe.Workplan = WorkplanManagement.LoadWorkplan(recipe.WorkplanId);
            }

            if (productRecipe.Product == null)
            {
                productRecipe.Product = productType;
            }

            EntryConvert.UpdateInstance(productRecipe, recipe.Properties, RecipeSerialization);

            // Do not update a clones classification
            if (productRecipe.Classification.HasFlag(RecipeClassification.Clone))
            {
                return(productRecipe);
            }

            switch (recipe.Classification)
            {
            case RecipeClassificationModel.Unset:
                productRecipe.Classification = RecipeClassification.Unset;
                break;

            case RecipeClassificationModel.Default:
                productRecipe.Classification = RecipeClassification.Default;
                break;

            case RecipeClassificationModel.Alternative:
                productRecipe.Classification = RecipeClassification.Alternative;
                break;

            case RecipeClassificationModel.Intermediate:
                productRecipe.Classification = RecipeClassification.Intermediate;
                break;

            case RecipeClassificationModel.Part:
                productRecipe.Classification = RecipeClassification.Part;
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }
            return(productRecipe);
        }
        /// <summary>
        /// Copy properties to recipe
        /// </summary>
        /// <param name="recipeEntity"></param>
        /// <param name="productRecipe"></param>
        public static void CopyToRecipe(ProductRecipeEntity recipeEntity, IProductRecipe productRecipe)
        {
            productRecipe.Id             = recipeEntity.Id;
            productRecipe.Name           = recipeEntity.Name;
            productRecipe.Classification = (RecipeClassification)recipeEntity.Classification;
            productRecipe.Revision       = recipeEntity.Revision;
            productRecipe.State          = (RecipeState)recipeEntity.State;
            productRecipe.Product        = new ProductReference(recipeEntity.ProductId);

            var workplanRecipe = productRecipe as IWorkplanRecipe;

            if (workplanRecipe != null)
            {
                workplanRecipe.Workplan = LoadWorkplan(recipeEntity.Workplan);
            }
        }
        /// <summary>
        /// Save recipe to given <see cref="IUnitOfWork"/>
        /// </summary>
        public static ProductRecipeEntity SaveRecipe(IUnitOfWork uow, IProductRecipe recipe)
        {
            var entity = uow.GetEntity <ProductRecipeEntity>(recipe);

            entity.Type           = recipe.GetType().Name;
            entity.Revision       = recipe.Revision;
            entity.Name           = recipe.Name;
            entity.State          = (int)recipe.State;
            entity.Classification = (int)recipe.Classification;
            entity.ProductId      = recipe.Product.Id;

            var workplanRecipe = recipe as IWorkplanRecipe;

            if (workplanRecipe != null)
            {
                entity.WorkplanId = workplanRecipe.Workplan.Id;
            }

            return(entity);
        }
 public override void LoadRecipe(IGenericColumns source, IProductRecipe target)
 {
     EntityMapper.ReadValue(source, target);
 }
 public override void SaveRecipe(IProductRecipe source, IGenericColumns target)
 {
     EntityMapper.WriteValue(source, target);
 }
예제 #11
0
 private IProductRecipe ReplaceOrigin(IProductRecipe recipe)
 {
     recipe.Origin = this;
     return(recipe);
 }