Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        /// <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));
        }