Пример #1
0
        public IEnumerable <TripDto> GetAllTrips()
        {
            var context = new s19743Context();

            var trips = context.Trips
                        .Select(CreateNewTripDto())
                        .OrderByDescending(dto => dto.DateFrom)
                        .ToList();

            return(trips);
        }
Пример #2
0
        private static Client AddNewClient(TripRegistrationDto registration, s19743Context context)
        {
            Client client;

            client = new Client
            {
                IdClient    = context.Clients.Max(c => c.IdClient) + 1,
                FirstName   = registration.FirstName,
                LastName    = registration.LastName,
                Email       = registration.Email,
                Telephone   = registration.Telephone,
                Pesel       = registration.Pesel,
                ClientTrips = new HashSet <ClientTrip>()
            };

            context.Clients.Add(client);
            return(client);
        }
Пример #3
0
        public void DeleteClient(int idClient)
        {
            var context = new s19743Context();

            var client = context.Clients.SingleOrDefault(dbClient => dbClient.IdClient == idClient);

            if (client == null)
            {
                throw new ClientNotFoundException(idClient);
            }

            var clientHasTrips = context.ClientTrips.Any(trip => trip.IdClient == idClient);

            if (clientHasTrips)
            {
                throw new ClientHasTripsException(idClient);
            }

            context.Clients.Remove(client);
            context.SaveChanges();
        }
Пример #4
0
        public void RegisterClientOnTrip(TripRegistrationDto registration)
        {
            var context = new s19743Context();

            var client = context.Clients.SingleOrDefault(c => c.Pesel == registration.Pesel)
                         ?? AddNewClient(registration, context);

            if (IsClientAlreadySigned(registration, client, context))
            {
                throw new TripException("Client is already signed on a trip.");
            }

            if (TripDoesntExist(registration, context))
            {
                throw new TripException("Trip doesn't exist.");
            }

            var clientTrip = CreateClientTripFromRequest(registration, client);

            context.ClientTrips.Add(clientTrip);

            context.SaveChanges();
        }
Пример #5
0
 private static bool IsClientAlreadySigned(TripRegistrationDto registration, Client client,
                                           s19743Context context)
 {
     return(context.ClientTrips.Any(trip =>
                                    trip.IdClient == client.IdClient && trip.IdTrip == registration.IdTrip));
 }
Пример #6
0
 private static bool TripDoesntExist(TripRegistrationDto registration, s19743Context context)
 {
     return(!context.Trips.Any(t => t.IdTrip == registration.IdTrip));
 }