WriteRaw() public method

Writes raw JSON without changing the writer's state.
public WriteRaw ( string json ) : void
json string The raw JSON to write.
return void
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			ElasticQuery term = (ElasticQuery)value;
			if (term != null)
			{
				writer.WriteStartObject();

				writer.WriteRaw("\"from\": " + term.From);
				writer.WriteRaw(",\"size\": " + term.Size + ",");
				writer.WritePropertyName("query");
				serializer.Serialize(writer, term.Query);

				if (term.Fields != null && term.Fields.Count > 0)
				{
					writer.WritePropertyName("fields");
					writer.WriteStartArray();
					foreach (var field in term.Fields)
					{
						writer.WriteRawValue("\"" + field + "\"");
					}
					writer.WriteEndArray();
				}
				if (term.SortItems != null && term.SortItems.Count > 0)
				{
					writer.WritePropertyName("sort");
					writer.WriteStartObject();
					foreach (var sortItem in term.SortItems)
					{
					    if (sortItem != null)
					    {
					        writer.WritePropertyName(sortItem.FieldName);
					        writer.WriteValue(sortItem.SortType.ToString().ToLower());
					    }
					}

					writer.WriteEndObject();
				}

                //facets
                if (term.Facets != null)
                {
                    writer.WritePropertyName("facets");
                    serializer.Serialize(writer, term.Facets);
                }

                //hightlight
                if(term.Hightlight!=null)
                {
                    writer.WritePropertyName("highlight");
                    serializer.Serialize(writer,term.Hightlight);
                }

                if (term.Explain)
                {
                    writer.WriteRaw(",\"explain\": " + term.Explain.ToString().ToLower());
                }

				writer.WriteEndObject();
			}
		}
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var filterList = value as FilterList;
            if (filterList == null) throw new InvalidOperationException("FilterListConverter attribute is not applied to FilterList class");

            if(filterList.Data.Count == 1)
            {
                writer.WriteRaw(JsonConvert.SerializeObject(filterList.Data[0]));
            }
            else
            {
                writer.WriteRaw(JsonConvert.SerializeObject(new FilterGroup(filterList.Data)));
            }
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var filter = value as Filter;
            if(filter == null) throw new InvalidOperationException("FilterConverter attribute is not applied to Filter class");

            if(filter.Value is bool) //lowercase boolean values
            {
                writer.WriteRaw(filter.Value.ToString().ToLower());
            }
            else
            {
                writer.WriteRaw(filter.Value.ToString());
            }
        }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var request = value as IMultiPercolateRequest;
			if (request == null) return;
			if (request.Percolations == null) return;

			var settings = serializer.GetConnectionSettings();
			var elasticsearchSerializer = settings.Serializer;
			if (elasticsearchSerializer == null) return;
			foreach (var percolation in request.Percolations)
			{
				var requestParameters = percolation.GetRequestParameters() ?? new PercolateRequestParameters();
				var header = new PercolateHeader
				{
					percolate_index = requestParameters.GetQueryStringValue<string>("percolate_index"),
					percolate_type = requestParameters.GetQueryStringValue<string>("percolate_type"),
					routing = requestParameters.GetQueryStringValue<string[]>("routing"),
					preference = requestParameters.GetQueryStringValue<string>("preference"),
					percolate_routing = requestParameters.GetQueryStringValue<string>("percolate_routing"),
					percolate_preference = requestParameters.GetQueryStringValue<string>("percolate_preference"),
					version = requestParameters.GetQueryStringValue<long?>("version")
				};
				var routeValues = (percolation as IRequest)?.RouteValues;
				if (routeValues != null)
				{
					header.id = routeValues.Get<Id>("id");
					header.index = routeValues.Get<IndexName>("index");
					header.type = routeValues.Get<TypeName>("type");
					if (request.Index != null && request.Index.EqualsMarker(header.index)) header.index = null;
					if (request.Type != null && request.Type.EqualsMarker(header.type)) header.type = null;
				}
				var headerBytes = elasticsearchSerializer.SerializeToBytes(header, SerializationFormatting.None);
				writer.WriteRaw($"{{\"{percolation.MultiPercolateName}\":" + headerBytes.Utf8String() + "}\n");
				if (percolation == null)
				{
					writer.WriteRaw("{}\n");
				}
				else
				{
					var bodyBytes = elasticsearchSerializer.SerializeToBytes(percolation, SerializationFormatting.None);
					writer.WriteRaw(bodyBytes.Utf8String() + "\n");
				}
			}
		}
