public async Task <IActionResult> Login(ApiLoginModel model)
        {
            ApiLoginResult result = await _authenticationService.LoginAsync(model);

            if (string.IsNullOrEmpty(result.Token))
            {
                return(Unauthorized()); //The external API returns a bad request instead of unauthorized when the user credentials are wrong, hence we have to use this ugly check.
            }
            result.Token = _tokenService.GenerateToken(result.Token);
            return(Ok(GenerateSuccessfulResponse(result)));
        }
        [Post("/api/authentication/login")] //Refit does not support using constants. See: https://github.com/reactiveui/refit/issues/263
        public async Task <HttpResponseMessage> Authenticate(ApiLoginModel loginData)
        {
            if (!string.IsNullOrEmpty(loginData.Token))
            {
                ApiLoginResult result = new ApiLoginResult {
                    Token = loginData.Token, Expires = 0, HasError = false, Username = loginData.Username
                };

                HttpResponseMessage response = new HttpResponseMessage(HttpStatusCode.OK)
                {
                    Content = new StringContent(JsonConvert.SerializeObject(result))
                };
                return(response);
            }
            return(new HttpResponseMessage(HttpStatusCode.BadRequest));
        }