public static ResponseConfiguration GetStreamEventsForward(HttpResponseConfiguratorArgs entity, Message message) { var msg = message as ClientMessage.ReadStreamEventsForwardCompleted; if (msg != null) { switch (msg.Result) { case ReadStreamResult.Success: var codec = entity.ResponseCodec; var etag = GetPositionETag(msg.LastEventNumber, codec.ContentType); var cacheSeconds = GetCacheSeconds(msg.StreamMetadata); if (msg.LastEventNumber >= msg.FromEventNumber + msg.MaxCount) { return(Ok(codec.ContentType, codec.Encoding, null, MaxPossibleAge, msg.IsCachePublic)); } return(Ok(codec.ContentType, codec.Encoding, etag, cacheSeconds, msg.IsCachePublic)); case ReadStreamResult.NoStream: return(NotFound()); case ReadStreamResult.StreamDeleted: return(Gone()); case ReadStreamResult.NotModified: return(NotModified()); case ReadStreamResult.Error: return(InternalServerError(msg.Error)); case ReadStreamResult.AccessDenied: return(Unauthorized()); default: throw new ArgumentOutOfRangeException(); } } var notHandled = message as ClientMessage.NotHandled; if (notHandled != null) { return(HandleNotHandled(entity.RequestedUrl, notHandled)); } return(InternalServerError()); }
DeleteStreamCompleted(HttpResponseConfiguratorArgs entity, Message message) { var msg = message as ClientMessage.DeleteStreamCompleted; if (msg != null) { switch (msg.Result) { case OperationResult.Success: return(new ResponseConfiguration(HttpStatusCode.NoContent, "Stream deleted", "text/plain", Helper.UTF8NoBom)); case OperationResult.PrepareTimeout: case OperationResult.CommitTimeout: case OperationResult.ForwardTimeout: return(InternalServerError("Delete timeout")); case OperationResult.WrongExpectedVersion: return(new ResponseConfiguration(HttpStatusCode.BadRequest, "Wrong expected EventNumber", "text/plain", Helper.UTF8NoBom, new KeyValuePair <string, string>(SystemHeaders.CurrentVersion, msg.CurrentVersion.ToString()))); case OperationResult.StreamDeleted: return(Gone("Stream deleted")); case OperationResult.InvalidTransaction: return(InternalServerError("Invalid transaction")); case OperationResult.AccessDenied: return(Unauthorized()); default: throw new ArgumentOutOfRangeException(); } } var notHandled = message as ClientMessage.NotHandled; if (notHandled != null) { return(HandleNotHandled(entity.RequestedUrl, notHandled)); } return(InternalServerError()); }
public static ResponseConfiguration WriteEventsCompleted(HttpResponseConfiguratorArgs entity, Message message, string eventStreamId) { var msg = message as ClientMessage.WriteEventsCompleted; if (msg != null) { switch (msg.Result) { case OperationResult.Success: var location = HostName.Combine(entity.RequestedUrl, "/streams/{0}/{1}", Uri.EscapeDataString(eventStreamId), msg.FirstEventNumber); return(new ResponseConfiguration(HttpStatusCode.Created, "Created", "text/plain", Helper.UTF8NoBom, new KeyValuePair <string, string>("Location", location))); case OperationResult.PrepareTimeout: case OperationResult.CommitTimeout: case OperationResult.ForwardTimeout: return(InternalServerError("Write timeout")); case OperationResult.WrongExpectedVersion: return(new ResponseConfiguration(HttpStatusCode.BadRequest, "Wrong expected EventNumber", "text/plain", Helper.UTF8NoBom, new KeyValuePair <string, string>(SystemHeaders.CurrentVersion, msg.CurrentVersion.ToString()))); case OperationResult.StreamDeleted: return(Gone("Stream deleted")); case OperationResult.InvalidTransaction: return(InternalServerError("Invalid transaction")); case OperationResult.AccessDenied: return(Unauthorized()); default: throw new ArgumentOutOfRangeException(); } } var notHandled = message as ClientMessage.NotHandled; if (notHandled != null) { return(HandleNotHandled(entity.RequestedUrl, notHandled)); } return(InternalServerError()); }
public static ResponseConfiguration ReadAllEventsForwardCompleted(HttpResponseConfiguratorArgs entity, Message message, bool headOfTf) { var msg = message as ClientMessage.ReadAllEventsForwardCompleted; if (msg != null) { switch (msg.Result) { case ReadAllResult.Success: var codec = entity.ResponseCodec; if (!headOfTf && msg.Events.Length == msg.MaxCount) { return(Ok(codec.ContentType, codec.Encoding, null, MaxPossibleAge, msg.IsCachePublic)); } var etag = GetPositionETag(msg.TfLastCommitPosition, codec.ContentType); var cacheSeconds = GetCacheSeconds(msg.StreamMetadata); return(Ok(codec.ContentType, codec.Encoding, etag, cacheSeconds, msg.IsCachePublic)); case ReadAllResult.NotModified: return(NotModified()); case ReadAllResult.Error: return(InternalServerError(msg.Error)); case ReadAllResult.AccessDenied: return(Unauthorized()); default: throw new ArgumentOutOfRangeException(); } } var notHandled = message as ClientMessage.NotHandled; if (notHandled != null) { return(HandleNotHandled(entity.RequestedUrl, notHandled)); } return(InternalServerError()); }
public static ResponseConfiguration EventMetadata(HttpResponseConfiguratorArgs entity) { return(NotImplemented()); }