Exemple #1
0
 public void Registration()
 {
     ExportContext context = new ExportContext();
     ThingExporter exporter = new ThingExporter();
     context.Register(exporter);
     Assert.AreSame(exporter, context.FindExporter(typeof(Thing)));
 }
 private static void AssertInStock(Type expected, Type type)
 {
     ExportContext context = new ExportContext();
     ITypeExporter exporter = context.FindExporter(type);
     Assert.IsNotNull(exporter, "No exporter found for {0}", type.FullName);
     Assert.AreSame(type, exporter.InputType, "{0} reported {1} when expecting {2}.", exporter, exporter.InputType, type);
     Assert.IsInstanceOfType(expected, exporter, type.FullName);
 }
 public void ExportJsonNullValue()
 {
     ExportContext context = new ExportContext();
     JsonRecorder writer = new JsonRecorder();
     context.Export(JsonNull.Value, writer);
     JsonReader reader = writer.CreatePlayer();
     reader.ReadNull();
     Assert.IsTrue(reader.EOF);
 }
Exemple #4
0
        void IJsonExportable.Export(ExportContext context, JsonWriter writer)
        {
            if (context == null)
                throw new ArgumentNullException("context");

            if (writer == null)
                throw new ArgumentNullException("writer");

            writer.WriteNull();
        }
Exemple #5
0
        private TransportComponent()
        {
            JsonExportContext = JsonConvert.CreateExportContext();
              JsonExportContext.Register(new TransportMessageExporter());

              JsonImportContext = JsonConvert.CreateImportContext();
              JsonImportContext.Register(new TransportMessageImporter());

              TransportListeners.Add(this);
        }
Exemple #6
0
 public void Export(ExportContext context, Jayrock.Json.JsonWriter writer)
 {
     //"from":"Device-1","message":"JUAN"
       writer.WriteStartObject();
       writer.WriteMember("from");
       context.Export(From, writer);
       writer.WriteMember("message");
       context.Export(Message, writer);
       writer.WriteEndObject();
 }
        public void DoesNotExportPropertyValueWhenEqualsSpecfiedDefault()
        {
            IObjectMemberExporter exporter = CreatePropertyExporter("prop", 0, 0);

            ExportContext context = new ExportContext();
            JsonRecorder writer = new JsonRecorder();
            writer.WriteStartObject();
            exporter.Export(context, writer, new object());
            writer.WriteEndObject();

            JsonReader reader = writer.CreatePlayer();
            reader.ReadToken(JsonTokenClass.Object);
            reader.ReadToken(JsonTokenClass.EndObject);
        }
        public void ExportsPropertyValueWhenNotEqualsSpecfiedDefault()
        {
            const string propertyName = "prop";
            IObjectMemberExporter exporter = CreatePropertyExporter(propertyName, 42, 0);

            ExportContext context = new ExportContext();
            JsonRecorder writer = new JsonRecorder();
            writer.WriteStartObject();
            exporter.Export(context, writer, new object());
            writer.WriteEndObject();

            JsonReader reader = writer.CreatePlayer();
            reader.ReadToken(JsonTokenClass.Object);
            Assert.AreEqual(propertyName, reader.ReadMember());
            Assert.AreEqual(42, reader.ReadNumber().ToInt32());
        }
Exemple #9
0
        public JsonRpcDispatchScope(JsonRpcDispatcher dispatcher, HttpContext context) 
        {
            Debug.Assert(dispatcher != null);
            Debug.Assert(context != null);

            //
            // Setup for local execution if client request is from the same
            // machine. The dispatcher uses this to determine whether to 
            // emit a detailed stack trace or not in the event of an error.
            //

            if (HttpRequestSecurity.IsLocal(context.Request))
                dispatcher.LocalExecution = true;

            //
            // Initialize the import and export contexts, which are pooled
            // per-application instance.
            //

            IDictionary appVars = AppVars.Get(context.ApplicationInstance);

            ExportContext expctx = (ExportContext) appVars[typeof(ExportContext)];

            if (expctx == null)
            {
                expctx = JsonConvert.CreateExportContext();
                appVars.Add(typeof(ExportContext), expctx);
            }
            
            dispatcher.JsonExporter = new JsonExportHandler(expctx.Export);

            ImportContext impctx = (ImportContext) appVars[typeof(ImportContext)];

            if (impctx == null)
            {
                impctx = JsonConvert.CreateImportContext();
                appVars.Add(typeof(ImportContext), impctx);
            }

            dispatcher.JsonImporter = new JsonImportHandler(impctx.Import);

            _impctx = impctx;
            _expctx = expctx;
        }
