private static void SerializeToXml(Recipe recipe, string fileName)
 {
     var serializer = new XmlSerializer(typeof(Recipe));
     using (TextWriter writer = new StreamWriter(fileName))
     {
         serializer.Serialize(writer, recipe);
     }
 }
 public void SetRecipe(Recipe recipe)
 {
     if (recipe.Id <= 0)
     {
         recipe.Id = CreateUniqueRecipeId();
         _recipes.Add(recipe);
     }
     else
     {
         Recipe oldRecipe = GetRecipe(recipe.Id);
         if (oldRecipe != null)
         {
             _recipes.Remove(oldRecipe);
         }
         _recipes.Add(recipe);
     }
 }
        public void SetRecipe(Recipe recipe)
        {
            if (recipe.Id <= 0)
            {
                recipe.Id = CreateUniqueRecipeId();
            }

            bool isImageRecipe = recipe is ImageRecipe;
            if (isImageRecipe && (recipe as ImageRecipe).ImageId <= 0)
            {
                throw new ArgumentException("Image Id is mandatory for an ImageRecipe.");
            }

            // Retrieve reference to blob.
            CloudBlobContainer container = GetBlobContainer();
            string blobId = recipe.Id.ToString(CultureInfo.InvariantCulture);
            CloudBlob blob = container.GetBlobReference(blobId);

            // Uplaod recipe
            byte[] recipeData = SerializeToXml(recipe, isImageRecipe ? typeof(ImageRecipe) : typeof(TextRecipe));
            blob.UploadByteArray(recipeData);
            blob.Metadata.Add("RType", (recipe is ImageRecipe) ? "Image" : "Text");
            blob.SetMetadata();
        }
 private static byte[] SerializeToXml(Recipe recipe, Type recipeType)
 {
     var serializer = new XmlSerializer(recipeType);
     using (var memoryStream = new MemoryStream())
     {
         serializer.Serialize(memoryStream, recipe);
         return memoryStream.GetBuffer();
     }
 }