Example #1
0
        public object SanitiseSnapshot(object snapshot)
        {
            try
            {
                if (snapshot is string stringSnapshot)
                {
                    if (StringIsJsonObject(stringSnapshot))
                    {
                        try
                        {
                            return(JObjectHelper.ParseFromString(stringSnapshot));
                        }
                        catch (Exception e)
                        {
                            throw new MalformedJsonSnapshotException(e);
                        }
                    }
                }

                JObjectHelper.FromObject(snapshot);
                return(snapshot);
            }
            catch (ArgumentException)
            {
                return(new { AutoGenerated = snapshot });
            }
        }
Example #2
0
        public object GetSnapshot(SnapshotId snapshotId)
        {
            if (!File.Exists(snapshotId.FilePath))
            {
                return(null);
            }

            var fullSnapshot = JObjectHelper.ParseFromString(File.ReadAllText(snapshotId.FilePath));

            if (snapshotId.PrimaryId == null && snapshotId.SecondaryId == null)
            {
                return(fullSnapshot);
            }

            if (snapshotId.PrimaryId != null &&
                fullSnapshot.TryGetValue(snapshotId.PrimaryId, out var partialSnapshot))
            {
                if (snapshotId.SecondaryId != null &&
                    partialSnapshot is JObject partialSnapshotJObject &&
                    partialSnapshotJObject.TryGetValue(snapshotId.SecondaryId, out partialSnapshot))
                {
                    return(partialSnapshot);
                }

                return(partialSnapshot);
            }
            return(null);
        }
Example #3
0
        public bool CompareSnapshots(object oldSnap, object newSnap)
        {
            var old = JObjectHelper.FromObject(oldSnap);

            var @new = JObjectHelper.FromObject(newSnap);

            @new = JObjectHelper.ParseFromString(@new.ToString());
            return(JToken.DeepEquals(old, @new));
        }