Esempio n. 1
0
        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);
                }
            }
        }
Esempio n. 2
0
        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);
        }