public async Task <IdentityResult> Handle(UpdatePersonalDataCommand request, CancellationToken cancellationToken) { var result = IdentityResult.Success; using (var userManager = _userManagerFactory()) { var user = await userManager.FindByIdAsync(request.UserId); if (user == null) { return(IdentityResult.Failed()); } if (!IsUserEditable(user.UserName)) { return(IdentityResult.Failed(new IdentityError { Description = "It is forbidden to edit this user." })); } if (request.PersonalData?.Email != null && user.Email != request.PersonalData?.Email) { user.Email = request.PersonalData.Email; result = await userManager.UpdateAsync(user); } var contactAggregate = await _contactAggregateRepository.GetContactByIdAsync(user.MemberId); if (contactAggregate != null) { contactAggregate.UpdatePersonalDetails(request.PersonalData); await _contactAggregateRepository.SaveAsync(contactAggregate); } } return(result); }
public async Task <ContactAggregate> Handle(UpdateContactCommand request, CancellationToken cancellationToken) { var contactAggregate = new ContactAggregate(request); await _contactAggregateRepository.SaveAsync(contactAggregate); return(contactAggregate); }
public async Task <ContactAggregate> Handle(UpdateContactAddressesCommand request, CancellationToken cancellationToken) { var contactAggregate = await _contactAggregateRepository.GetContactByIdAsync(request.ContactId); contactAggregate.UpdateContactAddresses(request.Addresses); await _contactAggregateRepository.SaveAsync(contactAggregate); return(await _contactAggregateRepository.GetContactByIdAsync(request.ContactId)); }
public async Task <ContactAggregate> Handle(CreateContactCommand request, CancellationToken cancellationToken) { var contactAggregate = new ContactAggregate(request); await new NewContactValidator().ValidateAndThrowAsync(contactAggregate.Contact); await _contactAggregateRepository.SaveAsync(contactAggregate); return(contactAggregate); }