public void NullSerialize()
 {
     var Serializer = new JsonSerializer();
     Assert.Equal("", Serializer.Serialize(typeof(object), null));
     Assert.Equal("", Serializer.Serialize(null, new { A = "" }));
     Assert.Equal("", Serializer.Serialize(null, null));
 }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var analysisValue = (AnalysisSettings)value;
			writer.WriteStartObject();
			{
				if (analysisValue.Analyzers.Count > 0)
				{
					writer.WritePropertyName("analyzer");
					serializer.Serialize(writer, analysisValue.Analyzers);
				}

				if (analysisValue.TokenFilters.Count > 0)
				{
					writer.WritePropertyName("filter");
					serializer.Serialize(writer, analysisValue.TokenFilters);
				}

				if (analysisValue.Tokenizers.Count > 0)
				{
					writer.WritePropertyName("tokenizer");
					serializer.Serialize(writer, analysisValue.Tokenizers);
				}

				if (analysisValue.CharFilters.Count > 0)
				{
					writer.WritePropertyName("char_filter");
					serializer.Serialize(writer, analysisValue.CharFilters);
				}
			}
			writer.WriteEndObject();

		}
		public bool TryWriteFeature(JsonWriter writer, object value, JsonSerializer serializer)
		{
			if (!_shapeConverter.CanConvert(ObjectType.Feature))
				return false;

			ObjectType geomType = _shapeConverter.GetObjectType(value);
			if (geomType != ObjectType.Feature)
				return false;

			writer.WriteStartObject();
			writer.WritePropertyName("type");
			writer.WriteValue(Enum.GetName(typeof(ObjectType), ObjectType.Feature));

			object id;
			Dictionary<string, object> props;
			var geometry = _shapeConverter.FromFeature(value, out id, out props);

			if (id != null)
			{
				writer.WritePropertyName("id");
				serializer.Serialize(writer, id);
			}

			if (props != null && props.Count > 0)
			{
				writer.WritePropertyName("properties");
				serializer.Serialize(writer, props);
			}

			writer.WritePropertyName("geometry");
			serializer.Serialize(writer, geometry);

			writer.WriteEndObject();
			return true;
		}
 public void Serialize()
 {
     var Serializer = new JsonSerializer();
     dynamic Object = new { A = 5, B = "ASDF" };
     Assert.Equal("{\"A\":5,\"B\":\"ASDF\"}", Serializer.Serialize(Object.GetType(), Object));
     Object = new TestObject { A = 5, B = "ASDF" };
     Assert.Equal("{\"A\":5,\"B\":\"ASDF\"}", Serializer.Serialize(Object.GetType(), Object));
 }
        public void TestGetPlaylist()
        {
            var playlists = soundCloudClient.User(settings.TestUserId).GetPlaylists();
            if (playlists.Length == 0)
                return;

            var playlist = soundCloudClient.Playlist(playlists[0].Id).GetPlaylist();
            var jsonSerializer = new JsonSerializer();
            Assert.AreEqual(jsonSerializer.Serialize(playlists[0]), jsonSerializer.Serialize(playlist));
        }
        /// <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)
        {
            ReflectionObject reflectionObject = ReflectionObjectPerType.Get(value.GetType());

            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            writer.WriteStartObject();
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyName) : KeyName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, KeyName), reflectionObject.GetType(KeyName));
            writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValueName) : ValueName);
            serializer.Serialize(writer, reflectionObject.GetValue(value, ValueName), reflectionObject.GetType(ValueName));
            writer.WriteEndObject();
        }
    /// <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)
    {
      Type t = value.GetType();
      PropertyInfo keyProperty = t.GetProperty("Key");
      PropertyInfo valueProperty = t.GetProperty("Value");

      writer.WriteStartObject();
      writer.WritePropertyName("Key");
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(keyProperty, value));
      writer.WritePropertyName("Value");
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(valueProperty, value));
      writer.WriteEndObject();
    }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var mapping = (WarmerMapping) value;
			writer.WriteStartObject();

			writer.WritePropertyName("types");
			serializer.Serialize(writer, mapping.Types);

			writer.WritePropertyName("source");
			serializer.Serialize(writer, mapping.Source);

			writer.WriteEndObject();
		}
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var f = value as ITermsBaseFilter;
			if (f == null || (f.IsConditionless && !f.IsVerbatim)) return;
			
			var contract = serializer.ContractResolver as SettingsContractResolver;
			if (contract == null)
				return;
			
			var field = contract.Infer.PropertyPath(f.Field);
			if (field.IsNullOrEmpty())
				return;

			writer.WriteStartObject();
			{
				var lf = f as ITermsLookupFilter;
				if (lf != null)
				{
					writer.WritePropertyName(field);
					writer.WriteStartObject();
					{
						WriteProperty(writer, f, "id", lf.Id);
						SerializeProperty(writer, serializer, f, "type", lf.Type);
						SerializeProperty(writer, serializer, f, "index", lf.Index);
						SerializeProperty(writer, serializer, f, "path", lf.Path);
						WriteProperty(writer, f, "routing", lf.Routing);
						WriteProperty(writer, f, "cache", lf.CacheLookup);
					}
					writer.WriteEndObject();
				}
				var tf = f as ITermsFilter;
				if (tf != null)
				{
					writer.WritePropertyName(field);
					serializer.Serialize(writer, tf.Terms);
				}
				if (f.Execution.HasValue)
				{
					writer.WritePropertyName("execution");
					serializer.Serialize(writer, f.Execution.Value);
				}

				WriteProperty(writer, f, "_cache", f.Cache);
				WriteProperty(writer, f, "_cache_key", f.CacheKey);
				WriteProperty(writer, f, "_name", f.FilterName);
				
			}
			writer.WriteEndObject();		
		}
Example #10
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)
    {
      Type t = value.GetType();
      PropertyInfo keyProperty = t.GetProperty(KeyName);
      PropertyInfo valueProperty = t.GetProperty(ValueName);

      DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

      writer.WriteStartObject();

      writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(KeyName) : KeyName);
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(keyProperty, value));
      writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(ValueName) : ValueName);
      serializer.Serialize(writer, ReflectionUtils.GetMemberValue(valueProperty, value));
      writer.WriteEndObject();
    }
