public async Task HaceCheckIn_ConNuevoPasajeroTitular_SinPasajerosAnexos_Correctamente() { var camaId = await CrearHabitacionConUnaCama(); var reservaId = await _reservasHttpClient.CrearReserva(camaId, null, _pasajero, _desde, _hasta); _pasajero.NombreCompleto = "El inefable Señor Gama Alta"; _pasajero.Id = 0; _pasajero.DniOPasaporte = "678"; var dto = new HacerCheckInDTO { ReservaId = reservaId, PasajeroTitular = _pasajero, }; await _reservasHttpClient.HacerCheckIn(dto); var reserva = await _reservasHttpClient.ObtenerPorId(reservaId); reserva.Estado.Should().Be(ReservaEstadoEnum.InHouse); reserva.PasajeroTitular.DniOPasaporte.Should().Be("678"); reserva.PasajeroTitular.NombreCompleto.Should().Be("El inefable Señor Gama Alta"); //Chequear que todos los demás campos no se hayan modificado }
public async Task <int> HacerCheckIn(HacerCheckInDTO dto) { var respuesta = await _httpClient.PostAsJsonAsync(ENDPOINT + "/hacerCheckIn", dto); respuesta.StatusCode.Should().Be(HttpStatusCode.OK); return(await respuesta.Content.ReadAsAsync <int>()); }
public async Task <int> HacerCheckIn([FromBody] HacerCheckInDTO dto) { ValidarQueNoEsteDosVecesElMismoPasajero(dto); var reserva = ReservaMapper.Map(dto); await SiElPasajeroTitularYaExisteModificarloSinoCrearlo(reserva); await SiAlgunPasajeroAnexoYaExisteModificarlo(reserva); await _service.HacerCheckIn(reserva); return(reserva.Id); }
public static Reserva Map(HacerCheckInDTO dto) { var reserva = new Reserva { Id = dto.ReservaId, PasajeroTitular = PasajeroMapper.Map(dto.PasajeroTitular), Estado = ReservaEstadoEnum.InHouse, ReservaPasajerosAnexos = dto.PasajerosAnexos?.Select(x => new ReservaPasajeroAnexo { Pasajero = PasajeroMapper.Map(x), ReservaId = dto.ReservaId }).ToList(), }; return(reserva); }
private static void ValidarQueNoEsteDosVecesElMismoPasajero(HacerCheckInDTO dto) { if (dto.PasajerosAnexos != null) { var dnisOPasaportesDeTodosLosPasajeros = new List <string>(dto.PasajerosAnexos.Select(x => x.DniOPasaporte)) { dto.PasajeroTitular.DniOPasaporte }; if (dnisOPasaportesDeTodosLosPasajeros.Count != dnisOPasaportesDeTodosLosPasajeros.Distinct().Count()) { throw new AppException("No puede haber pasajeros con el mismo DNI o Pasaporte"); } } }
public async Task HaceCheckIn_ConNuevoPasajeroTitular_ConPasajerosAnexos_Correctamente() { var camaId = await CrearHabitacionConUnaCama(); var reservaId = await _reservasHttpClient.CrearReserva(camaId, null, _pasajero, _desde, _hasta); _pasajero.NombreCompleto = "El inefable Señor Gama Alta"; _pasajero.Id = 0; _pasajero.DniOPasaporte = "678"; var pasajeroAnexo = new PasajeroDTO { NombreCompleto = "Samanta Schweblin", DniOPasaporte = "222", Email = "*****@*****.**", Telefono = "5556453", Pais = "AR", }; var dto = new HacerCheckInDTO { ReservaId = reservaId, PasajeroTitular = _pasajero, PasajerosAnexos = new List <PasajeroDTO> { pasajeroAnexo } }; await _reservasHttpClient.HacerCheckIn(dto); var reserva = await _reservasHttpClient.ObtenerPorId(reservaId); reserva.Estado.Should().Be(ReservaEstadoEnum.InHouse); reserva.PasajeroTitular.NombreCompleto.Should().Be("El inefable Señor Gama Alta"); reserva.PasajerosAnexos.Count.Should().Be(1); reserva.PasajerosAnexos.First().NombreCompleto.Should().Be("Samanta Schweblin"); //Chequear que todos los demás campos no se hayan modificado }