diff --git a/.vs/EventbriteNET/v14/.suo b/.vs/EventbriteNET/v14/.suo new file mode 100644 index 0000000..0bae9b5 Binary files /dev/null and b/.vs/EventbriteNET/v14/.suo differ diff --git a/EventbriteNET/AccessCode.cs b/EventbriteNET/AccessCode.cs new file mode 100644 index 0000000..eb565e8 --- /dev/null +++ b/EventbriteNET/AccessCode.cs @@ -0,0 +1,49 @@ +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace EventbriteNET +{ + public class AccessCode : EventbriteObject + { + public AccessCode() + { + ValidStartDate = new DateTimeTimezoneField(); + ValidEndDate = new DateTimeTimezoneField(); + } + + [JsonProperty("code")] + public string Code { get; set; } + + [JsonProperty("ticket_ids")] + public IList TicketIds { get; set; } + + [JsonProperty("quantity_available")] + public int QuantityAvailable { get; set; } + + [JsonProperty("quantity_sold")] + public int QuantitySold { get; set; } + + [JsonProperty("start_date")] + public DateTimeTimezoneField ValidStartDate { get; set; } + + [JsonProperty("end_date")] + public DateTimeTimezoneField ValidEndDate { get; set; } + + [JsonProperty("event_id")] + public long? EventId { get; set; } + + } + + public class PagedAccessCodes : EventbriteObject + { + [JsonProperty("pagination")] + public Pagination Pagination { get; set; } + [JsonProperty("access_codes")] + public List AccessCodes { get; set; } + } + +} diff --git a/EventbriteNET/EventbriteContext.cs b/EventbriteNET/EventbriteContext.cs index e116f83..1027609 100644 --- a/EventbriteNET/EventbriteContext.cs +++ b/EventbriteNET/EventbriteContext.cs @@ -142,5 +142,19 @@ private IRequestHandler GetHandler(Type type) return handler; } + + //Access Codes methods + public PagedAccessCodes GetAccessCodesForEvent(long id) + { + var handler = (AccessCodeRequestHandler)GetHandler(typeof(AccessCode)); + return handler.GetAccessCodesForEvent(id); + } + + public AccessCode GetAccessCodeForEvent(long eventId, long accessCodeId) + { + var handler = (AccessCodeRequestHandler)GetHandler(typeof(AccessCode)); + return handler.GetAccessCodeForEvent(eventId, accessCodeId); + } + } } diff --git a/EventbriteNET/EventbriteNET.csproj b/EventbriteNET/EventbriteNET.csproj index 0b1e997..1881259 100644 --- a/EventbriteNET/EventbriteNET.csproj +++ b/EventbriteNET/EventbriteNET.csproj @@ -40,6 +40,7 @@ + @@ -48,6 +49,7 @@ + diff --git a/EventbriteNET/Http/AccessCodeRequestHandler.cs b/EventbriteNET/Http/AccessCodeRequestHandler.cs new file mode 100644 index 0000000..cccea45 --- /dev/null +++ b/EventbriteNET/Http/AccessCodeRequestHandler.cs @@ -0,0 +1,86 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Text; +using System.Threading.Tasks; + +namespace EventbriteNET.Http +{ + class AccessCodeRequestHandler : RequestBase + { + public AccessCodeRequestHandler(EventbriteContext context) : base(context) { } + + public PagedAccessCodes GetAccessCodesForEvent(long id) + { + var request = new RestRequest("events/" + id.ToString() + "/access_codes/"); + request.AddQueryParameter("token", Context.Token); + + if (Context.Page > 1) + request.AddQueryParameter("page", Context.Page.ToString()); + + var accessCodes = this.Execute(request); + + return accessCodes; + } + + public AccessCode GetAccessCodeForEvent(long eventId, long accessCodeId) + { + var request = new RestRequest("events/" + eventId.ToString() + "/access_codes/" + accessCodeId); + request.AddQueryParameter("token", Context.Token); + + var result = this.Execute(request); + + return result; + } + + protected override void OnCreate(AccessCode entity) + { + var request = new RestRequest("/events/" + Context.EventId + "/access_codes/", HttpMethod.Post); + request.AddQueryParameter("token", Context.Token); + request.AddQueryParameter("access_code.code", entity.Code); + request.AddQueryParameter("access_code.ticket_ids", entity.TicketIds[0].ToString()); + request.AddQueryParameter("access_code.quantity_available", entity.QuantityAvailable.ToString()); + + //todo: start + end date + + //execute Access Code create + var response = this.Execute(request); + + if (response.IsSuccessStatusCode) + { + //succcess + } + else + { + this.ThrowResponseError(response); + } + + } + + protected override IList OnGet() + { + throw new NotImplementedException(); + } + + protected override AccessCode OnGet(long id) + { + throw new NotImplementedException(); + } + + protected override Task> OnGetAsync() + { + throw new NotImplementedException(); + } + + protected override Task OnGetAsync(long id) + { + throw new NotImplementedException(); + } + + protected override void OnUpdate(AccessCode entity) + { + throw new NotImplementedException(); + } + } +} diff --git a/EventbriteNET/bin/Debug/EventbriteNET.dll b/EventbriteNET/bin/Debug/EventbriteNET.dll index ce12d1b..202514d 100644 Binary files a/EventbriteNET/bin/Debug/EventbriteNET.dll and b/EventbriteNET/bin/Debug/EventbriteNET.dll differ diff --git a/EventbriteNET/bin/Debug/EventbriteNET.pdb b/EventbriteNET/bin/Debug/EventbriteNET.pdb index 621908e..5e22a79 100644 Binary files a/EventbriteNET/bin/Debug/EventbriteNET.pdb and b/EventbriteNET/bin/Debug/EventbriteNET.pdb differ diff --git a/EventbriteNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/EventbriteNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 0f14eea..6e4289c 100644 Binary files a/EventbriteNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/EventbriteNET/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/EventbriteNET/obj/Debug/EventbriteNET.csproj.FileListAbsolute.txt b/EventbriteNET/obj/Debug/EventbriteNET.csproj.FileListAbsolute.txt index afc3b46..1c9df63 100644 --- a/EventbriteNET/obj/Debug/EventbriteNET.csproj.FileListAbsolute.txt +++ b/EventbriteNET/obj/Debug/EventbriteNET.csproj.FileListAbsolute.txt @@ -11,3 +11,16 @@ C:\Users\ageorgiou\Documents\Visual Studio 2012\Projects\EventbriteNET\Eventbrit C:\Users\ageorgiou\Documents\Visual Studio 2012\Projects\EventbriteNET\EventbriteNET\bin\Debug\System.Net.Http.Primitives.xml C:\Users\ageorgiou\Documents\Visual Studio 2012\Projects\EventbriteNET\EventbriteNET\obj\Debug\EventbriteNET.dll C:\Users\ageorgiou\Documents\Visual Studio 2012\Projects\EventbriteNET\EventbriteNET\obj\Debug\EventbriteNET.pdb +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\EventbriteNET.dll +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\EventbriteNET.pdb +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\Newtonsoft.Json.dll +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\System.Net.Http.dll +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\System.Net.Http.Extensions.dll +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\System.Net.Http.Primitives.dll +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\Newtonsoft.Json.xml +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\System.Net.Http.xml +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\System.Net.Http.Extensions.xml +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\bin\Debug\System.Net.Http.Primitives.xml +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\obj\Debug\EventbriteNET.csprojResolveAssemblyReference.cache +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\obj\Debug\EventbriteNET.dll +C:\Users\piete\Source\Repos\Temporary\EventbriteNET\obj\Debug\EventbriteNET.pdb diff --git a/EventbriteNET/obj/Debug/EventbriteNET.dll b/EventbriteNET/obj/Debug/EventbriteNET.dll index ce12d1b..202514d 100644 Binary files a/EventbriteNET/obj/Debug/EventbriteNET.dll and b/EventbriteNET/obj/Debug/EventbriteNET.dll differ diff --git a/EventbriteNET/obj/Debug/EventbriteNET.pdb b/EventbriteNET/obj/Debug/EventbriteNET.pdb index 621908e..5e22a79 100644 Binary files a/EventbriteNET/obj/Debug/EventbriteNET.pdb and b/EventbriteNET/obj/Debug/EventbriteNET.pdb differ