Example #11
0
    public void EntitiesTest()
    {
      Purchase purchase = new Purchase() { Id = 1 };
      purchase.PurchaseLine.Add(new PurchaseLine() { Id = 1, Purchase = purchase });
      purchase.PurchaseLine.Add(new PurchaseLine() { Id = 2, Purchase = purchase });

      StringWriter sw = new StringWriter();
      JsonSerializer serializer = new JsonSerializer();
      serializer.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;

      using (JsonWriter jw = new JsonTextWriter(sw))
      {
        jw.Formatting = Formatting.Indented;

        serializer.Serialize(jw, purchase);
      }

      string json = sw.ToString();

      Assert.AreEqual(@"{
  ""Id"": 1,
  ""PurchaseLine"": [
    {
      ""Id"": 1,
      ""PurchaseReference"": {
        ""EntityKey"": null,
        ""RelationshipName"": ""EntityDataModel.PurchasePurchaseLine"",
        ""SourceRoleName"": ""PurchaseLine"",
        ""TargetRoleName"": ""Purchase"",
        ""RelationshipSet"": null,
        ""IsLoaded"": false
      },
      ""EntityState"": 1,
      ""EntityKey"": null
    },
    {
      ""Id"": 2,
      ""PurchaseReference"": {
        ""EntityKey"": null,
        ""RelationshipName"": ""EntityDataModel.PurchasePurchaseLine"",
        ""SourceRoleName"": ""PurchaseLine"",
        ""TargetRoleName"": ""Purchase"",
        ""RelationshipSet"": null,
        ""IsLoaded"": false
      },
      ""EntityState"": 1,
      ""EntityKey"": null
    }
  ],
  ""EntityState"": 1,
  ""EntityKey"": null
}", json);

      Purchase newPurchase = JsonConvert.DeserializeObject<Purchase>(json);
      Assert.AreEqual(1, newPurchase.Id);

      Assert.AreEqual(2, newPurchase.PurchaseLine.Count);
      Assert.AreEqual(1, newPurchase.PurchaseLine.ElementAt(0).Id);
      Assert.AreEqual(2, newPurchase.PurchaseLine.ElementAt(1).Id);
    }
        /// <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)
        {
            DataTable table = (DataTable)value;
            DefaultContractResolver resolver = serializer.ContractResolver as DefaultContractResolver;

            writer.WriteStartArray();

            foreach (DataRow row in table.Rows)
            {
                writer.WriteStartObject();
                foreach (DataColumn column in row.Table.Columns)
                {
                    object columnValue = row[column];

                    if (serializer.NullValueHandling == NullValueHandling.Ignore && (columnValue == null || columnValue == DBNull.Value))
                    {
                        continue;
                    }

                    writer.WritePropertyName((resolver != null) ? resolver.GetResolvedPropertyName(column.ColumnName) : column.ColumnName);
                    serializer.Serialize(writer, columnValue);
                }
                writer.WriteEndObject();
            }

            writer.WriteEndArray();
        }
		private static void SerializeProperty(JsonWriter writer, JsonSerializer serializer , IFilter filter, string field, object value)
		{
			if ((field.IsNullOrEmpty() || value == null))
				return;
			writer.WritePropertyName(field);
			serializer.Serialize(writer, value);
		}
        public void WhenSerializeWithMoreDatatypes_GetSerialiedJsonString()
        {
            // Arrange
            var jsonSerializer = new JsonSerializer();
            var jsonMoreDataTypes = new JsonMoreDataTypes
            {
                BoolProperty = true,
                ByteProperty = 1,
                SByteProperty = 2,
                CharProperty = 'K',
                DoubleProperty = 12.52,
                FloatProperty = 12.52F,
                IntProperty = 15789,
                UIntProperty = 1234,
                LongProperty = 152,
                ULongProperty = 12345,
                ShortProperty = 123,
                UShortProperty = 555,
                StringProperty = "This is a string"
            };

            // Act
            var result = jsonSerializer.Serialize(jsonMoreDataTypes);

            // Assert
            Assert.AreEqual("{\"boolProperty\": true,\"byteProperty\": 1,\"sByteProperty\": 2,\"charProperty\": \"K\",\"doubleProperty\": 12.52,\"floatProperty\": 12.5200005,\"intProperty\": 15789,\"uIntProperty\": 1234,\"longProperty\": 152,\"uLongProperty\": 12345,\"shortProperty\": 123,\"uShortProperty\": 555,\"stringProperty\": \"This is a string\"}", result);
        }
Example #15
0
 public void JsonSerializer_Serialize_GivenNullInput_ShouldReturnNull()
 {
     var jsonSerializer = new JsonSerializer();
     var result = jsonSerializer.Serialize<object>(null);
     
     Assert.IsNull(result);
 }
Example #16
0
		/// <summary>
		/// Writes the JSON representation of the object.
		/// </summary>
		/// <param name="writer">The <see cref="T:Raven.Imports.Newtonsoft.Json.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)
		{
			if (value == null)
			{
					writer.WriteNull();
				return;
			}
			if (value.GetType() == typeof (object))
			{
				writer.WriteStartObject();
				writer.WriteEndObject();
				return;
			}

			var dynamicValue = ((IDynamicMetaObjectProvider) value).GetMetaObject(Expression.Constant(value));

			writer.WriteStartObject();
			foreach (var dynamicMemberName in dynamicValue.GetDynamicMemberNames())
			{
				writer.WritePropertyName(dynamicMemberName);
				var memberValue = DynamicUtil.GetValueDynamically(value, dynamicMemberName);
				if(memberValue == null || memberValue is ValueType || memberValue is string)
					writer.WriteValue(memberValue);
				else
					serializer.Serialize(writer, memberValue);
			}
			writer.WriteEndObject();

		}
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var contract = serializer.ContractResolver as SettingsContractResolver;

			IDictionary dictionary = (IDictionary) value;
			writer.WriteStartObject();

			foreach (DictionaryEntry entry in dictionary)
			{
				if (entry.Value == null)
					continue;
				string key;
				var pp = entry.Key as PropertyPathMarker;
				var pn = entry.Key as PropertyNameMarker;
				var im = entry.Key as IndexNameMarker;
				if (contract == null)
					key = Convert.ToString(entry.Key, CultureInfo.InvariantCulture);
				else if (pp != null)
					key = contract.Infer.PropertyPath(pp);
				else if (pn != null)
					key = contract.Infer.PropertyName(pn);
				else if (im != null)
					key = contract.Infer.IndexName(im);
				else
					key = Convert.ToString(entry.Key, CultureInfo.InvariantCulture);
				writer.WritePropertyName(key);
				serializer.Serialize(writer, entry.Value);
			}

			writer.WriteEndObject();
		}
 protected void BuyButton_Click(object sender, EventArgs e)
 {
     if (Contact != null)
     {
         try
         {
             ICredentialProvider credentialProvider = new UserCredentialProvider(MembershipContext.AuthenticatedUser);
             NetworkCredential userCredential = credentialProvider.GetCredential();
             if (userCredential != null)
             {
                 DataComClient client = DataComHelper.CreateClient();
                 IContactProvider provider = new UserContactProvider(client, userCredential);
                 Contact contact = provider.GetContact(Contact.ContactId, true);
                 JsonSerializer serializer = new JsonSerializer();
                 ContactHiddenField.Value = serializer.Serialize(contact);
             }
             else
             {
                 ErrorSummary.Report(GetString("datacom.nousercredential"));
                 BuyButton.Enabled = false;
             }
         }
         catch (Exception exception)
         {
             HandleException(exception);
         }
     }
 }
		public static string ToJson(object obj, bool format=false)
		{
			if(format)
			{
				JsonSerializer serializer = new JsonSerializer();
				StringBuilder sb = new StringBuilder();
				using (var writer = new StringWriter(sb))
				{
					using(var jsonWriter = new JsonTextWriter(writer) { Formatting=Formatting.Indented })
					{
						serializer.Serialize(jsonWriter, obj);
						return sb.ToString();
					}
				}
			}
			else 
			{
				JsonSerializer serializer = new JsonSerializer();
				StringBuilder sb = new StringBuilder();
				using(var writer = new StringWriter(sb))
				{
					serializer.Serialize(writer, obj);
					return sb.ToString();
				}
			}
		}
        public void CanSerializeWithEncryptRootObjectEnabled()
        {
            var encryptionMechanism = new Base64EncryptionMechanism();

            var configuration = new JsonSerializerConfiguration
            {
                EncryptionMechanism = encryptionMechanism,
                EncryptRootObject = true
            };

            var serializer = new JsonSerializer<Bar>(configuration);

            var instance = new Bar
            {
                Baz = new Baz
                {
                    Qux = "abc",
                    Garply = true
                },
                Corge = 123.45
            };

            var json = serializer.Serialize(instance);

            var expected =
                @""""
                + encryptionMechanism.Encrypt(@"{""Baz"":{""Qux"":""abc"",""Garply"":true},""Corge"":123.45}")
                + @"""";

            Assert.That(json, Is.EqualTo(expected));
        }
Example #21
0
 public void TestBasicSerialization()
 {
     var serializer = new JsonSerializer();
       var expected = CA<PlanDto>();
       var json = serializer.Serialize(expected);
       Compare(serializer.Deserialize<PlanDto>(json), expected);
 }
        public void AClassDecoratedWithTheEncryptAttributeIsEncrypted()
        {
            var encryptionMechanism = new Base64EncryptionMechanism();

            var configuration = new JsonSerializerConfiguration
            {
                EncryptionMechanism = encryptionMechanism,
            };

            var serializer = new JsonSerializer<Grault>(configuration);

            var instance = new Grault
            {
                Qux = "abc",
                Garply = true
            };

            var json = serializer.Serialize(instance);

            var expected =
                @""""
                + encryptionMechanism.Encrypt(@"{""Qux"":""abc"",""Garply"":true}")
                + @"""";

            Assert.That(json, Is.EqualTo(expected));
        }
		public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
		{
			var f = value as IFilterAggregator;
			if (f == null || f.Filter == null) return;

			serializer.Serialize(writer, f.Filter);
		}
