protected override void SetStateByEvent(IEvent @event) { switch (@event) { case UserRegistered e: Id = e.UserId; FirstName = FirstName.FromString(e.FirstName); LastName = LastName.FromString(e.LastName); DisplayName = DisplayName.FromString(e.DisplayName); break; case UserNameUpdated e: FirstName = FirstName.FromString(e.FirstName); LastName = LastName.FromString(e.LastName); break; case UserEmailUpdated e: Email = Email.FromString(e.Email); break; case UserDisplayNameUpdated e: DisplayName = DisplayName.FromString(e.DisplayName); break; default: throw new InvalidOperationException("امکان اجرای عملیات درخواستی وجود ندارد"); } }
public void Configure(EntityTypeBuilder <UserProfile> builder) { builder.Property(c => c.FirstName).HasConversion(c => c.Value, d => FirstName.FromString(d)); builder.Property(c => c.LastName).HasConversion(c => c.Value, d => LastName.FromString(d)); builder.Property(c => c.DisplayName).HasConversion(c => c.Value, d => DisplayName.FromString(d)); builder.Property(c => c.Email).HasConversion(c => c.Value, d => Email.FromString(d)); }
public void Handle(UpdateUserName command) { var user = _userProfileRepository.Load(command.UserId); if (user == null) { throw new InvalidOperationException($"کاربری با شناسه {command.UserId} یافت نشد."); } user.UpdateName(FirstName.FromString(command.FirstName), LastName.FromString(command.LastName)); _unitOfWork.Commit(); }
protected override void SetStateByEvent(IEvent @event) { switch (@event) { case UserRegistered e: FirstName = FirstName.FromString(e.FirstName); LastName = LastName.FromString(e.FirstName); Email = Email.FromString(e.Email); break; default: break; } }
public void Handle(RegisterUser command) { if (_userProfileRepository.Exists(command.UserId)) { throw new InvalidOperationException($"قبلا کاربری با شناسه {command.UserId} ثبت شده است."); } UserProfile userProfile = new UserProfile(command.UserId, FirstName.FromString(command.FirstName), LastName.FromString(command.LastName), DisplayName.FromString(command.DisplayName)); _userProfileRepository.Add(userProfile); unitOfWork.Commit(); }
public async Task <bool> Handle(RegisterUserProfile request, CancellationToken cancellationToken) { UserProfile userProfile = new UserProfile( FirstName.FromString(request.FirstName), LastName.FromString(request.LastName), Email.FromString(request.Email)); _userProfileRepository.Add(userProfile); int result = _unitOfWork.Commit(); foreach (var @event in userProfile.GetEvents()) { await _eventBus.Publish(@event); } return(true); }