/// <summary> /// 修改用户名和头像。 /// </summary> /// <param name="userName"></param> /// <param name="image"></param> /// <returns></returns> public async Task <ServiceResult> UpdateMeAsync(string userName, int totalTime, int weekTotalTime, string image) { var identifiedHttpMessageHandler = _identityService.GetIdentifiedHttpMessageHandler(); using (var httpClient = new HttpClient(identifiedHttpMessageHandler)) { HttpResponseMessage response; var updateUser = new AppUser { ID = _identityService.GetCurrentUserAsync().ID, ApplicationUserID = _identityService.GetCurrentUserAsync().ApplicationUserID, UserName = userName, TotalTime = totalTime, WeekTotalTime = weekTotalTime, Image = image }; var json = JsonConvert.SerializeObject(updateUser); var meResult = await GetMeAsync(); try { response = await httpClient.PutAsync( App.ServerEndpoint + "/api/Users?applicationUserID=" + meResult.Result.ApplicationUserID.ToString(), new StringContent(json, Encoding.UTF8, "application/json")); // "Student?studentId=" + HttpUtility.UrlEncode(updateUser),new StringContent("")); } catch (Exception e) { return(new ServiceResult { Status = ServiceResultStatus.Exception, Message = e.Message }); } var serviceResult = new ServiceResult { Status = ServiceResultStatusHelper.FromHttpStatusCode( response.StatusCode) }; switch (response.StatusCode) { case HttpStatusCode.Unauthorized: break; case HttpStatusCode.NoContent: break; case HttpStatusCode.BadRequest: serviceResult.Message = await response.Content.ReadAsStringAsync(); break; default: serviceResult.Message = response.ReasonPhrase; break; } return(serviceResult); } }
public async Task <ServiceResult <AppUser> > GetMeAsync() { var identifiedHttpMessageHandler = _identityService.GetIdentifiedHttpMessageHandler(); using (var httpClient = new HttpClient(identifiedHttpMessageHandler)) { HttpResponseMessage response; try { response = await httpClient.GetAsync( App.ServerEndpoint + "/api/Users"); } catch (Exception e) { return(new ServiceResult <AppUser> { Status = ServiceResultStatus.Exception, Message = e.Message }); } var serviceResult = new ServiceResult <AppUser> { Status = ServiceResultStatusHelper.FromHttpStatusCode( response.StatusCode) }; switch (response.StatusCode) { case HttpStatusCode.Unauthorized: case HttpStatusCode.Forbidden: break; case HttpStatusCode.OK: var json = await response.Content.ReadAsStringAsync(); serviceResult.Result = JsonConvert.DeserializeObject <AppUser>(json); break; default: serviceResult.Message = response.ReasonPhrase; break; } return(serviceResult); } }
/// <summary> /// 登录。 /// </summary> /// <returns>服务结果。</returns> public async Task <ServiceResult> LoginAsync() { var oidcClient = new OidcClient(CreateOidcClientOptions()); LoginResult loginResult = null; try { loginResult = await oidcClient.LoginAsync(new LoginRequest()); } catch (Exception e) { return(new ServiceResult { Status = ServiceResultStatus.Exception, Message = e.Message }); } if (!string.IsNullOrEmpty(loginResult.Error)) { return new ServiceResult { Status = ServiceResultStatusHelper.FromHttpStatusCode( HttpStatusCode.BadRequest), Message = loginResult.Error } } ; var refreshTokenHandler = (RefreshTokenHandler)loginResult.RefreshTokenHandler; _refreshToken = refreshTokenHandler.RefreshToken; _accessToken = refreshTokenHandler.AccessToken; var identifiedHttpMessageHandler = GetIdentifiedHttpMessageHandler(); using (var httpClient = new HttpClient(identifiedHttpMessageHandler)) { HttpResponseMessage response; response = await httpClient.GetAsync( App.ServerEndpoint + "/api/Users"); var json = await response.Content.ReadAsStringAsync(); var thisUser = JsonConvert.DeserializeObject <AppUser>(json); CurrentUser.ID = thisUser.ID; CurrentUser.UserName = thisUser.UserName; CurrentUser.TotalTime = thisUser.TotalTime; CurrentUser.ApplicationUserID = thisUser.ApplicationUserID; CurrentUser.Image = thisUser.Image; } return(new ServiceResult { Status = ServiceResultStatus.OK }); }