Example #1
0
 private void OnCreated(UserCreated args)
 {
     this.Id        = args.UserId;
     this.FullName  = args.FullName;
     this.BirthDate = args.BirthDate;
     this.Address   = args.Address;
 }
Example #2
0
        // Entry Point
        public void CreateNewUsers(NewUserRequest[] newUsers)
        {
            // Do some validation
            foreach (var request in newUsers)
            {
                AssertIsValid(request);
            }

            // Create new users
            var users = newUsers
                        .Select(x => new User {
                UserName = x.UserName
            }).ToArray();

            // Write it to the database
            PersistUsers(users);


            // Publish an event about the new user
            // to a service bus
            foreach (var user in users)
            {
                var @event = new UserCreated
                {
                    UserName = user.UserName
                };

                _publisher.Publish(@event);
            }
        }
Example #3
0
 public void When(UserCreated e)
 {
     _store.Add(e.AggregateId, new ActiveUserView
     {
         Id = e.AggregateId
     });
 }
    // public UserDashboard Create(UserCreated @event)
    // {
    //     var item = new UserDashboard();
    //     item.Id = @event.UserId;
    //     item.UserName = @event.UserName;
    //     item.OrdersCount = 0;
    //     item.TotalAmount = 0;
    //     return item;
    // }

    public void Apply(UserDashboard item, UserCreated @event)
    {
        item.Id          = @event.UserId;
        item.UserName    = @event.UserName;
        item.OrdersCount = 0;
        item.TotalAmount = 0;
    }
    public User(Guid id, string name)
    {
        var @event = new UserCreated(id, name);

        Enqueue(@event);
        Apply(@event);
    }
 protected void ProcessUserCreated(UserCreated @event)
 {
     this.Id        = @event.UserId;
     this.Name      = @event.Username;
     this.Job       = @event.Job;
     this.IsDeleted = @event.IsDeleted;
 }
 private void Handle(UserCreated evnt)
 {
     using (var conn = _connectionFactory.OpenConnection())
     {
         conn.Insert(evnt, "EventSourcing_Sample_User");
     }
 }
        public void serialize_userAdded()
        {
            var evnt = new UserCreated(Guid.NewGuid(), DateTime.Now, UserId.CreateNew(), new UserLoginInfo("prov", "key"), "username", "password");


            var settings = new JsonSerializerSettings
            {
                TypeNameHandling     = TypeNameHandling.None,
                DefaultValueHandling = DefaultValueHandling.Ignore,
                NullValueHandling    = NullValueHandling.Ignore,
                ConstructorHandling  = Newtonsoft.Json.ConstructorHandling.Default,
                //Formatting = Newtonsoft.Json.Formatting.Indented,
                ContractResolver = new Newtonsoft.Json.Serialization.DefaultContractResolver
                {
                    DefaultMembersSearchFlags = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance,
                },
                //ReferenceLoopHandling = ReferenceLoopHandling.Serialize,
            };

            var data = Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(evnt, settings));

            var result = (UserCreated)JsonConvert.DeserializeObject(Encoding.UTF8.GetString(data), typeof(UserCreated));

            Assert.AreEqual(evnt.Id, result.Id);
            Assert.AreEqual(evnt.Timestamp, result.Timestamp);
            Assert.AreEqual(evnt.LoginInfo, result.LoginInfo);
            Assert.AreEqual(evnt.UserId, result.UserId);
        }
        public async Task GivenTwoEventHandlers_WhenEventIsPublished_ThenBothHandles()
        {
            //Given
            var services = new ServiceCollection();

            services.AddDDD();
            services.RegisterEventHandler <UserCreated, UsersCountHandler>(ServiceLifetime.Singleton);
            services.RegisterEventHandler <UserCreated, UsersIdsHandler>(ServiceLifetime.Singleton);

            var sp       = services.BuildServiceProvider();
            var eventBus = sp.GetService <IEventBus>();
            var @event   = new UserCreated(Guid.NewGuid());

            //When
            await eventBus.Publish(@event);

            //Then
            var usersCountHandler = sp.GetService <UsersCountHandler>();

            usersCountHandler.UserCount.Should().Be(1);

            var usersIdsHandler = sp.GetService <UsersIdsHandler>();

            usersIdsHandler.UserIds.Should().HaveCount(1);
            usersIdsHandler.UserIds.Should().Contain(@event.UserId);
        }
