protected override void OnCreate(Event entity) { var request = new RestRequest("events/", HttpMethod.Post); request.AddQueryParameter("token", Context.Token); request.AddObject(entity, "event", AcceptedPostFields()); // execute Event create var response = this.Execute(request); if (response.IsSuccessStatusCode) { // get updated response var persisted = response.As <Event>(); // persist base properties onto entity entity.Id = persisted.Id; entity.ResourceUri = persisted.ResourceUri; Context.EventId = persisted.Id; // Ticket create if (entity.TicketClasses.Count > 0) { IRequestHandler ticketHandler = new TicketClassRequestHander(Context); foreach (var ticket in entity.TicketClasses) { // set associated Event ID ticket.EventId = entity.Id; ticketHandler.Create(ticket); } } // Venue create } else { this.ThrowResponseError(response); } }
protected override void OnUpdate(Event entity) { if (entity.Id <= 0) { throw new ArgumentException("Id not set in Event", "entity"); } var request = new RestRequest("events/{id}/", HttpMethod.Post); request.AddUrlSegment("id", entity.Id.ToString()); request.AddQueryParameter("token", Context.Token); request.AddObject(entity, "event", AcceptedPostFields()); // Execute Event update var response = this.Execute(request); if (response.IsSuccessStatusCode) { Context.EventId = entity.Id; // Ticket update if (entity.TicketClasses.Count > 0) { IRequestHandler ticketHandler = new TicketClassRequestHander(Context); foreach (var ticket in entity.TicketClasses) { ticket.EventId = entity.Id; ticketHandler.Update(ticket); } } } else { this.ThrowResponseError(response); } }