Пример #1
0
        public async Task <Response> Handle(Request request, CancellationToken cancellationToken)
        {
            if (await this._userReadRepository.GetByEmailAsync(request.Email) != null)
            {
                return(new Response().AddError("Email already registered"));
            }

            if (await this._userReadRepository.GetByCPFAsync(request.CPF) != null)
            {
                return(new Response().AddError("CPF already registered"));
            }

            var user = new Domain.Entities.User(request.Name, request.Email, request.CPF, (int)UserProfile.User, request.Password);

            _userWriteRepository.Add(user);
            await _uow.CommitAsync();

            var emailSubject = "Seja bem vindo ao Calculador de Dívida!";

            var emailBody = $"<p>Olá, {user.Name}!</p>" +
                            "<p>Sua conta de usuário no sistema Calculador de Dívida foi criada com sucesso!.<p/>";

            List <string> emails = new List <string>();

            emails.Add(user.Email);

            await _mediator.Publish(new Notification(emailSubject, emailBody, emails));

            return(new Response(user));
        }
Пример #2
0
            public async Task HandleAsync(ChangePasswordCommand command)
            {
                var customerDomain = _mapper.Map <Customer>(command.ComandData);
                var customer       = await _customerReadRepository.Get(command.ComandData.TenantId);

                if (customer == null)
                {
                    await _customerWriteRepository.Add(customerDomain);
                }

                var user = await _userReadRepository.GetByUsername(command.ComandData.Data.Username);

                var userDomain = new User
                {
                    Id = user == null?Guid.NewGuid() : user.Id,
                             CustomerId = command.ComandData.TenantId,
                             Username   = command.ComandData.Data.Username,
                             RoleId     = (int)Common.Enums.Roles.Local,
                             Password   = MD5.CreateMD5(command.ComandData.Data.Password)
                };

                if (user == null)
                {
                    await _userWriteRepository.Add(userDomain);
                }
                else
                {
                    await _userWriteRepository.Update(userDomain);
                }
            }
Пример #3
0
        public async Task <EntityResult <Domain.Models.Entity.User> > Create(RegisterUserCommand command)
        {
            var result = Domain.Models.Entity.User.TryCreateToInsert(command.Name, command.Email, command.Password);

            if (result.Valid)
            {
                await _userWriteRepository.Add(result.Entity);
            }

            return(result);
        }
        public async Task Handle(RegisterUserCommand message)
        {
            var existingUser = await userReadRepository.ExistUserByEmail(message.Id, message.Email);

            if (existingUser)
            {
                throw new Exception("User already exists with this email.");
            }

            await userWriteRepository.Add(Models.User.CreateToInsert(message.Name, message.Email, message.Password));

            await mediator.Publish(new RegisteredUserEvent(message.Name, message.Email));
        }