public async Task GetSummaryReportAsync_ShouldReturnSummaryReportDto() { var now = DateTimeOffset.UtcNow; var client = await SetupHelper.CreateTestClientAsync(_client, _workspaceId); var project = await SetupHelper.CreateTestProjectAsync(_client, _workspaceId, client.Id); await SetupHelper.CreateTestTimeEntryAsync(_client, _workspaceId, now, project.Id); var userResponse = await _client.GetCurrentUserAsync(); userResponse.IsSuccessful.Should().BeTrue(); var nowWithTimeZone = DateTimeHelper.ConvertToTimeZone(userResponse.Data.Settings.TimeZone, now); var summaryReportRequest = new SummaryReportRequest() { ExportType = ExportType.JSON, DateRangeStart = nowWithTimeZone.AddMinutes(-2), DateRangeEnd = nowWithTimeZone.AddMinutes(2), SortOrder = SortOrderType.DESCENDING, Description = String.Empty, Rounding = false, WithoutDescription = false, AmountShown = AmountShownType.EARNED, Clients = new ClientsFilterDto { Contains = ContainsType.CONTAINS, Ids = new List <string> { client.Id }, Status = StatusType.ACTIVE }, SummaryFilter = new SummaryFilterDto() { Groups = new List <GroupType>() { GroupType.PROJECT } }, TimeZone = userResponse.Data.Settings.TimeZone }; var getSummaryReportResult = await _client.GetSummaryReportAsync(_workspaceId, summaryReportRequest); getSummaryReportResult.IsSuccessful.Should().BeTrue(); getSummaryReportResult.Data.Should().NotBeNull(); // Cleanup var deleteProject = await _client.ArchiveAndDeleteProject(_workspaceId, project.Id); deleteProject.IsSuccessful.Should().BeTrue(); }
/// <summary> /// Obtains the requested Summary Report. /// </summary> public Task <IRestResponse <SummaryReportDto> > GetSummaryReportAsync(string workspaceId, SummaryReportRequest summaryReportRequest) { if (summaryReportRequest.DateRangeStart == null) { throw new ArgumentNullException(nameof(summaryReportRequest.DateRangeStart)); } if (summaryReportRequest.DateRangeEnd == null) { throw new ArgumentNullException(nameof(summaryReportRequest.DateRangeStart)); } if (summaryReportRequest.SummaryFilter == null) { throw new ArgumentNullException(nameof(summaryReportRequest.SummaryFilter)); } var request = new RestRequest($"workspaces/{workspaceId}/reports/summary", Method.POST); request.AddJsonBody(summaryReportRequest); return(_reportsClient.ExecuteAsync <SummaryReportDto>(request)); }