예제 #1
0
        public Task <SwaggerResponse> SendMailAsync(MailDto mailMessage)
        {
            var headers = new Dictionary <string, IEnumerable <string> >();

            try
            {
                var userId  = _httpContextAccessor.HttpContext.User.FindFirst(cl => cl.Type.Equals("id")).Value;
                var profile = _unitOfWork.AppProfiles.FindById(userId);
                var to      = new EmailAddress {
                    Email = "*****@*****.**"
                };
                var from = new EmailAddress {
                    Email = profile.Identity.Email
                };
                var mailPayload = new MailPayload {
                    Subject = mailMessage.Subject, Body = mailMessage.Body, From = from
                };
                mailPayload.ToList.Add(from);
                _mailClient.SetOptions(_mailConfigOptions);
                _mailClient.SendEmail(mailPayload);
                return(Task.Run(() => new SwaggerResponse(StatusCodes.Status200OK, headers)));
            }
            catch (Exception exception)
            {
                return(HandleException(exception, headers));
            }
        }
예제 #2
0
        public Task <SwaggerResponse <RegisterResponse> > RegisterUserAsync(RegisterDto registerDto)
        {
            var headers      = new Dictionary <string, IEnumerable <string> >();
            var userIdentity = _mapper.Map <AppUser>(registerDto);
            var result       = _userManager.CreateAsync(userIdentity, registerDto.Password).Result;

            if (!result.Succeeded)
            {
                return(Task.FromResult(new SwaggerResponse <RegisterResponse>(StatusCodes.Status400BadRequest, headers, null, result.ToString())));
            }

            var confirmationToken = _userManager.GenerateEmailConfirmationTokenAsync(userIdentity).Result;
            var cnf = System.Text.Encodings.Web.UrlEncoder.Default.Encode(confirmationToken);
            var to  = new EmailAddress {
                Name = "Hans Tschan", Email = "*****@*****.**"
            };
            var mailPayload = new MailPayload {
                Subject = "Bestätigung Kontoeröffnung"
            };

            mailPayload.From = new EmailAddress {
                Email = _mailConfigOptions.From
            };
            mailPayload.Body = $"Das ist ihr Link zum Bestätigen - bitte klicken Sie <a href='http://localhost:5000/api/v1/confirm?cnf={cnf}&id={userIdentity.Id}'>hier</a>, um Ihre E-Mail Adresse zu bestätigen.";
            _mailClient.SetOptions(_mailConfigOptions);
            _mailClient.SendEmail(mailPayload);
            return(Task.FromResult(new SwaggerResponse <RegisterResponse>(StatusCodes.Status201Created, headers, null, result.ToString())));
        }