Example #10
0
 public void Apply(UserCreated evnt)
 {
     Id        = evnt.UserId.ToString();
     UserName  = evnt.UserName;
     Created   = evnt.Timestamp;
     LoginInfo = evnt.LoginInfo;
 }
Example #11
0
 protected virtual void OnUserCreated(User user)
 {
     UserCreated?.Invoke(this, new UserEventArgs()
     {
         User = user
     });
 }
Example #12
0
        public void Handle(UserCreated message)
        {
            var accommodationSupplier = new AccommodationSupplier(Data.AccommodationSupplierId, message.Name,
                                                                  message.Email);

            DomainRepository.Save(accommodationSupplier);
        }
        public void given_two_events_with_the_same_value_for_unique_field_with_single_property_when_inline_transformation_is_applied_then_throws_exception()
        {
            //1. Create Events
            const string email      = "*****@*****.**";
            var          firstEvent = new UserCreated {
                UserId = Guid.NewGuid(), Email = email, FirstName = "John", Surname = "Smith"
            };
            var secondEvent = new UserCreated {
                UserId = Guid.NewGuid(), Email = email, FirstName = "John", Surname = "Doe"
            };

            using (var store = InitStore())
            {
                using (var session = store.OpenSession())
                {
                    //2. Publish Events
                    session.Events.Append(firstEvent.UserId, firstEvent);
                    session.Events.Append(secondEvent.UserId, secondEvent);

                    //3. Unique Exception Was thrown
                    try
                    {
                        session.SaveChanges();
                    }
                    catch (MartenCommandException exception)
                    {
                        ((PostgresException)exception.InnerException).SqlState.ShouldBe(UniqueSqlState);
                    }
                }
            }
        }
Example #14
0
 public void VoteQuestion(UserCreated fromUser, bool vote)
 {
     if (votesMap_.Contains(new KeyValuePair <Guid, bool>(fromUser.userId_, vote)))
     {
         return;
     }
     else if (votesMap_.ContainsKey(fromUser.userId_))
     {
         if (vote)
         {
             votes_ += 2;
             votesMap_[fromUser.userId_] = true;
         }
         else
         {
             votes_ -= 2;
             votesMap_[fromUser.userId_] = false;
         }
     }
     else
     {
         if (vote)
         {
             votes_ += 1;
         }
         else
         {
             votes_ -= 1;
         }
         votesMap_.Add(fromUser.userId_, vote);
     }
 }
Example #15
0
    public void AggregateStream_ShouldReturnSpecifiedVersionOfTheStream()
    {
        var streamId             = Guid.NewGuid();
        var userCreated          = new UserCreated(streamId, "John Doe");
        var userNameUpdated      = new UserNameUpdated(streamId, "Adam Smith");
        var userNameUpdatedAgain = new UserNameUpdated(streamId, "Michael Newman");

        eventStore.AppendEvent <User>(streamId, userCreated);
        eventStore.AppendEvent <User>(streamId, userNameUpdated);
        eventStore.AppendEvent <User>(streamId, userNameUpdatedAgain);

        var aggregateAtVersion1 = eventStore.AggregateStream <User>(streamId, 1);

        aggregateAtVersion1.Id.Should().Be(streamId);
        aggregateAtVersion1.Name.Should().Be(userCreated.UserName);
        aggregateAtVersion1.Version.Should().Be(1);

        var aggregateAtVersion2 = eventStore.AggregateStream <User>(streamId, 2);

        aggregateAtVersion2.Id.Should().Be(streamId);
        aggregateAtVersion2.Name.Should().Be(userNameUpdated.UserName);
        aggregateAtVersion2.Version.Should().Be(2);

        var aggregateAtVersion3 = eventStore.AggregateStream <User>(streamId, 3);

        aggregateAtVersion3.Id.Should().Be(streamId);
        aggregateAtVersion3.Name.Should().Be(userNameUpdatedAgain.UserName);
        aggregateAtVersion3.Version.Should().Be(3);
    }
 public QuestionPublished(QuestionMO question, Guid questionID, UserCreated user) {
     question_ = question;
     questionID_ = questionID;
     user_ = user;
     votes_ = 0;
     votesMap_ = new Dictionary<Guid, bool>();
 }
