/// <summary>
        /// Get all milestones available to the user
        /// </summary>
        /// <returns></returns>
        public async Task <MilestonesResponse> GetAllMilestonesAsync(int page)
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var data = await client.GetAsync <MilestonesResponse>("milestones.json" + "?page=" + page, null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    return((MilestonesResponse)data.ContentObj);
                }
            }
            return(null);
        }
        public async Task <ExpenseResponse> GetAllExpensesAsync()
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var data = await client.GetAsync <ExpenseResponse>("expenses.json", null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    return((ExpenseResponse)data.ContentObj);
                }
            }
            return(null);
        }
Example #3
0
        public async Task <TimeEntryResponse> GetAllTime_EntriesAsync_Billable(string billable, int page)
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var data = await client.GetAsync <TimeEntryResponse>("time_entries.json" + "?billableType=" + billable + "&page=" + page + "&pageSize=500" + "&projectType=ALL" + "&sortorder=DESC", null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    var response = (TimeEntryResponse)data.ContentObj;
                    return(response);
                }
            }
            return(null);
        }
Example #4
0
        /// <summary>
        /// Get all time entries in a provided date range
        /// </summary>
        /// <param name="page">int page index</param>
        /// <param name="pageSize">int page size / number of results per page</param>
        /// <param name="dateFrom">string date from yyyymmdd</param>
        /// <param name="dateTo">string date to yyyymmdd</param>
        /// <returns></returns>
        public async Task <TimeEntryResponse> GetAllTime_Entries_InDateRangeAsync(int page, string dateFrom, string dateTo)
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var data = await client.GetAsync <TimeEntryResponse>("time_entries.json" + "?page=" + page + "&pageSize=500" + "&fromDate=" + dateFrom + "&toDate=" + dateTo + "&projectType=ALL" + "&sortorder=DESC", null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    var response = (TimeEntryResponse)data.ContentObj;
                    return(response);
                }
            }
            return(null);
        }
Example #5
0
        /// <summary>
        /// Get all projects the user has access to after a provided date
        /// </summary>
        /// <param name="date">string format(yyyymmdd)</param>
        /// <returns></returns>
        public async Task <ProjectsResponse> GetAllProjectsCreatedAfterDateAsync(string date)
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var url      = $"projects.json" + "?updatedAfterDate=" + date;
                var endpoint = url.ToString();
                var data     = await client.GetAsync <ProjectsResponse>(endpoint, null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    return((ProjectsResponse)data.ContentObj);
                }
            }
            return(null);
        }
Example #6
0
        /// <summary>
        /// Get all time entries for a project providing a project id
        /// </summary>
        /// <param name="projectId">project id to be queried</param>
        /// <param name="page">int page index</param>
        /// <param name="pageSize">int page size / number of results per page</param>
        /// <returns></returns>
        public async Task <TimeEntryResponse> GetAllTime_EntriesAsync_ForProject(int projectId, int page)
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var url      = $"projects/{projectId}/time_entries.json" + "?page=" + page + "&pageSize=500" + "&projectType=ALL" + "&sortorder=DESC";
                var endpoint = url.ToString();
                var data     = await client.GetAsync <TimeEntryResponse>(endpoint, null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    var response = (TimeEntryResponse)data.ContentObj;
                    return(response);
                }
            }
            return(null);
        }
Example #7
0
        public async Task <TimeTotalsAcrossProjectsResponse> GetTotal_Time_On_Project()
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var url      = $"projects/time/total.json" + "?projectType=ALL";
                var endpoint = url.ToString();
                var data     = await client.GetAsync <TimeTotalsAcrossProjectsResponse>(endpoint, null);

                if (data.StatusCode == HttpStatusCode.OK)
                {
                    var response = (TimeTotalsAcrossProjectsResponse)data.ContentObj;
                    return(response);
                }
            }
            return(null);
        }
Example #8
0
        /// <summary>
        ///   Returns all projects the user has access to
        /// </summary>
        /// <returns></returns>
        public async Task <ProjectsResponse> GetAllProjectsAsync()
        {
            using (var client = new AuthorisedHttpClient(_client))
            {
                var data = await client.GetAsync <ProjectsResponse>("projects.json" + "?status=ALL", null);

                if (data.StatusCode == HttpStatusCode.NotModified)
                {
                    return((ProjectsResponse)data.ContentObj);
                }
                if (data.StatusCode == HttpStatusCode.OK)
                {
                    return((ProjectsResponse)data.ContentObj);
                }
            }
            return(null);
        }