Skip to content

Instantly share code, notes, and snippets.

@hasokeric
Last active March 1, 2022 19:07
Show Gist options
  • Save hasokeric/ffd2eb9017a2646aca52c72bc459f278 to your computer and use it in GitHub Desktop.
Save hasokeric/ffd2eb9017a2646aca52c72bc459f278 to your computer and use it in GitHub Desktop.
Me tinkering with Deserializing JSON in Post BPM
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"));
}
}
}
// 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