public async Task Add(Guid id, CreateCinemaRequest request) { Cinema cinema = CinemaFactory.Create(id, request.Name, request.City); _ctx.Add(cinema); await _ctx.SaveChangesAsync(); }
public async Task Add(Guid movieId, CreateMovieRequest request) { Movie movie = MovieFactory.Create(movieId, request.Title); _ctx.Add(movie); await _ctx.SaveChangesAsync(); }
public async Task Add(Guid reservationId, Guid userId, ReservationOffer request) { var offer = await _reservationsQuerier.GetReservationOffer(request.OfferRequest); if (!offer.Equals(request)) { throw new Exception("Offer has expired."); } if (AnyPlaceIsInvalid(request.OfferRequest.Places)) { throw new Exception("Invalid place configuration."); } Show show = await _ctx.Shows.Include(s => s.Reservations).FirstOrDefaultAsync(s => s.Id == request.OfferRequest.ShowId); if (show is null) { throw new KeyNotFoundException(nameof(request.OfferRequest.ShowId)); } User user = await _ctx.Users.FindAsync(userId); if (user is null) { throw new KeyNotFoundException(nameof(userId)); } Reservation reservation = ReservationFactory.Create(reservationId, user); AddPlacesToReservation(request.OfferRequest.Places, reservation); show.AddReservation(reservation); await _ctx.SaveChangesAsync(); _emailSender.Send(new Email()); //TODO }