Exemple #10
0
        static void Main(string[] args)
        {
            //need a string builder
            ExportContext exportCtx = new ExportContext();
            exportCtx.Register(new GrailsDateTimeExporter());

            WebClient client = new WebClient();
            AppStatus status;
            string command;
            while ((command = Console.ReadLine()) != "q")
            {
                status = new AppStatus() { LastUpdate = DateTime.Now, Message = "Hello .NET", RunningOK = true };

                StringBuilder jsonString = new StringBuilder();
                StringWriter writer = new StringWriter(jsonString);
                exportCtx.Export(status, new JsonTextWriter(writer));

                byte[] data = Encoding.ASCII.GetBytes(jsonString.ToString());
                client.UploadData(AppStatus_URI, data);
                Console.WriteLine(">>>>>Response Received>>>>>>");
            }
        }
Exemple #11
0
        protected virtual void Export(ExportContext context, JsonWriter writer)
        {
            if (context == null)
                throw new ArgumentNullException("context");

            if (writer == null)
                throw new ArgumentNullException("writer");

            writer.WriteStartArray();

            foreach (object value in this)
                context.Export(value, writer);

            writer.WriteEndArray();
        }
 public void Export(ExportContext context, object value, Jayrock.Json.JsonWriter writer)
 {
     context.Export(value, writer);
 }
Exemple #13
0
 protected override void ExportValue(ExportContext context, object value, JsonWriter writer)
 {
     writer.WriteString((bool)value ? "1" : "0");
 }
 void IObjectMemberExporter.Export(ExportContext context, JsonWriter writer, object source)
 {
     //writer.WriteMember(_property.Name);
     //context.Export(_property.GetValue(source), writer);
 }
Exemple #15
0
        protected virtual void Export(ExportContext context, JsonWriter writer)
        {
            if (context == null)
                throw new ArgumentNullException("context");

            if (writer == null)
                throw new ArgumentNullException("writer");

            writer.WriteStartObject();
            
            foreach (string name in NameIndexList)
            {
                writer.WriteMember(name);    
                context.Export(InnerHashtable[name], writer);
            }

            writer.WriteEndObject();
        }
Exemple #16
0
 protected override void ExportValue(ExportContext context, object value, JsonWriter writer)
 {
     writer.WriteString(values[(int)value]);
 }
