示例#1
0
        public async Task <ActionResult> PostEventMusics(
            [FromServices] DataContext context,
            [FromServices] EventRepository eventRepository,
            [FromServices] MusicRepository musicRepository,
            [FromBody] AddEventMusicCommand command,
            int eventId)
        {
            try
            {
                var eventExists = await eventRepository.GetByIdAsync(eventId);

                if (eventExists == null)
                {
                    return(NotFound(new { message = "O Evento não foi localizado." }));
                }


                var musicExists = musicRepository.CheckExistsById(command.MusicId);
                if (!musicExists)
                {
                    return(NotFound(new { message = "A música não foi localizada." }));
                }

                var musicAlreadyAdded = eventRepository.CheckMusicAlreadyAdded(eventId, command.MusicId);
                if (musicAlreadyAdded)
                {
                    return(Ok());
                }

                var eventMusic = new EventMusic
                {
                    EventId = eventId,
                    MusicId = command.MusicId
                };
                eventRepository.AddEventMusic(eventMusic);

                await context.SaveChangesAsync();

                //                var list = await eventRepository.GetEventUsersAsync(eventId);

                return(Ok());
            }
            catch (Exception)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError,
                                  new { message = ErrorMessage.Internal }));
            }
        }