Example #24
0
        public static void WriteLargeJson()
        {
            var json = System.IO.File.ReadAllText("large.json");

            IList<PerformanceTests.RootObject> o = JsonConvert.DeserializeObject<IList<PerformanceTests.RootObject>>(json);

            Console.WriteLine("Press any key to start serialize");
            Console.ReadKey();
            Console.WriteLine("Serializing...");

            Stopwatch sw = new Stopwatch();
            sw.Start();

            for (int i = 0; i < 100; i++)
            {
                using (StreamWriter file = System.IO.File.CreateText("largewrite.json"))
                {
                    JsonSerializer serializer = new JsonSerializer();
                    serializer.Formatting = Formatting.Indented;
                    serializer.Serialize(file, o);
                }
            }

            sw.Stop();

            Console.WriteLine("Finished. Total seconds: " + sw.Elapsed.TotalSeconds);
        }
Example #25
0
 public void CyclicalObject()
 {
     var serializer = new JsonSerializer();
     var a = new CyclicalObject_Class();
     a.A = a;
     string result = serializer.Serialize(a);
 }
        public void JsonSerializer_ShouldReturnCorrectResultWhenInputHasNoProperies()
        {
            var serializer = new JsonSerializer();
            Player input = new Player { };
            string expResult = "{\"Name\":null,\"Score\":0,\"Id\":null}";

            Assert.AreEqual(expResult, serializer.Serialize<Player>(input));
        }
        public void CanSerialize(bool value, string expected)
        {
            var serializer = new JsonSerializer<bool>();

            var json = serializer.Serialize(value);

            Assert.That(json, Is.EqualTo(expected));
        }
        public void CanSerializeNullableDateTimeNullValue()
        {
            var serializer = new JsonSerializer<DateTime?>();

            var json = serializer.Serialize(null);

            Assert.That(json, Is.EqualTo("null"));
        }
        public void CanSerialize()
        {
            var serializer = new JsonSerializer<string>();

            var json = serializer.Serialize("abc");

            Assert.That(json, Is.EqualTo(@"""abc"""));
        }
        public void JsonSerializer_ShouldReturnCorrectResultWhenCorrectInput()
        {
            var serializer = new JsonSerializer();
            Player input = new Player { Name = "Test", Score = 65, Id = "1" };
            string expResult = "{\"Name\":\"Test\",\"Score\":65,\"Id\":\"1\"}";

            Assert.AreEqual(expResult, serializer.Serialize<Player>(input));
        }
Example #31
0
 void IUtf8JsonSerializable.Write(Utf8JsonWriter writer)
 {
     writer.WriteStartObject();
     if (Optional.IsDefined(Kind))
     {
         writer.WritePropertyName("kind");
         writer.WriteStringValue(Kind.Value.ToString());
     }
     if (Optional.IsDefined(Identity))
     {
         writer.WritePropertyName("identity");
         JsonSerializer.Serialize(writer, Identity);
     }
     writer.WritePropertyName("tags");
     writer.WriteStartObject();
     foreach (var item in Tags)
     {
         writer.WritePropertyName(item.Key);
         writer.WriteStringValue(item.Value);
     }
     writer.WriteEndObject();
     writer.WritePropertyName("location");
     writer.WriteStringValue(Location);
     writer.WritePropertyName("properties");
     writer.WriteStartObject();
     if (Optional.IsDefined(ConsistencyPolicy))
     {
         writer.WritePropertyName("consistencyPolicy");
         writer.WriteObjectValue(ConsistencyPolicy);
     }
     writer.WritePropertyName("locations");
     writer.WriteStartArray();
     foreach (var item in Locations)
     {
         writer.WriteObjectValue(item);
     }
     writer.WriteEndArray();
     writer.WritePropertyName("databaseAccountOfferType");
     writer.WriteStringValue(DatabaseAccountOfferType);
     if (Optional.IsCollectionDefined(IpRules))
     {
         writer.WritePropertyName("ipRules");
         writer.WriteStartArray();
         foreach (var item in IpRules)
         {
             writer.WriteObjectValue(item);
         }
         writer.WriteEndArray();
     }
     if (Optional.IsDefined(IsVirtualNetworkFilterEnabled))
     {
         writer.WritePropertyName("isVirtualNetworkFilterEnabled");
         writer.WriteBooleanValue(IsVirtualNetworkFilterEnabled.Value);
     }
     if (Optional.IsDefined(EnableAutomaticFailover))
     {
         writer.WritePropertyName("enableAutomaticFailover");
         writer.WriteBooleanValue(EnableAutomaticFailover.Value);
     }
     if (Optional.IsCollectionDefined(Capabilities))
     {
         writer.WritePropertyName("capabilities");
         writer.WriteStartArray();
         foreach (var item in Capabilities)
         {
             writer.WriteObjectValue(item);
         }
         writer.WriteEndArray();
     }
     if (Optional.IsCollectionDefined(VirtualNetworkRules))
     {
         writer.WritePropertyName("virtualNetworkRules");
         writer.WriteStartArray();
         foreach (var item in VirtualNetworkRules)
         {
             writer.WriteObjectValue(item);
         }
         writer.WriteEndArray();
     }
     if (Optional.IsDefined(EnableMultipleWriteLocations))
     {
         writer.WritePropertyName("enableMultipleWriteLocations");
         writer.WriteBooleanValue(EnableMultipleWriteLocations.Value);
     }
     if (Optional.IsDefined(EnableCassandraConnector))
     {
         writer.WritePropertyName("enableCassandraConnector");
         writer.WriteBooleanValue(EnableCassandraConnector.Value);
     }
     if (Optional.IsDefined(ConnectorOffer))
     {
         writer.WritePropertyName("connectorOffer");
         writer.WriteStringValue(ConnectorOffer.Value.ToString());
     }
     if (Optional.IsDefined(DisableKeyBasedMetadataWriteAccess))
     {
         writer.WritePropertyName("disableKeyBasedMetadataWriteAccess");
         writer.WriteBooleanValue(DisableKeyBasedMetadataWriteAccess.Value);
     }
     if (Optional.IsDefined(KeyVaultKeyUri))
     {
         writer.WritePropertyName("keyVaultKeyUri");
         writer.WriteStringValue(KeyVaultKeyUri.AbsoluteUri);
     }
     if (Optional.IsDefined(DefaultIdentity))
     {
         writer.WritePropertyName("defaultIdentity");
         writer.WriteStringValue(DefaultIdentity);
     }
     if (Optional.IsDefined(PublicNetworkAccess))
     {
         writer.WritePropertyName("publicNetworkAccess");
         writer.WriteStringValue(PublicNetworkAccess.Value.ToString());
     }
     if (Optional.IsDefined(EnableFreeTier))
     {
         writer.WritePropertyName("enableFreeTier");
         writer.WriteBooleanValue(EnableFreeTier.Value);
     }
     if (Optional.IsDefined(ApiProperties))
     {
         writer.WritePropertyName("apiProperties");
         writer.WriteObjectValue(ApiProperties);
     }
     if (Optional.IsDefined(EnableAnalyticalStorage))
     {
         writer.WritePropertyName("enableAnalyticalStorage");
         writer.WriteBooleanValue(EnableAnalyticalStorage.Value);
     }
     if (Optional.IsDefined(AnalyticalStorageConfiguration))
     {
         writer.WritePropertyName("analyticalStorageConfiguration");
         writer.WriteObjectValue(AnalyticalStorageConfiguration);
     }
     if (Optional.IsDefined(CreateMode))
     {
         writer.WritePropertyName("createMode");
         writer.WriteStringValue(CreateMode.Value.ToString());
     }
     if (Optional.IsDefined(BackupPolicy))
     {
         writer.WritePropertyName("backupPolicy");
         writer.WriteObjectValue(BackupPolicy);
     }
     if (Optional.IsCollectionDefined(Cors))
     {
         writer.WritePropertyName("cors");
         writer.WriteStartArray();
         foreach (var item in Cors)
         {
             writer.WriteObjectValue(item);
         }
         writer.WriteEndArray();
     }
     if (Optional.IsDefined(NetworkAclBypass))
     {
         writer.WritePropertyName("networkAclBypass");
         writer.WriteStringValue(NetworkAclBypass.Value.ToSerialString());
     }
     if (Optional.IsCollectionDefined(NetworkAclBypassResourceIds))
     {
         writer.WritePropertyName("networkAclBypassResourceIds");
         writer.WriteStartArray();
         foreach (var item in NetworkAclBypassResourceIds)
         {
             writer.WriteStringValue(item);
         }
         writer.WriteEndArray();
     }
     if (Optional.IsDefined(DisableLocalAuth))
     {
         writer.WritePropertyName("disableLocalAuth");
         writer.WriteBooleanValue(DisableLocalAuth.Value);
     }
     if (Optional.IsDefined(RestoreParameters))
     {
         writer.WritePropertyName("restoreParameters");
         writer.WriteObjectValue(RestoreParameters);
     }
     if (Optional.IsDefined(Capacity))
     {
         writer.WritePropertyName("capacity");
         writer.WriteObjectValue(Capacity);
     }
     writer.WriteEndObject();
     writer.WriteEndObject();
 }
 public string ToJsonString()
 {
     return(JsonSerializer.Serialize(this));
 }
