public HttpResponseMessage CreateAccount(LogonRequestModel logonModel)
        {
            if (ModelState.IsValid)
            {
                var driverId = _driverRepository.CreateDriver(logonModel.Email, logonModel.Password);
                if (driverId > 0)
                {
                    var driver = _driverRepository.GetDriverById(driverId);
                    if (driver.Token == null)
                    {
                        driver.Token = new AccessToken();
                    }
                    AccountHelper.SetToken(driver.Token, driverId);
                    _driverRepository.UpdateDriver(driver);
                    var responseMessage = Request.CreateResponse<LogonResponseModel>(HttpStatusCode.OK, AccountHelper.GetLogonResponseModel(true, driver.Token.Token, driver.DriverId, driver.EmailAddress));
                    SecurityHelper.SetUseronThread(driver);

                    var cookie = new CookieHeaderValue(SecurityHelper.AccessTokenCookieName, driver.Token.Token);
                    cookie.Expires = DateTimeOffset.Now.AddDays(14);
                    cookie.Path = "/";

                    responseMessage.Headers.AddCookies(new CookieHeaderValue[] { cookie });

                    return responseMessage;
                }
                else
                {
                    return Request.CreateResponse<LogonResponseModel>(HttpStatusCode.OK, AccountHelper.GetLogonResponseModel(false));
                }
            }

            return Request.CreateResponse<LogonResponseModel>(HttpStatusCode.BadRequest, AccountHelper.GetLogonResponseModel(false));
        }
        public HttpResponseMessage Login(LogonRequestModel logonModel)
        {
            if (ModelState.IsValid)
            {
                var driver = _driverRepository.ValidateDriver(logonModel.Email, logonModel.Password);
                if (driver == null)
                {
                    return Request.CreateResponse<LogonResponseModel>(HttpStatusCode.OK, AccountHelper.GetLogonResponseModel(false));
                }
                else
                {
                    if (driver.Token != null)
                    {
                        AccountHelper.SetToken(driver.Token, driver.DriverId);
                    }
                    else
                    {
                        var token = new AccessToken();
                        AccountHelper.SetToken(token, driver.DriverId);
                        driver.Token = token;
                    }
                    _driverRepository.UpdateDriver(driver);

                    long carId = 0;
                    if (driver.Cars != null)
                    {
                        var car = driver.Cars.FirstOrDefault(c => c.IsCurrentCar);

                        if (car != null)
                        {
                            carId = car.CarId;
                        }
                    }

                    var responseMessage = Request.CreateResponse<LogonResponseModel>(HttpStatusCode.OK, AccountHelper.GetLogonResponseModel(true,
                                                                                                                                            driver.Token.Token,
                                                                                                                                            driver.DriverId,
                                                                                                                                            driver.EmailAddress,
                                                                                                                                            driver.FirstName,
                                                                                                                                            driver.LastName,
                                                                                                                                            carId));
                    SecurityHelper.SetUseronThread(driver);

                    var cookie = new CookieHeaderValue(SecurityHelper.AccessTokenCookieName, driver.Token.Token);
                    cookie.Expires = DateTimeOffset.Now.AddDays(14);
                    cookie.Path = "/";

                    responseMessage.Headers.AddCookies(new CookieHeaderValue[] { cookie });

                    return responseMessage;
                }
            }

            throw new HttpResponseException(HttpStatusCode.BadRequest);
        }