public IHttpActionResult Accept(Guid id)
        {
            try
            {
                var registration = _registrationRepository.GetById(id);
                var visitor      = _visitorRepository.GetById(registration.Visitor.Id);
                var eventItem    = _eventRepository.GetById(registration.Event.Id);

                var scan = Scan.Create(DateTime.Now, "Alsnog geaccepteerd", registration);
                registration.Scans.Add(scan);

                var body = new CheckinBody()
                {
                    Name             = visitor.Name,
                    City             = visitor.City,
                    Email            = visitor.Email,
                    NumberOfVisitors = registration.NumberOfVisitors,
                    Postcode         = visitor.Postcode,
                    TimeSlot         = eventItem.TimeRange.ToString()
                };

                var message = new CheckinMessage()
                {
                    Status      = 200,
                    Description = "Alsnog geaccepteerd"
                };

                var response = new CheckinResponse()
                {
                    Data    = body,
                    Message = message
                };

                registration.Visited = true;
                _registrationRepository.Update(registration);

                return(Ok(response));
            }
            catch (Exception)
            {
                throw;
            }
        }
        public IHttpActionResult Checkin(Guid id)
        {
            try
            {
                var registration = _registrationRepository.GetById(id);
                if (registration == null)
                {
                    var message = new CheckinMessage()
                    {
                        Status      = 602,
                        Description = "Onbekende ticket"
                    };

                    var response = new CheckinResponse()
                    {
                        Data    = null,
                        Message = message
                    };
                    return(Content(HttpStatusCode.BadRequest, response));
                }

                var visitor   = _visitorRepository.GetById(registration.Visitor.Id);
                var eventItem = _eventRepository.GetById(registration.Event.Id);

                var currentDate = DateTime.Now;


                if (registration.Visited)
                {
                    var scan = Scan.Create(DateTime.Now, "Ticket is al gebruikt", registration);
                    registration.Scans.Add(scan);
                    _registrationRepository.Update(registration);

                    var body = new CheckinBody()
                    {
                        Name             = visitor.Name,
                        City             = visitor.City,
                        Email            = visitor.Email,
                        NumberOfVisitors = registration.NumberOfVisitors,
                        Postcode         = visitor.Postcode,
                        TimeSlot         = eventItem.TimeRange.ToString()
                    };

                    var message = new CheckinMessage()
                    {
                        Status      = 601,
                        Description = "Ticket is al gebruikt"
                    };

                    var response = new CheckinResponse()
                    {
                        Data    = body,
                        Message = message
                    };
                    return(Content(HttpStatusCode.BadRequest, response));
                }

                if (currentDate >= eventItem.TimeRange.Start && currentDate <= eventItem.TimeRange.End)
                {
                    var scan = Scan.Create(DateTime.Now, "Geaccepteerd", registration);
                    registration.Scans.Add(scan);

                    var body = new CheckinBody()
                    {
                        Name             = visitor.Name,
                        City             = visitor.City,
                        Email            = visitor.Email,
                        NumberOfVisitors = registration.NumberOfVisitors,
                        Postcode         = visitor.Postcode,
                        TimeSlot         = eventItem.TimeRange.ToString()
                    };

                    var message = new CheckinMessage()
                    {
                        Status      = 200,
                        Description = "Geaccepteerd"
                    };

                    var response = new CheckinResponse()
                    {
                        Data    = body,
                        Message = message
                    };

                    registration.Visited = true;
                    _registrationRepository.Update(registration);

                    return(Ok(response));
                }
                else
                {
                    var scan = Scan.Create(DateTime.Now, "Ticket valt buiten de toegestane timeslot", registration);
                    registration.Scans.Add(scan);
                    _registrationRepository.Update(registration);

                    var body = new CheckinBody()
                    {
                        Name             = visitor.Name,
                        City             = visitor.City,
                        Email            = visitor.Email,
                        NumberOfVisitors = registration.NumberOfVisitors,
                        Postcode         = visitor.Postcode,
                        TimeSlot         = eventItem.TimeRange.ToString()
                    };

                    var message = new CheckinMessage()
                    {
                        Status      = 600,
                        Description = "Ticket valt buiten de toegestane timeslot"
                    };

                    var response = new CheckinResponse()
                    {
                        Data    = body,
                        Message = message
                    };
                    return(Content(HttpStatusCode.BadRequest, response));
                }
            }
            catch (Exception)
            {
                throw;
            }
        }