Ejemplo n.º 5
0
        /// <exception cref="ArgumentNullException">when <paramref name="writer"/> is null</exception>
        /// <exception cref="ArgumentNullException">when <paramref name="value"/> is null</exception>
        public new void Serialize(JsonWriter writer, object value)
        {
            if (writer == null) throw new ArgumentNullException("writer");
            if (value == null) throw new ArgumentNullException("value");

            if( ReflectionUtilities.Implements(value.GetType(), typeof(ISerializableToJavaScript)) && !customSerializationObjects.Contains(value) )
            {
                customSerializationObjects.Add(value);
                ((ISerializableToJavaScript) value).SerializeToJavaScript(this, writer);
                customSerializationObjects.Remove(value);
                return;
            }

            var attribute = ReflectionUtilities.GetAttribute<JavaScriptObjectAttribute>(value);

            if( attribute != null && !string.IsNullOrEmpty(attribute.Prefix) ) writer.WriteRaw(attribute.Prefix);

            base.Serialize(writer, value);

            if( attribute != null && !string.IsNullOrEmpty(attribute.Suffix) ) writer.WriteRaw(attribute.Suffix);
        }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var request = value as IMultiSearchRequest;
			if (request == null) return;
			var settings = serializer.GetConnectionSettings();
			var elasticsearchSerializer = settings.Serializer;
			if (elasticsearchSerializer == null) return;

			if (request.Operations == null) return;

			foreach (var operation in request.Operations.Values)
			{
				var indices = (request.Index != null && !request.Index.Equals(operation.Index))
					? operation.Index
					: null;

				var types = (request.Type != null && !request.Type.Equals(operation.Type))
					? operation.Type
					: null;

				var searchType = operation.RequestParameters.GetQueryStringValue<SearchType>("search_type").GetStringValue();
				if (searchType == "query_then_fetch")
					searchType = null;

				var header = new
				{
					index = (indices as IUrlParameter)?.GetString(settings),
					type = (types as IUrlParameter)?.GetString(settings),
					search_type = searchType,
					preference = operation.Preference,
					routing = operation.Routing,
					ignore_unavailable = operation.IgnoreUnavalable
				};

				var headerBytes = elasticsearchSerializer.SerializeToBytes(header, SerializationFormatting.None);
				writer.WriteRaw(headerBytes.Utf8String() + "\n");
				var bodyBytes = elasticsearchSerializer.SerializeToBytes(operation, SerializationFormatting.None);
				writer.WriteRaw(bodyBytes.Utf8String() + "\n");
			}
		}
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var request = (IMultiSearchTemplateRequest)value;
			if (request == null) return;
			var settings = serializer.GetConnectionSettings();
			var elasticsearchSerializer = settings.Serializer;
			if (elasticsearchSerializer == null) return;

			if (request.Operations == null) return;

			foreach (var operation in request.Operations.Values)
			{
				IUrlParameter indices = request.Index == null || !request.Index.Equals(operation.Index)
					? operation.Index
					: null;

				IUrlParameter types = request.Type == null || !request.Type.Equals(operation.Type)
					? operation.Type
					: null;

				var searchType = operation.RequestParameters.GetQueryStringValue<SearchType>("search_type").GetStringValue();
				if (searchType == "query_then_fetch")
					searchType = null;

				var header = new
				{
					index = indices?.GetString(settings),
					type = types?.GetString(settings),
					search_type = searchType,
					preference = operation.Preference,
					routing = operation.Routing,
					ignore_unavailable = operation.IgnoreUnavalable
				};

				var headerString = elasticsearchSerializer.SerializeToString(header, SerializationFormatting.None);
				writer.WriteRaw($"{headerString}\n");
				var bodyString = elasticsearchSerializer.SerializeToString(operation, SerializationFormatting.None);
				writer.WriteRaw($"{bodyString}\n");
			};
		}
Ejemplo n.º 8
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var tsr = value as TimeseriesResult;

            if(tsr == null)
                throw new InvalidOperationException("Cannot serialize type {0}".FormatString(value.GetType()));

            writer.WriteRaw(JsonConvert.SerializeObject(new {
                RollupType = tsr.RollupType.ToString(),
                Timeseries = tsr.Timeseries.Values,
                Labels = from k in tsr.Timeseries.Keys select new {label = k},
                TimeseriesInfo = tsr.Timeseries.Values.Select(ts => ts.Select(t => t.Value))
            }, new JsonConverter[] { new TimeseriesConverter(), new TimeseriesPeriodConverter() }));
        }
Ejemplo n.º 9
0
        // Custom Biggylist serialization which simply writes each object, separated by newlines, to the output
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var list = value as IEnumerable;

              // Loop over all items in the list
              foreach (var item in list)
              {
            // Serialize the object to the writer
            serializer.Serialize(writer, item);

            // Separate with newline characters
            writer.WriteRaw("\r\n");
              }
        }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var bulk = value as IBulkRequest;
			var settings = serializer?.GetConnectionSettings();
			var elasticsearchSerializer = settings?.Serializer;
			if (elasticsearchSerializer == null|| bulk?.Operations == null) return ;

			foreach(var op in bulk.Operations)
			{
				op.Index = op.Index ?? bulk.Index ?? op.ClrType;
				if (op.Index.EqualsMarker(bulk.Index)) op.Index = null;
				op.Type = op.Type ?? bulk.Type ?? op.ClrType;
				if (op.Type.EqualsMarker(bulk.Type)) op.Type = null;
				op.Id = op.GetIdForOperation(settings.Inferrer);

				var opJson = elasticsearchSerializer.SerializeToString(op, SerializationFormatting.None);
				writer.WriteRaw($"{{\"{op.Operation}\":" + opJson + "}\n");
				var body = op.GetBody();
				if (body == null) continue;
				var bodyJson = elasticsearchSerializer.SerializeToString(body, SerializationFormatting.None);
				writer.WriteRaw(bodyJson + "\n");
			}
		}
        /// <summary>
        /// Data should be written as an array of arrays, according to Flot specification. 
        /// </summary>
        /// <param name="writer"></param>
        /// <param name="value">Should be a dictionary.</param>
        /// <param name="serializer"></param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            // I'm not sure if this is needed.
            if (!(value is IDictionary)) throw new Exception("Value is not a dictionary.");

            foreach (dynamic teste in (IEnumerable)value)
            {
                writer.WriteStartArray();
                serializer.Serialize(writer, teste.Key);
                serializer.Serialize(writer, teste.Value);
                writer.WriteEndArray();
                writer.WriteRaw(", ");
            }
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
             HasChildFilter term = (HasChildFilter)value;
             if (term != null)
             {

                 writer.WriteStartObject();
                 writer.WritePropertyName("has_child");
                 writer.WriteStartObject();

                 if (term.Query != null)
                 {
                     writer.WritePropertyName("query");
                     serializer.Serialize(writer, term.Query);
                     writer.WriteRaw(",\"type\": \"" + term.Type+"\"");
                     if(term.Scope!=null)
                     {
                         writer.WriteRaw(",\"_scope\": \"" + term.Scope + "\"");    
                     }
                 }
                 writer.WriteEndObject();
                 writer.WriteEndObject();
             }
        }
Ejemplo n.º 13
0
 public override void WriteJson(JsonWriter writer, object value)
 {
     if (value is DateTime)
     {
         writer.WriteValue(JsonConvert.ConvertDateTimeToJavaScriptTicks((DateTime)value));
     }
     else if (value is DateTime? && ((DateTime?)value).HasValue)
     {
         writer.WriteValue(JsonConvert.ConvertDateTimeToJavaScriptTicks(((DateTime?)value).Value));
     }
     else
     {
         writer.WriteRaw("null");
     }
 }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value == null)
            {
                if (serializer.NullValueHandling == NullValueHandling.Include)
                {
                    writer.WriteNull();
                }
                return;
            }

            writer.WriteStartArray();
            byte[] arbitraryData = (byte[]) value;
            writer.WriteRaw(string.Join(",", arbitraryData));
            writer.WriteEndArray();
        }
