public async Task <bool> LogIn(string reservationNumber)
        {
            using (var client = new HttpClient()) {
                var model = new PassengerLoginModel {
                    ReservationCode = reservationNumber
                };
                string      json         = JsonConvert.SerializeObject(model);
                HttpContent httpContent  = new StringContent(json, Encoding.UTF8, "application/json");
                var         httpResponse = await client.PostAsync(new Uri("https://localhost:44319/api/Auth/PassengerLogin", UriKind.Absolute), httpContent);

                if (httpResponse.IsSuccessStatusCode)
                {
                    var content = await httpResponse.Content.ReadAsStringAsync();

                    var passenger = JsonConvert.DeserializeObject <Passenger>(content);
                    if (passenger != null)
                    {
                        Passenger = passenger;
                        JwtToken  = passenger.Token;
                        return(true);
                    }
                }
                return(false);
            }
        }
示例#2
0
        public async Task <IActionResult> PassengerLogin([FromBody] PassengerLoginModel model)
        {
            var passenger = _passengerRepo.Query(x => x.ReservationCode == model.ReservationCode).Include(x => x.Seat).ThenInclude(y => y.Plane).FirstOrDefault();

            if (null == passenger)
            {
                throw new ArgumentException("incorrect reservationCode");
            }

            var result = await _signInManager.PasswordSignInAsync(passenger.UserName, "Test123!", false, false);

            if (result.Succeeded)
            {
                var token = TokenHelper.GetToken(passenger);

                var passengerDto = new PassengerDto {
                    UserName = passenger.UserName,
                    PlaneId  = passenger.Seat.Plane.Id,
                    Id       = passenger.Id.ToString(),
                    Token    = token,
                    Seat     = new SeatDto(passenger.Seat),
                };

                return(Ok(passengerDto));
            }
            throw new ArgumentException("incorrect reservationCode");
        }