Pass Params to Method to call Stored Proc

CSharp · Console

/Program.cs

using System;
using System.Collections.Generic;
using Newtonsoft.Json;
					
public class Program
{
	public static void Main()
	{
		
		string json = "{\"`LCA0001\": {\"23225007190002\": \"1\",\"23249206670003\": \"1\",\"01365100070018\": \"5\"},\"`LCA0003\": {\"23331406670018\": \"1\",\"24942506670004\": \"1\"},\"`LCA0005\": {\"01365100070018\": \"19\"}}";
		Console.WriteLine(json);
		Console.WriteLine();
		
		//This works
		Console.Write("Deserialize without class");
		var root = JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, int>>>(json);
		foreach (var locationKvp in root)
		{
			foreach (var skuKvp in locationKvp.Value)
			{
				Console.WriteLine("location: " + locationKvp.Key + ", sku: " +  skuKvp.Key + ", qty: " + skuKvp.Value);
			}
		}

		//Why doesn't this work?
		Console.Write("\nDeserialize with class");		
		var root2 = JsonConvert.DeserializeObject<InventoryLocations>(json);
		foreach (var locationKvp in root2.InventoryLocation)
		{
			foreach (var skuKvp in locationKvp.Value)
			{
				Console.WriteLine("location: " + locationKvp.Key + ", sku: " +  skuKvp.Key + ", qty: " + skuKvp.Value);
			}
		}
	}
}

class InventoryLocations
{
    public Dictionary<Location, Dictionary<Sku, Qty>> InventoryLocation { get; set; }
}

public class Location
{
    public string location { get; set; }
}

public class Sku
{
    public string sku { get; set; }
}

public class Qty
{
    public int qty { get; set; }
}
;