Ejemplo n.º 15
0
        /// <summary>
        /// Writes this token to a <see cref="JsonWriter"/>.
        /// </summary>
        /// <param name="writer">A <see cref="JsonWriter"/> into which this method will write.</param>
        /// <param name="converters">A collection of <see cref="JsonConverter"/> which will be used when writing the token.</param>
        public override void WriteTo(JsonWriter writer, params JsonConverter[] converters) {
            writer.WriteStartObject();
            if (this.WithComment) {
                var lPath = writer.Path;
                var lState = writer.WriteState;
                StringBuilder lComments = new StringBuilder();
                int lLevel = (lPath.Split('.').Length + 1) * 2;
                if (lPath == "") lLevel = 2;
                writer.WriteWhitespace("\r\n");
                for (int lCount = 0; lCount < mComment.Count; lCount++) {
                    if (lLevel > 0) writer.WriteWhitespace(new string(' ', lLevel));
                    writer.WriteRaw("//" + mComment[lCount]);
                    if (lCount + 1 < mComment.Count) writer.WriteWhitespace("\r\n");
                }
            }
            var _properties = base.Properties();
            foreach (var lProperty in _properties) {
                lProperty.WriteTo(writer, converters);
            }
            writer.WriteEndObject();


            //base.WriteTo(writer, converters);
        }
Ejemplo n.º 16
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.BottomTrackEngineeringData).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as BottomTrackEngineeringDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // SamplesPerSecond
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_SAMPLESPERSECOND);
                writer.WriteValue(data.SamplesPerSecond);

                // SystemFreqHz
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_SYSTEMFREQHZ);
                writer.WriteValue(data.SystemFreqHz);

                // LagSamples
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_LAGSAMPLES);
                writer.WriteValue(data.LagSamples);

                // CPCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_CPCE);
                writer.WriteValue(data.CPCE);

                // NCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_NCE);
                writer.WriteValue(data.NCE);

                // RepeatN
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_REPEATN);
                writer.WriteValue(data.RepeatN);

                // AmbHz
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_AMBHZ);
                writer.WriteStartArray();
                for (int beam = 0; beam < 4; beam++)
                {
                    writer.WriteValue(data.AmbHz[beam]);
                }
                writer.WriteEndArray();

                // AmbVel
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_AMBVEL);
                writer.WriteStartArray();
                for (int beam = 0; beam < 4; beam++)
                {
                    writer.WriteValue(data.AmbVel[beam]);
                }
                writer.WriteEndArray();

                // AmbAmp
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_AMBAMP);
                writer.WriteStartArray();
                for (int beam = 0; beam < 4; beam++)
                {
                    writer.WriteValue(data.AmbAmp[beam]);
                }
                writer.WriteEndArray();

                // AmbCor
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_AMBCOR);
                writer.WriteStartArray();
                for (int beam = 0; beam < 4; beam++)
                {
                    writer.WriteValue(data.AmbCor[beam]);
                }
                writer.WriteEndArray();

                // AmbSNR
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_AMBSNR);
                writer.WriteStartArray();
                for (int beam = 0; beam < 4; beam++)
                {
                    writer.WriteValue(data.AmbSNR[beam]);
                }
                writer.WriteEndArray();

                // LagUsed
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_BTE_LAGUSED);
                writer.WriteStartArray();
                for (int beam = 0; beam < 4; beam++)
                {
                    writer.WriteValue(data.LagUsed[beam]);
                }
                writer.WriteEndArray();

                // End the object
                writer.WriteEndObject();
            }
