コード例 #1
0
        public void UserAggregate_AddClaim_WillPersist()
        {
            // create
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var user = UserAggregate.Create("raffaeu", "*****@*****.**",
                                                "password hash", "security stamp");

                user.AddClaim("LOCAL AUTHORITY", "LOCAL AUTHORITY", "schema", "Raffaeu", "schema#string");


                databaseContext.Set <UserAggregate>().Add(user);
                databaseContext.SaveChanges();
            }

            // verify
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var expectedUser = databaseContext.Set <UserAggregate>()
                                   .Include(x => x.Claims)
                                   .First();

                expectedUser.Claims.Count.Should().Be(1);
            }
        }
コード例 #2
0
ファイル: UserDal.cs プロジェクト: LukaszSzulc/CQRSES
        public UserAggregate GetUserInfo(string accountNumber)
        {
            var user   = session.Query <User>().FirstOrDefault(x => x.AccountNumber == accountNumber);
            var ammout = session.Load <AccountUpdateEvent>($"{user.Id}/Events").Updates.Sum(x => x.Ammount);

            return(UserAggregate.Create(user, ammout));
        }
コード例 #3
0
        public void UserAggregate_Delete_WillDelete()
        {
            // create
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var user = UserAggregate.Create("raffaeu", "*****@*****.**",
                                                "password hash", "security stamp");
                databaseContext.Set <UserAggregate>().Add(user);
                databaseContext.SaveChanges();
            }

            // delete
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var user = databaseContext.Set <UserAggregate>().First();
                databaseContext.Set <UserAggregate>().Remove(user);

                databaseContext.SaveChanges();
            }

            // verify
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                databaseContext.Set <UserAggregate>().Count().Should().Be(0);
            }
        }
コード例 #4
0
        public void UserController_GetByUsername_ReturnUser()
        {
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var user01 = UserAggregate.Create("jsmith", "*****@*****.**", "password hash", "security stamp");
                var user02 = UserAggregate.Create("mjane", "*****@*****.**", "password hash", "security stamp");

                databaseContext.Set <UserAggregate>().AddRange(new[] { user01, user02 });
                databaseContext.SaveChanges();
            }

            using (WebApp.Start <Startup>(url: iisAddress))
            {
                HttpClient client = new HttpClient();
                client.DefaultRequestHeaders.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));
                var response = client.GetAsync(String.Format("{0}UserRead?username={1}", iisAddress, "jsmith")).Result;
                response.StatusCode.Should().Be(HttpStatusCode.OK);
                var result = response.Content.ReadAsStringAsync().Result;

                Debug.WriteLine(response.Content.ReadAsStringAsync().Result);

                var user = JsonConvert.DeserializeObject <UserMessage>(result);

                user.Username.Should()
                .Be("jsmith");
            }
        }
コード例 #5
0
        public void UserAggregate_Create_ValidValues_IsValid()
        {
            var user = UserAggregate.Create(
                "Username", "Email",
                "PasswordHash", "SecurityStamp");

            user.IsValid.Should().BeTrue();
        }
コード例 #6
0
        public void UserAggregate_Created_EmptyValues_IsNotValid()
        {
            var user = UserAggregate.Create(
                string.Empty, string.Empty,
                string.Empty, string.Empty);

            user.IsValid.Should().BeFalse();
        }
コード例 #7
0
ファイル: UsersManager.cs プロジェクト: Gelller/Timesheets
        public async Task <Guid> Create(User item)
        {
            var user = UserAggregate.Create(item.Username, item.PasswordHash, item.Role);

            item.EnsureNotNull(nameof(item));
            await _userAggregateRepo.Add(user);

            return(item.Id);
        }
コード例 #8
0
        public void CreateTest()
        {
            var builder = new UserAggregateBuilder();
            var user    = UserAggregate.Create(
                builder.userName,
                builder.passwordHash,
                builder.role);

            user.Should().As <UserAggregate>();
        }
