コード例 #1
0
            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);
            }
コード例 #2
0
            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);
            }