private void WriteBodyToRequest(HttpWebRequest request, string contentType, ICollection <KeyValuePair <string, object> > data) { var serializer = _contentSerializerFactory.Create(contentType); if (data.Count == 1 && data.All(x => x.Value is Stream)) { var stream = (Stream)data.First().Value; using (var s = request.GetRequestStream()) { stream.CopyTo(s); } } else { using (var s = request.GetRequestStream()) { serializer.Serialize(s, data); } } }
private TContentData GetContentDataFromFile <TContentData>(Uri contentUri, bool fileExists, string path, string filePath) where TContentData : class, IContentData { IContentData contentData; if (fileExists) { var contentSerializer = _contentSerializerFactory.Create(); path = filePath; contentData = contentSerializer.Deserialize <TContentData>(filePath); } else { contentData = new FolderContentData { Title = Path.GetFileName(path) }; } contentData.ContentUri = NormalizeContentUri(contentUri); contentData.Slug = Path.GetFileNameWithoutExtension(path); contentData.ParentUri = ContentUri.GetParent(contentData.ContentUri); if (contentData.Created == DateTime.MinValue) { contentData.Created = File.GetCreationTimeUtc(path); } if (contentData.Modified == DateTime.MinValue) { contentData.Modified = File.GetLastWriteTimeUtc(path); } return((TContentData)contentData); }