コード例 #9
0
ファイル: UserDal.cs プロジェクト: LukaszSzulc/CQRSES
        public UserAggregate GetUserInfoFromSpan(string accountNumber, TimeSpan span)
        {
            var user   = session.Query <User>().FirstOrDefault(x => x.AccountNumber == accountNumber);
            var ammout =
                session.Load <AccountUpdateEvent>($"{user.Id}/Events")
                .Updates.Where(x => x.OccuredDate - DateTime.Now <= span)
                .Sum(x => x.Ammount);

            return(UserAggregate.Create(user, ammout));
        }
コード例 #10
0
 public Task HandleAsync(CreateUser args)
 {
     try
     {
         var aggregate = UserAggregate.Create(args.AggregateId, args.FirstName, args.LastName, args.Email, args.Password);
         return(_repository.SaveAsync(aggregate));
     }
     catch (Exception ex)
     {
         _logger.LogError(ex.Message, ex);
         while (ex.InnerException != null)
         {
             ex = ex.InnerException;
             _logger.LogError(ex.Message, ex);
         }
         throw;
     }
 }
コード例 #11
0
        public void UserAggregate_Valid_CanBeCreate()
        {
            // create
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var user = UserAggregate.Create("raffaeu", "*****@*****.**",
                                                "password hash", "security stamp");
                databaseContext.Set <UserAggregate>().Add(user);

                databaseContext.SaveChanges();
            }

            // verify
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var expectedUser = databaseContext.Set <UserAggregate>().First();
                expectedUser.Username.Should().Be("raffaeu");
            }
        }
コード例 #12
0
        public void UserAggregate_AddLogin_WillPersist()
        {
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var user = UserAggregate.Create("raffaeu", "*****@*****.**",
                                                "password hash", "security stamp");
                user.AddLogin("providerName", "providerKey");

                databaseContext.Set <UserAggregate>().Add(user);
                databaseContext.SaveChanges();
            }

            // verify
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var expectedUser = databaseContext.Set <UserAggregate>()
                                   .Include(x => x.Logins)
                                   .First();

                expectedUser.Logins.Count.Should().Be(1);
            }
        }
コード例 #13
0
        public void RoleAggregate_AddUser_WillAdd()
        {
            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var role = RoleAggregate.Create(Guid.NewGuid(), "RoleName");
                var user = UserAggregate.Create("raffaeu", "*****@*****.**", "password hash", "security stamp");
                role.AddUserToRole(user);

                databaseContext.Set <RoleAggregate>().Add(role);

                databaseContext.SaveChanges();
            }

            using (DatabaseContext databaseContext = DatabaseTestFactory.GetSession())
            {
                var role = databaseContext.Set <RoleAggregate>()
                           .Include(x => x.Users)
                           .Single();

                role.Users.Count.Should().Be(1);
            }
        }
コード例 #14
0
        /// <summary>
        /// Insert a new user
        /// </summary>
        /// <param name="user"/>
        /// <returns/>
        public Task CreateAsync(CustomUser user)
        {
            // verify User does not exists
            var exists = databaseContext.Set <UserAggregate>()
                         .Any(x => x.Username == user.UserName ||
                              x.Email == user.Email);

            if (exists)
            {
                throw new ApplicationException(String.Format("There is already a User with these Credentials."));
            }

            // create User and Save
            var aggregateUser = UserAggregate.Create(
                id: new Guid(user.Id),
                username: user.UserName,
                email: user.Email,
                passwordHash: user.PasswordHash,
                securityStamp: user.SecurityStamp);

            databaseContext.Set <UserAggregate>().Add(aggregateUser);

            return(databaseContext.SaveChangesAsync());
        }
コード例 #15
0
        public UserAggregate GetRandomUserAggregate()
        {
            var userAggregate = UserAggregate.Create(userName, passwordHash, role);

            return(userAggregate);
        }
コード例 #16
0
        public static UserAggregate User()
        {
            var user = UserAggregate.Create("jsmith", "*****@*****.**", "password hash", "security stamp");

            return(user);
        }
コード例 #17
0
 public IAggregate Handle(CreateUser command)
 {
     return(UserAggregate.Create(command.Id, command.UserName, command.Email, command.FirstName, command.LastName, _dateTimeProvider.Now));
 }