コード例 #1
0
 public void Reset()
 {
     // Clear variables
     _token        = null;
     _rangeMin     = DateTime.Now;
     _rangeMax     = DateTime.Now;
     _currentUser  = null;
     _punchFilters = null;
 }
コード例 #2
0
ファイル: PunchService.cs プロジェクト: eastcoasttech/brizbee
        public async Task <(List <Punch>, long?)> GetExpandedPunchesAsync(DateTime min, DateTime max, int pageSize = 100, int skip = 0, string sortBy = "Punches/InAt", string sortDirection = "ASC", PunchFilters filters = null)
        {
            var filterParameters = new StringBuilder();

            if (filters != null)
            {
                if (filters.Users != null)
                {
                    filterParameters.Append(string.Join("", filters.Users.Select(x => $"&userIds={x.Id}")));
                }

                if (filters.Customers != null)
                {
                    filterParameters.Append(string.Join("", filters.Customers.Select(x => $"&customerIds={x.Id}")));
                }

                if (filters.Projects != null)
                {
                    filterParameters.Append(string.Join("", filters.Projects.Select(x => $"&jobIds={x.Id}")));
                }

                if (filters.Tasks != null)
                {
                    filterParameters.Append(string.Join("", filters.Tasks.Select(x => $"&taskIds={x.Id}")));
                }
            }

            var response = await _apiService.GetHttpClient().GetAsync($"api/PunchesExpanded?pageSize={pageSize}&skip={skip}&min={min.ToString("yyyy-MM-ddTHH:mm:ssZ")}&max={max.ToString("yyyy-MM-ddTHH:mm:ssZ")}&orderBy={sortBy}&orderByDirection={sortDirection}{filterParameters}");

            if (!response.IsSuccessStatusCode)
            {
                return(new List <Punch>(0), 0);
            }

            using var responseContent = await response.Content.ReadAsStreamAsync();

            var value = await JsonSerializer.DeserializeAsync <List <Punch> >(responseContent, options);

            var total = long.Parse(response.Headers.GetValues("X-Paging-TotalRecordCount").FirstOrDefault());

            return(value, total);
        }