Пример #1
0
        public ReportingSearchPage SearchAsync()
        {
            var res = req.GetJsonAsync <ReportingSearchPage>();

            res.Wait();
            return(res.Result);
        }
Пример #2
0
        private static async Task <List <T> > Load <T>(string parameter, double?lat = null, double?lon = null, CropType?crop = null)
        {
            IFlurlRequest request = $"{Constants.BemBaseUrl}?type={parameter}&tkn={Constants.BemToken}"
                                    .WithBasicAuth(Constants.BemUsername, Constants.BemPassword);

            if (lat != null)
            {
                request.SetQueryParam("lat", lat.Value.ToString(CultureInfo.InvariantCulture));
            }

            if (lon != null)
            {
                request.SetQueryParam("lon", lon.Value.ToString(CultureInfo.InvariantCulture));
            }

            if (crop != null && crop == CropType.Corn) //TODO: use crop types
            {
                request.SetQueryParam("cultivo", "Maiz");
            }

            List <T> data = null;

            try
            {
                data = await request.GetJsonAsync <List <T> >();
            }
            catch (Exception)
            {
            }

            return(data);
        }
Пример #3
0
        public static async Task <CiatData> LoadData(Position position, string crop)
        {
            string        lat     = position.Latitude.ToString().Replace(",", ".");
            string        lon     = position.Longitude.ToString().Replace(",", ".");
            IFlurlRequest request = Constants
                                    .MatrizBaseUrl
                                    .SetQueryParams(
                new
            {
                lat     = lat,
                lon     = lon,
                type    = "matriz",
                tkn     = Constants.BemToken,
                cultivo = crop
            })
                                    .WithBasicAuth(Constants.BemUsername, Constants.BemPassword);

            List <CiatResponseData> responseData;

            try
            {
                responseData = await request.GetJsonAsync <List <CiatResponseData> >();
            }
            catch (Exception e)
            {
                return(null);
            }

            return(CiatData.FromResponse(responseData, request.Url));
        }
Пример #4
0
        /// <inheritdoc />
        public async Task <TSource?> FindAsync(string docId, bool withConflicts    = false,
                                               CancellationToken cancellationToken = default)
        {
            try
            {
                IFlurlRequest request = NewRequest()
                                        .AppendPathSegment(docId);

                if (withConflicts)
                {
                    request = request.SetQueryParam("conflicts", "true");
                }

                TSource document = await request
                                   .GetJsonAsync <TSource>(cancellationToken)
                                   .SendRequestAsync()
                                   .ConfigureAwait(false);

                InitAttachments(document);
                return(document);
            }
            catch (CouchNotFoundException)
            {
                return(null);
            }
        }
