public static RecipeComponentAndMaterialPackage GetPackageCopy(this RecipeComponentAndMaterialPackage source)
 {
     RecipeComponentAndMaterialPackage package = new RecipeComponentAndMaterialPackage();
       package.RecipeComponent = source.RecipeComponent.GetPrimitiveCopy();
       package.MaterialAndContractors = source.MaterialAndContractors.GetPackageCopy();
       return package;
 }
 /// <summary>
 /// Opens dialog for editing the recipe component.
 /// </summary>
 /// <param name="modalDialogService">The modal dialog service.</param>
 /// <param name="serviceFactory">The service factory.</param>
 /// <param name="recipeComponentAndMaterialPackage">The selected recipe component.</param>
 /// <returns></returns>
 public RecipeComponentPrimitive EditRecipeComponent(IModalDialogService modalDialogService,
     IServiceFactory serviceFactory,
     RecipeComponentAndMaterialPackage recipeComponentAndMaterialPackage)
 {
     var viewModel = new UpdateRecipeComponentViewModel(modalDialogService, serviceFactory);
       viewModel.RecipeComponent = recipeComponentAndMaterialPackage.RecipeComponent;
       viewModel.MaterialAndContractors = recipeComponentAndMaterialPackage.MaterialAndContractors;
       viewModel.DialogMode = DialogMode.Update;
       ModalDialogHelper<UpdateRecipeComponent>.ShowDialog(viewModel);
       return viewModel.RecipeComponent;
 }
 public static RecipeComponentAndMaterialPackage GetRecipeComponentAndMaterialPackage(this RecipeComponent recipeComponent)
 {
     RecipeComponentAndMaterialPackage result = new RecipeComponentAndMaterialPackage();
       if (recipeComponent != null)
     result.RecipeComponent = recipeComponent.GetPrimitive();
       if (recipeComponent.Material != null)
     result.MaterialAndContractors = recipeComponent.Material.GetMaterialAndContractorsPackage();
       return result;
 }