Пример #1
0
        // GET /api/clients/a42076d0-9728-48d9-ba6b-c6ed722fb49e
        public ClientResponse Get(Guid clientId)
        {
            var queries = new ClientQueries();
            var client = queries.GetClient(new GetClientQuery() { ClientId = clientId });
            if (client == null)
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));

            var response = new ClientResponse()
                               {
                                   ClientId = client.ClientId,
                                   NotificationUri = client.NotificationChannel,
                                   Subscriptions = client.Subscriptions.Select(s => new SubscriptionResponse()
                                                                                        {
                                                                                            ClientId = client.ClientId,
                                                                                            SubscriptionId = s.SubscriptionId,
                                                                                            NotificationKind = ((Server.Domain.NotificationKind)s.NotificationKind).ToString(),
                                                                                            ParamUri = s.ParamUri
                                                                                        }).ToArray()
                               };
            _applier.Apply(Request, response);
            foreach(var sub in response.Subscriptions)
                _applier.Apply(Request, sub);

            return response;
        }
        public SubscriptionResponse Get(Guid clientId, Guid subscriptionId)
        {
            var queries = new ClientQueries();
            var query = new GetSubscriptionQuery() {ClientId = clientId, SubscriptionId = subscriptionId};
            var subscription = queries.GetSubscription(query);
            if (subscription == null)
                throw new HttpResponseException(new HttpResponseMessage(HttpStatusCode.NotFound));

            var response = new SubscriptionResponse()
                               {
                                   ClientId = subscription.ClientId,
                                   SubscriptionId = subscription.SubscriptionId,
                                   NotificationKind =
                                       ((Server.Domain.NotificationKind) subscription.NotificationKind).ToString(),
                                   ParamUri = subscription.ParamUri,
                                   ExtendedInformation = subscription.ExtendedInformation.ToDictionary(ei => ei.Key, ei => ei.Value)
                               };
            _applier.Apply(Request, response);

            return response;
        }