Example #33
0
 public IActionResult Post(Pass pass)
 {
     //var result = JsonSerializer.Deserialize<Pass>(pass);
     return(Ok(JsonSerializer.Serialize(DbUtils.Post(pass))));
 }
Example #34
0
 public static void Set <T>(this ISession session, string key, T value)
 {
     session.SetString(key, JsonSerializer.Serialize <T>(value));
 }
Example #35
0
 public JsonContent(object obj) :
     base(JsonSerializer.Serialize(obj), Encoding.UTF8, "application/json")
 {
 }
Example #36
0
 public override string ToString() => JsonSerializer.Serialize(this);
Example #37
0
        public async Task <ProjectBuildResult> BuildAsync(ProjectBuildArgs args)
        {
            var templateInfo = GetTemplateInfo(args);

            NormalizeArgs(args, templateInfo);

            var templateFile = await TemplateStore.GetAsync(
                args.TemplateName,
                args.Version
                );

            var apiKeyResult = await ApiKeyService.GetApiKeyOrNullAsync();

            if (apiKeyResult?.ApiKey != null)
            {
                args.ExtraProperties["api-key"] = apiKeyResult.ApiKey;
            }

            if (apiKeyResult?.LicenseCode != null)
            {
                args.ExtraProperties["license-code"] = apiKeyResult.LicenseCode;
            }

            var context = new ProjectBuildContext(
                templateInfo,
                templateFile,
                args
                );

            ProjectBuildPipelineBuilder.Build(context).Execute();

            if (!templateInfo.DocumentUrl.IsNullOrEmpty())
            {
                Logger.LogInformation("Check out the documents at " + templateInfo.DocumentUrl);
            }

            // Exclude unwanted or known options.
            var options = args.ExtraProperties
                          .Where(x => !x.Key.Equals(CliConsts.Command, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals("tiered", StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.DatabaseProvider.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.DatabaseProvider.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.OutputFolder.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.OutputFolder.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.UiFramework.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.UiFramework.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Where(x => !x.Key.Equals(NewCommand.Options.Version.Long, StringComparison.InvariantCultureIgnoreCase) &&
                                 !x.Key.Equals(NewCommand.Options.Version.Short, StringComparison.InvariantCultureIgnoreCase))
                          .Select(x => x.Key).ToList();

            await CliAnalyticsCollect.CollectAsync(new CliAnalyticsCollectInputDto
            {
                Tool             = Options.ToolName,
                Command          = args.ExtraProperties.ContainsKey(CliConsts.Command) ? args.ExtraProperties[CliConsts.Command] : "",
                DatabaseProvider = args.DatabaseProvider.ToProviderName(),
                IsTiered         = args.ExtraProperties.ContainsKey("tiered"),
                UiFramework      = args.UiFramework.ToFrameworkName(),
                Options          = JsonSerializer.Serialize(options),
                ProjectName      = args.SolutionName.FullName,
                TemplateName     = args.TemplateName,
                TemplateVersion  = templateFile.Version
            });

            return(new ProjectBuildResult(context.Result.ZipContent, args.SolutionName.ProjectName));
        }
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            Dictionary <string, IStacSummaryItem> summaries = (Dictionary <string, IStacSummaryItem>)value;

            serializer.Serialize(writer, summaries.Where(k => k.Value != null).ToDictionary(k => k.Key, k => k.Value.AsJToken));
        }
Example #39
0
 public static JsonString SerializeToJson <T>(this T source) =>
 new JsonString(JsonSerializer.Serialize(source));
Example #40
0
 public string GetCode() => JsonSerializer.Serialize(this);
 public string Serialize <T>(T value) => JsonSerializer.Serialize(value, _options);
Example #42
0
		public string ToString(object value, Type valueType)
		{
			return JsonSerializer.Serialize(value, valueType);
		}
Example #43
0
 public override string ToString()
 {
     return(JsonSerializer.Serialize(this));
 }
Example #44
0
        public void UpdateData(ProductDetailModel model)
        {
            List <string>         sqls     = new List <string>();
            List <SqlParameter[]> cmdParms = new List <SqlParameter[]>();

            #region WineProduct

            StringBuilder str = new StringBuilder();
            str.AppendLine("Update WineProduct set");
            str.AppendLine(" WineCategoryID =@WineCategoryID ");
            str.AppendLine(" ,ProductYear=@ProductYear");
            str.AppendLine(" ,Price=@Price");
            str.AppendLine(" ,Describle=@Describle");
            str.AppendLine(" ,Region=@Region");
            str.AppendLine(" ,IsDelete=@IsDelete");
            str.AppendLine(" ,UpdateUser=@UpdateUser");
            str.AppendLine(" ,UpdateTime=getdate()");


            str.AppendLine(" Where WineID = @WineID");

            SqlParameter[] paras = new SqlParameter[8];

            paras[0] = new SqlParameter("@WineID", model.WineID);
            paras[1] = new SqlParameter("@WineCategoryID", model.WineCategoryID);
            paras[2] = new SqlParameter("@ProductYear", model.ProductYear);
            paras[3] = new SqlParameter("@Price", model.Price);

            JsonSerializer myJsonSerializer = new JsonSerializer();
            string         describle        = myJsonSerializer.Serialize <List <ProductDescribleModel> >(model.Describle);
            paras[4] = new SqlParameter("@Describle", describle);

            paras[5] = new SqlParameter("@Region", Common.VariableConvert.ConvertStringToDBValue(model.Region));
            paras[6] = new SqlParameter("@IsDelete", Common.VariableConvert.BitConverter(model.IsDelete));

            paras[7] = new SqlParameter("@UpdateUser", Common.VariableConvert.ConvertStringToDBValue(model.UpdateUser));

            sqls.Add(str.ToString());
            cmdParms.Add(paras);

            #endregion

            #region WineImage

            //delete all data
            str = new StringBuilder();
            str.AppendLine("Delete from WineImage where WineID = @WineID");

            paras    = new SqlParameter[1];
            paras[0] = new SqlParameter("@WineID", model.WineID);

            sqls.Add(str.ToString());
            cmdParms.Add(paras);

            //insert new data
            for (int i = 0; i < model.WineImages.Count; i++)
            {
                str = new StringBuilder();
                str.AppendLine("Insert into WineImage");
                str.AppendLine(" (WineID, Url, ImageType) ");
                str.AppendLine(" Values (@WineID, @Url, @ImageType);");

                paras    = new SqlParameter[3];
                paras[0] = new SqlParameter("@WineID", model.WineID);
                paras[1] = new SqlParameter("@Url", Common.VariableConvert.ConvertStringToDBValue(model.WineImages[i].Url));
                paras[2] = new SqlParameter("@ImageType", model.WineImages[i].ImageType);

                sqls.Add(str.ToString());
                cmdParms.Add(paras);
            }

            #endregion

            SqlAccess mySqlAccess = new SqlAccess();
            mySqlAccess.ExecuteNonQuerys(sqls, cmdParms);
        }
 public static void SendReturnMessage(WebSocket socket, GameReturn msg)
 {
     string json = JsonSerializer.Serialize(msg);
     WebSocketClient.SendMessage(socket, json);
 }
Example #46
0
        public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
        {
            var identityValue = value?.GetType().GetProperty("Value")?.GetValue(value, null);

            serializer.Serialize(writer, identityValue);
        }
        public void SerializeGoogleGeoCode()
        {
            string json = @"{
  ""name"": ""1600 Amphitheatre Parkway, Mountain View, CA, USA"",
  ""Status"": {
    ""code"": 200,
    ""request"": ""geocode""
  },
  ""Placemark"": [
    {
      ""address"": ""1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA"",
      ""AddressDetails"": {
        ""Country"": {
          ""CountryNameCode"": ""US"",
          ""AdministrativeArea"": {
            ""AdministrativeAreaName"": ""CA"",
            ""SubAdministrativeArea"": {
              ""SubAdministrativeAreaName"": ""Santa Clara"",
              ""Locality"": {
                ""LocalityName"": ""Mountain View"",
                ""Thoroughfare"": {
                  ""ThoroughfareName"": ""1600 Amphitheatre Pkwy""
                },
                ""PostalCode"": {
                  ""PostalCodeNumber"": ""94043""
                }
              }
            }
          }
        },
        ""Accuracy"": 8
      },
      ""Point"": {
        ""coordinates"": [-122.083739, 37.423021, 0]
      }
    }
  ]
}";

            GoogleMapGeocoderStructure jsonGoogleMapGeocoder = JsonConvert.DeserializeObject <GoogleMapGeocoderStructure>(json);

            MemoryStream ms     = new MemoryStream();
            BsonWriter   writer = new BsonWriter(ms);

            JsonSerializer serializer = new JsonSerializer();

            serializer.Serialize(writer, jsonGoogleMapGeocoder);

            ms.Seek(0, SeekOrigin.Begin);
            BsonReader reader = new BsonReader(ms);
            GoogleMapGeocoderStructure bsonGoogleMapGeocoder = (GoogleMapGeocoderStructure)serializer.Deserialize(reader, typeof(GoogleMapGeocoderStructure));

            Assert.IsNotNull(bsonGoogleMapGeocoder);
            Assert.AreEqual("1600 Amphitheatre Parkway, Mountain View, CA, USA", bsonGoogleMapGeocoder.Name);
            Assert.AreEqual("200", bsonGoogleMapGeocoder.Status.Code);
            Assert.AreEqual("geocode", bsonGoogleMapGeocoder.Status.Request);

            IList <Placemark> placemarks = bsonGoogleMapGeocoder.Placemark;

            Assert.IsNotNull(placemarks);
            Assert.AreEqual(1, placemarks.Count);

            Placemark placemark = placemarks[0];

            Assert.AreEqual("1600 Amphitheatre Pkwy, Mountain View, CA 94043, USA", placemark.Address);
            Assert.AreEqual(8, placemark.AddressDetails.Accuracy);
            Assert.AreEqual("US", placemark.AddressDetails.Country.CountryNameCode);
            Assert.AreEqual("CA", placemark.AddressDetails.Country.AdministrativeArea.AdministrativeAreaName);
            Assert.AreEqual("Santa Clara", placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName);
            Assert.AreEqual("Mountain View", placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName);
            Assert.AreEqual("1600 Amphitheatre Pkwy", placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName);
            Assert.AreEqual("94043", placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber);
            Assert.AreEqual(-122.083739m, placemark.Point.Coordinates[0]);
            Assert.AreEqual(37.423021m, placemark.Point.Coordinates[1]);
            Assert.AreEqual(0m, placemark.Point.Coordinates[2]);
        }
Example #48
0
 /// <summary>
 /// This method is used to write the json in order to balance the date time of the json information given by the json properties.
 ///
 /// Precondition: none
 /// Postcondition: none
 /// </summary>
 /// <param name="writer">passed in to write</param>
 /// <param name="value">passed in for the value</param>
 /// <param name="serializer">passed in to serialize the json</param>
 public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer)
 {
     serializer.Serialize(writer, value);
 }