Ejemplo n.º 17
0
        private List<TestResult> GetTestResultFromSTDB(SqlCommand command, JsonWriter serializer, DateTime dateToDump)
        {
            var startTime = Formator.FormatDateTime(dateToDump.AddMinutes(-ConfigUtil.JobDumpIntervalMinute));
            var endTime = Formator.FormatDateTime(dateToDump);

            ALogger.LogInfo("GetTestResultFromSTDB: Start {0} to {1} - Input {2}", startTime, endTime, dateToDump.ToString("yyyy-MM-dd HH:mm:ss"));

            if (command == null || serializer == null)
            {
                ALogger.LogError("Not allowed to pass null to this method");
                throw new NoNullAllowedException("Not allowed to pass null to this method");
            }

            var limit = "";

            if (_recordLimit != null && _recordLimit > 0)
            {
                limit = " TOP " + _recordLimit + " ";
            }

            command.CommandTimeout = ConfigUtil.DBQueryTimeout;
            command.CommandText = string.Format(
                //"WAITFOR DELAY '000:01:10';" +
                "SELECT "+ limit +" US.userID AS 'uuid', " +
                    "SE.serverName AS 'capb.name'," +
                    "SE.serverVersion AS 'capb.version', " +
                    "SE.serverCompName AS 'capb.server', " +
                    "(select case when PD.productName is null then '' else PD.productName end) AS 'prod.name', " +
                    "(select case when PD.productVersion is null then '' else PD.productVersion end) AS 'prod.vers', " +
                    "'RST' AS 'prod.component.name', " +
                    "((select case when CL.clientName is null then '' else CL.clientName end) + ' ' + (select case when " +
                    "CL.clientVersion is null then '' else CL.clientVersion end)) AS 'prod.component.vers',  " +
                    "CONVERT(varchar(10),TR.testID) AS 'testID', " +
                    "US.userID AS 'userProfile.uuid', " +
                    "(select case when US.userName is null then '' else US.userName end) AS 'userProfile.userName', " +
                    "(select case when US.userName is null then '' else US.userName end) AS 'userProfile.email', " +
                    "(select case when GL.geoCountry is null then '' else GL.geoCountry end) AS 'userProfile.geoCountry', " +
                    "SE.serverName AS 'server.name', " +
                    "SE.serverVersion AS 'server.version', " +
                    "SE.serverCompName AS 'server.compName', " +
                    "DC.dcSite AS 'server.dataCenter', " +
                    "'RST' AS 'client.name', " +
                    "((select case when CL.clientName is null then '' else CL.clientName end) + ' ' + (select case when CL.clientVersion is null then '' else CL.clientVersion end)) AS 'client.version',  " +
                    "(select case when CL.machineID is null then '' else CL.machineID end) AS 'machineID', " +
                    "(select case when RU.runMOdeKey is null then '' else RU.runMOdeDesc end) AS 'runningMode'," +
                    "(select case when TR.localDateTime is null then '' else TR.localDateTime end) AS 'localDateTime', " +
                    "(select case when TR.wasDateTime is null then '' else TR.wasDateTime end) AS 'server.wasDateTime', " +
                    "(select case when TR.dbsDateTime is null then '' else TR.dbsDateTime end) AS 'server.dbsDateTime', " +
                    "(select case when RU.runModeKey is null then '' else RU.runModeDesc end) AS 'runningMode', " +

                    "TC.testCaseID AS 'testcase.id', " +
                    "isnull(TG.testGroupID,'') AS 'testcase.group', " +
                    "isnull(TC.testCaseName,'') AS 'testcase.title', " +
                    "isnull(VL.validDesc,'') AS 'testcase.valid', " +
                    "isnull(TCS.tcValue,'') AS 'testcase.value', " +
                    "(select case when isnull(TCS.tcDesc,'') = '-' then TCS.tcValue else isnull(TCS.tcDesc,'') end) AS 'testcase.description', " +
                    "isnull(TC.rphURL,'') AS 'testcase.rphURL', " +
                    "isnull(TCS.resultID,'') AS 'testcase.resultID', " +
                    "isnull(TCS.tcRecom,'') AS 'testcase.recommendation' " +

                "FROM	master_dataCenter DC, " +
                    "rstTestResult TR, " +
                    "master_user US, " +
                    "master_geoLocation GL, " +
                    "master_product PD, " +
                    "master_client CL, " +
                    "master_runMode RU, " +
                    "master_server SE, " +
                    "rstTestCases TCS, " +
                    "master_testGroup TG, " +
                    "master_testCase TC, " +
                    "master_valid VL " +
                "WHERE TR.dcKey = DC.dcKey " +
                    "AND TR.userKey = US.userKey " +
                    "AND TR.geoLocationKey = GL.geoLocationKey " +
                    "AND TR.productKey = PD.productKey " +
                    "AND TR.clientKey = CL.clientKey " +
                    "AND TR.runMOdeKey = RU.runMOdeKey " +
                    "AND TR.serverKey = SE.serverKey " +
                    "AND TR.testKey          = TCS.testKey " +
                    "AND TCS.validKey     = VL.validKey " +
                    "AND TCS.testGroupKey = TG.testGroupKey " +
                    "AND TCS.testCaseKey     = TC.testCaseKey " +
                    "AND TR.dbsDateTime >= convert(datetime, '" + startTime + "') " +
                    "AND TR.dbsDateTime <= convert(datetime, '" + endTime + "') " +
                    "ORDER BY TR.testID,testCaseOrd,testCaseName "
                );

            int numberOfTestID = 0;
            List<TestResult> testResult = null;
            using (var dataReader = command.ExecuteReader())
            {
                var previousTestReferenceID = string.Empty;
                
                while (dataReader.Read())
                {
                    var record = dataReader as IDataRecord;
                    var testID = (string)record["testID"];

                    if (testID != previousTestReferenceID)
                    {
                        if (testResult == null)
                        {
                            testResult = new List<TestResult>();
                        }

                        testResult.Add(new TestResult
                        {
                            UUID = (string)record["uuid"],
                            CapbName = (string)record["capb.name"],
                            CapbVers = (string)record["capb.version"],
                            CapbServer = (string)record["capb.server"],
                            ProdName = (string)record["prod.name"],
                            ProdVers = (string)record["prod.vers"],
                            ProdComponentName = (string)record["prod.component.name"],
                            ProdComponentVers = (string)record["prod.component.vers"],
                            TestID = Convert.ToInt32(record["testID"]),
                            UserProfileUUID = (string)record["userProfile.uuid"],
                            //UserProfileAccountDomain = (string)record["userProfile.accountDomain"],
                            UserProfileUserName = (string)record["userProfile.userName"],
                            UserProfileEmail = (string)record["userProfile.email"],
                            //UserProfileContactName = (string)record["userProfile.contactName"],
                            //UserProfileLocation = (string)record["userProfile.location"],
                            //UserProfileCID = (string)record["userProfile.CID"],
                            UserProfileGeoCountry = (string)record["userProfile.geoCountry"],
                            ServerName = (string)record["server.name"],
                            ServerVersion = (string)record["server.version"],
                            ServerCompName = (string)record["server.compName"],
                            ServerDatacenter = (string)record["server.dataCenter"],
                            ServerWasDateTime = (DateTime)record["server.wasDateTime"],
                            ServerDbsDateTime = (DateTime)record["server.dbsDateTime"],
                            ClientName = (string)record["client.name"],
                            ClientVersion = (string)record["client.version"],
                            MachineID = (string)record["machineID"],
                            RunningMode = (string)record["runningMode"],
                            LocalDateTime = (DateTime)record["localDateTime"],
                            TestCases = new List<TestCase>()
                        });

                        previousTestReferenceID = testID;
                        numberOfTestID++;
                    }

                    testResult[numberOfTestID - 1].TestCases.Add(
                        new TestCase
                        {
                            ID = (string) record["testcase.id"],
                            Title = (string) record["testcase.title"],
                            Group = (string) record["testcase.group"],
                            Valid = (string) record["testcase.valid"],
                            Value = (string) record["testcase.value"],
                            Description = (string) record["testcase.description"],
                            Recommendation = (string) record["testcase.recommendation"],
                            RphURL = (string) record["testcase.rphURL"],
                            ResultID = (string) record["testcase.resultID"]
                        }
                    );
                }

                if (numberOfTestID != 0)
                {
                    for (var i = 0; i < numberOfTestID; i++)
                    {
                        var json = JsonConvert.SerializeObject(testResult[i]); 
                        serializer.WriteStartObject();
                        serializer.WriteRaw(json);
                        serializer.WriteEndObject();
                        serializer.WriteWhitespace(Environment.NewLine);
                    }
                }
            }

            return testResult;
        }
