Beispiel #1
0
        public async Task <Batch <AbsenceRecord> > GetAllAbsencesAsync(AbsenceListMode viewMode = AbsenceListMode.All, string?skip = null, int?top = 100, string?member = null, List <string>?members = null, string?location = null, string?team = null, DateTime?since = null, DateTime?till = null, string?reason = null, Func <Partial <Batch <AbsenceRecord> >, Partial <Batch <AbsenceRecord> > >?partial = null, CancellationToken cancellationToken = default)
        {
            var queryParameters = new NameValueCollection();

            if (skip != null)
            {
                queryParameters.Append("$skip", skip);
            }
            if (top != null)
            {
                queryParameters.Append("$top", top?.ToString());
            }
            if (member != null)
            {
                queryParameters.Append("member", member);
            }
            if (members != null)
            {
                queryParameters.Append("members", members.Select(it => it));
            }
            if (location != null)
            {
                queryParameters.Append("location", location);
            }
            if (team != null)
            {
                queryParameters.Append("team", team);
            }
            if (since != null)
            {
                queryParameters.Append("since", since?.ToString("yyyy-MM-dd"));
            }
            if (till != null)
            {
                queryParameters.Append("till", till?.ToString("yyyy-MM-dd"));
            }
            queryParameters.Append("viewMode", viewMode.ToEnumString());
            if (reason != null)
            {
                queryParameters.Append("reason", reason);
            }
            queryParameters.Append("$fields", (partial != null ? partial(new Partial <Batch <AbsenceRecord> >()) : Partial <Batch <AbsenceRecord> > .Default()).ToString());

            return(await _connection.RequestResourceAsync <Batch <AbsenceRecord> >("GET", $"api/http/absences{queryParameters.ToQueryString()}", cancellationToken));
        }
Beispiel #2
0
 public IAsyncEnumerable <AbsenceRecord> GetAllAbsencesAsyncEnumerable(AbsenceListMode viewMode = AbsenceListMode.All, string?skip = null, int?top = 100, string?member = null, List <string>?members = null, string?location = null, string?team = null, DateTime?since = null, DateTime?till = null, string?reason = null, Func <Partial <AbsenceRecord>, Partial <AbsenceRecord> >?partial = null, CancellationToken cancellationToken = default)
 => BatchEnumerator.AllItems((batchSkip, batchCancellationToken) => GetAllAbsencesAsync(viewMode: viewMode, top: top, member: member, members: members, location: location, team: team, since: since, till: till, reason: reason, cancellationToken: cancellationToken, skip: batchSkip, partial: builder => Partial <Batch <AbsenceRecord> > .Default().WithNext().WithTotalCount().WithData(partial != null ? partial : _ => Partial <AbsenceRecord> .Default())), skip, cancellationToken);