Example #49
0
 public void WriteValue(object value)
 {
     serializer.Serialize(writer, value);
 }
Example #50
0
 public static IHtmlContent JsonEncode(this string source) =>
 new JsonString(JsonSerializer.Serialize(source));
 public override string Serialize(object obj, ISerializerOptionsAbstract options)
 {
     return(JsonSerializer.Serialize(obj, (JsonSerializerOptions)options.ShimSpecificOptions));
 }
Example #52
0
 private static StringContent CreateStringContent <TRequest>(TRequest content)
 {
     return(new StringContent(JsonSerializer.Serialize(content), Encoding.UTF8,
                              MediaTypeNames.Application.Json));
 }
 public override void Write(Utf8JsonWriter writer, PictureInfo value, JsonSerializerOptions options)
 {
     JsonSerializer.Serialize(writer, value);
 }
        public async void QueryWiFiProbes()
        {
            http.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.ASCII.GetBytes($"{username}:{password}")));

            var filename = Methods.GetFilePath(CONSTANT.FILENAME_HOME_DEVICES);

            try
            {
                //open file and -> list of devices from Raspberry if the file exists
                if (File.Exists(filename))
                {
                    var result = await Methods.OpenExistingFile(filename);

                    WiFiDevice.WellKnownDevices = JsonSerializer.Deserialize <List <WiFiDevice> >(result).ToList();
                }
                else
                {
                    double unixTimestamp = DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                    //following will happen only if there is no file on Raspberry and the list will be loaded from the environment variables
                    WiFiDevice.WellKnownDevices.ForEach(x => x.StatusUnixTime = unixTimestamp);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine($"open file {e}");
            }

            await SendMacAddressToCosmos(WiFiDevice.WellKnownDevices);

            bool isAnyDeviceChanged = true;
            var  UnknownDevices     = new List <WiFiDevice>();

            while (true)
            {
                double unixTimestamp = METHOD.DateTimeToUnixTimestamp(DateTime.UtcNow);
                double timeOffset    = METHOD.DateTimeTZ().Offset.TotalHours;

                //if there are some items from PowerApps then proceed
                if (WiFiDevicesFromPowerApps.Any())
                {
                    //Add, Remove or Change WiFiDevices list according to WiFiDevices From PowerApps
                    WiFiDevice.WellKnownDevices = AddRemoveChangeDevices(WiFiDevicesFromPowerApps, WiFiDevice.WellKnownDevices);
                    WiFiDevicesFromPowerApps.Clear();
                    //send all devices to CosmosDB
                    await SendMacAddressToCosmos(WiFiDevice.WellKnownDevices);
                }
                //prepare multimac query
                //create a list of the MAC Addresses for multimac query
                List <string> deviceMacs = new List <string>();
                WiFiDevice.WellKnownDevices.ForEach(x => deviceMacs.Add(x.MacAddress));
                string            jsonMacAddresses     = JsonSerializer.Serialize(deviceMacs);
                string            urlMultiMac          = $"{urlKismet}/devices/multimac/devices.json";
                string            jsonContentFieldsMac = "json={\"fields\":" + jsonFields + ",\"devices\":" + jsonMacAddresses + "}";
                List <WiFiDevice> KismetKnownDevices   = await GetDevices(urlMultiMac, jsonContentFieldsMac);

                //clear devices list.
                WiFiDevicesToPowerApps.Clear();
                //building list of the local devices which are last seen
                foreach (var knownDevice in WiFiDevice.WellKnownDevices)
                {
                    foreach (var kismet in KismetKnownDevices)
                    {
                        if (knownDevice.MacAddress == kismet.MacAddress)
                        {
                            knownDevice.LastUnixTime = kismet.LastUnixTime;
                            knownDevice.LastSignal   = kismet.LastSignal;
                            knownDevice.SignalType   = kismet.SignalType;
                            knownDevice.SSID         = kismet.SSID;
                            knownDevice.WiFiName     = kismet.ProbedSSID;
                            if (kismet.SignalType.Contains("Wi-Fi"))
                            {
                                knownDevice.AccessPoint = WiFiDevice.WellKnownDevices.Where(x => x.MacAddress == kismet.LastBSSID).Select(x => x.DeviceName).DefaultIfEmpty("No AP").First();
                                if (string.IsNullOrEmpty(knownDevice.WiFiName) || knownDevice.WiFiName == "0")
                                {
                                    knownDevice.WiFiName = WiFiDevice.WellKnownDevices.Where(x => x.MacAddress == kismet.LastBSSID).Select(x => x.SSID).DefaultIfEmpty("No AP").First();
                                }
                            }
                            break;
                        }
                    }
                    //checking active devices and setting Active/NonActive statuses. Each device can have individual timewindow
                    knownDevice.IsChanged = false;                                                //this is just for debugging, no other reason
                    var durationUntilNotActive = (unixTimestamp - knownDevice.LastUnixTime) / 60; //timestamp in minutes
                    knownDevice.IsPresent = durationUntilNotActive < knownDevice.ActiveDuration;
                    if (knownDevice.IsPresent && !knownDevice.StatusChange)
                    {
                        knownDevice.StatusUnixTime = unixTimestamp;
                        knownDevice.StatusChange   = true;
                        isAnyDeviceChanged         = true;
                        knownDevice.IsChanged      = true;
                    }
                    if (!knownDevice.IsPresent && knownDevice.StatusChange)
                    {
                        knownDevice.StatusUnixTime = knownDevice.LastUnixTime;
                        knownDevice.StatusChange   = false;
                        isAnyDeviceChanged         = true;
                        knownDevice.IsChanged      = true;
                    }
                    //following list WiFiDevicesToPowerApps is used to send minimal data to PowerApps (sending only userdevices)
                    //this list will be sent as a response after PowerApps asks something or refreshing it's data
                    if (knownDevice.DeviceType != WiFiDevice.DEVICE)
                    {
                        WiFiDevicesToPowerApps.Add(new Localdevice()
                        {
                            DeviceOwner    = knownDevice.DeviceOwner,
                            DeviceName     = knownDevice.DeviceName,
                            DeviceType     = knownDevice.DeviceType,
                            IsPresent      = knownDevice.IsPresent,
                            StatusFrom     = METHOD.UnixTimeStampToDateTime(knownDevice.StatusUnixTime),
                            ActiveDuration = knownDevice.ActiveDuration,
                            MacAddress     = knownDevice.MacAddress,
                            SignalType     = knownDevice.SignalType,
                            IsChanged      = knownDevice.IsChanged
                        });
                    }
                    //build a list with the names who is expected to track
                    //this list will be sent through Azure Functions to the owners e-mail
                    if (knownDevice.DeviceType == WiFiDevice.MOBILE || knownDevice.DeviceType == WiFiDevice.WATCH || knownDevice.DeviceType == WiFiDevice.CAR)
                    {
                        //to be sure that every person is listed just once
                        if (!WiFiDevicesWhoIsChanged.Any(x => x.DeviceOwner == knownDevice.DeviceOwner) || !WiFiDevicesWhoIsChanged.Any())
                        {
                            WiFiDevicesWhoIsChanged.Add(new Localdevice()
                            {
                                DeviceOwner = knownDevice.DeviceOwner,
                                DeviceName  = knownDevice.DeviceName,
                                IsPresent   = knownDevice.IsPresent,
                                StatusFrom  = METHOD.UnixTimeStampToDateTime(knownDevice.StatusUnixTime),
                                SignalType  = knownDevice.SignalType,
                                IsChanged   = knownDevice.IsChanged
                            });
                        }
                    }
                }

                //update the list of the correct statuses, are they home or away
                foreach (var item in WiFiDevicesWhoIsChanged)
                {
                    item.IsChanged = false;
                    foreach (var device in WiFiDevicesToPowerApps)
                    {
                        if (item.DeviceOwner == device.DeviceOwner && (device.DeviceType == WiFiDevice.MOBILE || device.DeviceType == WiFiDevice.WATCH || device.DeviceType == WiFiDevice.CAR))
                        {
                            if (device.IsChanged)
                            {
                                item.IsChanged  = device.IsChanged;
                                item.DeviceName = device.DeviceName;
                                item.StatusFrom = device.StatusFrom.AddHours(timeOffset);
                                item.SignalType = device.SignalType;
                                item.IsPresent  = device.IsPresent;
                            }
                            //if device is exist and has'nt been changed, then mark it as unchanged and move to next item
                            //if device is not exist (not seen) but has been changed then mark it as unchanged and move to next item = do not notify leaving devices
                            //this is XOR
                            if (device.IsPresent ^ device.IsChanged)
                            {
                                item.IsChanged = false;
                                break;
                            }
                        }
                    }
                }

                //save the data locally into Raspberry
                var jsonString = JsonSerializer.Serialize(WiFiDevice.WellKnownDevices);
                await Methods.SaveStringToLocalFile(filename, jsonString);

                //send an e-mail only if someone has arrived at home or left the home
                if (WiFiDevicesWhoIsChanged.Any(x => x.IsChanged))
                {
                    string status = "Look who is at home:\n\n";

                    WiFiDevicesWhoIsChanged.ForEach(x => status += $"{(x.IsPresent ? x.DeviceOwner + " " + x.DeviceName + " at home from" : x.DeviceOwner + " not seen since")} {x.StatusFrom:HH:mm dd.MM.yyyy} \n ");
                    var    x          = WiFiDevicesWhoIsChanged.First(x => x.IsChanged);
                    string whoChanged = $"{(x.IsPresent ? x.DeviceOwner + " at home " : x.DeviceOwner + " not seen since")} {x.StatusFrom:HH:mm dd.MM.yyyy}";
                    _sendListData = new SendDataAzure();
                    TelemetryDataClass.SourceInfo = $"{whoChanged}";
                    //send data to CosmosDB
                    var monitorData = new
                    {
                        DeviceID = "HomeController",
                        TelemetryDataClass.SourceInfo,
                        status,
                        DateAndTime   = METHOD.DateTimeTZ().DateTime,
                        isHomeSecured = true
                    };
                    await _sendListData.PipeMessage(monitorData, Program.IoTHubModuleClient, TelemetryDataClass.SourceInfo, "output");
                }


                //if any mobile phone or watch is present then someone is at home
                IsAnyMobileAtHome = WiFiDevice.WellKnownDevices.Any(x => x.IsPresent && (x.DeviceType == WiFiDevice.MOBILE || x.DeviceType == WiFiDevice.WATCH || x.DeviceType == WiFiDevice.CAR));
                //if security mode automatic and home secured then unsecure home if any known mobile device is seen
                if (IsAnyMobileAtHome && TelemetryDataClass.isHomeSecured && !SomeoneAtHome.IsSecurityManuallyOn)
                {
                    SomeoneAtHome.SomeoneAtHomeChanged();
                }

                #region Known Device Listing, only for debugging

                //for local debugging only show the active/non active devices in console window
                if (isAnyDeviceChanged)
                {
                    isAnyDeviceChanged = false;
                    var sortedList = WiFiDevice.WellKnownDevices.OrderByDescending(y => y.IsPresent).ThenBy(w => w.AccessPoint).ThenBy(z => z.SignalType).ThenBy(x => x.DeviceName).ToList();
                    Console.WriteLine();
                    Console.WriteLine($"All known devices at: {METHOD.DateTimeTZ().DateTime:G}");
                    Console.WriteLine();
                    Console.WriteLine($"   |   From   | Status  |          Device           |        WiFi network      |        AccessPoint       |  SignalType");
                    Console.WriteLine($"   |  ------  | ------- |         --------          |           -----          |           -----          |  --------  ");
                    foreach (var device in sortedList)
                    {
                        if (device.LastUnixTime > 0 && device.SignalType != "Wi-Fi AP" && device.DeviceOwner != "Unknown" && device.DeviceType != WiFiDevice.DEVICE) //show only my own ever seen LocalUserDevices devices
                        {
                            Console.WriteLine($" {(device.IsChanged ? "1" : " ")} " +
                                              $"| {METHOD.UnixTimeStampToDateTime(device.StatusUnixTime).AddHours(timeOffset):T} " +
                                              $"| {(device.IsPresent ? "Active " : "Not Act")} " +
                                              $"| {device.DeviceName}{"".PadRight(26 - (device.DeviceName.Length > 26 ? 26 : device.DeviceName.Length))}" +
                                              $"| {device.WiFiName}{"".PadRight(26 - (!string.IsNullOrEmpty(device.WiFiName) ? (device.WiFiName.Length > 26 ? 26 : device.WiFiName.Length) : 0))}" +
                                              $"| {device.AccessPoint}{"".PadRight(26 - (!string.IsNullOrEmpty(device.AccessPoint) ? (device.AccessPoint.Length > 26 ? 26 : device.AccessPoint.Length) : 0))}" +
                                              $"| {device.SignalType} ");
                        }
                    }
                    Console.WriteLine();
                }

                #endregion

                #region Unknown Devices Debugging

                //prepare last active devices query
                string            urlLastActive       = $"{urlKismet}/devices/last-time/{CONSTANT.ACTIVE_DEVICES_IN_LAST}/devices.json";
                string            jsonContentFields   = "json={\"fields\":" + jsonFields + "}";
                List <WiFiDevice> KismetActiveDevices = await GetDevices(urlLastActive, jsonContentFields);

                //removing all known devices from the last seen devices list
                //known devices are all locally registered devices in the list WiFiDevice.WifiDevices
                var tempDelList      = new List <WiFiDevice>();
                var AllActiveDevices = new List <WiFiDevice>(KismetActiveDevices);
                foreach (var kismet in KismetActiveDevices)
                {
                    foreach (var knownDevice in WiFiDevice.WellKnownDevices)
                    {
                        if (kismet.MacAddress == knownDevice.MacAddress || kismet.LastSignal < CONSTANT.SIGNAL_TRESHOLD || (kismet.CommonName == kismet.MacAddress && kismet.Manufacture == "Unknown"))
                        {
                            tempDelList.Add(kismet);
                            break;
                        }
                    }
                }
                KismetActiveDevices.RemoveAll(i => tempDelList.Contains(i));

                //adding new members to the close devices list
                if (KismetActiveDevices.Any())
                {
                    var  tempAddList = new List <WiFiDevice>();
                    bool isNewItem   = true;
                    foreach (var kismet in KismetActiveDevices)
                    {
                        foreach (var unknownDevice in UnknownDevices)
                        {
                            if (kismet.MacAddress == unknownDevice.MacAddress)
                            {
                                unknownDevice.Count++;
                                unknownDevice.LastUnixTime = kismet.LastUnixTime;
                                unknownDevice.WiFiName     = kismet.ProbedSSID;
                                if (kismet.SignalType.Contains("Wi-Fi"))
                                {
                                    //get device AccessPoint and WIFI network names from Kismet (if reported by device)
                                    List <WiFiDevice> KismetOneMac = new List <WiFiDevice>();
                                    string            urlOneMac    = $"{urlKismet}/devices/by-mac/{kismet.MacAddress}/devices.json";
                                    KismetOneMac = await GetDevices(urlOneMac, jsonContentFields);

                                    //have to check KismetOneMac list because sometimes it is empty
                                    if (KismetOneMac.Any())
                                    {
                                        unknownDevice.AccessPoint = AllActiveDevices.Where(x => x.MacAddress == KismetOneMac.First().LastBSSID).Select(x => x.BaseName).DefaultIfEmpty("No AP").First();
                                        if (string.IsNullOrEmpty(kismet.ProbedSSID) || unknownDevice.WiFiName == "0")
                                        {
                                            unknownDevice.WiFiName = AllActiveDevices.Where(x => x.MacAddress == KismetOneMac.First().LastBSSID).Select(x => x.SSID).DefaultIfEmpty("No AP").First();
                                        }
                                    }
                                }
                                isNewItem = false;
                                break;
                            }
                            else
                            {
                                isNewItem = true;
                            }
                        }
                        if (isNewItem)
                        {
                            tempAddList.Add(kismet);
                        }
                    }
                    UnknownDevices.AddRange(tempAddList.ToArray());

                    UnknownDevices.RemoveAll(x => (unixTimestamp - x.LastUnixTime) / 60 > 120); //remove all entries older that 2 hour

                    //local debugging: show the devices list in console only if some device has been added
                    if (tempAddList.Any() && UnknownDevices.Any())
                    {
                        var sortedList = UnknownDevices.OrderBy(x => x.SignalType).ThenByDescending(y => y.LastUnixTime).ToList();
                        Console.WriteLine();
                        Console.WriteLine($"All unknown devices at: {METHOD.DateTimeTZ().DateTime:G}");
                        Console.WriteLine();
                        Console.WriteLine($"dB  | First | Last  |    Mac Address    |Count |  SignalType   |         WiFi network      |         AccessPoint       |    Common Name     | Manufacturer ");
                        Console.WriteLine($" -  | ----  | ----  |    -----------    | ---  |  ----------   |          ---------        |          ---------        |    -----------     |  -----------  ");

                        foreach (var device in sortedList)
                        {
                            Console.WriteLine($"{device.LastSignal}{"".PadRight(device.LastSignal < 0 ? 1 : 3)}" +
                                              $"| {METHOD.UnixTimeStampToDateTime(device.FirstUnixTime).AddHours(timeOffset):t} " +
                                              $"| {METHOD.UnixTimeStampToDateTime(device.LastUnixTime).AddHours(timeOffset):t} " +
                                              $"| {device.MacAddress} " +
                                              $"| {device.Count}{"".PadRight(device.Count < 10 ? 3 : device.Count < 100 ? 2 : 1)} " +
                                              $"| {device.SignalType}{"".PadRight(14 - (!string.IsNullOrEmpty(device.SignalType) ? (device.SignalType.Length > 14 ? 14 : device.SignalType.Length) : 0))}" +
                                              $"| {device.WiFiName}{"".PadRight(26 - (!string.IsNullOrEmpty(device.WiFiName) ? (device.WiFiName.Length > 26 ? 26 : device.WiFiName.Length) : 0))}" +
                                              $"| {device.AccessPoint}{"".PadRight(26 - (!string.IsNullOrEmpty(device.AccessPoint) ? (device.AccessPoint.Length > 26 ? 26 : device.AccessPoint.Length) : 0))}" +
                                              $"| {device.CommonName}{"".PadRight(19 - (!string.IsNullOrEmpty(device.CommonName) ? (device.CommonName.Length > 19 ? 19 : device.CommonName.Length) : 0))}" +
                                              $"| {device.Manufacture}");
                        }
                        Console.WriteLine();
                    }
                }
                #endregion

                await Task.Delay(TimeSpan.FromSeconds(60)); //check statuses every 10 millisecond
            }
        }