Ejemplo n.º 18
0
        private void SerializeValue(JsonWriter writer, object value)
        {
            JsonConverter converter;

            if (value == null)
            {
                writer.WriteNull();
            }
            else if (HasMatchingConverter(value.GetType(), out converter))
            {
                converter.WriteJson(writer, value);
            }
            else if (value is IConvertible)
            {
                IConvertible convertible = value as IConvertible;

                switch (convertible.GetTypeCode())
                {
                    case TypeCode.String:
                        writer.WriteValue((string)convertible);
                        break;
                    case TypeCode.Char:
                        writer.WriteValue((char)convertible);
                        break;
                    case TypeCode.Boolean:
                        writer.WriteValue((bool)convertible);
                        break;
                    case TypeCode.SByte:
                        writer.WriteValue((sbyte)convertible);
                        break;
                    case TypeCode.Int16:
                        writer.WriteValue((short)convertible);
                        break;
                    case TypeCode.UInt16:
                        writer.WriteValue((ushort)convertible);
                        break;
                    case TypeCode.Int32:
                        writer.WriteValue((int)convertible);
                        break;
                    case TypeCode.Byte:
                        writer.WriteValue((byte)convertible);
                        break;
                    case TypeCode.UInt32:
                        writer.WriteValue((uint)convertible);
                        break;
                    case TypeCode.Int64:
                        writer.WriteValue((long)convertible);
                        break;
                    case TypeCode.UInt64:
                        writer.WriteValue((ulong)convertible);
                        break;
                    case TypeCode.Single:
                        writer.WriteValue((float)convertible);
                        break;
                    case TypeCode.Double:
                        writer.WriteValue((double)convertible);
                        break;
                    case TypeCode.DateTime:
                        writer.WriteValue((DateTime)convertible);
                        break;
                    case TypeCode.Decimal:
                        writer.WriteValue((decimal)convertible);
                        break;
                    default:
                        SerializeObject(writer, value);
                        break;
                }
            }
            else if (value is IList)
            {
                SerializeList(writer, (IList)value);
            }
            else if (value is IDictionary)
            {
                SerializeDictionary(writer, (IDictionary)value);
            }
            else if (value is ICollection)
            {
                SerializeCollection(writer, (ICollection)value);
            }
            else if (value is Identifier)
            {
                writer.WriteRaw(value.ToString());
            }
            else
            {
                Type valueType = value.GetType();

                SerializeObject(writer, value);
            }
        }
Ejemplo n.º 19
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.SystemSetupDataSet).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as SystemSetupDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // BT SamplesPerSecond
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_SAMPLESPERSECOND);
                writer.WriteValue(data.BtSamplesPerSecond);

                // BT SystemFreqHz
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_SYSTEMFREQHZ);
                writer.WriteValue(data.BtSystemFreqHz);

                // BT CPCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_CPCE);
                writer.WriteValue(data.BtCPCE);

                // BT NCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_NCE);
                writer.WriteValue(data.BtNCE);

                // BT RepeatN
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_REPEATN);
                writer.WriteValue(data.BtRepeatN);

                // WP SamplesPerSecond
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_SAMPLESPERSECOND);
                writer.WriteValue(data.WpSamplesPerSecond);

                // WP SystemFreqHz
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_SYSTEMFREQHZ);
                writer.WriteValue(data.WpSystemFreqHz);

                // WP CPCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_CPCE);
                writer.WriteValue(data.WpCPCE);

                // WP NCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_NCE);
                writer.WriteValue(data.WpNCE);

                // WP RepeatN
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_REPEATN);
                writer.WriteValue(data.WpRepeatN);

                // WP LagSamples
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_LAGSAMPLES);
                writer.WriteValue(data.WpLagSamples);

                // Voltage
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_VOLTAGE);
                writer.WriteValue(data.Voltage);

                // XmtVoltage
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_XMTVOLTAGE);
                writer.WriteValue(data.XmtVoltage);

                // BtBroadband
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BTBROADBAND);
                writer.WriteValue(data.BtBroadband);

                // BtLagLength
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BTLAGLENGTH);
                writer.WriteValue(data.BtLagLength);

                // BtNarrowband
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BTNARROWBAND);
                writer.WriteValue(data.BtNarrowband);

                // BtBeamMux
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BTBEAMMUX);
                writer.WriteValue(data.BtBeamMux);

                // WpBroadband
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WPBROADBAND);
                writer.WriteValue(data.WpBroadband);

                // WpLagLength
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WPLAGLENGTH);
                writer.WriteValue(data.WpLagLength);

                // WpBandWidth
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WPBANDWIDTH);
                writer.WriteValue(data.WpTransmitBandwidth);

                // WpBandWidth1
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WPBANDWIDTH1);
                writer.WriteValue(data.WpReceiveBandwidth);

                // End the object
                writer.WriteEndObject();
            }
