Exemple #1
0
        /// <summary>
        /// Executes given IHttpRequest and returns deserialized response body.
        /// </summary>
        /// <typeparam name="TResponse">Type response body will be deserialized to.</typeparam>
        /// <param name="request">Request to be executed.</param>
        /// <returns>Response body deserialized to type TResponse.</returns>
        /// <exception cref="DreamFactoryException">Thrown when there was an error executing request.</exception>
        internal async Task <TResponse> ExecuteRequest <TResponse>(IHttpRequest request)
            where TResponse : class, new()
        {
            string body = await ExecuteRequest(request);

            return(ContentSerializer.Deserialize <TResponse>(body));
        }
        private object ReadMessage(HorseMessage message, Type type)
        {
            if (ContentSerializer == null)
            {
                ContentSerializer = new NewtonsoftContentSerializer();
            }

            return(ContentSerializer.Deserialize(message, type));
        }
        Description LoadDemoDescription(string name)
        {
            var fileName = Description.ResolveFileName(name);
            var path     = Path.Combine("Content/DemoBlocks", fileName);

            using (var stream = TitleContainer.OpenStream(path))
            {
                return(descriptionSerializer.Deserialize(stream));
            }
        }
        // I/F
        public Block LoadBlock(string name)
        {
            EnsureDirectory();

            var blockFileName = Block.ResolveFileName(name);

            using (var stream = directory.OpenFile(blockFileName, FileMode.Open))
            {
                return(blockSerializer.Deserialize(stream));
            }
        }
        /// <inheritdoc />
        public async Task <IEnumerable <Resource> > GetResourcesAsync(string serviceName)
        {
            IHttpRequest request = new HttpRequest(HttpMethod.Get, address.WithResource(serviceName).Build(), BaseHeaders);

            IHttpResponse response = await HttpFacade.RequestAsync(request);

            HttpUtils.ThrowOnBadStatus(response, ContentSerializer);

            var resources = new { resource = new List <Resource>() };

            return(ContentSerializer.Deserialize(response.Body, resources).resource);
        }
Exemple #6
0
        /// <inheritdoc />
        public async Task <IEnumerable <Service> > GetServicesAsync()
        {
            IHttpRequest request = new HttpRequest(HttpMethod.Get, address.Build(), BaseHeaders);

            IHttpResponse response = await HttpFacade.RequestAsync(request);

            HttpUtils.ThrowOnBadStatus(response, ContentSerializer);

            var services = new { service = new List <Service>() };

            return(ContentSerializer.Deserialize(response.Body, services).service);
        }
        public void CanRoundtripSerialisePresentation()
        {
            var contentSerializer = new ContentSerializer <PresentationPublishedDataModel>();

            var presentation = ModelHelper.GetPublishedPresentationModel();

            var json = contentSerializer.Serialize(presentation);

            var presentationRoundtrip = contentSerializer.Deserialize(json);

            var jsonRoundtrip = contentSerializer.Serialize(presentationRoundtrip);

            // Ensure the JSON matches the original serialisation
            Assert.IsTrue(json.Equals(jsonRoundtrip, StringComparison.Ordinal));
        }
Exemple #8
0
        //static void DoJsonDemo(Block block)
        //{
        //    Console.WriteLine();
        //    Console.WriteLine("Convert between json and xml:");

        //    using (var stream = new MemoryStream())
        //    {
        //        // シリアライズ
        //        blockSerializer.Serialize(stream, block);
        //        var xml = Encoding.UTF8.GetString(stream.ToArray());
        //        Console.WriteLine("XML:");
        //        Console.WriteLine(xml);

        //        // XML -> JSON 変換
        //        stream.Position = 0;
        //        var doc = new XmlDocument();
        //        var xmlReader = blockSerializer.CreateXmlReader(stream);
        //        doc.Load(xmlReader);
        //        var json = JsonConvert.SerializeXmlNode(doc);
        //        Console.WriteLine("JSON:");
        //        Console.WriteLine(json);

        //        // JSON -> XML 変換
        //        stream.Position = 0;
        //        doc = JsonConvert.DeserializeXmlNode(json);
        //        var writerSettings = new XmlWriterSettings
        //        {
        //            Indent = false,
        //            Encoding = Encoding.UTF8,
        //        };
        //        var writer = XmlWriter.Create(stream, writerSettings);
        //        doc.Save(writer);
        //        xml = Encoding.UTF8.GetString(stream.ToArray());
        //        Console.WriteLine("XML:");
        //        Console.WriteLine(xml);

        //        // デシリアライズ
        //        stream.Position = 0;
        //        var deserialized = blockSerializer.Deserialize(stream);
        //        Console.WriteLine("Block:");
        //        Console.WriteLine(deserialized);
        //    }
        //}

        /// <summary>
        /// Block をシリアライズし、それをデシリアライズします。
        /// </summary>
        /// <param name="block">Block。</param>
        static void SerializeAndDeserialize(Block block)
        {
            using (var stream = new MemoryStream())
            {
                // シリアライズ
                blockSerializer.Serialize(stream, block);
                var serialized = Encoding.UTF8.GetString(stream.ToArray());
                Console.WriteLine("XML:");
                Console.WriteLine(serialized);

                // デシリアライズ
                stream.Position = 0;
                var deserialized = blockSerializer.Deserialize(stream);
                Console.WriteLine("Block:");
                Console.WriteLine(deserialized);
            }
        }