Exemple #17
0
            protected override void ExportValue(ExportContext context, object value, JsonWriter writer)
            {
                IEnumerable enumerable = (IEnumerable) value;

                ArrayList list = new ArrayList();

                foreach (object item in enumerable)
                    list.Add(item == null ? null : item.ToString());

                writer.WriteString(string.Join(",", (string[]) list.ToArray(typeof(string))));
            }
        /// <summary>
        /// The export.
        /// </summary>
        /// <param name="context">
        /// The context.
        /// </param>
        /// <param name="value">
        /// The value.
        /// </param>
        /// <param name="writer">
        /// The writer.
        /// </param>
        public void Export(ExportContext context, object value, JsonWriter writer)
        {
            writer.WriteStartObject();
            writer.WriteMember("Critter");

            var critter = (Critter)value;
            writer.WriteStartObject();

            if (exportType > ExportType.Expanded)
            {
                writer.WriteMember("Age");
                writer.WriteNumber(critter.Age);
                writer.WriteMember("N");
                writer.WriteNumber(critter.N);
            }

            writer.WriteMember("Rank");
            writer.WriteNumber(critter.Rank);

            writer.WriteMember("Fitness");
            writer.WriteStartObject();
            int i = 0;
            foreach (var n in Enum.GetNames(typeof(FitnessParameter)))
            {
                writer.WriteMember(n);
                writer.WriteNumber(critter.Fitness[i++]);
            }

            writer.WriteEndObject();

            // writer.WriteMember("Fitness");
            // context.Export(critter.Fitness,writer);
            if (exportType > ExportType.Summary)
            {
                writer.WriteMember("Route");
                writer.WriteStartArray();
                foreach (var node in critter.Route)
                {
                    writer.WriteNumber(node.Node.Id);
                }
                writer.WriteEndArray();
            }

            writer.WriteMember("Legs");
            writer.WriteStartArray();
            foreach (var leg in critter.Fitness.JourneyLegs)
            {
                writer.WriteStartObject();

                if (exportType > ExportType.Summary)
                {
                    writer.WriteMember("Start");
                    writer.WriteNumber(leg.Origin.Id);
                    writer.WriteMember("End");
                    writer.WriteNumber(leg.Destination.Id);
                    writer.WriteMember("Route");
                    writer.WriteString(leg.RouteId1);
                }

                if (exportType > ExportType.Simple)
                {
                    writer.WriteMember("StartLocation");
                    writer.WriteStartObject();
                    writer.WriteMember("Lat");
                    writer.WriteNumber(leg.Origin.Latitude);
                    writer.WriteMember("Long");
                    writer.WriteNumber(leg.Origin.Longitude);

                    writer.WriteEndObject();

                    writer.WriteMember("EndLocation");
                    writer.WriteStartObject();
                    writer.WriteMember("Lat");
                    writer.WriteNumber(leg.Destination.Latitude);
                    writer.WriteMember("Long");
                    writer.WriteNumber(leg.Destination.Longitude);
                    writer.WriteEndObject();
                }

                writer.WriteMember("Mode");
                writer.WriteString(leg.TransportMode.ToString());
                writer.WriteMember("TotalTime");
                context.Export(leg.TotalTime, writer);
                writer.WriteMember("DepartTime");
                context.Export(leg.DepartureTime, writer);
                writer.WriteMember("OriginName");
                writer.WriteString(leg.Origin.StopSpecName);

                writer.WriteEndObject();
            }

            writer.WriteEndArray();

            writer.WriteEndObject();
            writer.WriteEndObject();
        }
Exemple #19
0
 public void Export(ExportContext context, object value, JsonWriter writer)
 {
     throw new NotImplementedException();
 }
Exemple #20
0
 protected override void ExportValue(ExportContext context, object value, JsonWriter writer)
 {
     //writer.WriteString(((DateTime)value).ToString("yyyy-MM-dd hh:mm:ss"));
     writer.WriteString(((DateTime)value).ToString("s"));
 }
Exemple #21
0
 void IJsonExportable.Export(ExportContext context, JsonWriter writer)
 {
     Export(context, writer);
 }
            public void Export(ExportContext context, JsonWriter writer, object source)
            {
                if (context == null) throw new ArgumentNullException("context");
                if (writer == null) throw new ArgumentNullException("writer");
                if (source == null) throw new ArgumentNullException("source");

                object value = _property.GetValue(source);
                
                if (JsonNull.LogicallyEquals(value) || value.Equals(_defaultValue))
                    return;

                writer.WriteMember(_property.Name);
                context.Export(value, writer);
            }
Exemple #23
0
 public void Export(ExportContext context, object value, JsonWriter writer)
 {
     throw new NotImplementedException();
 }
        protected virtual void WriteResponse(object response, TextWriter output)
        {
            if (response == null)
                throw new ArgumentNullException("response");

            if (output == null)
                throw new ArgumentNullException("output");

            JsonWriter writer = (JsonWriter) _serviceProvider.GetService(typeof(JsonWriter));

            if (writer == null)
                writer = new JsonTextWriter(output);

            ExportContext exportContext = new ExportContext();
            exportContext.Export(response, writer);
        }
 public void SetExportContext()
 {
     JsonRpcDispatcher dispatcher = new JsonRpcDispatcher(new TestService());
     ExportContext context = new ExportContext();
     dispatcher.ExportContext = context;
     Assert.AreSame(context, dispatcher.ExportContext);
 }
