/// <summary> /// Deserialise a docker event from JSON. /// </summary> /// <param name="json"> /// The JSON. /// </param> /// <param name="correlationId"> /// An optional message correlation Id. /// </param> /// <returns> /// The deserialised docker event. /// </returns> public static DockerEvent FromJson(string json, string correlationId = null) { if (String.IsNullOrWhiteSpace(json)) { throw new ArgumentException($"Argument cannot be null, empty, or entirely composed of whitespace: {nameof(json)}.", nameof(json)); } DockerEvent evt = JsonConvert.DeserializeObject <DockerEvent>(json); // Don't override existing correlation Id. if (evt.CorrelationId == null) { evt.CorrelationId = correlationId ?? CorrelatedMessage.NewCorrelationId(); } return(evt); }