Пример #1
0
 public static async Task <TChannel> CreateChannel <TChannel>(this IRequestBuilder requestBuilder,
                                                              ITargetedRestClient client, CancellationToken cancellationToken) where TChannel : IAwareDataChannel
 {
     using (var request = requestBuilder.Build())
     {
         return(await client.OpenChannel <TChannel>(request, cancellationToken));
     }
 }
 public static async Task <HttpResponseMessage> Execute(this IRequestBuilder requestBuilder, IRestClient client)
 {
     using (var request = requestBuilder.Build())
     {
         var response = await(client ?? DefaultClient).SendMessage(request, CancellationToken.None);
         return(response);
     }
 }
Пример #3
0
        private IRequest GetRequest(SkillRequest alexaRequest)
        {
            var parser          = new HttpRequestParser();
            var request         = parser.Parse(alexaRequest);
            var concreteRequest = requestBuilder.Build(request);

            return(Guard.ExceptionWhenNull(concreteRequest));
        }
Пример #4
0
        internal string PrepareOfxRequest(IRequestBuilder authBuilder, AbstractTopLevelMessageSet messageSet)
        {
            var authMessage = authBuilder.Build();
            var ofxRequest  = new OFX {
                Items = new[] { authMessage, messageSet }
            };
            var content = _serializer.Serialize(ofxRequest);

            return(content);
        }
Пример #5
0
        public async void PullValue()
        {
            var client = new WebClient {
                Encoding = Encoding.UTF8
            };

            var request  = builder.Build();
            var responce = await client.UploadStringTaskAsync(Url, request);

            Updated(parser.ParseBalance(responce));
        }
