public async Task <EdxUser> Get(string edxId) { var edxUser = await _keyGenContext.EdxUsers.SingleOrDefaultAsync(e => e.EdxId == edxId); if (edxUser == null) { // create one! var success = false; while (!success) { try { edxUser = new EdxUser { EdxId = edxId, Uid = UidGenerator.Next() }; _keyGenContext.EdxUsers.Add(edxUser); var result = await _keyGenContext.SaveChangesAsync(true); success = true; } catch (DbUpdateException) { // this would fail if Uid is not unique, so we want to try again with a new Uid } } } return(edxUser); }
public async Task <EdxUser> GetUserAsync(string edxUserId) { EdxUser resultEdxUser = null; var request = new HttpRequestMessage(HttpMethod.Get, $"{_serviceBaseUrl}/EdxUser/{edxUserId}"); var response = await Client.SendAsync(request); if (response.IsSuccessStatusCode) { var json = await response.Content.ReadAsStringAsync(); resultEdxUser = JsonConvert.DeserializeObject <EdxUser>(json); } return(resultEdxUser); }