public Command Map(CloudEventRequest request) { Ensure.NotNull(request, nameof(request)); Ensure.NotNull(request.Data, nameof(request.Data)); if (!_dataContentTypes.Contains(request.DataContentType)) { throw new ArgumentException($"While running Map in '{nameof(CreateDiaryMapper)}' I can't recognize the DataContentType:{request.DataContentType}"); } if (!request.DataSchema.Equals(Schema) || !request.Source.Equals(Source)) { throw new ArgumentException($"While running Map in '{nameof(CreateDiaryMapper)}' I can't recognize the data (DataSchema:{request.DataSchema};Source:{request.Source})"); } CreateDiary cmd = JsonSerializer.Deserialize <CreateDiary>(request.Data.ToString()); cmd.Metadata = new Dictionary <string, string> { { "$correlationId", cmd.CorrelationId }, { "source", request.Source.ToString() }, { "$applies", request.Time.ToString("O") }, { "cloudrequest-id", request.Id }, { "schema", request.DataSchema.ToString() }, { "content-type", request.DataContentType } }; return(cmd); }
public static Diary Create(CreateDiary cmd) { ValidateRequiredMetadata(cmd); return(new Diary(cmd.Name, cmd.Metadata)); }