public async Task Execute(StopBindingModel model) { var booking = context.Bookings.FirstOrDefault(b => b.BookingId == model.BookingId); if (booking == null) { throw new BookingNotFoundException("Booking Not Found"); } var driver = context.Dirvers.FirstOrDefault(d => d.DriverId == booking.DriverId); if (driver == null) { throw new DriverNotFoundException("Driver Not Found"); } var newStop = new Stop { StopId = Guid.NewGuid().ToString(), BookingId = booking.BookingId, Address = model.Address, PostCode = model.PostCode, Reason = model.Reason, Date = model?.Date ?? DateTime.UtcNow.AddHours(1), Charge = model.Reason.ToStopCharge(driver.CarType, booking.JobType) }; context.Stops.Add(newStop); await context.SaveChangesAsync(); }
public async Task <Driver> Execute(Driver model) { var existingDriver = context.Dirvers.FirstOrDefault(d => d.LicenceNumber == model.LicenceNumber); if (existingDriver != null) { throw new DuplicateDriverException("Driver already exists"); } var newDriver = new Driver { DriverId = Guid.NewGuid().ToString(), Address = model.Address, FirstName = model.FirstName, LastName = model.LastName, PreferredName = model.PreferredName, PostCode = model.PostCode, PhoneNumber = model.PhoneNumber, LicenceNumber = model.LicenceNumber, CarDetails = model.CarDetails, CarType = model.CarType, IsActive = true }; context.Dirvers.Add(newDriver); await context.SaveChangesAsync(); return(newDriver); }
public async Task <Driver> Execute(Driver model) { var driver = context.Dirvers.FirstOrDefault(d => d.DriverId == model.DriverId); if (driver == null) { throw new DriverNotFoundException("Driver Not Found"); } driver.Address = model.Address; driver.FirstName = model.FirstName; driver.LastName = model.LastName; driver.PreferredName = model.PreferredName; driver.PostCode = model.PostCode; driver.PhoneNumber = model.PhoneNumber; driver.LicenceNumber = model.LicenceNumber; driver.CarDetails = model.CarDetails; driver.CarType = model.CarType; driver.IsActive = model.IsActive; await context.SaveChangesAsync(); return(driver); }
public async Task <Booking> Execute(string bookingId) { var currentBooking = context.Bookings.FirstOrDefault(b => b.BookingId == bookingId); if (currentBooking == null) { throw new BookingNotFoundException("Booking not found"); } currentBooking.CancelledDate = DateTime.UtcNow.AddHours(1); await context.SaveChangesAsync(); return(currentBooking); }
public async Task Execute(CustomerBindingModel model) { var newCustomer = new Customer { CustomerId = Guid.NewGuid().ToString(), FirstName = model.FirstName, LastName = model.LastName, Address = model.LastName, PostCode = model.PostCode, PreferredName = model.PreferredName, PhoneNumber = model.PhoneNumber, PreferredDriverUserId = model.PreferredDriverUserId, ExtraInformation = model.ExtraInformation, Email = model.Email }; context.Customers.Add(newCustomer); await context.SaveChangesAsync(); }
public async Task <Booking> Execute(BookingBindingModel model) { var newBooking = new Booking { BookingId = Guid.NewGuid().ToString(), CustomerId = model.CustomerId, DriverId = model.DriverId, CreatedDate = DateTime.UtcNow.AddHours(1), StartDate = model.StartDate, StartAddress = model.StartAddress, StartPostCode = model.StartPostCode, EndAddress = model.EndAddress, EndPostCode = model.EndPostCode, CompletedDate = model.CompletedDate, JobType = model.JobType, ExtraInformation = model.ExtraInformation }; context.Bookings.Add(newBooking); await context.SaveChangesAsync(); return(newBooking); }