Beispiel #1
0
 public void Commit <T>(NetworkPayload <T> load)
 {
     if (Payloads.ContainsKey(load.Index))
     {
         Payloads[load.Index] = load;
     }
     else
     {
         Payloads.Add(load.Index, load);
     }
 }
Beispiel #2
0
        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);
        }