public virtual int GetComprehensionScore(MembershipRule rule, Auth0User user) { if (user == null) { return(0); } var memberLink = user.MemberAuth0Users .SingleOrDefault( m => m.Member.OrganisationId == rule.MembershipRuleSection.ShurahBasedOrganisationId); var users = new List <Auth0User> { user }; if (memberLink != null) { users.AddRange(memberLink.Member.MemberAuth0Users.Select(m => m.Auth0User)); } return(users.SelectMany(u => u.MembershipRuleComprehensionTestResults) .Where(t => t.MembershipRuleComprehensionQuestion.MembershipRuleId == rule.Id) .Where(t => t.CorrectlyAnswered) .Where(t => t.AnsweredDateTimeUtc > rule.PublishedDateTimeUtc) .GroupBy(x => x.MembershipRuleComprehensionQuestionId).Count()); //var correctAnswers=_dependencies.StorageService.SetOf<MembershipRuleComprehensionTestResult>() // .Where(r => r.MembershipRuleComprehensionQuestion.MembershipRuleId == rule.Id // && ids.Contains(r.Auuth0UserId) // && r.CorrectlyAnswered // && r.StartedDateTimeUtc>rule.PublishedDateTimeUtc) // .GroupBy(x=>x.MembershipRuleComprehensionQuestionId).Count(); //return correctAnswers; }
public void PropertiesAreCorrectlyBuiltForTheRule() { MethodToTest(() => service.BuildMembershipRuleResource(A <string> .Ignored, A <Auth0User> .Ignored, A <MembershipRule> .Ignored, A <int> .Ignored, A <IEnumerable <MembershipRuleTermDefinition> > .Ignored)); var prefix = "1.2.3."; var index = 7; var rule = new MembershipRule { RuleStatement = "some statement", Id = 67, // Explanation = new MembershipRuleExplanation { ExplanationUrl = "someurl"}, MembershipRuleComprehensionQuestions = new List <MembershipRuleComprehensionQuestion>(), PublishedDateTimeUtc = DateTime.UtcNow }; var user = new Auth0User(); var fragments = new List <TextFragmentResource>(); var terms = new List <MembershipRuleTermDefinition>(); A.CallTo(() => service.ParseRuleStatement(rule.RuleStatement, terms)).Returns(fragments); A.CallTo(() => service.GetComprehensionScore(rule, user)).Returns(15); A.CallTo(() => dependencies.LinqService.EnumerableCount( rule.MembershipRuleComprehensionQuestions)).Returns(20); var result = service.BuildMembershipRuleResource(prefix, user, rule, index, terms); Assert.AreEqual(prefix + (index + 1), result.Number); Assert.AreEqual(rule.Id, result.Id); Assert.AreSame(fragments, result.RuleFragments); // Assert.AreEqual(rule.Explanation.ExplanationUrl,result.ExplanationUrl); Assert.AreEqual(15, result.ComprehensionScore); Assert.AreEqual(20, result.MaxComprehensionScore); Assert.AreEqual(rule.PublishedDateTimeUtc.ToString("s"), result.PublishedUtcDateTimeText); Assert.AreEqual(rule.RuleStatement, result.RuleStatement); }
public void UserIsVerifiedAndResourceReturned() { MethodToTest(() => service.GetUserProfile(A <Auth0UserProfile> .Ignored, A <IPrincipal> .Ignored)); var user = new Auth0User { Id = "someId" }; var auth0Profile = new Auth0UserProfile { sub = user.Id }; var auth0UserSet = new FakeDbSet <Auth0User> { user }; A.CallTo(() => dependencies.StorageService.SetOf <Auth0User>()).Returns(auth0UserSet); A.CallTo(() => service.BuildAuth0User(auth0Profile)).Returns(user); var claimsIdentity = new ClaimsIdentity(); var resource = new UserProfileResource(); A.CallTo(() => service.BuildUserProfileResource(user)).Returns(resource); var principal = A.Fake <IPrincipal>(); A.CallTo(() => principal.Identity).Returns(claimsIdentity); var result = service.GetUserProfile(auth0Profile, principal); Assert.AreSame(resource, result); A.CallTo(() => service.VerifyProfile(auth0Profile, claimsIdentity)).MustHaveHappened(); }
public void ReturnsTheSingleMatchingUser() { MethodToTest(() => service.GetAuthenticatedUser(A <IPrincipal> .Ignored)); var claimsIdentity = new ClaimsIdentity(); var principal = A.Fake <IPrincipal>(); A.CallTo(() => principal.Identity).Returns(claimsIdentity); var userId = "someUserId"; A.CallTo(() => service.GetLoggedInUserId(claimsIdentity)).Returns(userId); var users = A.Fake <IDbSet <Auth0User> >(); A.CallTo(() => dependencies.StorageService.SetOf <Auth0User>()).Returns(users); var user = new Auth0User(); A.CallTo(() => dependencies.LinqService.SingleOrDefault(users, A <Expression <Func <Auth0User, bool> > > .That.Matches(x => x.Compile().Invoke(new Auth0User { Id = userId }) && !x.Compile().Invoke(new Auth0User { Id = userId + "x" }) ))).Returns(user); var result = service.GetAuthenticatedUser(principal); Assert.AreSame(user, result); }
public void NewUserProfileIsAddedAndResourceReturned() { MethodToTest(() => service.GetUserProfile(A <Auth0UserProfile> .Ignored, A <IPrincipal> .Ignored)); var auth0Profile = new Auth0UserProfile(); var auth0UserSet = new FakeDbSet <Auth0User>(); A.CallTo(() => dependencies.StorageService.SetOf <Auth0User>()).Returns(auth0UserSet); var user = new Auth0User(); A.CallTo(() => service.BuildAuth0User(auth0Profile)).Returns(user); var claimsIdentity = new ClaimsIdentity(); var resource = new UserProfileResource(); A.CallTo(() => service.BuildUserProfileResource(user)).Returns(resource); var principal = A.Fake <IPrincipal>(); A.CallTo(() => principal.Identity).Returns(claimsIdentity); var result = service.GetUserProfile(auth0Profile, principal); Assert.AreSame(resource, result); A.CallTo(() => service.VerifyProfile(auth0Profile, claimsIdentity)).MustHaveHappened(); Assert.AreEqual(1, auth0UserSet.Count()); Assert.AreSame(user, auth0UserSet.First()); A.CallTo(() => dependencies.StorageService.SaveChanges()).MustHaveHappened(); }
public async Task <bool> Authenticate() { var cached = _tokenCache.GetUser(); if (cached == null) { var authClient = new Auth0Client(Domain, ClientId); var result = await authClient.LoginAsync() .ContinueWith(t => t.Result, TaskScheduler.FromCurrentSynchronizationContext()); if (result == null) { return(false); } AuthenticatedUser = result; _tokenCache.StoreUser(result); } else { AuthenticatedUser = cached; } return(true); }
public void ReturnsTheSingleOrganisationWithoutAParentOrganisation() { MethodToTest(() => service.GetOrganisation(A <IPrincipal> .Ignored, A <int> .Ignored)); var organisationId = 2; var principal = A.Fake <IPrincipal>(); var user = new Auth0User(); A.CallTo(() => dependencies.UserService.GetAuthenticatedUser(principal)).Returns(user); var org = new ShurahBasedOrganisation(); var orgs = A.Fake <IDbSet <ShurahBasedOrganisation> >(); A.CallTo(() => dependencies.StorageService.SetOf <ShurahBasedOrganisation>()).Returns(orgs); A.CallTo(() => dependencies.LinqService.Single(orgs, A <Expression <Func <ShurahBasedOrganisation, bool> > > .That.Matches(x => x.Compile().Invoke(new ShurahBasedOrganisation { Id = organisationId }) && !x.Compile().Invoke(new ShurahBasedOrganisation { Id = organisationId + 1 }) ))).Returns(org); var organisationResource = new OrganisationResource(); A.CallTo(() => service.BuildOrganisationResource(org, user)).Returns(organisationResource); var result = service.GetOrganisation(principal, organisationId); Assert.AreSame(organisationResource, result); }
public virtual List <string> GetMemberPermissions(Auth0User user, MembershipRuleSection section) { if (section == null) { return(new List <string>()); } return(GetMemberPermissions(user, section.ShurahBasedOrganisation)); }
public List <string> GetMemberPermissions(Auth0User user, MembershipRule rule) { if (rule == null) { return(new List <string>()); } return(GetMemberPermissions(user, rule.MembershipRuleSection)); }
public virtual UserProfileResource BuildUserProfileResource(Auth0User user) { return(new UserProfileResource { Name = user.Name, PictureUrl = user.PictureUrl, UserId = user.Id }); }
public virtual Auth0User BuildAuth0User(Auth0UserProfile auth0Profile) { var user = new Auth0User(); user.Id = auth0Profile.sub; user.PictureUrl = auth0Profile.Picture; user.Name = auth0Profile.Name; return(user); }
public static string EncodeAuthUser(Auth0User cacheKey) { var keyElements = new SortedDictionary <TokenElement, string>(); keyElements[TokenElement.Auth0AccessToken] = cacheKey.Auth0AccessToken; keyElements[TokenElement.IdToken] = cacheKey.IdToken; keyElements[TokenElement.Profile] = JsonConvert.SerializeObject(cacheKey.Profile); return(CreateKeyFromElements(keyElements)); }
public void GuaranteeUserHasPermission(Auth0User user, ShurahBasedOrganisation organisation, ShurahOrganisationPermission permission) { var permissions = GetMemberPermissions(user, organisation); if (!permissions.Contains(permission.ToString())) { throw new Exception("Access Denied"); } }
public virtual bool HasAPendingApplication(MemberResource member, Auth0User user, ShurahBasedOrganisation organisation) { if (member != null) { return(false); } var existingApplication = user?.MembershipApplications.FirstOrDefault(a => a.OrganisationId == organisation.Id); return(existingApplication != null); }
public void Map(Auth0User auth) { Nickname = auth.nickname; Picture = auth.picture; Email = auth.email; EmailVerified = auth.email_verified; GivenName = auth.given_name; FamilyName = auth.family_name; Name = auth.name; LoginID = auth.user_id; }
public static UserModel MapFreeUser(this Auth0User x) { var model = new UserModel { Email = x.email, FirstName = x.given_name, LastName = x.family_name, PictureUrl = x.picture }; return(model); }
public async Task BeginLoginAsync() { _currentUser = await _client.LoginAsync("Username-Password-Authentication", Username, Password); if (_currentUser != null) { _status.OnNext(ClientConnectionStatus.Connected); } else { _status.OnNext(ClientConnectionStatus.Disconnected); } }
public virtual MemberResource GetMember(Auth0User user, IEnumerable <Member> members) { if (user == null) { return(null); } var member = _dependencies.LinqService.SingleOrDefault(members, m => m.MemberAuth0Users.Any(x => x.Auth0UserId == user.Id)); if (member == null || member.Removed) { return(null); } return(BuildMemberResource(member)); }
private void ShowResult(Auth0User user) { var id = user.IdToken; var profile = user.Profile.ToString(); var refreshToken = string.IsNullOrEmpty(user.RefreshToken) ? "Not requested. Use withRefreshToken: true when calling LoginAsync." : user.RefreshToken; var truncatedId = id.Remove(0, 20); truncatedId = truncatedId.Insert(0, "..."); SetResultText(string.Format("Id: {0}\r\n\r\nProfile: {1}\r\n\r\nRefresh Token:\r\n{2}", truncatedId, profile, refreshToken)); }
public void PropertiesAreSetCorrectly() { MethodToTest(() => service.BuildUserProfileResource(A <Auth0User> .Ignored)); var user = new Auth0User { Name = "a" }; var result = service.BuildUserProfileResource(user); Assert.AreEqual(user.Name, result.Name); Assert.AreEqual(user.PictureUrl, result.PictureUrl); Assert.AreEqual(user.Id, result.UserId); }
public override void ViewDidLoad() { base.ViewDidLoad(); _nicknameLabelBinding = this.SetBinding( () => Vm.Nickname, () => nickname.Text); _emailLabelBinding = this.SetBinding( () => Vm.Email, () => email.Text); loginButton.TouchUpInside += async(sender, e) => { Auth0User user = null; try { user = await _auth0.LoginAsync(this, scope : "openid profile"); } catch (OperationCanceledException opEx) { Insights.Report(opEx); } if (user != null) { var emailAddress = user.Profile.GetValue("email").ToString(); var nicknameValue = user.Profile.GetValue("nickname").ToString(); Insights.Identify(emailAddress, null); Insights.Identify(null, Insights.Traits.Email, emailAddress); Insights.Identify(null, Insights.Traits.Name, nicknameValue); Vm.Nickname = nicknameValue; Vm.Email = emailAddress; _settingsService.UserIdToken = user.IdToken; _settingsService.EmailAddress = emailAddress; _settingsService.Nickname = nicknameValue; //AppDelegate.RegisterForRemoteNotifications(null); var pushSettings = UIUserNotificationSettings.GetSettingsForTypes( UIUserNotificationType.Alert | UIUserNotificationType.Badge | UIUserNotificationType.Sound, new NSSet()); UIApplication.SharedApplication.RegisterUserNotificationSettings(pushSettings); UIApplication.SharedApplication.RegisterForRemoteNotifications(); Messenger.Default.Send(new UserLoggedInMessage()); } }; }
public void PropertiesAerBuiltCorrectly() { MethodToTest(() => service.BuildOrganisationResource(A <ShurahBasedOrganisation> .Ignored, A <Auth0User> .Ignored)); var user = new Auth0User { }; var org = new ShurahBasedOrganisation { Name = "a", Description = "B", JoiningPolicy = JoiningPolicy.NoApplicationNeeded, Members = new List <Member>(), MembershipRuleSections = new List <MembershipRuleSection>(), Terms = new List <MembershipRuleTermDefinition>(), }; var sortedTerms = new List <MembershipRuleTermDefinition>(); A.CallTo(() => service.SortTerms(org.Terms)).Returns(sortedTerms); var memberResource = new MemberResource(); A.CallTo(() => service.GetMember(user, org.Members)).Returns(memberResource); var ruleSectionResources = new List <MembershipRuleSectionResource>(); var filteredSections = new List <MembershipRuleSection>(); A.CallTo(() => dependencies.LinqService.Where(org.MembershipRuleSections, A <Func <MembershipRuleSection, bool> > .That.Matches(x => x.Invoke(new MembershipRuleSection()) && !x.Invoke(new MembershipRuleSection { ParentMembershipRuleSection = new MembershipRuleSectionRelationship() }) ))).Returns(filteredSections); A.CallTo(() => service.BuildMembershipRuleSectionResources(String.Empty, filteredSections, sortedTerms, user)) .Returns(ruleSectionResources); var result = service.BuildOrganisationResource(org, user); Assert.AreEqual(org.Name, result.Name); Assert.AreEqual(org.Description, result.Description); Assert.AreEqual(org.JoiningPolicy.ToString(), result.JoiningPolicy); Assert.AreEqual(memberResource, result.Member); Assert.AreSame(ruleSectionResources, result.RuleSections); }
public static Auth0User DecodeAuthUser(string cacheKey) { var elements = new Auth0User(); IDictionary <TokenElement, string> elementDictionary = Decode(cacheKey); elements.Auth0AccessToken = elementDictionary.ContainsKey(TokenElement.Auth0AccessToken) ? elementDictionary[TokenElement.Auth0AccessToken] : null; elements.IdToken = elementDictionary.ContainsKey(TokenElement.IdToken) ? elementDictionary[TokenElement.IdToken] : null; elements.Profile = elementDictionary.ContainsKey(TokenElement.Profile) ? JsonConvert.DeserializeObject <JObject>(elementDictionary[TokenElement.Profile]) : null; return(elements); }
public void BuildsResourcesPerSection() { MethodToTest(() => service.BuildMembershipRuleSectionResources(A <string> .Ignored, A <IEnumerable <MembershipRuleSection> > .Ignored, A <IEnumerable <MembershipRuleTermDefinition> > .Ignored, A <Auth0User> .Ignored)); var sectionPrefix = "pre"; var user = new Auth0User(); var org = new ShurahBasedOrganisation { MembershipRuleSections = new List <MembershipRuleSection>(), Terms = new List <MembershipRuleTermDefinition>() }; var exampleIndex = 3; var exampleSection = new MembershipRuleSection(); var exampleMembershipRuleSectionResource = new MembershipRuleSectionResource(); A.CallTo(() => service.BuildMembershipRuleSectionResource(sectionPrefix, exampleSection, user, exampleIndex, org.Terms)) .Returns(exampleMembershipRuleSectionResource); var orderedSections = A.Fake <IOrderedEnumerable <MembershipRuleSection> >(); A.CallTo(() => dependencies.LinqService.OrderBy(org.MembershipRuleSections, A <Func <MembershipRuleSection, int> > .That.Matches(x => x.Invoke(new MembershipRuleSection { Sequence = 4 }) == 4 ))).Returns(orderedSections); var resources = new List <MembershipRuleSectionResource>(); A.CallTo(() => dependencies.LinqService.SelectIndexedEnumerable(orderedSections, A <Func <MembershipRuleSection, int, MembershipRuleSectionResource> > .That.Matches(x => x.Invoke(exampleSection, exampleIndex) == exampleMembershipRuleSectionResource ))).Returns(resources); var resourcesList = new List <MembershipRuleSectionResource>(); A.CallTo(() => dependencies.LinqService.EnumerableToList(resources)).Returns(resourcesList); var result = service.BuildMembershipRuleSectionResources(sectionPrefix, org.MembershipRuleSections, org.Terms, user); Assert.AreSame(resourcesList, result); }
public void MemberReturned() { MethodToTest(() => service.GetMember(A <Auth0User> .Ignored, A <IEnumerable <Member> > .Ignored)); var members = new List <Member>(); var user = new Auth0User { Id = "someid" }; var exampleMatchingMember = new Member { MemberAuth0Users = new List <MemberAuth0User> { new MemberAuth0User { Auth0UserId = user.Id } } }; var exampleNonMatchingMember = new Member { MemberAuth0Users = new List <MemberAuth0User> { new MemberAuth0User { Auth0User = new Auth0User() } } }; var member = new Member(); A.CallTo(() => dependencies.LinqService.SingleOrDefault(members, A <Func <Member, bool> > .That.Matches(x => x.Invoke(exampleMatchingMember) && !x.Invoke(exampleNonMatchingMember) ))).Returns(member); var memberResource = new MemberResource(); A.CallTo(() => service.BuildMemberResource(member)).Returns(memberResource); var result = service.GetMember(user, members); Assert.AreSame(memberResource, result); }
//var loginWithWidgetAndRefreshToken = this.FindViewById<Button>(Resource.Id.loginWithWidgetAndRefreshToken); //loginWithWidgetAndRefreshToken.Click += async (s, a) => { // // This will show all connections enabled in Auth0, and let the user choose the identity provider // try // { // var user = await this.client.LoginAsync(this, withRefreshToken: true); // this.ShowResult(user); // } // catch (AggregateException e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Flatten().Message; // } // catch (Exception e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Message; // } //}; //var loginWithConnection = this.FindViewById<Button>(Resource.Id.loginWithConnection); // loginWithConnection.Click += async (s, a) => { // // This uses a specific connection: google-oauth2 // try // { // var user = await this.client.LoginAsync(this, "google-oauth2"); // current context and connection name // this.ShowResult(user); // } // catch (AggregateException e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Flatten().Message; // } // catch (Exception e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Message; // } // }; //var loginWithUserPassword = this.FindViewById<Button>(Resource.Id.loginWithUserPassword); //loginWithUserPassword.Click += async (s, a) => { // this.progressDialog.Show(); // var userName = this.FindViewById<EditText>(Resource.Id.txtUserName).Text; // var password = this.FindViewById<EditText>(Resource.Id.txtUserPassword).Text; // // This uses a specific connection (named sql-azure-database in Auth0 dashboard) which supports username/password authentication // try // { // var user = await this.client.LoginAsync("sql-azure-database", userName, password); // this.ShowResult(user); // } // catch (AggregateException e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Flatten().Message; // } // catch (Exception e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Message; // } // finally // { // if (this.progressDialog.IsShowing) // { // this.progressDialog.Hide(); // } // } //}; //var refreshWithIdToken = this.FindViewById<Button>(Resource.Id.refreshWithIdToken); //refreshWithIdToken.Click += async (s, a) => { // this.progressDialog.Show(); // try // { // await this.client.RenewIdToken(); // this.ShowResult(this.client.CurrentUser); // } // catch (AggregateException e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Flatten().Message; // } // catch (Exception e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Message; // } // finally // { // if (this.progressDialog.IsShowing) // { // this.progressDialog.Hide(); // } // } //}; //var refreshWithRefreshToken = this.FindViewById<Button>(Resource.Id.refreshWithRefreshToken); //refreshWithRefreshToken.Click += async (s, a) => { // this.progressDialog.Show(); // try // { // await this.client.RefreshToken(); // this.ShowResult(this.client.CurrentUser); // } // catch (AggregateException e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Flatten().Message; // } // catch (Exception e) // { // this.FindViewById<TextView>(Resource.Id.txtResult).Text = e.Message; // } // finally // { // if (this.progressDialog.IsShowing) // { // this.progressDialog.Hide(); // } // } //}; private void ShowResult(Auth0User user) { var id = user.IdToken; var profile = user.Profile.ToString(); var refreshToken = string.IsNullOrEmpty(user.RefreshToken) ? "Not requested. Use withRefreshToken: true when calling LoginAsync." : user.RefreshToken; var truncatedId = id.Remove(0, 20); truncatedId = truncatedId.Insert(0, "..."); //this.FindViewById<TextView>(Resource.Id.txtResult).Text = string.Format( // "Id: {0}\r\n\r\nProfile: {1}\r\n\r\nRefresh Token:\r\n{2}", // truncatedId, // profile, // refreshToken); StartActivity(typeof(MainActivity)); }
public static User CreateUser(Auth0User auth0User, int referralId) { var user = new User { UserIdentity = new UserIdentity { Auth0Id = auth0User.Auth0Id, Auth0Nickname = auth0User.Auth0Nickname, Username = auth0User.Auth0Nickname }, Username = auth0User.Auth0Nickname, UserWallet = new UserWallet(), UserStat = new UserStat(), UserReferral = new UserReferral { ReferralId = referralId }, CreationTime = DateTime.Now }; return(user); }
public virtual List <string> GetMemberPermissions(Auth0User user, ShurahBasedOrganisation organisation) { if (user == null || organisation == null) { return(new List <string>()); } var memberAuthUser = user.MemberAuth0Users.FirstOrDefault(m => m.Member.OrganisationId == organisation.Id && !m.Member.Removed); if (memberAuthUser == null) { return(new List <string>()); } var permissions = memberAuthUser.Member.DelegatedPermissions.Select(x => x.ShurahOrganisationPermission).Distinct(); if (organisation.OrganisationLeader != null && organisation.OrganisationLeader.LeaderMemberId == memberAuthUser.MemberId) { permissions = Enum.GetValues(typeof(ShurahOrganisationPermission)).OfType <ShurahOrganisationPermission>().ToList(); } return(permissions.Select(p => p.ToString()).ToList()); }
public async Task <FullUser> RegisterNewUser([FromBody] Auth0User auth0User) { if (auth0User == null) { throw new ArgumentNullException(); } var existingUserIdentity = await _dbContext.Auth0Query(auth0User.Auth0Id).Select(u => u.UserIdentity).FirstOrDefaultAsync(); if (existingUserIdentity?.Auth0Id == auth0User.Auth0Id) { var user = _dbContext.User.FirstOrDefault(u => u.UserId == existingUserIdentity.UserId); var userWallet = _dbContext.UserWallet.FirstOrDefault(u => u.UserId == existingUserIdentity.UserId); var userStat = _dbContext.UserStat.FirstOrDefault(u => u.UserId == existingUserIdentity.UserId); return(BitcornUtils.GetFullUser(user, existingUserIdentity, userWallet, userStat)); } try { var user = new User { UserIdentity = new UserIdentity { Auth0Id = auth0User.Auth0Id, Auth0Nickname = auth0User.Auth0Nickname }, UserWallet = new UserWallet(), UserStat = new UserStat() }; _dbContext.User.Add(user); await _dbContext.SaveAsync(); return(BitcornUtils.GetFullUser(user, user.UserIdentity, user.UserWallet, user.UserStat)); } catch (Exception e) { Console.WriteLine(e); throw; } }
public void StoreUser(Auth0User user) { if (user == null) { throw new ArgumentNullException("user"); } var credential = GetFromVault(user.Profile["email"].ToString()); if (credential != null) { _vault.Remove(credential); } var newCred = new PasswordCredential { UserName = user.Profile["email"].ToString(), Password = CacheHelpers.EncodeAuthUser(user), Resource = Resource }; _vault.Add(newCred); }