From 818de0b3f04a163d415aff9f815ab33679e5d4d2 Mon Sep 17 00:00:00 2001 From: Gus Emery Date: Thu, 26 Jan 2017 11:49:13 -0600 Subject: [PATCH] Added TimeOffSerivce and WhoIsOut method call and supporting models. Also fixed TLS12 issues within the client. --- .vs/Bamboo.Sharp.Api/v14/.suo | Bin 0 -> 46080 bytes Bamboo.Sharp.Api.sln | 2 +- Bamboo.Sharp.Api/Bamboo.Sharp.Api.csproj | 5 +++ Bamboo.Sharp.Api/Clients/RequestClient.cs | 2 + Bamboo.Sharp.Api/Model/Calendar.cs | 14 +++++++ Bamboo.Sharp.Api/Model/Employee.cs | 24 ++++++++++++ Bamboo.Sharp.Api/Model/Holiday.cs | 17 ++++++++ Bamboo.Sharp.Api/Model/Item.cs | 32 +++++++++++++++ Bamboo.Sharp.Api/Services/TimeOffService.cs | 41 ++++++++++++++++++++ 9 files changed, 136 insertions(+), 1 deletion(-) create mode 100644 .vs/Bamboo.Sharp.Api/v14/.suo create mode 100644 Bamboo.Sharp.Api/Model/Calendar.cs create mode 100644 Bamboo.Sharp.Api/Model/Employee.cs create mode 100644 Bamboo.Sharp.Api/Model/Holiday.cs create mode 100644 Bamboo.Sharp.Api/Model/Item.cs create mode 100644 Bamboo.Sharp.Api/Services/TimeOffService.cs diff --git a/.vs/Bamboo.Sharp.Api/v14/.suo b/.vs/Bamboo.Sharp.Api/v14/.suo new file mode 100644 index 0000000000000000000000000000000000000000..877b85b625d5652c0bd0083104627ddf62cb89e4 GIT binary patch literal 46080 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 literal 0 HcmV?d00001 diff --git a/Bamboo.Sharp.Api.sln b/Bamboo.Sharp.Api.sln index 18b38d2..50fb972 100644 --- a/Bamboo.Sharp.Api.sln +++ b/Bamboo.Sharp.Api.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 -VisualStudioVersion = 14.0.23107.0 +VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Bamboo.Sharp.Api", "Bamboo.Sharp.Api\Bamboo.Sharp.Api.csproj", "{09B2E97B-6103-4693-9EBB-0450DF36465B}" EndProject diff --git a/Bamboo.Sharp.Api/Bamboo.Sharp.Api.csproj b/Bamboo.Sharp.Api/Bamboo.Sharp.Api.csproj index 66c0c92..2be5350 100644 --- a/Bamboo.Sharp.Api/Bamboo.Sharp.Api.csproj +++ b/Bamboo.Sharp.Api/Bamboo.Sharp.Api.csproj @@ -54,8 +54,12 @@ + + + + @@ -85,6 +89,7 @@ + diff --git a/Bamboo.Sharp.Api/Clients/RequestClient.cs b/Bamboo.Sharp.Api/Clients/RequestClient.cs index 62ca1db..54fb61a 100644 --- a/Bamboo.Sharp.Api/Clients/RequestClient.cs +++ b/Bamboo.Sharp.Api/Clients/RequestClient.cs @@ -15,6 +15,8 @@ internal class RequestClient private RequestClient() { + ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; + } internal static RequestClient Instance diff --git a/Bamboo.Sharp.Api/Model/Calendar.cs b/Bamboo.Sharp.Api/Model/Calendar.cs new file mode 100644 index 0000000..2fd4826 --- /dev/null +++ b/Bamboo.Sharp.Api/Model/Calendar.cs @@ -0,0 +1,14 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RestSharp.Deserializers; + +namespace Bamboo.Sharp.Api.Model +{ + public class Calendar : BaseNode + { + public List WhosOut { get; set; } + } +} diff --git a/Bamboo.Sharp.Api/Model/Employee.cs b/Bamboo.Sharp.Api/Model/Employee.cs new file mode 100644 index 0000000..89e8463 --- /dev/null +++ b/Bamboo.Sharp.Api/Model/Employee.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Xml.Serialization; +using RestSharp.Deserializers; + +namespace Bamboo.Sharp.Api.Model +{ + public class Employee + { + [DeserializeAs(Name = "id", Attribute = true)] + public string Id { get; set; } + //[XmlText] + public string Value { get; set; } + + + public override string ToString() + { + return string.Format("({0}) - {1}", Id.ToString(), Value); + } + } +} diff --git a/Bamboo.Sharp.Api/Model/Holiday.cs b/Bamboo.Sharp.Api/Model/Holiday.cs new file mode 100644 index 0000000..9e9e289 --- /dev/null +++ b/Bamboo.Sharp.Api/Model/Holiday.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RestSharp.Deserializers; + +namespace Bamboo.Sharp.Api.Model +{ + public class Holiday + { + [DeserializeAs(Name = "id", Attribute = true)] + public string Id { get; set; } + //[XmlText] + public string Value { get; set; } + } +} diff --git a/Bamboo.Sharp.Api/Model/Item.cs b/Bamboo.Sharp.Api/Model/Item.cs new file mode 100644 index 0000000..fef99a4 --- /dev/null +++ b/Bamboo.Sharp.Api/Model/Item.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RestSharp.Deserializers; + +namespace Bamboo.Sharp.Api.Model +{ + public class item + { + public Employee Employee { get; set; } + + public Holiday Holiday { get; set; } + + [DeserializeAs(Name = "start")] + public DateTime StartDate { get; set; } + + [DeserializeAs(Name = "end")] + public DateTime EndDate { get; set; } + + public bool IsHoliday() + { + return this.Holiday != null; + } + public bool IsEmployee() + { + return this.Employee != null; + } + + } +} diff --git a/Bamboo.Sharp.Api/Services/TimeOffService.cs b/Bamboo.Sharp.Api/Services/TimeOffService.cs new file mode 100644 index 0000000..e85c1ae --- /dev/null +++ b/Bamboo.Sharp.Api/Services/TimeOffService.cs @@ -0,0 +1,41 @@ +using RestSharp; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using Bamboo.Sharp.Api.Model; + +namespace Bamboo.Sharp.Api.Services +{ + public class TimeOffService : BaseService + { + public Calendar GetWhosOutToday(DateTime? startDate = null, DateTime? endDate = null) + { + //If there is an end date, must have a start date. + if (!startDate.HasValue && endDate.HasValue) + throw new DataMisalignedException("You must specify a Start Date if you specify an EndDate!"); + // End date has to be == or after the start date. + if (endDate.HasValue && startDate.HasValue && endDate.Value.Subtract(startDate.Value).TotalDays <= 0) + throw new DataMisalignedException("Your End Date must equal to or after your startDate"); + if(endDate.HasValue && (endDate.Value.Subtract(startDate.Value).TotalDays > 14) ) + throw new DataMisalignedException("Your entire search scope may only be up to 14 days from the start request!"); + + var start = startDate.HasValue == true ? startDate.Value.ToString("yyyy-M-d") : string.Empty; + var end = endDate.HasValue == true ? endDate.Value.ToString("yyyy-M-d") : string.Empty; + + var request = new RestRequest + { + Resource = "time_off/whos_out", + Method = Method.GET + }; + if(!string.IsNullOrEmpty(start)) + request.AddQueryParameter("start", start); + + if(!string.IsNullOrEmpty(end)) + request.AddQueryParameter("end", end); + + return Client.Execute(request); + } + } +}