Ejemplo n.º 1
0
        public async Task <Contract.Models.User> SendEmailConfirmMessage(Contract.Models.User user, string baseUrl)
        {
            var emailMessage = new MimeMessage();

            var token = await GenerateTokenForUser(user.Id);

            var url = baseUrl + $"/account/confirm?id={user.Id}&code={token}";

            emailMessage.From.Add(new MailboxAddress("Администрация сайта", "*****@*****.**"));
            emailMessage.To.Add(new MailboxAddress(user.FirstName, user.Email));
            emailMessage.Subject = "Подтверждение email";
            emailMessage.Body    = new TextPart(MimeKit.Text.TextFormat.Html)
            {
                Text = $"<h1>Здравствуйте, {user.LastName} {user.FirstName}</h1>" +
                       $"<p>Спешим вам сообщить, что вы регистрировались в программе FlexTesting</p>" +
                       $"<p>И теперь вам необходимо подтвердить email. Для это перейдите по <a href=\"{url}\">ссылке</a></p>" +
                       $"<p>{url}</p>"
            };

            using var client = new SmtpClient();
            client.ServerCertificateValidationCallback = (s, c, h, e) => true;
            await client.ConnectAsync("smtp.gmail.com", 465, true);

            await client.AuthenticateAsync("*****@*****.**", "AdoRtRYtp11^");

            await client.SendAsync(emailMessage);

            await client.DisconnectAsync(true);

            return(await _userGetOperations.GetById(user.Id));
        }
Ejemplo n.º 2
0
        public async Task <Contract.Models.User> Register(NewUserDto newUser)
        {
            ValidationHelper.ValidateAndThrow(newUser);
            var existUser = await _userGetOperations.ByUserName(newUser.Login);

            if (existUser is not null)
            {
                throw new ExistingUserException();
            }

            var model = new Contract.Models.User
            {
                Id         = Guid.NewGuid().ToString(),
                Bio        = newUser.Bio,
                FirstName  = newUser.FirstName,
                Login      = newUser.Login,
                LastName   = newUser.LastName,
                MiddleName = newUser.MiddleName
            };

            var password = PasswordHelper.GeneratePassword(newUser.Password);

            model.Salt     = password.Salt;
            model.Password = password.Hash;
            model.Token    = Guid.NewGuid().ToString();

            return(await _userWriteOperations.Create(model));
        }
Ejemplo n.º 3
0
        public async Task <Contract.Models.User> UpdateOne(string id, Contract.Models.User item)
        {
            var filter = Builders <Contract.Models.User> .Filter.Eq(x => x.Id, id);

            var result = await _userContext.Users.UpdateOneAsync(filter, new ObjectUpdateDefinition <Contract.Models.User>(item));

            return(result.IsAcknowledged ? item : null);
        }
Ejemplo n.º 4
0
        public async Task <Contract.Models.User> Create(Contract.Models.User item)
        {
            await _userContext.Users.InsertOneAsync(item);

            return(item);
        }