public IHttpActionResult UpdateAirlineDetails([FromBody] AirlineCompany airline, [FromUri] int id)
        {
            GetLoginToken();

            if (AdminToken != null)
            {
                airline.ID = F.GetAirLineByUserName(AdminToken, airline.UserName).ID;
                F.UpdateAirlineDetails(AdminToken, airline);
                return(Ok($"{ airline.UserName} Details has been Update!"));
            }

            return(NotFound());
        }
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            string adminpas      = flightCenterConfig.ADMIN_PASSWORD;
            string adminusername = flightCenterConfig.ADMIN_NAME;

            CurrentAdministrator = new LoginToken <Administrator>()
            {
                User = new Administrator($"{adminusername}", $"{adminpas}")
            };
            LoggedInAdministratorFacade F = new LoggedInAdministratorFacade();

            if (actionContext.Request.Headers.Authorization == null)
            {
                actionContext.Response = actionContext.Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "username & password is nulls ");
            }

            string authenticationToken = actionContext.Request.Headers.Authorization.Parameter;

            string decodedAuthenticationToken = Encoding.UTF8.GetString(
                Convert.FromBase64String(authenticationToken));

            string[] usernamePasswordArray = decodedAuthenticationToken.Split(':');
            string   username = usernamePasswordArray[0];
            string   password = usernamePasswordArray[1];

            CurrentCustomer = new LoginToken <Customer>()
            {
                User = F.GetCustomerByUserName(CurrentAdministrator, username)
            };
            CurrentAiLine = new LoginToken <AirlineCompany>()
            {
                User = F.GetAirLineByUserName(CurrentAdministrator, username)
            };

            FlyingCenterSystem.Login(username, password, out LoginTokenBase loginToken, out FacadeBase facadeBase);

            var uri = actionContext.Request.RequestUri.ToString();

            if (loginToken is LoginToken <Administrator> )
            {
                Thread.CurrentPrincipal = new GenericPrincipal(
                    new GenericIdentity(username), null);
                actionContext.Request.Properties["Admin"] = CurrentAdministrator;

                if (!uri.ToUpper().Contains("AdministratorFacdeAPIController".ToUpper()) &&
                    !uri.ToUpper().Contains("AnonymousFacadeApi".ToUpper()))
                {
                    actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
                }
            }
            else if (loginToken is LoginToken <AirlineCompany> )
            {
                Thread.CurrentPrincipal = new GenericPrincipal(
                    new GenericIdentity(username), null);
                actionContext.Request.Properties["AirLine"] = CurrentAiLine;

                if (!uri.ToUpper().Contains("CompanyFacdeAPIController".ToUpper()) &&
                    !uri.ToUpper().Contains("AnonymousFacadeApi".ToUpper()))
                {
                    actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
                }
            }
            else if (loginToken is LoginToken <Customer> )
            {
                Thread.CurrentPrincipal = new GenericPrincipal(
                    new GenericIdentity(username), null);
                actionContext.Request.Properties["Customer"] = CurrentCustomer;

                if (!uri.ToUpper().Contains("CustomerFacadeApiController".ToUpper()) &&
                    !uri.ToUpper().Contains("AnonymousFacadeApi".ToUpper()))
                {
                    actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized);
                }
            }
            else
            {
                actionContext.Response = actionContext.Request
                                         .CreateResponse(HttpStatusCode.Unauthorized);
            }
        }