Ejemplo n.º 20
0
        //private void WriteInstances(JsonWriter writer)
        //{
        //    //write a flag node for all pickable instances
        //    writer.WriteStartObject();
        //    writer.WritePropertyName("type"); //instance node
        //    writer.WriteValue("matrix");
        //    writer.WritePropertyName("id");
        //    writer.WriteValue("instances");
        //    writer.WritePropertyName("elements");
        //   // WriteMatrix(writer, GetGlobalModelTransform());
        //    WriteMatrix(writer, XbimMatrix3D.Identity);
        //    writer.WritePropertyName("nodes");
        //    writer.WriteStartArray();
        //    WriteGeometry(writer);
        //    writer.WriteEndArray();
        //    writer.WriteEndObject();
        //}
        private void WriteInstances(JsonWriter writer)
        {
            XbimMatrix3D globalTrans = GetGlobalModelTransform();
            //write out the material nodes and then the instances for each material
             //  Dictionary<int, XbimTexture> styles = _context.SurfaceStyles().ToDictionary(s => s.DefinedObjectId);

            //write all pickable instances
            writer.WriteStartObject();
            foreach (var shapeGeom in _context.ShapeGeometries())
            {
                writer.WriteRaw(shapeGeom.ShapeData); //the vertex geometry
                writer.WritePropertyName("Shapes"); //instance nodes
                writer.WriteStartArray();
                foreach (var shapeInstance in _context.ShapeInstancesOf(shapeGeom))
                {
                    writer.WriteStartObject();
                    writer.WritePropertyName("id"); writer.WriteValue(shapeInstance.InstanceLabel);
                    writer.WritePropertyName("pid"); writer.WriteValue(shapeInstance.IfcProductLabel);
                    writer.WritePropertyName("tr"); WriteMatrix(writer, shapeInstance.Transformation);
                    writer.WritePropertyName("sid"); writer.WriteValue(shapeInstance.StyleLabel);
                    writer.WriteEndObject();
                }
                writer.WriteEndArray();
            }
            writer.WriteEndObject();
        }
Ejemplo n.º 21
0
 /// <summary>
 /// Produces a json respresentation of the model.
 /// </summary>
 /// <param name="writer">The writer to use for producing json.</param>
 public void ToJson(JsonWriter writer)
 {
     writer.WriteRaw(this.ToString());
 }
Ejemplo n.º 22
0
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     writer.WriteRaw(((JsLiteral)value).JsText);
 }
Ejemplo n.º 23
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.SystemSetupDataSet).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as SystemSetupDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // BT SamplesPerSecond
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_SAMPLESPERSECOND);
                writer.WriteValue(data.BtSamplesPerSecond);

                // BT SystemFreqHz
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_SYSTEMFREQHZ);
                writer.WriteValue(data.BtSystemFreqHz);

                // BT CPCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_CPCE);
                writer.WriteValue(data.BtCPCE);

                // BT NCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_NCE);
                writer.WriteValue(data.BtNCE);

                // BT RepeatN
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_BT_REPEATN);
                writer.WriteValue(data.BtRepeatN);

                // WP SamplesPerSecond
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_SAMPLESPERSECOND);
                writer.WriteValue(data.WpSamplesPerSecond);

                // WP SystemFreqHz
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_SYSTEMFREQHZ);
                writer.WriteValue(data.WpSystemFreqHz);

                // WP CPCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_CPCE);
                writer.WriteValue(data.WpCPCE);

                // WP NCE
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_NCE);
                writer.WriteValue(data.WpNCE);

                // WP RepeatN
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_REPEATN);
                writer.WriteValue(data.WpRepeatN);

                // WP LagSamples
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_WP_LAGSAMPLES);
                writer.WriteValue(data.WpLagSamples);

                // Voltage
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_SS_VOLTAGE);
                writer.WriteValue(data.Voltage);

                // End the object
                writer.WriteEndObject();
            }
