Exemplo n.º 1
0
        public async Task<Resource> GetLoggedIn()
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var kvps = new List<KeyValuePair<string, string>>();

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/get_logged_resource", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<ResourceResult>();
                    if (result.code == "ok")
                    {
                        return result.content;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    return null;
                }

            }
        }
Exemplo n.º 2
0
        public async Task<bool> GetProducts()
        {
            using (var client = new PlanboxClient(this.AccessToken, new LoggingHandler(new HttpClientHandler() { CookieContainer = _cookieContainer })))
            {
                var kvps = new List<KeyValuePair<string, string>>();

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/get_products", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<dynamic>();
                    if (result.code == "ok")
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    return false;
                }

            }
        }
Exemplo n.º 3
0
        public async Task<IEnumerable<Timesheet>> GetTimesheet(DateTime start, DateTime end)
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var since = start.ToString("yyyy-MM-dd");
                var until = end.ToString("yyyy-MM-dd");

                var kvps = new List<KeyValuePair<string, string>>
                {
                    new KeyValuePair<string, string>("since", since),
                    new KeyValuePair<string, string>("until", until)
                };

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/get_timesheet", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<TimesheetResult>();
                    if (result.code == "ok")
                    {
                        var timesheet = result.content;

                        // Get your contacts
                        var resources = await this.GetContacts();

                        // Translate that collection into Timesheet objects
                        return timesheet.AsTimesheets(resources);
                    }
                    else
                    {
                        // TODO: result was not OK
                        return new List<Timesheet>();
                    }
                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    throw new Exception(result);
                }
            }
        }
Exemplo n.º 4
0
        public async Task<IEnumerable<Resource>> GetResources(string product_id)
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var kvps = new List<KeyValuePair<string, string>>
                {
                    new KeyValuePair<string, string>("product_id", product_id),
                };

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/get_resources", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<ResourcesResult>();
                    if (result.code == "ok")
                    {
                        var resources = result.content;
                        return resources;
                    }
                    else
                    {
                        // TODO: result was not OK
                        return new List<Resource>();
                    }


                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    throw new Exception(result);
                }

            }
        }
Exemplo n.º 5
0
        public async Task<IEnumerable<Story>> GetStories(string product_id, IEnumerable<string> iteration_ids = null, IEnumerable<string> resource_ids = null)
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var kvps = new List<KeyValuePair<string, string>>
                {
                    new KeyValuePair<string, string>("product_id", product_id),
                };

                if (iteration_ids != null)
                {
                    kvps.AddRange(iteration_ids.Select(id => new KeyValuePair<string, string>("iteration_id[]", id)));
                }

                if (resource_ids != null)
                {
                    kvps.AddRange(resource_ids.Select(id => new KeyValuePair<string, string>("resource_id[]", id)));
                }
                

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/get_stories", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<StoriesResult>();
                    if (result.code == "ok")
                    {
                        var stories = result.content;
                        return stories;
                    }
                    else
                    {
                        // TODO: result was not OK
                        return new List<Story>();
                    }


                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    throw new Exception(result);
                }

            }
        }
Exemplo n.º 6
0
        public async Task<PlanboxTask> AddTask(string story_id, string name = null, string description = null, string tags = null, string resource_id = null, string role_id = null, string estimate = null, decimal? duration = null, DateTime? timer_start = null, int? timer_sum_in_seconds = null, string status = null)
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var kvps = new List<KeyValuePair<string, string>>();

                kvps.Add(new KeyValuePair<string, string>("story_id", story_id));

                AddIfNotNull(kvps, "name", name);
                AddIfNotNull(kvps, "description", description);
                AddIfNotNull(kvps, "tags", tags);
                AddIfNotNull(kvps, "resource_id", resource_id);
                AddIfNotNull(kvps, "role_id", role_id);
                AddIfNotNull(kvps, "estimate", estimate);
                AddIfNotNull(kvps, "duration", duration);
                AddIfNotNull(kvps, "timer_start", timer_start);
                AddIfNotNull(kvps, "timer_sum_in_seconds", timer_sum_in_seconds);
                AddIfNotNull(kvps, "status", status);

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/add_task", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<TaskResult>();
                    if (result.code == "ok")
                    {
                        return result.content;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    return null;
                }

            }
        }
Exemplo n.º 7
0
        public async Task<Story> UpdateStoryStatus(string story_id, UpdateStoryAction action)
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var kvps = new List<KeyValuePair<string, string>>();

                kvps.Add(new KeyValuePair<string, string>("story_id", story_id));
                kvps.Add(new KeyValuePair<string, string>("action", action.ToString()));

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("nik/update_story_status", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<UpdateStoryStatusResult>();
                    if (result.code == "ok")
                    {
                        return result.content.story;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    return null;
                }

            }
        }
Exemplo n.º 8
0
        public async Task<IEnumerable<Story>> UpdateStory(string story_id, string name = null, string status = null, string description = null, int? points = null)
        {
            using (var client = new PlanboxClient(this.AccessToken, new HttpClientHandler() { CookieContainer = _cookieContainer }))
            {
                var kvps = new List<KeyValuePair<string, string>>();

                kvps.Add(new KeyValuePair<string, string>("story_id", story_id));

                AddIfNotNull(kvps, "name", name);
                AddIfNotNull(kvps, "description", description);
                AddIfNotNull(kvps, "status", status);
                

                var formContent = new FormUrlEncodedContent(kvps);
                HttpResponseMessage response = await client.PostAsync("api/update_story", formContent);
                if (response.IsSuccessStatusCode)
                {
                    var result = await response.Content.ReadAsAsync<StoriesResult>();
                    if (result.code == "ok")
                    {
                        return result.content;
                    }
                    else
                    {
                        return null;
                    }
                }
                else
                {
                    var result = await response.Content.ReadAsStringAsync();
                    return null;
                }

            }
        }