public IHttpActionResult UpdateCustomer(int customerID, [FromBody] HTTPCustomer customer)
        {
            if (customer.FirstName == null & customer.LastName == null & customer.Username == null &
                customer.Password == null & customer.Address == null & customer.PhoneNo == null &
                customer.CreditCardNumber == null)
            {
                return(BadRequest());
            }
            LoginToken <Administrator>  token  = (LoginToken <Administrator>)Request.Properties["User"];
            LoggedInAdministratorFacade facade = (LoggedInAdministratorFacade)(FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(token));
            Customer     original     = facade._customerDAO.Get(customerID);
            HTTPCustomer tempCustomer = new HTTPCustomer(original);

            if (customer.FirstName != null)
            {
                tempCustomer.FirstName = customer.FirstName;
            }
            if (customer.LastName != null)
            {
                tempCustomer.LastName = customer.LastName;
            }
            if (customer.Username != null)
            {
                tempCustomer.Username = customer.Username;
            }
            if (customer.Password != null)
            {
                tempCustomer.Password = customer.Password;
            }
            if (customer.Address != null)
            {
                tempCustomer.Address = customer.Address;
            }
            if (customer.PhoneNo != null)
            {
                tempCustomer.PhoneNo = customer.PhoneNo;
            }
            if (customer.CreditCardNumber != null)
            {
                tempCustomer.CreditCardNumber = customer.CreditCardNumber;
            }
            try
            {
                facade.UpdateCustomerDetails(token, new Customer(customerID, tempCustomer.FirstName, tempCustomer.LastName, tempCustomer.Username, tempCustomer.Password,
                                                                 tempCustomer.Address, tempCustomer.PhoneNo, tempCustomer.CreditCardNumber));
            }
            catch (UsernameAlreadyExistsException)
            {
                return(StatusCode(HttpStatusCode.Conflict));
            }
            return(Ok());
        }
        public IHttpActionResult CreateNewCustomer([FromBody] HTTPCustomer customer)
        {
            if (customer.FirstName == null | customer.LastName == null | customer.Username == null |
                customer.Password == null | customer.Address == null | customer.PhoneNo == null |
                customer.CreditCardNumber == null)
            {
                return(BadRequest());
            }
            LoginToken <Administrator>  token  = (LoginToken <Administrator>)Request.Properties["User"];
            LoggedInAdministratorFacade facade = (LoggedInAdministratorFacade)(FlyingCenterSystem.GetFlyingCenterSystem().GetFacade(token));

            try
            {
                facade.CreateNewCustomer(token, new Customer(
                                             -1, customer.FirstName, customer.LastName, customer.Username, customer.Password,
                                             customer.Address, customer.PhoneNo, customer.CreditCardNumber));
            }
            catch (UsernameAlreadyExistsException)
            {
                return(StatusCode(HttpStatusCode.Conflict));
            }
            return(Ok());
        }