Exemplo n.º 1
0
        public IObservable <IProjectsSummary> GetByWorkspace(long workspaceId, DateTimeOffset startDate, DateTimeOffset?endDate)
        {
            var interval = endDate - startDate;

            if (interval.HasValue && interval > TimeSpan.FromDays(365))
            {
                throw new ArgumentOutOfRangeException(nameof(endDate));
            }

            var parameters = new ProjectsSummaryParameters(startDate, endDate);
            var json       = serializer.Serialize(parameters, SerializationReason.Post, null);

            return(Observable.Create <IProjectsSummary>(async observer =>
            {
                var projectsSummaries = await CreateListObservable <ProjectSummary, IProjectSummary>(endPoints.Summary(workspaceId), credentials.Header, json);
                var summary = new ProjectsSummary {
                    StartDate = startDate, EndDate = endDate, ProjectsSummaries = projectsSummaries
                };

                observer.OnNext(summary);
                observer.OnCompleted();

                return () => { };
            }));
        }
Exemplo n.º 2
0
        public async Task <IProjectsSummary> GetByWorkspace(long workspaceId, DateTimeOffset startDate, DateTimeOffset?endDate)
        {
            var interval = endDate - startDate;

            if (interval.HasValue && interval > TimeSpan.FromDays(365))
            {
                throw new ArgumentOutOfRangeException(nameof(endDate));
            }

            var parameters       = new ProjectsSummaryParameters(startDate, endDate);
            var json             = serializer.Serialize(parameters, SerializationReason.Post);
            var endPoint         = endPoints.Summary(workspaceId);
            var projectSummaries = await
                                   SendRequest <ProjectSummary, IProjectSummary>(endPoint, credentials.Header, json)
                                   .ConfigureAwait(false);

            return(new ProjectsSummary
            {
                StartDate = startDate,
                EndDate = endDate,
                ProjectsSummaries = projectSummaries
            });
        }