Ejemplo n.º 24
0
        private List<TestResult> GetTestResultFromOpsDB(SqlCommand command, JsonWriter serializer, DateTime dateToDump)
        {
            var compName = Environment.GetEnvironmentVariable("COMPUTERNAME") ?? "";
            var envName = Environment.GetEnvironmentVariable("AS_ENV") ?? "";
            var startTime = Formator.FormatDateTime(dateToDump.AddMinutes(-ConfigUtil.JobDumpIntervalMinute));
            var endTime = Formator.FormatDateTime(dateToDump);

            ALogger.LogInfo("GetTestResultFromOpsDB: Start {0} to {1} - Input {2}", startTime, endTime, dateToDump.ToString("yyyy-MM-dd HH:mm:ss"));

            if (command == null || serializer == null)
            {
                ALogger.LogError("Not allowed to pass null to this method");
                throw new NoNullAllowedException("Not allowed to pass null to this method");
            }

            var limit = "";

            if (_recordLimit != null && _recordLimit > 0)
            {
                limit = " TOP " + _recordLimit + " ";
            }

            command.CommandTimeout = ConfigUtil.DBQueryTimeout;
            command.CommandText = string.Format(
                //"WAITFOR DELAY '000:01:10';" +
                "SELECT " + limit + " m.UUID as 'uuid', " +
                    "'SystemTestApp' AS 'capb.name', " +
                    "'1.0' AS 'capb.version', " +
                    "'" + compName + "' AS 'capb.server', " +                    
                    //"*** '62' **** AS 'prod.name',  " +
                    //"*** '127EIKON' ***** AS 'prod.vers', " +
                    "'RST' AS 'prod.component.name', " +
                    //"*** '127ST' **** AS 'prod.component.vers',  " +
                    //"'' AS 'testID', => null" +
                    "m.UUID AS 'userProfile.uuid', " +
                    /* UserProfileAccountDomain => null*/
                    // "*** 61 **** AS 'userProfile.userName',  " +
                    //"*** UIS **** AS 'userProfile.email', " +
                    //UserProfileContactName = (string)record["userProfile.contactName"],
                    //UserProfileLocation = (string)record["userProfile.location"],
                    //UserProfileCID = (string)record["userProfile.CID"],
                    //"*** UIS **** AS 'userProfile.geoCountry', " +
                    "'SystemTestApp' AS 'server.name', " +
                    "'1.0' AS 'server.version', " +
                    "'" + compName + "' AS 'server.compName', " +
                    "'" + envName + "' AS 'server.dataCenter', " +
                    "s.LastSeen AS 'server.wasDateTime', " +
                    "s.LastSeen AS 'server.dbsDateTime', " +
                    "'RST' AS 'client.name', " +
                    //"*** '127ST' ****  AS 'client.version', " +
                    "m.MachineGUID AS 'machineID', " +
                    "'' AS 'runningMode', " +
                    //"*** 73 **** AS 'localDateTime', " +
                   
                    "s.StatCode AS 'testcase.id', " +
                    "'' AS 'testcase.group', " +
                    "'' AS 'testcase.title', " +
                    "'' AS 'testcase.valid', " +
                    "s.StatValue AS 'testcase.value', " +
                    "'' AS 'testcase.description', " +
                    "'' AS 'testcase.rphURL', " +
                    "'' AS 'testcase.resultID', " +
                    "'' AS 'testcase.recommendation' " +

                "FROM UserStats s LEFT JOIN UserMachineInstallations m " +
                "ON (s.UserMachineInstallationID = m.UserMachineInstallationID) " +
                "WHERE m.Product = 'est' " +
                    "AND s.LastSeen >= convert(datetime, '" + startTime + "') " +
                    "AND s.LastSeen <= convert(datetime, '" + endTime + "') "
                );

            var numberOfTestID = 0;
            List<TestResult> testResult = null;
            using (var dataReader = command.ExecuteReader())
            {
                var previousTestReferenceID = new DateTime(0);

                while (dataReader.Read())
                {
                    var record = dataReader as IDataRecord;
                    var timeStamp = (DateTime)record["server.dbsDateTime"];
                    if (timeStamp != previousTestReferenceID)
                    {                        
                        if (testResult == null)
                        {
                            testResult = new List<TestResult>();
                        }
                        var userDetails = UserInfo.GetUserDetails((string) record["uuid"]);
                        testResult.Add(new TestResult
                        {
                            UUID = (string)record["uuid"],
                            CapbName = (string)record["capb.name"],
                            CapbVers = (string)record["capb.version"],
                            CapbServer = (string)record["capb.server"],
                            //ProdName = (string)record["prod.name"], //  62
                            //ProdVers = (string)record["prod.vers"], // 127EIKON
                            ProdComponentName = (string)record["prod.component.name"],
                            //ProdComponentVers = (string)record["prod.component.vers"], // 127ST
                            //TestID = Convert.ToInt32(record["testID"]), null
                            UserProfileUUID = (string)record["userProfile.uuid"],
                            //UserProfileAccountDomain = (string)record["userProfile.accountDomain"],  null
                            UserProfileUserName = (userDetails != null) ? userDetails.UserID : "",// UIS
                            UserProfileEmail = (userDetails != null) ? userDetails.Email : "", // UIS
                            //UserProfileContactName = (string)record["userProfile.contactName"], => null
                            //UserProfileLocation = (string)record["userProfile.location"], => null
                            //UserProfileCID = (string)record["userProfile.CID"], => null
                            UserProfileGeoCountry = (userDetails != null) ? userDetails.Country : "", // UIS
                            ServerName = (string)record["server.name"],
                            ServerVersion = (string)record["server.version"],
                            ServerCompName = (string)record["server.compName"],
                            ServerDatacenter = (string)record["server.dataCenter"],
                            ServerWasDateTime = (DateTime)record["server.wasDateTime"],
                            ServerDbsDateTime = (DateTime)record["server.dbsDateTime"],
                            ClientName = (string)record["client.name"],
                            //ClientVersion = (string)record["client.version"], // 127ST
                            MachineID = record["machineID"].ToString(),
                            RunningMode = (string)record["runningMode"], // blank
                            //LocalDateTime = (DateTime)record["localDateTime"], // 73
                            TestCases = new List<TestCase>()
                        });

                        previousTestReferenceID = timeStamp;
                        numberOfTestID++;
                    }

                    var statCode = DataMapper.MapStatCode((string)record["testcase.id"]);
                    var statValue = (string)record["testcase.value"];
                    testResult[numberOfTestID - 1].TestCases.Add(
                        new TestCase
                        {
                            ID = statCode,
                            Title = (string)record["testcase.title"], // blank
                            Group = (string)record["testcase.group"], // blank
                            Valid = (string)record["testcase.valid"], // blank
                            Value = statValue,
                            Description = (string)record["testcase.description"], // blank
                            Recommendation = (string)record["testcase.recommendation"], // blank
                            RphURL = (string)record["testcase.rphURL"], // blank
                            ResultID = (string)record["testcase.resultID"] // blank
                        }
                    );

                    switch (statCode)
                    {
                        case "62":
                            testResult[numberOfTestID - 1].ProdName = statValue;
                            break;
                        case "127EIKON":
                            testResult[numberOfTestID - 1].ProdVers = statValue;
                            break;
                        case "127ST":
                            testResult[numberOfTestID - 1].ProdComponentVers = statValue;
                            testResult[numberOfTestID - 1].ClientVersion = statValue;                            
                            break;
                        case "27": // timezone                            
                            testResult[numberOfTestID - 1].LocalDateTime = GetLocalTestTime(testResult[numberOfTestID - 1].ServerWasDateTime, statValue);
                            break;
                        /*case "73": // local time
                            
                            break;*/
                    }
                }

                if (numberOfTestID == 0)
                {
                    ALogger.LogWarn("DataDumper.GetTestResultFromOpsDB(): no any test data in specific peroid [{0} until {1}]", startTime, endTime);
                    return testResult;
                }
                    
                for (var i = 0; i < numberOfTestID; i++)
                {
                    var json = JsonConvert.SerializeObject(testResult[i]);
                    serializer.WriteStartObject();
                    serializer.WriteRaw(json);
                    serializer.WriteEndObject();
                    serializer.WriteWhitespace(Environment.NewLine);
                }
            }

            return testResult;
        }                
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            if (value != null)
            {
                bool isControls = value is MapControls;
                PropertyInfo[] properties = value.GetType().GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                StringBuilder sb = new StringBuilder();

                foreach (PropertyInfo property in properties)
                {
                    ConfigOptionAttribute attr = ClientConfig.GetClientConfigAttribute(property);

                    if (attr != null && property.PropertyType == typeof(bool))
                    {
                        object prValue = property.GetValue(value, null);
                        object defaultValue = ReflectionUtils.GetDefaultValue(property);
                        if ((bool)prValue)
                        {
                            if (!isControls)
                            {
                                if (!(bool)defaultValue)
                                {
                                    sb.Append(string.Concat("'enable", property.Name, "',")); 
                                }
                            }
                            else
                            {
                                sb.Append(string.Concat("'", property.Name,"',"));
                            }
                        }
                        else
                        {
                            if (!isControls)
                            {
                                if ((bool)defaultValue)
                                {
                                    sb.Append(string.Concat("'disable", property.Name, "',"));
                                }
                            }
                        }
                    }
                }

                if (sb.Length > 0)
                {
                    sb.Remove(sb.Length - 1, 1);
                    writer.WriteStartArray();
                    writer.WriteRaw(sb.ToString());
                    writer.WriteEndArray();
                    return;
                }
            }
            writer.WriteStartArray();
            writer.WriteEndArray();
        }
