/// <summary> /// Creates a media resource using the information present in the HttpContext. /// </summary> /// <param name="context">The HttpContext for the incoming HTTP request.</param> /// <returns>An AtomEntryDocument corresponding to the newly created media resource.</returns> private AtomEntryDocument CreateMedia(HttpContext context) { SyndicationItem item = null; string collectionName = AtomPubHelper.GetValueOfParameterFromUri(context, base.BaseUri, AtomPubParameterType.CollectionName); // Get byte array to update media. BinaryReader reader = new BinaryReader(context.Request.InputStream); byte[] media = new byte[context.Request.InputStream.Length]; reader.Read(media, 0, media.Length); string fileExtention = string.Empty; if (context.Request.Headers.AllKeys.Contains("Content-Disposition")) { fileExtention = AtomPubHelper.GetFileExtentionFromContentDisposition( context.Request.Headers["Content-Disposition"]); } IAtomPubStoreWriter swordStoreWriter = AtomPubStoreFactory.GetSwordStoreWriter(); item = swordStoreWriter.CreateMedia(collectionName, context.Request.ContentType, media, fileExtention); AtomEntryDocument atomEntryDocument = null; if (null != item) { // Add <sword:treatment>Successfully created a {Collection Name}</sword:treatment> element. SwordPostProcessor.AddTreatmentElement(collectionName, item); // Create atom entry document from syndication item. atomEntryDocument = new AtomEntryDocument(item); } return(atomEntryDocument); }