Example #17
0
 public void Handle(IViewContext context, UserCreated domainEvent)
 {
     UserProfiles.Add(new UserProfile
     {
         Id = domainEvent.GetAggregateRootId()
     });
 }
Example #18
0
        public async Task WriteASingleEventAsynchronously()
        {
            var eventStreamId =
                new Guid("A0E50259-7345-48F9-84B4-BEEB5CEC662C");
            using (var storage = new AtomEventsInMemory())
            {
                var pageSize = 25;
                var serializer = DataContractContentSerializer.Scan(
                    typeof(UserCreated).Assembly);
                var obs = new AtomEventObserver<object>(
                    eventStreamId, // a Guid
                    pageSize,      // an Int32
                    storage,       // an IAtomEventStorage object
                    serializer);   // an IContentSerializer object

                var userCreated = new UserCreated
                {
                    UserId = eventStreamId,
                    UserName = "******",
                    Password = "******",
                    Email = "*****@*****.**"
                };
                await obs.AppendAsync(userCreated);

                Assert.NotEmpty(storage);
            }
        }
 public void VoteQuestion(UserCreated fromUser, bool vote)
 {
     if (votesMap.Contains(new KeyValuePair <Guid, bool>(fromUser.UserId, vote)))
     {
         return;
     }
     else if (votesMap.ContainsKey(fromUser.UserId))
     {
         if (vote)
         {
             Votes += 2;
             votesMap[fromUser.UserId] = true;
         }
         else
         {
             Votes -= 2;
             votesMap[fromUser.UserId] = false;
         }
     }
     else
     {
         if (vote)
         {
             Votes += 1;
         }
         else
         {
             Votes -= 1;
         }
         votesMap.Add(fromUser.UserId, vote);
     }
 }
Example #20
0
File: User.cs Project: ted9/cqrs
        public User(string loginId, string password, string userName, string email)
            : this(Guid.NewGuid())
        {
            var userCreated = new UserCreated(loginId, password, userName, email);

            RaiseEvent(userCreated);
        }
Example #21
0
 private void Apply(UserCreated @event)
 {
     Id       = @event.AggregateRootId;
     Email    = @event.Email;
     UserName = @event.UserName;
     Status   = @event.Status;
 }
Example #22
0
File: User.cs Project: ted9/cqrs
 private void OnUserCreated(UserCreated @event)
 {
     this.LoginId  = @event.LoginId;
     this.Password = @event.Password;
     this.UserName = @event.UserName;
     this.Email    = @event.Email;
 }
Example #23
0
 public void Apply(UserCreated vent)
 {
     Email     = vent.Email;
     FirstName = vent.FirstName;
     LastName  = vent.LastName;
     Password  = vent.Password;
 }
Example #24
0
        public void Process(UserCreated @event)
        {
            var user = _users.GetById(@event.Id);

            if (user == null)
            {
                user = new User()
                {
                    Id            = @event.Id,
                    Name          = @event.Name,
                    PhoneNumber   = @event.PhoneNumber,
                    Email         = @event.Email,
                    Geo           = @event.Geo,
                    RecipientType = @event.UserType
                };
            }
            else
            {
                user.Id            = @event.Id;
                user.Name          = @event.Name;
                user.PhoneNumber   = @event.PhoneNumber;
                user.Email         = @event.Email;
                user.Geo           = @event.Geo;
                user.RecipientType = @event.UserType;
            }
            _users.Save(user);
        }
 void When(UserCreated evnt)
 {
     if (_userNames.ContainsKey(evnt.UserId.ToString()))
     {
         return;
     }
     _userNames[evnt.UserId.ToString()] = evnt.UserName;
 }
