public async Task Reserve_seats_on_2_coaches_When_resereved_seats_exeed_coach_capacity() { var seatRequested = new SeatsRequested(2); var trainId = new TrainId("express_2000"); var bookingReferenceNumber = "10"; var bookingReferenceAdapter = Substitute.For <IBookingReference>(); bookingReferenceAdapter.GetBookingReference().Returns(Task.FromResult(bookingReferenceNumber)); var trainDataServiceAdapter = Substitute.For <ITrainDataService>(); trainDataServiceAdapter.GetTrain(trainId).Returns(Task.FromResult(new Train(trainId, TrainDataAdapter.AdaptTrainTopology("{\"seats\": {" + TrainHelper.BuildCoachJson("A", 10, numberOfReservedSeat: 6) + "," + TrainHelper.BuildCoachJson("B", 10, numberOfReservedSeat: 6) + "}}")))); var manager = new TicketOfficeService(trainDataServiceAdapter, bookingReferenceAdapter); IProvideReservation hexagon = new TicketOfficeService(trainDataServiceAdapter, bookingReferenceAdapter); var seatReservationAdapter = new SeatReservationAdapter(hexagon); var reservationRequestDto = new ReservationRequestDto { train_id = trainId.ToString(), number_of_seats = seatRequested.Value }; var jsonResult = await seatReservationAdapter.PostSeatsRequest(reservationRequestDto); Check.That(jsonResult).IsEqualTo($"{{\"train_id\": \"{trainId}\", \"booking_reference\": \"10\", \"seats\": [\"7A\", \"7B\"]}}"); }
public void Should_Insert_ANewItem() { ReservationRequestDto dto = new ReservationRequestDto() { NUMERO = "12190" }; IReservationRequest reservationRequest = new ReservationRequest(dto); bool isRegistered = false; DataPayLoad currentDataPayLoad = null; var requestService = new Mock <IReservationRequestDataService>(); requestService.Setup(x => x.GetNewDo(It.IsAny <string>())).Returns(reservationRequest); _eventManager.Setup(x => x.NotifyToolBar(It.IsAny <DataPayLoad>())).Callback <DataPayLoad>(x => { isRegistered = x.PayloadType == DataPayLoad.Type.RegistrationPayload; currentDataPayLoad = x; }); _dataServices.Setup(x => x.GetReservationRequestDataService()).Returns(requestService.Object); var reservationRequestsView = new ReservationRequestsViewModel(_dataServices.Object, _interacionController.Object, _dialogService.Object, _eventManager.Object, _navigator.Object, null, null); // now i should arrange a new id and send to the reservation request view model. DataPayLoad payload = new DataPayLoad(); payload.PayloadType = DataPayLoad.Type.Insert; payload.DataObject = reservationRequest; payload.HasDataObject = true; reservationRequestsView.IncomingPayload(payload); Assert.AreEqual(reservationRequestsView.DataObject.NUMERO, dto.NUMERO); }
public ReservationRequest(ReservationRequestDto dto) { this._dto = dto; this._group = new List <VehicleGroupDto>(); this._client = new List <ClientSummaryExtended>(); this._reseller = new List <ResellerDto>(); this._fare = new List <FareDto>(); this._vehicleSummary = new List <VehicleSummaryDto>(); }
public async Task <string> PostSeatsRequest(ReservationRequestDto reservationRequestDto) { // Infra => Domain var trainId = new TrainId(reservationRequestDto.train_id); var seatsRequested = new SeatsRequested(reservationRequestDto.number_of_seats); var reservation = await _hexagon.ReserveAsync(trainId, seatsRequested); // Domain => Infra return(AdaptReservation(reservation)); }
public IReservationRequest GetNewDo(string value) { var newDto = new ReservationRequestDto(); newDto.Code = value; newDto.IsNew = true; newDto.NUMERO = value; var reservationRequest = new ReservationRequest(newDto); return(reservationRequest); }
public async Task Should_Show_AnItem() { var dto = new ReservationRequestDto(); // i prepare data with real data from the database. using (var conn = _sqlExecutor.OpenNewDbConnection()) { var entity = await conn.GetRandomEntityAsync <PETICION>().ConfigureAwait(false); dto.NUMERO = entity.NUMERO; dto.MOPETI = entity.MOPETI; dto.OBS1 = entity.OBS1; dto.NOMCLI = entity.NOMCLI; dto.OFICINA = entity.OFICINA; dto.ORIGEN = 10; // internet dto.OTRO_VEHI = entity.OTRO_VEHI; dto.CATEGO = entity.CATEGO; } var clientService = _services.GetClientDataServices(); var helperService = _services.GetHelperDataServices(); var vehicleService = _services.GetVehicleDataServices(); var clientDto = await clientService.GetPagedSummaryDoAsync(1, 1); var grupos = await helperService.GetSingleMappedAsyncHelper <VehicleGroupDto, GRUPOS>(dto.CATEGO); var origen = await helperService.GetSingleMappedAsyncHelper <OrigenDto, ORIGEN>(dto.ORIGEN.Value.ToString()); var reservation = new ReservationRequest(dto); reservation.ClientDto = reservation.ClientDto.Union(new List <ClientSummaryExtended>() { clientDto.FirstOrDefault() }); reservation.GroupDto = reservation.GroupDto.Union(new List <VehicleGroupDto>() { grupos }); DataPayLoad payload = new DataPayLoad(); payload.PayloadType = DataPayLoad.Type.Show; payload.DataObject = reservation; var reservationRequestsView = new ReservationRequestsViewModel(_dataServices.Object, _interacionController.Object, _dialogService.Object, _eventManager.Object, _navigator.Object, null, null); reservationRequestsView.IncomingPayload(payload); Assert.GreaterOrEqual(1, reservationRequestsView.ClientDto.Count()); Assert.GreaterOrEqual(1, reservationRequestsView.GroupDto.Count()); Assert.AreEqual(dto.NUMERO, reservationRequestsView.DataObject.NUMERO); Assert.AreEqual(dto.MOPETI, reservationRequestsView.DataObject.MOPETI); }
public async Task <IEnumerable <MeetingRoom> > GetAvailableMeetingRooms(ReservationRequestDto request) { using (var connection = new SqlConnection(_connectionString)) { connection.Open(); return(await connection.QueryAsync <MeetingRoom>(@"SELECT mr.Id MeetingRoomId, OfficeId, Capacity, NumberOfChairs FROM reservation.meetingRooms mr WHERE NOT EXISTS ( SELECT * FROM reservation.reservations r WHERE r.MeetingRoomId = mr.Id AND OfficeId = @OfficeId AND r.ReservationDate = @ReservationDate AND ((@STARTTIME BETWEEN r.StartTime AND r.EndTime) OR (@ENDTIME BETWEEN r.StartTime AND r.EndTime)) )" , new { request.OfficeId, request.ReservationDate, request.StartTime, request.EndTime })); } }
public IHttpActionResult Post(ReservationRequestDto dto) { var validationMsg = _validator.Validate(dto); if (validationMsg != "") { return(this.BadRequest(validationMsg)); } var r = new Reservation(dto.Date, dto.Name, dto.Email, dto.Quantity); var id = _maîtreD.TryAccept(r); if (id == null) { return(this.StatusCode(HttpStatusCode.Forbidden)); } return(this.Ok()); }
public async Task <ActionResult <IEnumerable <MeetingRoom> > > GetAvailableMeetingRooms(ReservationRequestDto requestDto) { var meetingRooms = await _reservationQueries.GetAvailableMeetingRooms(requestDto); return(Ok(meetingRooms)); }
public async Task<string> Post([FromBody]ReservationRequestDto reservationRequest, [FromServices] ITrainDataService trainDataService, IBookingReference bookingReference) { return await _seatReservationAdapter.PostSeatsRequest(reservationRequest); }
public async Task <string> Post([FromBody] ReservationRequestDto reservationRequest) { var manager = new WebTicketManager(); return(await manager.Reserve(reservationRequest.train_id, reservationRequest.number_of_seats)); }