public void Commit <T>(NetworkPayload <T> load) { if (Payloads.ContainsKey(load.Index)) { Payloads[load.Index] = load; } else { Payloads.Add(load.Index, load); } }
public NetworkPayload <T> GetLoad <T>(string index) { Payloads.TryGetValue(index, out var load); NetworkPayload <T> final = null; try { final = (NetworkPayload <T>)load; } catch (Exception) { if (load != null) { final = JsonConvert.DeserializeObject <NetworkPayload <T> >(JsonConvert.SerializeObject( new Dictionary <string, object> { ["Origin"] = typeof(T).FullName, ["Index"] = index, ["Object"] = JsonConvert.DeserializeObject <Dictionary <object, object> >( JsonConvert.SerializeObject(load)) [ "Object"] })); } } if (final == null) { final = new NetworkPayload <T>(); } final.Index = index; return(final); }