public async Task <AddResult> AddReservation(ReservationAddModel model) { if (model.TimeFrom >= model.TimeTo) { throw new RestaurantBadRequestException("A foglalás végének későbbre kell esnie, mint a kezdete!"); } if (model.TimeFrom < DateTime.Now || model.TimeTo < DateTime.Now) { throw new RestaurantBadRequestException("A foglalásnak az aktuális időpontnál későbbre kell esnie!"); } if (string.IsNullOrEmpty(model.CustomerName)) { throw new RestaurantBadRequestException("A foglaló vendég nevének megadása kötelező!"); } if (model.CustomerPhone.Length > 15) { throw new RestaurantBadRequestException("A megadott telefonszám túl hosszú!"); } var table = await DbContext.Tables.FindAsync(model.TableId); if (table == null) { throw new RestaurantNotFoundException("A megadott asztal nem létezik!"); } if (!(await TableService.IsTableAvailable(model.TableId, model.TimeFrom, model.TimeTo))) { throw new RestaurantBadRequestException("A foglalás nem teljesíthető: a megadott asztal foglalt a választott időintervallumban!"); } var reservation = DbContext.Reservations.Add(new Reservation() { TableId = model.TableId, TimeFrom = model.TimeFrom, TimeTo = model.TimeTo, CustomerName = model.CustomerName, CustomerPhoneNumber = model.CustomerPhone }); await DbContext.SaveChangesAsync(); return(new AddResult(reservation.Entity.Id)); }
public async Task <AddResult> AddReservation(ReservationAddModel reservation) => await ReservationService.AddReservation(reservation);