コード例 #1
0
        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
        }
コード例 #2
0
        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>());
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: ReservaMapper.cs プロジェクト: mmanna3/BlueServant
        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);
        }
コード例 #5
0
        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");
                }
            }
        }
コード例 #6
0
        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
        }