Пример #5
0
        public async Task <List <T> > GetAllAfterDateAsync <T>(string resourceUri, DateTime time, int?previousId = null)
        {
            IFlurlRequest request = _baseApiUrl.AppendPathSegment(resourceUri).WithHeader("X-API-Key", "dummy-secret").SetQueryParam("after", time);

            if (previousId.HasValue)
            {
                request.SetQueryParam("previousId", previousId.Value);
            }
            return(await request.GetJsonAsync <List <T> >());
        }
 public async static Task <T> GetJsonWithDefaultAsync <T>(this IFlurlRequest request, System.Net.HttpStatusCode httpStatusCode)
 {
     try
     {
         return(await request.GetJsonAsync <T>());
     }
     catch (FlurlHttpException ex)
     {
         if (ex.Call.HttpStatus == httpStatusCode)
         {
             return(default);
Пример #7
0
        public async Task <T> GetAsync <T>(string resourceUri, params string[] query)
        {
            IFlurlRequest request = _baseApiUrl.AppendPathSegment(resourceUri).WithHeader("X-API-Key", "dummy-secret");

            foreach (string param in query)
            {
                request = request.SetQueryParam(param);
            }
            //Console.WriteLine(request);
            return(await request.GetJsonAsync <T>());
        }
Пример #8
0
        async Task <VstsAgent> GetAgentAsync(int poolId, int agentId)
        {
            string        requestPath  = string.Format(AgentPathSegmentFormat, DevOpsAccessSetting.AzureOrganization, poolId, agentId);
            IFlurlRequest agentRequest = DevOpsAccessSetting.BaseUrl
                                         .AppendPathSegment(requestPath)
                                         .SetQueryParam("api-version", "5.1")
                                         .SetQueryParam("includeCapabilities", "true")
                                         .WithBasicAuth(string.Empty, this.accessSetting.MsazurePAT);

            return(await agentRequest.GetJsonAsync <VstsAgent>().ConfigureAwait(false));
        }
Пример #9
0
        public async Task <T> Get <T>(object filters = null)
        {
            IFlurlRequest request = getPath();

            if (filters != null)
            {
                request.SetQueryParams(filters);
            }

            return(await request.GetJsonAsync <T>());
        }
Пример #10
0
        public async Task <List <T> > GetAllAsync <T>(string resourceUri, params string[] query)
        {
            IFlurlRequest request  = _baseApiUrl.AppendPathSegment(resourceUri).WithHeader("X-API-Key", "dummy-secret");
            List <T>      response = new List <T>();

            foreach (string param in query)
            {
                request = request.SetQueryParam(param);
            }

            return(await request.GetJsonAsync <List <T> >());
        }
Пример #11
0
        public async Task <IEnumerable <PostView> > GetAll(object filters = null)
        {
            IFlurlRequest request = $"{baseUrl}/{Path}/latest".WithOAuthBearerToken(Token);

            ;

            if (filters != null)
            {
                request.SetQueryParams(filters);
            }

            return(await request.GetJsonAsync <IEnumerable <PostView> >());
        }
Пример #12
0
        public async Task <List <T> > GetAllBetweenDatesAsync <T>(string resourceUri, DateTime from, DateTime to, int?previousId = null, bool isDone = false)
        {
            IFlurlRequest request = _baseApiUrl.AppendPathSegment(resourceUri).WithHeader("X-API-Key", "dummy-secret").SetQueryParam("after", from).SetQueryParam("before", to);

            if (previousId.HasValue)
            {
                request.SetQueryParam("previousId", previousId.Value);
            }
            if (isDone)
            {
                request.SetQueryParam("isDone", isDone);
            }
            return(await request.GetJsonAsync <List <T> >());
        }
Пример #13
0
        public IEnumerable <AuditLogEntry> Enumerate(IFlurlRequest request)
        {
            var more = true;

            while (more)
            {
                var result = request.GetJsonAsync <AuditLogEntries>().ConfigureAwait(false).GetAwaiter().GetResult();
                foreach (var entry in result.DecoratedAuditLogEntries)
                {
                    yield return(entry);
                }

                request.SetQueryParam("continuationToken", result.ContinuationToken);
                more = result.ContinuationToken != null;
            }
        }
Пример #14
0
        /// <inheritdoc/>
        public Task <CouchViewList <TKey, TValue, TSource> > GetDetailedViewAsync <TKey, TValue>(string design, string view,
                                                                                                 CouchViewOptions <TKey>?options = null, CancellationToken cancellationToken = default)
        {
            Check.NotNull(design, nameof(design));
            Check.NotNull(view, nameof(view));

            IFlurlRequest request = NewRequest()
                                    .AppendPathSegments("_design", design, "_view", view);

            Task <CouchViewList <TKey, TValue, TSource> >?requestTask = options == null
                ? request.GetJsonAsync <CouchViewList <TKey, TValue, TSource> >(cancellationToken)
                : request
                                                                        .PostJsonAsync(options, cancellationToken)
                                                                        .ReceiveJson <CouchViewList <TKey, TValue, TSource> >();

            return(requestTask.SendRequestAsync());
        }
Пример #15
0
        /// <summary>
        /// Returns a sorted list of changes made to documents in the database.
        /// </summary>
        /// <remarks>
        /// Only the most recent change for a given document is guaranteed to be provided.
        /// </remarks>
        /// <param name="options">Options to apply to the request.</param>
        /// <param name="filter">A filter to apply to the result.</param>
        /// <returns></returns>
        public async Task <ChangesFeedResponse <TSource> > GetChangesAsync(ChangesFeedOptions options = null, ChangesFeedFilter filter = null)
        {
            IFlurlRequest request = NewRequest()
                                    .AppendPathSegment("_changes");

            if (options?.LongPoll == true)
            {
                _ = request.SetQueryParam("feed", "longpoll");
            }

            SetChangesFeedOptions(request, options);

            return(filter == null
                ? await request.GetJsonAsync <ChangesFeedResponse <TSource> >()
                   .ConfigureAwait(false)
                : await QueryWithFilterAsync(request, filter)
                   .ConfigureAwait(false));
        }
Пример #16
0
        public IEnumerable <TResponse> Enumerate(IFlurlRequest request)
        {
            request.SetQueryParam("top", Top);
            var skip = 0;

            var more = true;

            while (more)
            {
                var result = request.GetJsonAsync <Entitlements <TResponse> >().ConfigureAwait(false).GetAwaiter().GetResult();
                foreach (var item in result.Items)
                {
                    yield return(item);
                }
                skip += Top;
                request.SetQueryParam("skip", skip);
                more = result.Items.Any();
            }
        }
Пример #17
0
        public async Task <IList <VstsAgent> > GetAgentsAsync(int poolId)
        {
            string        requestPath      = string.Format(AgentListPathSegmentFormat, DevOpsAccessSetting.AzureOrganization, poolId);
            IFlurlRequest agentListRequest = DevOpsAccessSetting.BaseUrl
                                             .AppendPathSegment(requestPath)
                                             .SetQueryParam("api-version", "5.1")
                                             .WithBasicAuth(string.Empty, this.accessSetting.MsazurePAT);

            VstsAgentList agentList = await agentListRequest.GetJsonAsync <VstsAgentList>().ConfigureAwait(false);

            // Get capabilities for each agent
            var agentsWithCapabilities = new List <VstsAgent>();

            foreach (int agentId in agentList.Value.Select(a => a.Id))
            {
                agentsWithCapabilities.Add(await this.GetAgentAsync(poolId, agentId).ConfigureAwait(false));
            }

            return(agentsWithCapabilities);
        }
Пример #18
0
        /// <inheritdoc />
        public async Task <ChangesFeedResponse <TSource> > GetChangesAsync(ChangesFeedOptions?options = null, ChangesFeedFilter?filter = null, CancellationToken cancellationToken = default)
        {
            IFlurlRequest request = NewRequest()
                                    .AppendPathSegment("_changes");

            if (options?.LongPoll == true)
            {
                _ = request.SetQueryParam("feed", "longpoll");
            }

            if (options != null)
            {
                request = request.ApplyQueryParametersOptions(options);
            }

            return(filter == null
                ? await request.GetJsonAsync <ChangesFeedResponse <TSource> >(cancellationToken)
                   .ConfigureAwait(false)
                : await request.QueryWithFilterAsync <TSource>(_queryProvider, filter, cancellationToken)
                   .ConfigureAwait(false));
        }
Пример #19
0
        /// <summary>
        /// Finds the document with the given ID. If no document is found, then null is returned.
        /// </summary>
        /// <param name="docId">The document ID.</param>
        /// <param name="withConflicts">Set if conflicts array should be included.</param>
        /// <returns>A task that represents the asynchronous operation. The task result contains the element found, or null.</returns>
        public async Task <TSource> FindAsync(string docId, bool withConflicts = false)
        {
            try
            {
                IFlurlRequest request = NewRequest()
                                        .AppendPathSegment(docId);

                if (withConflicts)
                {
                    request = request.SetQueryParam("conflicts", true);
                }

                return(await request
                       .GetJsonAsync <TSource>()
                       .SendRequestAsync()
                       .ConfigureAwait(false));
            }
            catch (CouchNotFoundException)
            {
                return(null);
            }
        }
Пример #20
0
        public static async Task <JObject> GetJObjectAsync(this IFlurlRequest request, CancellationToken cancellationToken = default, HttpCompletionOption completionOption = HttpCompletionOption.ResponseContentRead)
        {
            var json = await request.GetJsonAsync(cancellationToken, completionOption).ConfigureAwait(false);

            return(JObject.FromObject(json));
        }
Пример #21
0
        private static async Task <TOut> SendAsync <TOut>(IFlurlRequest flurlRequest, WebRequestContext requestContext)
        {
            TOut result = default;

            try
            {
                requestContext.AttemptCnt++;

                if (requestContext.MethodType == WebMethodType.GET)
                {
                    if (requestContext.SerializeType == SerializeType.Json)
                    {
                        result = await flurlRequest.GetJsonAsync <TOut>();
                    }
                    else
                    {
                        var rawData = await flurlRequest.GetBytesAsync();

                        result = MessagePackSerializer.Deserialize <TOut>(rawData);
                    }
                }
                else if (requestContext.MethodType == WebMethodType.POST)
                {
                    if (requestContext.SerializeType == SerializeType.Json)
                    {
                        result = await flurlRequest
                                 .PostJsonAsync((string)requestContext)
                                 .ReceiveJson <TOut>();
                    }
                    else
                    {
                        var rawData = await flurlRequest
                                      .PostAsync(new ByteArrayContent(requestContext))
                                      .ReceiveBytes();

                        result = MessagePackSerializer.Deserialize <TOut>(rawData);
                    }
                }
            }
            catch (FlurlHttpException flurlException)
            {
                if (requestContext.AttemptCnt < WebConfig.ReTryCount)
                {
                    result = await RequestRetryPolicy <TOut>(flurlException, flurlRequest, requestContext);
                }
                else
                {
                    if (_exceptionHandler != null)
                    {
                        await _exceptionHandler.Invoke(flurlException);
                    }
                }
            }
            catch (Exception ex)
            {
                if (_exceptionHandler != null)
                {
                    await _exceptionHandler.Invoke(ex);
                }
            }

            return(result);
        }
Пример #22
0
 public IAsyncEnumerable <object> Enumerator(IFlurlRequest request) =>
 request.GetJsonAsync <object>().ToAsyncEnumerable();
Пример #23
0
        internal static async Task <JObject> GetJObjectAsync(this IFlurlRequest request)
        {
            var json = await request.GetJsonAsync().ConfigureAwait(false);

            return(json is null ? null : JObject.FromObject(json));
        }
 public static Task <T> GetAsync <T>(this IFlurlRequest request, CancellationToken cancellation)
 => request.GetJsonAsync <T>(cancellation);