Example #55
0
 public static void VerifyTypeFail()
 {
     Assert.Throws <ArgumentException>(() => JsonSerializer.Serialize(1, typeof(string)));
 }
Example #56
0
        public void Basic_Mapper()
        {
            var mapper = CreateMapper();
            var obj    = CreateModel();
            var doc    = mapper.ToDocument(obj);

            var json = JsonSerializer.Serialize(doc, true);

            // test read-only
            Assert.AreEqual(obj.MyReadOnly, doc["my_read_only"].AsString);

            var nobj = mapper.ToObject <MyClass>(doc);

            // compare object to document
            Assert.AreEqual(doc["_id"].AsInt32, obj.MyId);
            Assert.AreEqual(doc["MY-STRING"].AsString, obj.MyString);
            Assert.AreEqual(doc["my_guid"].AsGuid, obj.MyGuid);

            // compare 2 objects
            Assert.AreEqual(obj.MyId, nobj.MyId);
            Assert.AreEqual(obj.MyString, nobj.MyString);
            Assert.AreEqual(obj.MyGuid, nobj.MyGuid);
            Assert.AreEqual(obj.MyDateTime.ToString(), nobj.MyDateTime.ToString());
            Assert.AreEqual(obj.MyDateTimeNullable, nobj.MyDateTimeNullable);
            Assert.AreEqual(obj.MyIntNullable, nobj.MyIntNullable);
            Assert.AreEqual(obj.MyEnumProp, nobj.MyEnumProp);
            Assert.AreEqual(obj.MyChar, nobj.MyChar);
            Assert.AreEqual(obj.MyByte, nobj.MyByte);
            Assert.AreEqual(obj.MySByte, nobj.MySByte);
            Assert.AreEqual(obj.MyField, nobj.MyField);
            Assert.AreEqual(obj.MyTimespan, nobj.MyTimespan);
            Assert.AreEqual(obj.MyDecimal, nobj.MyDecimal);
            Assert.AreEqual(obj.MyUri, nobj.MyUri);

            // list
            Assert.AreEqual(obj.MyStringArray[0], nobj.MyStringArray[0]);
            Assert.AreEqual(obj.MyStringArray[1], nobj.MyStringArray[1]);
            Assert.AreEqual(obj.MyStringEnumerable.First(), nobj.MyStringEnumerable.First());
            Assert.AreEqual(obj.MyStringEnumerable.Take(1).First(), nobj.MyStringEnumerable.Take(1).First());
            Assert.AreEqual(true, obj.CustomStringEnumerable.SequenceEqual(nobj.CustomStringEnumerable));
            Assert.AreEqual(obj.MyDict[2], nobj.MyDict[2]);
            Assert.AreEqual(obj.MyDictEnum[StringComparison.Ordinal], nobj.MyDictEnum[StringComparison.Ordinal]);

            // list of structs
            Assert.AreEqual(obj.MyCollectionPoint.First(), nobj.MyCollectionPoint.First());
            Assert.AreEqual(obj.MyListPoint.First(), nobj.MyListPoint.First());
            Assert.AreEqual(obj.MyEnumerablePoint.First(), nobj.MyEnumerablePoint.First());

            // interfaces
            Assert.AreEqual(obj.MyInterface.Name, nobj.MyInterface.Name);
            Assert.AreEqual(obj.MyListInterface[0].Name, nobj.MyListInterface[0].Name);
            Assert.AreEqual(obj.MyIListInterface[0].Name, nobj.MyIListInterface[0].Name);

            // objects
            Assert.AreEqual(obj.MyObjectString, nobj.MyObjectString);
            Assert.AreEqual(obj.MyObjectInt, nobj.MyObjectInt);
            Assert.AreEqual((obj.MyObjectImpl as MyImpl).Name, (nobj.MyObjectImpl as MyImpl).Name);
            Assert.AreEqual(obj.MyObjectList[0], obj.MyObjectList[0]);
            Assert.AreEqual(obj.MyObjectList[1], obj.MyObjectList[1]);
            Assert.AreEqual(obj.MyObjectList[3], obj.MyObjectList[3]);
        }
        /// <summary>
        /// Ensures there is a valid SlugCI Config file and updates it if necessary OR creates it.
        /// </summary>
        /// <returns></returns>
        private bool ProcessSlugCIConfigFile()
        {
            SlugCIConfig slugCiConfig = SlugCIConfig;

            if (slugCiConfig == null)
            {
                EnsureExistingDirectory(CISession.SlugCIPath);
                slugCiConfig = new SlugCIConfig();
                slugCiConfig.DeployToVersionedFolder = true;
            }


            // Make a copy that we will compare against.
            SlugCIConfig origSlugCiConfig = slugCiConfig.Copy();

            // Ensure the version of the config file layout is set to most current.  We do this after the copy, so we can
            // detect changes in the file layout, fields, etc.
            slugCiConfig.ConfigStructureVersion = SlugCIConfig.CONFIG_STRUCTURE_VERSION;

            bool updateProjectAdd    = false;
            bool hasCopyDeployMethod = false;


            // Now go thru the Visual Studio Projects and update the config
            foreach (VisualStudioProject project in Projects)
            {
                SlugCIProject slugCIProject = slugCiConfig.GetProjectByName(project.Name);

                // New Visual Studio project that does not exist in SlugCIConfig
                if (slugCIProject == null)
                {
                    slugCIProject = AddSlugCIProject(slugCiConfig, project);
                }

                if (slugCIProject.Deploy == SlugCIDeployMethod.Copy)
                {
                    hasCopyDeployMethod = true;
                }
            }


            // Ensure Deploy Roots have values if at least one of the projects has a deploy method of Copy
            if (hasCopyDeployMethod)
            {
                foreach (PublishTargetEnum value in Enum.GetValues(typeof(PublishTargetEnum)))
                {
                    ValidateDeployFolders(value, slugCiConfig);
                }
            }


            // Add Angular Projects
            ProcessAngularProjects(slugCiConfig);


            // Determine if we need to save new config.
            if (origSlugCiConfig != slugCiConfig)
            {
                string json = JsonSerializer.Serialize <SlugCIConfig>(slugCiConfig, SlugCIConfig.SerializerOptions());
                File.WriteAllText(CISession.SlugCIFileName, json);
                AOT_Success("SlugCIConfig file updated to latest version / values");

                SlugCIConfig = GetSlugCIConfig(true);
                if (updateProjectAdd)
                {
                    Logger.Warn("The file: {0} was updated.  One ore more projects were added.  Ensure they have the correct Deploy setting.", CISession.SlugCIFileName);
                }
            }

            return(true);
        }
        public void SerializeDefaultOptions()
        {
            var jsonString = JsonSerializer.Serialize(CreateBoard());

            Assert.Equal("\"WSH".PadRight(101, ' ') + "\"", jsonString);
        }