Example #26
0
 public async Task Apply(UserCreated evnt)
 {
     await _store.InsertAsync(new UserView
     {
         Id    = evnt.UserId,
         Email = evnt.Email,
     });
 }
Example #27
0
 protected void When(UserCreated userCreated)
 {
     UserId   = userCreated.UserId;
     Salt     = userCreated.Salt;
     Username = userCreated.Username;
     Password = userCreated.Password;
     Roles    = new HashSet <Role>();
 }
Example #28
0
 public static void Handle(UserCreated created, IDocumentSession session)
 {
     session.Store(new ReceivedTrack
     {
         Id          = created.Id,
         MessageType = "UserCreated"
     });
 }
            private void Apply(UserView view, UserCreated @event)
            {
                view.Id       = @event.UserId;
                view.Email    = @event.Email;
                view.FullName = $"{@event.FirstName} {@event.Surname}";

                view.UserName = @event.Email;
            }
 public QuestionPublished(CreateQuestionCommand question, Guid questionID, UserCreated user)
 {
     Question   = question;
     QuestionID = questionID;
     User       = user;
     Votes      = 0;
     votesMap   = new Dictionary <Guid, bool>();
 }
Example #31
0
 public void Apply(UserCreated domainEvent)
 {
     Id                 = domainEvent.Id;
     State.Username     = domainEvent.Username;
     State.PasswordHash = domainEvent.Password;
     State.Email        = domainEvent.EMail;
     State.Timezone     = domainEvent.Timezone;
 }
Example #32
0
 private void Apply(UserCreated userCreated)
 {
     Id        = userCreated.AggregateId;
     Nick      = userCreated.Nick;
     FirstName = userCreated.FirstName;
     LastName  = userCreated.LastName;
     Email     = userCreated.Email;
 }
Example #33
0
 public static User Create(UserCreated @event)
 {
     return new User(
         @event.UserId,
         @event.UserName,
         @event.Password,
         @event.Email,
         false);
 }
Example #34
0
 static string When(UserCreated e)
 {
     return string.Format("Created user {0} (security {2}) with threshold {1}", e.Id.Id, e.ActivityThreshold,
         e.SecurityId.Id);
 }
Example #35
0
 public void When(UserCreated e)
 {
     SecurityId = e.SecurityId;
     Id = e.Id;
 }
 protected virtual void Handle(UserCreated evnt)
 {
     _entityManager.BuildAndSave<UserEntity>(evnt);
 }
Example #37
0
 public void When(UserCreated e)
 {
     _writer.UpdateOrThrow(e.Id, lv => { lv.LoginTrackingThreshold = e.ActivityThreshold; });
 }
Example #38
0
        public void ReadASingleEvent()
        {
            var eventStreamId =
                new Guid("A0E50259-7345-48F9-84B4-BEEB5CEC662C");
            using (var storage = new AtomEventsInMemory())
            {
                var pageSize = 25;
                var serializer = DataContractContentSerializer.Scan(
                    typeof(UserCreated).Assembly);
                var obs = new AtomEventObserver<object>(
                    eventStreamId,
                    pageSize,
                    storage,
                    serializer);
                var userCreated = new UserCreated
                {
                    UserId = eventStreamId,
                    UserName = "******",
                    Password = "******",
                    Email = "*****@*****.**"
                };
                obs.OnNext(userCreated);

                IEnumerable<object> events = new FifoEvents<object>(
                    eventStreamId, // a Guid
                    storage,       // an IAtomEventStorage object
                    serializer);   // an IContentSerializer object
                var firstEvent = events.First();

                var uc = Assert.IsAssignableFrom<UserCreated>(firstEvent);
                Assert.Equal(userCreated, uc, new SemanticComparer<UserCreated>());
            }
        }