コード例 #1
0
        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;
        }
コード例 #2
0
		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;
		}