public async Task <ActionResult <Event> > CreateEvent([FromBody] SaveEventResource saveEventResource)
        {
            var eventToCreate = _mapper.Map <SaveEventResource, Event>(saveEventResource);
            var newEvent      = await _eventService.CreateEvent(eventToCreate);

            var eventCreated = await _eventService.GetEvent(newEvent.Id);

            var eventResource = _mapper.Map <Event, EventResource>(eventCreated);

            return(Ok(eventResource));
        }
        public async Task <IActionResult> PutAsync(int id, [FromBody] SaveEventResource resource)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState.GetErrorMessages()));
            }

            var @event = _mapper.Map <SaveEventResource, Event>(resource);
            var result = await _eventService.UpdateAsync(id, @event);

            if (!result.Success)
            {
                return(BadRequest(result.Message));
            }

            var eventResource = _mapper.Map <Event, EventResource>(result.Event);

            return(Ok(eventResource));
        }
        public async Task <ActionResult <Event> > UpdateEvent(int id,
                                                              [FromBody] SaveEventResource saveEventResource)
        {
            var eventToBeUpdated = await _eventService.GetEvent(id);

            if (eventToBeUpdated == null)
            {
                return(NotFound());
            }


            var eventFound = _mapper.Map <SaveEventResource, Event>(saveEventResource);

            await _eventService.UpdateEvent(eventToBeUpdated, eventFound);

            var updatedEvent = await _eventService.GetEvent(id);

            var updatedEventResource = _mapper.Map <Event, SaveEventResource>(updatedEvent);

            return(Ok(updatedEventResource));
        }