Esempio n. 1
0
        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());
        }
Esempio n. 2
0
        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());
        }
Esempio n. 4
0
        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());
        }
Esempio n. 5
0
 public static ResponseConfiguration EventMetadata(HttpResponseConfiguratorArgs entity)
 {
     return(NotImplemented());
 }