public async Task<User> RegisterAsync (RegisterViewModel registerViewModel) { // client = clientFactory.CreateHttpClient (); HttpClient client = new HttpClient (); client.BaseAddress = new Uri("http://spotvox.azurewebsites.net/"); client.DefaultRequestHeaders.Clear (); client.DefaultRequestHeaders.Accept.Clear (); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); using (client) { string userJson = JsonConvert.SerializeObject (registerViewModel); HttpContent content = new StringContent (userJson, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync ("api/account/register", content); if (response.IsSuccessStatusCode) { string jsonMessage; using (Stream responseStream = await response.Content.ReadAsStreamAsync ()) { jsonMessage = new StreamReader (responseStream).ReadToEnd (); } User user = (User)JsonConvert.DeserializeObject (jsonMessage, typeof(User)); LoginViewModel loginModel = new LoginViewModel (); loginModel.Email = user.Email; loginModel.Password = registerViewModel.Password; user = await LoginAsync(loginModel); return user; } else { return null; } } }
private async Task<User> Login() { HttpClientFactory factory = new HttpClientFactory(); UserRepository repository = new UserRepository(factory); LoginViewModel loginModel = new LoginViewModel(); loginModel.Email = txtEmail.Text; loginModel.Password = txtPassword.Text; return await repository.LoginAsync(loginModel); //string token = response.Result; }
/// <summary> /// Logins the async. /// </summary> /// <returns>String</returns> /// <param name="loginViewModel">Login view model.</param> public async Task<User> LoginAsync (LoginViewModel loginViewModel) { client = clientFactory.CreateHttpClient (); HttpContent requestBody = new StringContent (string.Format ("grant_type=password&username={0}&password={1}", loginViewModel.Email, loginViewModel.Password)); HttpResponseMessage response = await client.PostAsync("Token", requestBody); if (response.IsSuccessStatusCode) { string jsonMessage; using (Stream responseStream = await response.Content.ReadAsStreamAsync ()) { jsonMessage = new StreamReader (responseStream).ReadToEnd (); } tokenResponse = (TokenModel)JsonConvert.DeserializeObject (jsonMessage, typeof(TokenModel)); User user = new User (); user = await GetUserByUserName(loginViewModel.Email); user.UserAccessToken = tokenResponse; return user; } else { return null; } }