//added - END


        private void AuthenticateAndGetTokenAndGetFacade(out LoginToken <AirlineCompany> token_airline, out LoggedInAirlineFacade facade)
        {
            string jwtToken = Request.Headers["Authorization"];

            jwtToken = jwtToken.Replace("Bearer ", "");

            var handler    = new JwtSecurityTokenHandler();
            var jsonToken  = handler.ReadToken(jwtToken);
            var decodedJwt = jsonToken as JwtSecurityToken;

            string userName = decodedJwt.Claims.First(_ => _.Type == "username").Value;
            int    id       = Convert.ToInt32(decodedJwt.Claims.First(_ => _.Type == "userid").Value);

            AirlineCompany airline = new AirlineDAOPGSQL().GetAirlineByUsername(userName);

            if (airline == null)
            {
                throw new Exception("Token not correct");
            }

            token_airline = new LoginToken <AirlineCompany>()
            {
                User = airline
            };

            facade = FlightsCenterSystem.Instance.GetFacade(token_airline) as LoggedInAirlineFacade;
        }
示例#2
0
        public FlightProfile()
        {
            Dictionary <int, string> map_airline_id_to_name = new Dictionary <int, string>();

            List <AirlineCompany> airlines = new AirlineDAOPGSQL().GetAll();

            foreach (AirlineCompany airline in airlines)
            {
                map_airline_id_to_name.Add(airline.Id, airline.Name);
            }

            Dictionary <int, string> map_countryid_to_name = new Dictionary <int, string>();

            List <Country> countries = new CountryDAOPGSQL().GetAll();

            foreach (Country country in countries)
            {
                map_countryid_to_name.Add(country.Id, country.Name);
            }

            CreateMap <Flight, FlightDTO>()
            .ForMember(dest => dest.Id,
                       opt => opt.MapFrom(src => src.Id))
            .ForMember(dest => dest.Airline_Company_Name,
                       opt => opt.MapFrom(src => map_airline_id_to_name[src.Airline_Company_Id]))
            .ForMember(dest => dest.Origin_Country_Name,
                       opt => opt.MapFrom(src => map_countryid_to_name[src.Origin_Country_Id]))
            .ForMember(dest => dest.Destination_Country_Name,
                       opt => opt.MapFrom(src => map_countryid_to_name[src.Destination_Country_Id]))
            .ForMember(dest => dest.Departure_Time,
                       opt => opt.MapFrom(src => src.Departure_Time))
            .ForMember(dest => dest.Landing_Time,
                       opt => opt.MapFrom(src => src.Landing_Time));
        }
示例#3
0
        public async Task <ActionResult <Customer> > GetMyDetails()
        {
            AllAirlineDetails details = new AllAirlineDetails();
            User           myUser     = new User();
            AirlineCompany myAirline  = new AirlineCompany();

            FlightsCenterSystem.GetInstance().login(GetLoginToken().Name, GetLoginToken().Password,
                                                    out LoginToken <Object> l, out FacadeBase f);
            facade        = f as LoggedInAirlineFacade;
            token_airline = GetLoginToken();
            User u = new UserDAOPGSQL().GetAll().FirstOrDefault(_ => _.Password == token_airline.Password && _.Username == token_airline.Name);

            token_airline.User = new AirlineDAOPGSQL().GetAll().FirstOrDefault(_ => _.UserId == u.Id);
            await Task.Run(() => myUser = new UserDAOPGSQL().Get(u.Id));

            await Task.Run(() => myAirline = new AirlineDAOPGSQL().Get(token_airline.User.Id));

            details = new AllAirlineDetails(myUser.Username, myUser.Password, myUser.Email, myAirline.Name,
                                            myAirline.CountryID, myAirline.UserId);
            return(StatusCode(200, details));
        }