public OAuth2UserIdentity SignUpUser(OAuth2UserIdentity entity) { using (IEntityContext context = DependencyInjection.Get<IEntityContext>()) { using (IOAuth2UserRepository repository = DependencyInjection.Get<IOAuth2UserRepository>(InjectionParameter.Create("context", context))) { IList<OAuth2Scope> scopes = repository.Context.Query<OAuth2Scope>() .Where(x => x.Code == "application.role.user.default") .List(); bool isValidIdentifier = this.IsValidEmail(entity.User.Identifier); if (isValidIdentifier) { OAuth2User user = new OAuth2User(); user.ID = Guid.NewGuid(); user.Identifier = entity.User.Identifier; user.Password = entity.User.Password; user.CreationTimestamp = DateTime.UtcNow; user.ValidFrom = DateTime.UtcNow; user.ValidUntil = new DateTime(DateTime.Parse("2100-01-01").Ticks, DateTimeKind.Utc); repository.Context.AddOrUpdate(user); Identity identity = new Identity(); identity.ID = Guid.NewGuid(); identity.FirstName = entity.Identity.FirstName; identity.Name = entity.Identity.Name; identity.Locale = entity.Identity.Locale; repository.Context.AddOrUpdate(identity); OAuth2UserScope userScope = new OAuth2UserScope(); userScope.ID = Guid.NewGuid(); userScope.Scope = scopes.Single(); userScope.User = user; userScope.CreationTimestamp = DateTime.UtcNow; userScope.ValidFrom = DateTime.UtcNow; userScope.ValidUntil = new DateTime(DateTime.Parse("2100-01-01").Ticks, DateTimeKind.Utc); repository.Context.AddOrUpdate(userScope); OAuth2UserIdentity userIdentity = new OAuth2UserIdentity(); userIdentity.ID = Guid.NewGuid(); userIdentity.User = user; userIdentity.Identity = identity; userIdentity.CreationTimestamp = DateTime.UtcNow; userIdentity.ValidFrom = DateTime.UtcNow; userIdentity.ValidUntil = new DateTime(DateTime.Parse("2100-01-01").Ticks, DateTimeKind.Utc); repository.Context.AddOrUpdate(userIdentity); } else { throw new Exception("Invalid e-mail address."); } } context.Commit(); } Domain.Entity.OAuth2UserIdentity _entity = this.GetUserIdentity(entity.User.Identifier); return _entity; }
public OAuth2UserIdentity SignUpUser(OAuth2UserIdentity entity) { using (IEntityContext context = DependencyInjection.Get<IEntityContext>()) { using (IOAuth2UserRepository repository = DependencyInjection.Get<IOAuth2UserRepository>(InjectionParameter.Create("context", context))) { IList<OAuth2Scope> scopes = repository.Context.Query<OAuth2Scope>() .Where(x => x.Code == "application.role.user.default") .List(); bool isValidIdentifier = this.IsValidEmail(entity.User.Identifier); if (isValidIdentifier) { OAuth2User user = new OAuth2User(); user.ID = Guid.NewGuid(); user.Identifier = entity.User.Identifier; user.Password = entity.User.Password; user.CreationTimestamp = DateTime.UtcNow; user.ValidFrom = DateTime.UtcNow; user.ValidUntil = new DateTime(DateTime.Parse("2100-01-01").Ticks, DateTimeKind.Utc); repository.Context.AddOrUpdate(user); Identity identity = new Identity(); identity.ID = Guid.NewGuid(); identity.FirstName = entity.Identity.FirstName; identity.Name = entity.Identity.Name; identity.Locale = entity.Identity.Locale; repository.Context.AddOrUpdate(identity); OAuth2UserScope userScope = new OAuth2UserScope(); userScope.ID = Guid.NewGuid(); userScope.Scope = scopes.Single(); userScope.User = user; userScope.CreationTimestamp = DateTime.UtcNow; userScope.ValidFrom = DateTime.UtcNow; userScope.ValidUntil = new DateTime(DateTime.Parse("2100-01-01").Ticks, DateTimeKind.Utc); repository.Context.AddOrUpdate(userScope); OAuth2UserIdentity userIdentity = new OAuth2UserIdentity(); userIdentity.ID = Guid.NewGuid(); userIdentity.User = user; userIdentity.Identity = identity; userIdentity.CreationTimestamp = DateTime.UtcNow; userIdentity.ValidFrom = DateTime.UtcNow; userIdentity.ValidUntil = new DateTime(DateTime.Parse("2100-01-01").Ticks, DateTimeKind.Utc); repository.Context.AddOrUpdate(userIdentity); } else { throw new Exception("Invalid e-mail address."); } } context.Commit(); } Domain.Entity.OAuth2UserIdentity _entity = this.GetUserIdentity(entity.User.Identifier); return _entity; }