Example #59
0
 public static void ToStringNullTypeFail()
 {
     Assert.Throws <ArgumentNullException>(() => JsonSerializer.Serialize(new object(), (Type)null));
 }
Example #60
0
        public static void editSubscription()
        {
            //This function can edit a subscription
            string valId, valMonthPrice, replace, valYearSubscription = "";
            int    id          = 0;
            double dMonthPrice = 0.0;

            string subscriptionDetails             = File.ReadAllText("subscriptions.json");
            List <Subscription> subscriptionDetail = JsonSerializer.Deserialize <List <Subscription> >(subscriptionDetails);

            for (int i = 0; i < subscriptionDetail.Count; i++)
            {
                Console.WriteLine("ID: " + subscriptionDetail[i].Id);
                Console.WriteLine("Name: " + subscriptionDetail[i].Name);
                Console.WriteLine("\n===================================================================================\n");
            }

            Console.WriteLine("Enter the id of the subscription you want to manage: ");
            valId = Console.ReadLine();
            id    = Convert.ToInt32(valId);
            var searchedSubscription = subscriptionDetail.FirstOrDefault(m => m.Id == id);

            Console.WriteLine("ID: " + searchedSubscription.Id);
            Console.WriteLine("Name: " + searchedSubscription.Name);
            Console.WriteLine("Price per month: " + searchedSubscription.MonthPrice);
            if (searchedSubscription.YearSubscription)
            {
                Console.WriteLine("Year subscription: Yes");
                Console.WriteLine("Price per year: " + ((searchedSubscription.MonthPrice * 12) - 15));
            }

            else
            {
                Console.WriteLine("Year subscription: No");
            }

            Console.WriteLine("Enter a new subscription name: ");
            searchedSubscription.Name = Console.ReadLine();
            Console.WriteLine("Enter a new price per month: ");
            valMonthPrice = Console.ReadLine();
            replace       = valMonthPrice.Replace(".", ",");
            dMonthPrice   = Convert.ToDouble(replace);
            searchedSubscription.MonthPrice = dMonthPrice;
            Console.WriteLine("Year subscription: Yes: Y or No: N");
            valYearSubscription = Console.ReadLine();

            if (valYearSubscription == "Y" || valYearSubscription == "y")
            {
                searchedSubscription.YearSubscription = true;
            }

            else
            {
                searchedSubscription.YearSubscription = false;
            }

            string resultJson = JsonSerializer.Serialize <List <Subscription> >(subscriptionDetail);

            File.WriteAllText("subscriptions.json", resultJson);

            Console.WriteLine("Changes successfully saved.");
        }