Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }