Beispiel #1
0
        public void Update(EventUpdatableDeserializer eventDsl, Event @event)
        {
            if (!string.IsNullOrEmpty(eventDsl.Title))
            {
                @event.Title = eventDsl.Title;
            }

            if (!string.IsNullOrEmpty(eventDsl.Description))
            {
                @event.Description = eventDsl.Description;
            }

            if (eventDsl.SubscribeNumber.HasValue)
            {
                @event.SubscribeNumber = (int)eventDsl.SubscribeNumber;
            }

            if (!string.IsNullOrEmpty(eventDsl.Status))
            {
                @event.Status = eventDsl.Status;
            }

            if (eventDsl.CloseAt.HasValue)
            {
                @event.CloseAt = eventDsl.CloseAt;
            }

            if (eventDsl.JuryPoint.HasValue)
            {
                @event.JuryPoint = eventDsl.JuryPoint;
            }

            if (eventDsl.OpenAt.HasValue)
            {
                @event.OpenAt = eventDsl.OpenAt;
            }

            if (eventDsl.RestrictedEvent.HasValue)
            {
                @event.RestrictedEvent = (bool)eventDsl.RestrictedEvent;
            }

            UpdateBookingsValidates(eventDsl, @event);

            @event.EndAt    = eventDsl.EndAt;
            @event.StartAt  = eventDsl.StartAt;
            @event.Location = eventDsl.Location;
        }
Beispiel #2
0
        public async Task <IActionResult> Update([FromBody] EventUpdatableDeserializer eventDsl,
                                                 int id)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            Event @event = await Context.Event.FirstOrDefaultAsync((obj) => obj.Id == id);

            if (@event == null)
            {
                return(NotFound("Event not found"));
            }

            Services.Update(eventDsl, @event);

            if (!Services.IsTimeWindowValid(ref @event))
            {
                var error = new String[] { "Time window is not valid, ensure close start before open" };
                return(BadRequest(new { TimeWindow = error }));
            }

            if (@event.RestrictedEvent)
            {
                Services.AddAndRemoveEventRoles(eventDsl.RestrictedRolesList, @event);
            }
            else
            {
                Services.RemoveAllEventRoles(@event.Id);
            }

            try {
                Context.Event.Update(@event);
                await Context.SaveChangesAsync();
            } catch (DbUpdateException e) {
                return(BadRequest(e.InnerException.Message));
            }

            return(NoContent());
        }
Beispiel #3
0
        public void UpdateBookingsValidates(EventUpdatableDeserializer eventDsl, Event @event)
        {
            if (eventDsl.ValidationRequired.HasValue && eventDsl.ValidationRequired != @event.ValidationRequired)
            {
                Booking[] bookings = Context.Booking.Where(book => book.EventId == @event.Id).ToArray();
                @event.ValidationRequired = (bool)eventDsl.ValidationRequired;
                @event.ValidatedNumber    = 0;

                foreach (var book in bookings)
                {
                    if (eventDsl.ValidationRequired.Value)
                    {
                        book.Validated = false;
                    }
                    else
                    {
                        book.Validated = null;
                    }
                }
                Context.Booking.UpdateRange(bookings);
            }
        }