public static void Publish(this HttpContext httpContext, IPublication publication) { using var _ = publication.Use(); var state = publication.State; var computed = state.Computed; var isConsistent = computed.IsConsistent; var headers = httpContext.Response.Headers; if (headers.ContainsKey(FusionHeaders.Publication)) { throw Errors.AlreadyShared(); } var psi = new PublicationStateInfo(publication.Ref, computed.Version, isConsistent); headers[FusionHeaders.Publication] = JsonConvert.SerializeObject(psi); }
public static void Publish(this HttpContext httpContext, IPublication publication) { using var _ = publication.Use(); var state = publication.State; var computed = state.Computed; var isConsistent = computed.IsConsistent; var headers = httpContext.Response.Headers; if (headers.ContainsKey(FusionHeaders.PublisherId)) { throw Errors.AlreadyShared(); } headers[FusionHeaders.PublisherId] = publication.Publisher.Id.Value; headers[FusionHeaders.PublicationId] = publication.Id.Value; headers[FusionHeaders.LTag] = state.Computed.LTag.ToString(); if (!isConsistent) { headers[FusionHeaders.IsConsistent] = isConsistent.ToString(); } }