Beispiel #1
0
        public static void Write(IMultiLineString lines, JsonTextWriter jwriter)
        {
            if (lines == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("MultiLineString");

            jwriter.WriteMember("coordinates");
            jwriter.WriteStartArray();
            foreach (ILineString line in lines.Geometries)
            {
                Write(line.Coordinates, jwriter);
            }
            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
Beispiel #2
0
        public static void Write(Polygon area, JsonTextWriter jwriter)
        {
            if (area == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("Polygon");

            jwriter.WriteMember("coordinates");
            jwriter.WriteStartArray();

            //Write the exterior boundary or shell
            Write(area.Shell.Coordinates, jwriter);

            //Write all the holes
            foreach (LineString hole in area.Holes)
            {
                Write(hole.Coordinates, jwriter);
            }

            jwriter.WriteEndArray();


            jwriter.WriteEndObject();
        }
Beispiel #3
0
        public static void Write(IPoint point, JsonTextWriter jwriter)
        {
            if (point == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("Point");

            jwriter.WriteMember("coordinates");
            jwriter.WriteStartArray();
            jwriter.WriteNumber(point.X);
            jwriter.WriteNumber(point.Y);
            if (!double.IsNaN(point.Z))
            {
                jwriter.WriteNumber(point.Z);
            }
            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
Beispiel #4
0
        public static void Write(IMultiPoint points, JsonTextWriter jwriter)
        {
            if (points == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("MultiPoint");

            jwriter.WriteMember("coordinates");
            jwriter.WriteStartArray();
            foreach (ICoordinate entry in points.Coordinates)
            {
                Write(entry, jwriter);
            }
            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
Beispiel #5
0
        public static void Write(IGISLayer features, JsonTextWriter jwriter)
        {
            if (features == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("FeatureCollection");

            jwriter.WriteMember("features");
            jwriter.WriteStartArray();

            while (features.MoveNext())
            {
                Write(features.Current, jwriter);
            }

            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
Beispiel #6
0
        public static void Write(IEnumerable <Feature> features, JsonTextWriter jwriter)
        {
            if (features == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("FeatureCollection");

            jwriter.WriteMember("features");
            jwriter.WriteStartArray();

            foreach (Feature feature in features)
            {
                Write(feature, jwriter);
            }

            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
Beispiel #7
0
        public static void Write(GeometryCollection geometries, JsonTextWriter jwriter)
        {
            if (geometries == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("GeometryCollection");

            jwriter.WriteMember("geometries");
            jwriter.WriteStartArray();

            foreach (Geometry geometry in geometries.Geometries)
            {
                Write(geometry, jwriter);
            }

            jwriter.WriteEndArray();

            jwriter.WriteEndObject();
        }
Beispiel #8
0
        public override void BeginWriteMessage(Request message)
        {
            writer = new JsonTextWriter();
            Body[] body = message.getResponseBodies();
            fault = (body.Length > 0 && body[0].ResponseDataObject is Exception);
            writer.WriteStartObject();

            // write out version
            string version = (string)message.Headers[1].headerValue.defaultAdapt();

            if (version == "1.1")
            {
                writer.WriteMember("version");
                writer.WriteString("1.1");
            }
            else if (version == "2.0")
            {
                writer.WriteMember("jsonrpc");
                writer.WriteString("2.0");
            }

            // if fault - modify error message to better comply JSON-RPC specification
            if (fault)
            {
                body[0].responseDataObject = ProcessExceptionStack(version, (Exception)body[0].responseDataObject);
            }

            // hack: modify body if 'inspection' is ON to avoid cyclic references in ServiceDescriptor
            //if( message.Headers.Length > 3 )
            //  body[ 0 ].responseDataObject = ((ServiceDescriptor) body[ 0 ].responseDataObject).functions;

            // write out id if was present
            if (message.getHeader("id").headerValue != null)
            {
                writer.WriteMember("id");
                object id = message.getHeader("id").headerValue.defaultAdapt();
                MessageWriter.writeObject(id, message.GetFormatter());
            }

            // only in version 1.0 was allowed to print out result:null on failure and error:null on successfull invocation
            if (version == "1.0")
            {
                writer.WriteMember(fault ? "result" : "error");
                writer.WriteNull();
            }

            writer.WriteMember(!fault ? "result" : "error");
        }
        public static void JayrockWriterObjects()
        {
            for (int j = 0; j < Common.Iterations; j++)
            {
                StringBuilder output = new StringBuilder();
                JsonWriter    writer = new JsonTextWriter(new StringWriter(output));

                int n = Common.SampleObject.Length;
                for (int i = 0; i < n; i += 2)
                {
                    switch ((char)Common.SampleObject[i])
                    {
                    case '{':
                        writer.WriteStartObject();
                        break;

                    case '}':
                        writer.WriteEndObject();
                        break;

                    case '[':
                        writer.WriteStartArray();
                        break;

                    case ']':
                        writer.WriteEndArray();
                        break;

                    case 'P':
                        writer.WriteMember(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'I':
                        writer.WriteNumber(
                            (int)Common.SampleObject[i + 1]);
                        break;

                    case 'D':
                        writer.WriteNumber(
                            (double)Common.SampleObject[i + 1]);
                        break;

                    case 'S':
                        writer.WriteString(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'B':
                        writer.WriteBoolean(
                            (bool)Common.SampleObject[i + 1]);
                        break;

                    case 'N':
                        writer.WriteNull();
                        break;
                    }
                }
            }
        }
Beispiel #10
0
        public static void WritewithID(IAttributesTable attributes, JsonTextWriter jwriter)
        {
            if (attributes == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            string[] names = attributes.GetNames();
            foreach (string name in names)
            {
                jwriter.WriteMember(name);

                var attr = attributes[name];

                if (attr is IEnumerable <FeatureWithID> )
                {
                    IEnumerable <FeatureWithID> fcoll = (IEnumerable <FeatureWithID>)attr;
                    WritewithID(fcoll, jwriter);
                }
                else
                {
                    // TODO: Numerische Attribute?
                    jwriter.WriteString(attributes[name] != null?attributes[name].ToString():"");
                }
            }

            jwriter.WriteEndObject();
        }
Beispiel #11
0
        public static void Write(IGISAttributes attributes, JsonTextWriter jwriter, string[] nonSerializedFields)
        {
            if (attributes == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            IEnumerable <string> names = attributes.GetKeys();

            foreach (string name in names)
            {
                if (nonSerializedFields != null && Contains(nonSerializedFields, name))
                {
                    continue;
                }
                jwriter.WriteMember(name);
                jwriter.WriteString(attributes.GetValue(name).ToString());
            }

            jwriter.WriteEndObject();
        }
Beispiel #12
0
        private JsonTextWriter Request(int id, string method, params string[] list)
        {
            JsonTextWriter writer = new JsonTextWriter();
            string         ID     = id.ToString();

            writer.WriteStartObject();
            writer.WriteMember("jsonrpc");
            writer.WriteString("2.0");
            writer.WriteMember("id");
            writer.WriteString(ID);
            writer.WriteMember("method");
            writer.WriteString(method);
            writer.WriteMember("params");
            writer.WriteStartArray();

            foreach (string param in list)
            {
                writer.WriteString(param);
            }

            return(writer);
        }
Beispiel #13
0
        //IEnumerable<T> WhereActiveOrderBy(
        //REFACTOR: we're building things up in memory, and inefficiently as well...
        //MESS: NAIVE: these are nasty messes of code as well.
        public ActionResult Contracts()
        {
            //get a list with the newest employees/offices for each employee/office code.
            var newestOffices = db.newestOffices();
            var newestEmployees = db.newestEmployees();

            return authenticatedAction(new String[] { "UT", "UR" }, () => {
                content:
                var result = makeJSONResult();
                using (JsonTextWriter w = new JsonTextWriter()) {
                    w.WriteStartArray();
                    foreach (Contract c in db.Contracts.WAOBTL()) {
                        w.writeSharedJSONMembers(c);
                        w.writeSharedJSONProlog();
                        foreach (Company co in db.Companies.Where(tco => tco.contractCode == c.code).WAOBTL()) {
                            w.writeSharedJSONMembers(co);
                            w.WriteMember("offices");
                            w.WriteStartArray();
                            foreach (Office o in newestOffices
                                .Where(o => o.companyCode == co.code)
                                .Where(o => o.contractCode == c.code)
                                .WAOBTL()
                                 ) {
                                w.WriteStartObject();
                                //LOOK AT THIS! WE'RE NOT JUST SENDING OVER THE CODE, BUT THE VERSION AS WELL!
                                w.WriteMember("code");
                                w.WriteString(o.code + "?" + o.version.ToString());
                                w.WriteMember("description");
                                w.WriteString(o.description);
                                w.WriteEndObject();
                            }
                            w.WriteEndArray();
                            w.WriteMember("employees");
                            w.WriteStartArray();
                            foreach (Employee e in newestEmployees
                                .Where(e => e.companyCode == co.code)
                                .Where(e => e.contractCode == c.code)
                                .WAOBTL()) {
                                w.WriteStartObject();
                                //LOOK AT THIS! WE'RE NOT JUST SENDING OVER THE CODE, BUT THE VERSION AS WELL!
                                w.WriteMember("code");
                                w.WriteString(e.code + "?" + e.version.ToString());
                                w.WriteMember("description");
                                w.WriteString(e.firstName + " " + e.lastName);
                                w.WriteEndObject();
                            }
                            w.WriteEndArray();
                            w.WriteEndObject();
                        }
                        w.writeSharedJSONEpilog();
                    }
                    w.WriteEndArray();
                    result.Content = w.ToString();
                }
                logger.Debug("TreesController.Contracts accessed.");
                return result;
            });
        }
Beispiel #14
0
        public static void Write(Feature feature, JsonTextWriter jwriter)
        {
            if (feature == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            jwriter.WriteMember("type");
            jwriter.WriteString("Feature");

            jwriter.WriteMember("geometry");
            Write(feature.Geometry, jwriter);

            jwriter.WriteMember("properties");
            Write(feature.Attributes, jwriter);

            jwriter.WriteEndObject();
        }
Beispiel #15
0
        private void AddHashedParameters(JsonTextWriter writer, params string[] list)
        {
            if (list.Length % 2 > 0)
            {
                return;
            }
            writer.WriteStartObject();

            for (int i = 0; i < list.Length; i += 2)
            {
                writer.WriteMember(list[i]);
                writer.WriteString(list[i + 1]);
            }

            writer.WriteEndObject();
            //return writer;
        }
Beispiel #16
0
        private static void save_index()
        {
            lock (l)
            {
                using (TextWriter tw = File.CreateText(FileIndexSaveFile))
                {
                    using (JsonTextWriter jw = new JsonTextWriter(tw))
                    {
                        jw.PrettyPrint = false;

                        jw.WriteStartArray();

                        foreach (var kvp in file_index)
                        {
                            jw.WriteStartObject();

                            jw.WriteMember(FILE_HASH);
                            jw.WriteString(kvp.Key);

                            jw.WriteMember(DATA);

                            jw.WriteStartArray();

                            foreach (var i in kvp.Value.GetRepostsData())
                            {
                                jw.WriteStartObject();

                                jw.WriteMember(BOARD);
                                jw.WriteString(i.Board);

                                jw.WriteMember(FILE_NAME);
                                jw.WriteString(i.FileName);

                                jw.WriteMember(THREAD_ID);
                                jw.WriteNumber(i.ThreadID);

                                jw.WriteMember(POST_ID);
                                jw.WriteNumber(i.PostID);

                                jw.WriteEndObject();
                            }

                            jw.WriteEndArray();

                            jw.WriteEndObject();
                        }

                        jw.WriteEndArray();
                    }
                }
            }
            need_save = false;
        }
Beispiel #17
0
        public static void Write(IAttributesTable attributes, JsonTextWriter jwriter)
        {
            if (attributes == null)
            {
                return;
            }
            if (jwriter == null)
            {
                throw new ArgumentNullException("jwriter", "A valid JSON writer object is required.");
            }

            jwriter.WriteStartObject();

            string[] names = attributes.GetNames();
            foreach (string name in names)
            {
                jwriter.WriteMember(name);
                jwriter.WriteString(attributes[name].ToString());
            }

            jwriter.WriteEndObject();
        }
        protected override void ProcessRequest()
        {
            string httpMethod = Request.RequestType;

            if (!CaselessString.Equals(httpMethod, "GET") &&
                !CaselessString.Equals(httpMethod, "HEAD"))
            {
                throw new JsonRpcException(string.Format("HTTP {0} is not supported for RPC execution. Use HTTP GET or HEAD only.", httpMethod));
            }

            //
            // Response will be plain text, though it would have been nice to 
            // be more specific, like text/json.
            //

            Response.ContentType = "text/plain";
            
            //
            // Convert the query string into a call object.
            //

            JsonWriter writer = new JsonTextWriter();
            
            writer.WriteStartObject();
            
            writer.WriteMember("id");
            writer.WriteNumber(0);
            
            writer.WriteMember("method");
            string methodName = Mask.NullString(Request.PathInfo);
            if (methodName.Length == 0)
                writer.WriteNull();
            else
                writer.WriteString(methodName.Substring(1));
            
            writer.WriteMember("params");
            writer.WriteStartObject();

            NameValueCollection query = Request.QueryString;
            
            if (query.HasKeys())
            {
                foreach (string name in query)
                {
                    if (Mask.NullString(name).Length == 0)
                        continue;
                
                    writer.WriteMember(name);

                    string[] values = query.GetValues(name);                    
                    
                    if (values.Length == 0)
                        writer.WriteNull();
                    else if (values.Length == 1)
                        writer.WriteString(values[0]);
                    else 
                        writer.WriteArray(values);
                }
            }
            
            writer.WriteEndObject();
            
            writer.WriteEndObject();
            
            //
            // Delegate rest of the work to JsonRpcDispatcher.
            //

            JsonRpcDispatcher dispatcher = new JsonRpcDispatcher(Service);
            
            if (HttpRequestSecurity.IsLocal(Request))
                dispatcher.SetLocalExecution();
            
            dispatcher.Process(new StringReader(writer.ToString()), Response.Output);
        }
Beispiel #19
0
        public static void JayrockOutputFile()
        {
            using (FileStream fs = new FileStream("jayrock_out.txt",
                                                  FileMode.Create)) {
                StreamWriter out_stream = new StreamWriter(fs);

                StringReader sr = new StringReader(Common.JsonText);

                JsonReader reader = new JsonTextReader(sr);


                out_stream.WriteLine(
                    "*** Reading with Jayrock.Json.JsonReader");

                while (reader.Read())
                {
                    out_stream.Write("Token: {0}", reader.TokenClass);

                    if (reader.Text != null)
                    {
                        out_stream.WriteLine(" Value: {0}", reader.Text);
                    }
                    else
                    {
                        out_stream.WriteLine("");
                    }
                }


                out_stream.WriteLine(
                    "\n*** Writing with Jayrock.Json.JsonWriter");

                JsonWriter writer = new JsonTextWriter(out_stream);
                int        n      = Common.SampleObject.Length;
                for (int i = 0; i < n; i += 2)
                {
                    switch ((char)Common.SampleObject[i])
                    {
                    case '{':
                        writer.WriteStartObject();
                        break;

                    case '}':
                        writer.WriteEndObject();
                        break;

                    case '[':
                        writer.WriteStartArray();
                        break;

                    case ']':
                        writer.WriteEndArray();
                        break;

                    case 'P':
                        writer.WriteMember(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'I':
                        writer.WriteNumber(
                            (int)Common.SampleObject[i + 1]);
                        break;

                    case 'D':
                        writer.WriteNumber(
                            (double)Common.SampleObject[i + 1]);
                        break;

                    case 'S':
                        writer.WriteString(
                            (string)Common.SampleObject[i + 1]);
                        break;

                    case 'B':
                        writer.WriteBoolean(
                            (bool)Common.SampleObject[i + 1]);
                        break;

                    case 'N':
                        writer.WriteNull();
                        break;
                    }
                }


                out_stream.WriteLine(
                    "\n\n*** Data imported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");

                Person art = (Person)JsonConvert.Import(typeof(Person),
                                                        Common.PersonJson);

                out_stream.Write(art.ToString());


                out_stream.WriteLine(
                    "\n\n*** Object exported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");

                out_stream.Write(JsonConvert.ExportToString(
                                     Common.SamplePerson));

                out_stream.WriteLine(
                    "\n\n*** Generic object exported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");
                JsonObject person = (JsonObject)JsonConvert.Import(
                    Common.PersonJson);

                out_stream.Write(JsonConvert.ExportToString(person));


                out_stream.WriteLine(
                    "\n\n*** Hashtable exported with " +
                    "Jayrock.Json.Conversion.JsonConvert\n");

                out_stream.Write(JsonConvert.ExportToString(
                                     Common.HashtablePerson));

                out_stream.Close();
            }
        }
Beispiel #20
0
 public override void WriteFieldName(String s)
 {
     writer.WriteMember(s);
 }