public async Task <Result <Exception, int> > Handle(Command request, CancellationToken cancellationToken) { var hasAnyUserCallback = await _userRepository.HasAnyByEmailAsync(request.Email); if (hasAnyUserCallback.IsFailure) { return(hasAnyUserCallback.Failure); } if (hasAnyUserCallback.Success) { return(new AlreadyExistsException($"A user already exists with the email { request.Email}.")); } var user = _mapper.Map <User>(request); user.Password = request.Password.GenerateHash(); var addUserCallback = await _userRepository.AddAsync(user); if (addUserCallback.IsFailure) { return(addUserCallback.Failure); } var newUser = addUserCallback.Success; await _auditCRUD.ActionCreate( eventName : nameof(UserCreate), user : new UserAuditCRUD(isAnonymous: true), location : typeof(UserCreate).Namespace, ipAddress : request.IpAddress, currentEntity : newUser); return(newUser.Id); }
public async Task <Result <Exception, int> > Handle(Command request, CancellationToken cancellationToken) { var student = _mapper.Map <Student>(request); student.SetActivated(); var addStudentCallback = await _studentRepository.AddAsync(student); if (addStudentCallback.IsFailure) { return(addStudentCallback.Failure); } var newStudent = addStudentCallback.Success; await _auditCRUD.ActionCreate( eventName : nameof(StudentCreate), user : new UserAuditCRUD(request.UserId, request.UserName, request.Email), location : typeof(StudentCreate).Namespace, ipAddress : request.IpAddress, currentEntity : newStudent); return(newStudent.Id); }