public async Task <BulkResponse> ExecuteAsync(RescheduleBulkExecuteContext context, BulkRequest bodyObject)
        {
            using (var client = HttpClientProvider.GetHttpClient(configuration))
            {
                NameValueCollection queryParameters = HttpUtility.ParseQueryString(string.Empty);
                SetQueryParamIfNotNull(queryParameters, "bulkId", context.BulkId);

                string queryString = queryParameters.ToString();
                string endpoint    = path + "?" + queryString;

                string      requestJson = JsonConvert.SerializeObject(bodyObject, Settings);
                HttpContent content     = new StringContent(requestJson, Encoding.UTF8, "application/json");

                var response = await client.PutAsync(endpoint, content);

                string contents = await response.Content.ReadAsStringAsync();

                if (response.IsSuccessStatusCode)
                {
                    return(JsonConvert.DeserializeObject <BulkResponse>(contents, Settings));
                }
                else
                {
                    throw new InfobipApiException(
                              response.StatusCode,
                              JsonConvert.DeserializeObject <ApiErrorResponse>(contents, Settings)
                              );
                }
            }
        }
        private static async void RescheduleMessageAsync(String bulkId)
        {
            DateTimeOffset sendAt            = NOW.AddMinutes(30);
            BulkRequest    rescheduleRequest = new BulkRequest {
                SendAt = new FormattedDate(sendAt)
            };
            RescheduleBulkExecuteContext context = new RescheduleBulkExecuteContext {
                BulkId = bulkId
            };

            await new RescheduleBulk(BASIC_AUTH_CONFIGURATION).ExecuteAsync(context, rescheduleRequest);
        }