Example #1
0
        public void SerializeDeserializeWithEnumTest()
        {
            TestSensusServiceHelper service1 = new TestSensusServiceHelper();

            SensusServiceHelper.Initialize(() => service1);


            ActivityDatum datum = new ActivityDatum(DateTimeOffset.UtcNow,
                                                    Activities.OnBicycle,
                                                    ActivityPhase.Starting,
                                                    ActivityState.Inactive,
                                                    1);

            Protocol protocol = new Protocol("test");
            AnonymizedJsonContractResolver anonymizer = new AnonymizedJsonContractResolver(protocol);
            string serializedJSON = datum.GetJSON(anonymizer, false);

            ActivityDatum deserializedDatum = Datum.FromJSON(serializedJSON) as ActivityDatum;

            Assert.AreEqual(datum.BuildId, deserializedDatum.BuildId);
            Assert.AreEqual(datum.DeviceId, deserializedDatum.DeviceId);
            Assert.AreEqual(datum.Id, deserializedDatum.Id);
            Assert.AreEqual(datum.ProtocolId, deserializedDatum.ProtocolId);
            Assert.AreEqual(datum.Timestamp, deserializedDatum.Timestamp);
            Assert.AreEqual(datum.Activity, deserializedDatum.Activity);
            Assert.AreEqual(datum.Confidence, deserializedDatum.Confidence);
            Assert.AreEqual(datum.ActivityStarting, deserializedDatum.ActivityStarting);
            Assert.AreEqual(datum.Phase, deserializedDatum.Phase);
            Assert.AreEqual(datum.State, deserializedDatum.State);
        }
Example #2
0
 /// <summary>
 /// For JSON deserialization
 /// </summary>
 private Protocol()
 {
     _running = false;
     _forceProtocolReportsToRemoteDataStore = false;
     _lockPasswordHash    = "";
     _jsonAnonymizer      = new AnonymizedJsonContractResolver(this);
     _firstStartTimestamp = DateTimeOffset.MinValue;
 }
Example #3
0
 /// <summary>
 /// For JSON deserialization
 /// </summary>
 private Protocol()
 {
     _running = false;
     _forceProtocolReportsToRemoteDataStore = false;
     _lockPasswordHash         = "";
     _jsonAnonymizer           = new AnonymizedJsonContractResolver(this);
     _shareable                = false;
     _pointsOfInterest         = new List <PointOfInterest>();
     _participationHorizonDays = 1;
     _healthTestTimes          = new List <DateTime>();
 }
Example #4
0
        public string GetJSON(AnonymizedJsonContractResolver anonymizationContractResolver, bool indented)
        {
            JSON_SERIALIZER_SETTINGS.ContractResolver = anonymizationContractResolver;

            // datum objects can be anonymized by omitting values. this is accomplished by setting them to null. also, some fields in datum
            // objects might have unreliably obtained values (e.g., GPS location might fail and be null). if we ignore fields with null
            // values when serializing, the resulting JSON and other derived structures (e.g., data frames in R) will have differing columns.
            // so we should include null values to ensure that all JSON values are always included.
            JSON_SERIALIZER_SETTINGS.NullValueHandling = NullValueHandling.Include;

            string json = JsonConvert.SerializeObject(this, indented ? Formatting.Indented : Formatting.None, JSON_SERIALIZER_SETTINGS);

            // if the json should not be indented, replace all newlines with white space
            if (!indented)
            {
                json = json.Replace('\n', ' ').Replace('\r', ' ');
            }

            return(json.Trim());
        }
Example #5
0
        public void SerializeDeserializeTest()
        {
            TestSensusServiceHelper service1 = new TestSensusServiceHelper();

            SensusServiceHelper.Initialize(() => service1);

            LocationDatum datum = new LocationDatum(DateTimeOffset.UtcNow, 0.5, 75.5, -35.5);

            Protocol protocol = new Protocol("test");
            AnonymizedJsonContractResolver anonymizer = new AnonymizedJsonContractResolver(protocol);
            string serializedJSON = datum.GetJSON(anonymizer, false);

            LocationDatum deserializedDatum = Datum.FromJSON(serializedJSON) as LocationDatum;

            Assert.AreEqual(datum.Accuracy, deserializedDatum.Accuracy);
            Assert.AreEqual(datum.BuildId, deserializedDatum.BuildId);
            Assert.AreEqual(datum.DeviceId, deserializedDatum.DeviceId);
            Assert.AreEqual(datum.Id, deserializedDatum.Id);
            Assert.AreEqual(datum.Latitude, deserializedDatum.Latitude);
            Assert.AreEqual(datum.Longitude, deserializedDatum.Longitude);
            Assert.AreEqual(datum.ProtocolId, deserializedDatum.ProtocolId);
            Assert.AreEqual(datum.Timestamp, deserializedDatum.Timestamp);
        }
Example #6
0
        public string GetJSON(AnonymizedJsonContractResolver anonymizationContractResolver)
        {
            _serializationSettings.ContractResolver = anonymizationContractResolver;

            return(JsonConvert.SerializeObject(this, Formatting.None, _serializationSettings).Replace('\n', ' ').Replace('\r', ' '));
        }
Example #7
0
        public string GetJSON(AnonymizedJsonContractResolver anonymizationContractResolver)
        {
            JSON_SERIALIZER_SETTINGS.ContractResolver = anonymizationContractResolver;

            return(JsonConvert.SerializeObject(this, Formatting.None, JSON_SERIALIZER_SETTINGS).Replace('\n', ' ').Replace('\r', ' '));
        }