Last active
March 1, 2022 19:07
-
-
Save hasokeric/ffd2eb9017a2646aca52c72bc459f278 to your computer and use it in GitHub Desktop.
Me tinkering with Deserializing JSON in Post BPM
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using System; | |
using System.Data; | |
using System.Linq; | |
using System.Data.DataSetExtensions; | |
// use dtJson instead of dynJson | |
public class Program | |
{ | |
public static void Main() | |
{ | |
DataTable dtSnapshot = new DataTable(); | |
dtSnapshot.Columns.Add("Company"); | |
dtSnapshot.Columns.Add("PackSlip"); | |
dtSnapshot.Columns.Add("PackLine"); | |
dtSnapshot.Columns.Add("VendorNum"); | |
dtSnapshot.Columns.Add("PurPoint"); | |
dtSnapshot.Columns.Add("Selected", typeof(bool)); | |
dtSnapshot.Columns.Add("Received"); | |
dtSnapshot.Columns.Add("SysRowID"); | |
DataRow dr = dtSnapshot.NewRow(); | |
dr["Company"] = 123; | |
dr["PackSlip"] = "abcg"; | |
dr["Selected"] = false; | |
dtSnapshot.Rows.Add(dr); | |
DataRow dr2 = dtSnapshot.NewRow(); | |
dr2["Company"] = 123; | |
dr2["PackSlip"] = "abce"; | |
dr2["Selected"] = true; | |
dtSnapshot.Rows.Add(dr2); | |
/*foreach (var item in dtSnapshot.AsEnumerable()) | |
{ | |
Console.WriteLine(item.Field<string>("PackSlip")); | |
}*/ | |
var serializedString = Newtonsoft.Json.JsonConvert.SerializeObject(dtSnapshot); | |
dynamic dynJson = Newtonsoft.Json.JsonConvert.DeserializeObject(serializedString); | |
DataTable dtJson = Newtonsoft.Json.JsonConvert.DeserializeObject<DataTable>(serializedString); | |
//var z = (from x in dtJson.AsEnumerable() select x); | |
var rows = dtJson.AsEnumerable().Where(x => x.Field<bool>("Selected") == true).FirstOrDefault(); | |
bool z = rows.Field<bool>("Selected"); | |
Console.WriteLine(z); | |
//var rows2 = dtJson.AsEnumerable();//.Where(x => x.Field<bool?>("Selected") == true); | |
var rows2 = dtJson.AsEnumerable().Where(x => x.Field<bool?>("Selected") == true).ToList(); | |
bool y = rows2[0].Field<bool>("Selected"); | |
Console.WriteLine(y); | |
foreach (var item in rows2) | |
{ | |
Console.WriteLine(item.Field<string>("PackSlip")); | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// PRE | |
DataTable dtSnapshot = new DataTable(); | |
dtSnapshot.Columns.Add("Company"); | |
dtSnapshot.Columns.Add("PackSlip"); | |
dtSnapshot.Columns.Add("PackLine"); | |
dtSnapshot.Columns.Add("VendorNum"); | |
dtSnapshot.Columns.Add("PurPoint"); | |
dtSnapshot.Columns.Add("Selected"); | |
dtSnapshot.Columns.Add("Received"); | |
dtSnapshot.Columns.Add("SysRowID"); | |
callContextBpmData.Character01 = string.Empty; | |
Ice.Diagnostics.Log.WriteEntry($"vendorNum : {vendorNum} - purPoint: {purPoint} - packSlip: {packSlip}"); | |
var ttRcvDtlRows = | |
(from rd in ttRcvDtl | |
where rd.Added() | |
&& rd.Company == Session.CompanyID | |
&& rd.VendorNum == vendorNum | |
&& rd.PurPoint == purPoint | |
&& rd.PackSlip == packSlip | |
&& rd.Selected == true | |
select rd | |
).ToList(); | |
foreach (var row in ttRcvDtlRows) | |
{ | |
Ice.Diagnostics.Log.WriteEntry($"PackSlip: {row.PackSlip} - PackLine: {row.PackLine} - VendorNum: {row.VendorNum} - PurPoint: {row.PurPoint} - Selected: {row.Selected} - Received: {row.Received} - LCFlag: {row.LCFlag} - ManualLC: {row.ManualLC} - MtlBurRate %: {row.MtlBurRate} - AllowLCUpdate: {row.AllowLCUpdate} - RowMod: {row.RowMod}", "Debug"); | |
DataRow dr = dtSnapshot.NewRow(); | |
dr["Company"] = row.Company; | |
dr["PackSlip"] = row.PackSlip; | |
dr["PackLine"] = row.PackLine; | |
dr["VendorNum"] = row.VendorNum; | |
dr["PurPoint"] = row.PurPoint; | |
dr["Selected"] = row.Selected; | |
dr["Received"] = row.Received; | |
dr["SysRowID"] = row.SysRowID.ToString(); | |
dtSnapshot.Rows.Add(dr); | |
} | |
if (dtSnapshot.Rows.Count > 0) | |
{ | |
callContextBpmData.Character01 = Newtonsoft.Json.JsonConvert.SerializeObject(dtSnapshot); | |
Ice.Diagnostics.Log.WriteEntry($"dtSnapshot.Count: {dtSnapshot.Rows.Count}", "Debug"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment