Ejemplo n.º 1
0
 public IActionResult UpdateArtistsPerformanceDate(int IdArtist, int IdEvent, UpdateDateRequest request)
 {
     try
     {
         _service.UpdateArtistsPerformanceDate(IdArtist, IdEvent, request);
         return(Ok());
     }
     catch (ArtistDoesNotExistException e)
     {
         return(NotFound(e.Message));
     }
     catch (EventDoesNotExistException e)
     {
         return(NotFound(e.Message));
     }
     catch (ArtistDoesntPerformOnEventException e)
     {
         return(NotFound(e.Message));
     }
     catch (EventAlreadyStartedException e)
     {
         return(NotFound(e.Message));
     }
     catch (PerformanceDateOutsideEventTimeException e)
     {
         return(NotFound(e.Message));
     }
 }
Ejemplo n.º 2
0
        public void UpdateArtistsPerformanceDate(int idArtist, int idEvent, UpdateDateRequest request)
        {
            var artist = _context.Artist
                         .SingleOrDefault(e => e.IdArtist == idArtist);

            if (artist == null)
            {
                throw  new ArtistDoesNotExistException($"Artist with id = {idArtist} does not exist!");
            }

            var eventt = _context.Event
                         .SingleOrDefault(e => e.IdEvent == idEvent);

            if (eventt == null)
            {
                throw new EventDoesNotExistException($"Event with id = {idEvent} does not exist!");
            }

            var artistEvent = _context.ArtistEvent
                              .SingleOrDefault(ae => ae.IdArtist == idArtist && ae.IdEvent == idEvent);

            if (artistEvent == null)
            {
                throw new ArtistDoesntPerformOnEventException(
                          $"Artist with id = {idArtist} doesn't perform on event with id = {idEvent}!");
            }

            if (eventt.StartDate <= DateTime.Now)
            {
                throw new EventAlreadyStartedException($"Event with id = {idEvent} has already started!");
            }

            if (request.PerformanceDate < eventt.StartDate && request.PerformanceDate > eventt.EndDate)
            {
                throw new PerformanceDateOutsideEventTimeException("Performance is not being organised in event's timeframe!");
            }

            artistEvent.PerformanceDate = request.PerformanceDate;
            _context.ArtistEvent.Update(artistEvent);

            _context.SaveChanges();
        }