Пример #6
0
        public void Execute(CreateTagRequest request, Action <CreateTagResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/tags/" + request.Tag);

            webRequest.Method = "PUT";
            var asyncRequest = new AsyncRequest
            {
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new CreateTagResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #7
0
        public static async Task <HttpResponseMessage> SendAsync(IRequestBuilder requestBuilder, HttpClient client, CancellationToken cancellationToken = default)
        {
            if (requestBuilder == null)
            {
                throw new ArgumentNullException(nameof(requestBuilder));
            }
            if (client == null)
            {
                throw new ArgumentNullException(nameof(client));
            }

            using var req = requestBuilder.Build();
            return(await client.SendAsync(req, cancellationToken).ConfigureAwait(false));
        }
Пример #8
0
        public void Execute(GetFeedRequest request, Action <GetFeedResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/feeds/" + request.FeedId);

            webRequest.Method      = "Get";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                ReadFromResponse  = stream => responseCallback(GetFeedResponseDeSerializer.DeSerialize(stream)),
                Request           = webRequest,
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #9
0
        public void Execute(BroadcastNotificationRequest request, Action<BroadcastNotificationResponse> responseCallback, Action<Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/push/broadcast/");
            webRequest.Method = "POST";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
                                   {
                                       WriteToRequest = stream => stream.WriteToStream(request.Serialize),
                                       Request = webRequest,
                                       ReadFromResponse = o => responseCallback(new BroadcastNotificationResponse()),
                                       ExceptionCallback = exceptionCallback,
                                   };

            asyncRequest.Execute();
        }
Пример #10
0
        public void Execute(AddTagToDeviceRequest request, Action <AddTagToDeviceResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var url        = string.Format("https://go.urbanairship.com/api/device_tokens/{0}/tags/{1}", request.DeviceToken, request.Tag);
            var webRequest = RequestBuilder.Build(url);

            webRequest.Method = "PUT";

            var asyncRequest = new AsyncRequest
            {
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new AddTagToDeviceResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #11
0
        public void Execute(DeleteFeedRequest request, Action <DeleteFeedResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/feeds/" + request.FeedId);

            webRequest.Method      = "DELETE";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new DeleteFeedResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #12
0
        public void Execute(Action <GetAllFeedsResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var request = RequestBuilder.Build("https://go.urbanairship.com/api/feeds/");

            request.Method      = "Get";
            request.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                ReadFromResponse  = stream => responseCallback(FeedDeSerializer.DeSerializeMultiple(stream)),
                Request           = request,
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
        public void Execute(DeleteRegistrationRequest request, Action <DeleteRegistrationResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/device_tokens/" + request.DeviceToken);

            webRequest.Method      = "Delete";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new DeleteRegistrationResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #14
0
        public void Execute(RemoveTagFromDeviceRequest request, Action <RemoveTagFromDeviceResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var url        = string.Format("https://go.urbanairship.com/api/device_tokens/{0}/tags/{1}", request.DeviceToken, request.TagToRemove);
            var webRequest = RequestBuilder.Build(url);

            webRequest.Method      = "DELETE";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new RemoveTagFromDeviceResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #15
0
        public void Execute(AddRegistrationRequest request, Action <AddRegistrationResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/device_tokens/" + request.DeviceToken);

            webRequest.Method      = "PUT";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                WriteToRequest    = stream => stream.WriteToStream(request.Serialize),
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new AddRegistrationResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #16
0
        public void Execute(GetRegistrationsRequest request, Action <GetRegistrationsResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var url        = string.Format("https://go.urbanairship.com/api/device_tokens/?Limit={0}&start={1}", request.Limit, request.Start);
            var webRequest = RequestBuilder.Build(url);

            webRequest.Method      = "GET";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                ReadFromResponse  = stream => responseCallback(GetRegistrationsResponseDeSerializer.DeSerialize(stream)),
                Request           = webRequest,
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #17
0
        public void Execute(PushNotificationRequest notification, Action <PushNotificationResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var request = RequestBuilder.Build("https://go.urbanairship.com/api/push/");

            request.Method      = "POST";
            request.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                Request           = request,
                ReadFromResponse  = o => responseCallback(new PushNotificationResponse()),
                ExceptionCallback = exceptionCallback,
                WriteToRequest    = stream => stream.WriteToStream(notification.Serialize),
            };

            asyncRequest.Execute();
        }
Пример #18
0
        public void Execute(CreateFeedRequest request, Action <CreateFeedResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/feeds/");

            webRequest.Method      = "POST";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                WriteToRequest    = stream => stream.WriteToStream(request.Serialize),
                Request           = webRequest,
                ReadFromResponse  = stream => responseCallback(CreateFeedResponseDeSerializer.DeSerialize(stream)),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #19
0
        public void Execute(FeedbackRequest request, Action <FeedbackResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var url        = "https://go.urbanairship.com/api/device_tokens/feedback/?since=" + request.Since.ToIso8601();
            var webRequest = RequestBuilder.Build(url);

            webRequest.Method      = "GET";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                ReadFromResponse  = stream => responseCallback(FeedbackResponseDeSerializer.DeSerialize(stream)),
                Request           = webRequest,
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #20
0
        public void Execute(ModifyFeedRequest newFeed, Action <ModifyFeedResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/feeds/" + newFeed.FeedId);

            webRequest.Method      = "PUT";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                WriteToRequest    = stream => stream.WriteToStream(newFeed.Serialize),
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new ModifyFeedResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #21
0
        public void Execute(GetTagsForDeviceRequest request, Action <GetTagsForDeviceResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build(string.Format("https://go.urbanairship.com/api/device_tokens/{0}/tags/", request.DeviceToken));

            webRequest.Method      = "GET";
            webRequest.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                ReadFromResponse = stream => responseCallback(new GetTagsForDeviceResponse {
                    Tags = TagDeSerializer.DeSerialize(stream).ToList()
                }),
                Request           = webRequest,
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #22
0
        public void Execute(Action <GetTagsResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var request = RequestBuilder.Build("https://go.urbanairship.com/api/tags/");

            request.Method      = "GET";
            request.ContentType = "application/json";

            var asyncRequest = new AsyncRequest
            {
                ReadFromResponse = stream => responseCallback(new GetTagsResponse {
                    Tags = TagDeSerializer.DeSerialize(stream).ToList()
                }),
                Request           = request,
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
Пример #23
0
        public void Execute(PushNotificationRequest request, Action <PushNotificationResponse> responseCallback, Action <Exception> exceptionCallback)
        {
            var webRequest = RequestBuilder.Build("https://go.urbanairship.com/api/push/");

            webRequest.Method      = "POST";
            webRequest.ContentType = "application/json";
            //TODO: must have tags or tokens... validate

            var asyncRequest = new AsyncRequest
            {
                WriteToRequest    = stream => stream.WriteToStream(request.Serialize),
                Request           = webRequest,
                ReadFromResponse  = o => responseCallback(new PushNotificationResponse()),
                ExceptionCallback = exceptionCallback,
            };

            asyncRequest.Execute();
        }
        internal static async Task <string> Fetch(this HttpClient client, IRequestBuilder request,
                                                  CancellationToken ctsToken)
        {
            request
            .WithQueryParameter(
                ("vercode", "38551987"),
                ("api", "23"),
                ("ver", "3.8.55")
                );
            var httpRequestMessage = request.Build();
            var res = await client.SendAsync(httpRequestMessage, ctsToken);

            var raw = await res.Content.ReadAsStringAsync();

            var isError = raw.Contains("token error");

            if (isError)
            {
                Console.WriteLine("Invalid token: " + raw);
            }

            return(raw);
        }
Пример #25
0
 public O Call <I, O>(IRequestBuilder <I, O> buildable)
 {
     return(Call(buildable.Build()));
 }
Пример #26
0
        public async Task ExecuteAsync(string methodName, params object[] parameters)
        {
            var request = _requestBuilder.Build(methodName, parameters);

            await SendRequestAsync(request).ConfigureAwait(false);
        }
Пример #27
0
 public async Task AddMessageAsync(MessageEntity message)
 {
     var endpoint = $"{_resourceUrls.ResourceUrl}/{message.ResourceId}/messages";
     var request  = _requestBuilder.Build(HttpMethod.Post, endpoint, message);
     await _client.SendAsync(request);
 }
Пример #28
0
 public async Task <O> CallAsync <I, O>(IRequestBuilder <I, O> buildable)
 {
     return(await CallAsync(buildable.Build()).ConfigureAwait(false));
 }
Пример #29
0
 public static async Task <HttpResponseMessage> ExecuteOnChannel(this IRequestBuilder requestBuilder, ITargetedRestClient client, IDataChannel channel)
 {
     using (var request = requestBuilder.Build())
         return(await client.SendChannelMessage(request, channel, CancellationToken.None));
 }