Ejemplo n.º 26
0
 /// <summary>
 /// Produces a json respresentation of the model.
 /// </summary>
 /// <param name="writer">The writer to use for producing json.</param>
 public void ToJson(JsonWriter writer)
 {
     writer.WriteRaw(_json);
 }
Ejemplo n.º 27
0
            /// <summary>
            /// Write the JSON string.  This will convert all the properties to a JSON string.
            /// This is done manaully to improve conversion time.  The default serializer will check
            /// each property if it can convert.  This will convert the properties automatically.  This
            /// will double the speed.
            /// 
            /// Newtonsoft.Json.JsonConvert.SerializeObject(ensemble.Adcp2InfoDataSet).
            /// 
            /// </summary>
            /// <param name="writer">JSON Writer.</param>
            /// <param name="value">Object to write to JSON.</param>
            /// <param name="serializer">Serializer to convert the object.</param>
            public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
            {
                // Cast the object
                var data = value as Adcp2InfoDataSet;

                // Start the object
                writer.Formatting = Formatting.None;            // Make the text not indented, so not as human readable.  This will save disk space
                writer.WriteStartObject();                      // Start the JSON object

                // Write the base values
                writer.WriteRaw(data.ToJsonBaseStub());
                writer.WriteRaw(",");

                // ViPwr
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ADCP2INFO_VIPWR);
                writer.WriteValue(data.ViPwr);

                // ViNf
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ADCP2INFO_VINF);
                writer.WriteValue(data.ViNf);

                // ViNfl
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ADCP2INFO_VINFL);
                writer.WriteValue(data.ViNfl);

                // ViSleep
                writer.WritePropertyName(DataSet.BaseDataSet.JSON_STR_ADCP2INFO_VISLEEP);
                writer.WriteValue(data.ViSleep);

                // End the object
                writer.WriteEndObject();
            }
 public void SerializeToJavaScript(JsonSerializer serializer, JsonWriter writer)
 {
     writer.WriteRaw("thePrefix");
     serializer.Serialize(writer, this);
     writer.WriteRaw("theSuffix");
 }
Ejemplo n.º 29
0
 private static void WriteJsonValue(JsonWriter writer, MemberInfo field, object value, Type type)
 {
     writer.WritePropertyName(field.Name);
     if (type.IsEnum)
     {
         var e = Enum.GetName(type, value);
         if (value is DateTime)
             writer.WriteValue(e ?? ((DateTime)value).ToString("yyyy-MM-dd"));
         else
             writer.WriteValue(e ?? value.ToString());
         writer.WriteRaw("\t");
         writer.WriteComment(
             string.Concat(type.GetCustomAttribute<FlagsAttribute>() != null ? "flags " : "enum ",
             type.Name, " { ",
             string.Join(", ", Enum.GetNames(type)), " }"));
     }
     else
     {
         if (type.IsPrimitive)
             writer.WriteValue(value);
         else
             _serializer.Serialize(writer, value);
     }
     var info = field as PropertyInfo;
     if (info != null && info.GetSetMethod() == null)
     {
         writer.WriteRaw("\t");
         writer.WriteComment("readonly");
     }
     var ca = field.GetCustomAttribute<ConfigCommentAttribute>();
     if (string.IsNullOrEmpty(ca?.Comment)) return;
     writer.WriteRaw("\t");
     writer.WriteComment(ca.Comment);
 }
Ejemplo n.º 30
0
        /// <summary>
        /// Writes the JSON representation of the object.
        /// </summary>
        /// <param name="writer">The <see cref="JsonWriter"/> to write to.</param>
        /// <param name="value">The value.</param>
        /// <param name="serializer">The calling serializer.</param>
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var v8Item = value as V8ScriptItem;
            var jsType = v8Item.GetJsType();
            object outObj;
            if (jsType == JsTypes.jsError)
            {
                Dictionary<string, object> obj = new Dictionary<string, object>();
                obj["message"] = v8Item.GetProperty("message") as string;
                obj["stack"] = v8Item.GetProperty("stack") as string;
                foreach (var pname in v8Item.GetPropertyNames())
                {
                    var item = v8Item.GetProperty(pname);
                    if (ShouleSerialize(item, out outObj))
                    {
                        obj[pname] = outObj;
                    }

                }

                serializer.Serialize(writer, obj, obj.GetType());
            }
            else if (jsType == JsTypes.JsObject || jsType == JsTypes.JsArray || jsType == JsTypes.jsArguments)
            {

                try
                {
                    var json = v8Item.Engine.Script.JSON.stringify(v8Item);

                    if (writer is JTokenWriter)
                    {
                        var tw = new StringReader(json);
                        var jsonReader = new JsonTextReader(tw);

                        writer.WriteToken(jsonReader);

                    }
                    else
                    {
                        writer.WriteRaw(json);
                    }
                }
                catch (Exception)
                {

                    throw;
                }

            }
            else if (jsType == JsTypes.JsDate)
            {
                var dateString = (string)v8Item.InvokeMethod("toISOString", new object[0]);
                DateTime dt = DateTime.Parse(dateString, DateTimeFormatInfo.CurrentInfo, DateTimeStyles.RoundtripKind);
                serializer.Serialize(writer, dt, dt.GetType());
            }
            else
            {
                writer.WriteNull();
            }
        }