Exemple #26
0
 protected override void ExportValue(ExportContext context, object value, JsonWriter writer)
 {
     if (((EmailAdresses)value).Adresses != null)
     {
         StringBuilder sb = new StringBuilder();
         foreach (string item in ((EmailAdresses)value).Adresses)
             sb.Append(item + ",");
         sb.Remove(sb.Length - 1, 1);
         writer.WriteString(sb.ToString());
     }
     else
         writer.WriteString("");
 }
Exemple #27
0
            public Builder Register(ExportContext context)
            {
                if (context == null) throw new ArgumentNullException("context");

                context.Register(new ComponentExporter(_type, ToCustomType()));
                return this;
            }
Exemple #28
0
        private static void Run()
        {
            ImportContext impctx = new ImportContext();

            //
            // Import a strongly-typed collection of integers...
            //

            impctx.Register(new ListImporter<int>());

            List<int> numbers = (List<int>) impctx.Import(typeof(List<int>), 
                JsonText.CreateReader("[ 1, 2, 3 ]"));
            numbers.ForEach(Console.WriteLine);
            Console.WriteLine();

            //
            // Import a Shape object containing a strongly-typed collection of 
            // Point objects.
            //

            impctx.Register(new ListImporter<Point>());

            Shape shape = (Shape) impctx.Import(typeof(Shape), JsonText.CreateReader(@"{ 
                    name: 'square', 
                    points: [
                        { x: 10, y: 10 },
                        { x: 20, y: 10 }, 
                        { x: 20, y: 20 },
                        { x: 10, y: 20 }
                    ]
                }"));
            JsonConvert.Export(shape, CreatePrettyWriter(Console.Out));
            Console.WriteLine();

            //
            // Import CookieCollection using duck-typing. In other words,
            // as long as CookieCollection walks and quacks like a
            // collection of Cookie elements then it's good enough for
            // DuckCollectionImporter. DuckCollectionImporter can infer
            // that CookieCollection contains Cookie elements.
            //

            impctx.Register(new DuckCollectionImporter(typeof(CookieCollection)));

            const string cookiesText = @"[
                    { name: 'one',   value: 1, expires: '2099-01-02' },
                    { name: 'two',   value: 2, expires: '2088-03-04' },
                    { name: 'three', value: 3, expires: '2077-05-06' }
                ]";
            
            CookieCollection cookies = (CookieCollection) impctx.Import(typeof(CookieCollection), JsonText.CreateReader(cookiesText));
            JsonConvert.Export(cookies, CreatePrettyWriter(Console.Out));
            Console.WriteLine();

            //
            // Now repeat, but replace with a new CookieCollection importer
            // that is identical in behavior but based on generics. Here,
            // the difference is that DuckCollectionImporter<,> does not
            // have to guess the element type as it is provided as a type
            // argument.
            //

            impctx.Register(new DuckCollectionImporter<CookieCollection, Cookie>());
            cookies = (CookieCollection)impctx.Import(typeof(CookieCollection), JsonText.CreateReader(cookiesText));
            JsonConvert.Export(cookies, CreatePrettyWriter(Console.Out));
            Console.WriteLine();

            //
            // Those Cookie objects have a lot of properties. Say our JSON
            // text only needs a subset. Here, we register an exporter that 
            // provides a custom view of the type. We only expose the name, 
            // value and expiration time. What's more, we rename the 
            // Expires property so that it appears as "expiration" in JSON.
            //

            ExportContext expctx = new ExportContext();

            JsonType.
                BuildFor(typeof(Cookie)).
                AddProperty("Name").
                AddProperty("Value").
                AddProperty("Expires").As("expiration").
                Register(expctx);

            expctx.Export(cookies, CreatePrettyWriter(Console.Out));
            Console.WriteLine();
        }
Exemple #29
0
 public void SubExport(ExportContext context, JsonWriter writer)
 {
     Export(context, writer);
 }
Exemple #30
0
 void IObjectMemberExporter.Export(ExportContext context, JsonWriter writer, object source)
 {
     //writer.WriteMember(_property.Name);
     //context.Export(_property.GetValue(source), writer);
 }