Exemplo n.º 1
0
        async public Task TestEmailMessage()
        {
            var scotchMode = ScotchMode.Replaying;
            var client     = HttpClients.NewHttpClient("IntegrationTests/Cassettes/EmailMessage.json", scotchMode);

            string tokenKey    = "key";
            string tokenSecret = "secret";
            string host        = "https://dvfoa3pu2rxx6.cloudfront.net/api/v1/";

            OmnigageClient.Init(tokenKey, tokenSecret, host, client);

            EmailMessageResource emailMessage = new EmailMessageResource();

            emailMessage.Subject = "Ahoy";
            emailMessage.Body    = "Sample body";

            await emailMessage.Create();

            EmailResource email = new EmailResource();

            email.To           = "*****@*****.**";
            email.EmailMessage = emailMessage;
            email.EmailId      = new EmailIdResource
            {
                Id = "NbXW9TCHax9zfAeDhaY2bG"
            };

            await email.Create();
        }
Exemplo n.º 2
0
        /// <summary>
        /// To run this application, the following is required:
        ///
        /// - API token key/secret from Account -> Developer -> API Tokens
        /// - A verified Phone Number UUID from Account -> Email -> Email IDs -> Edit (in the URI)
        /// - Fill in variables to run example
        /// </summary>
        /// <param name="args"></param>
        async static Task Main(string[] args)
        {
            var tokenKey    = "";
            var tokenSecret = "";

            // Set the Email ID (e.g., NbXW9TCHax9zfAeDhaY2bG)
            var emailId = "";

            // Recipient email address
            var to = "";

            // Initialize SDK
            OmnigageClient.Init(tokenKey, tokenSecret);

            // Create email message
            var message = new EmailMessageResource
            {
                Subject = "Ahoy",
                Body    = "Sample body"
            };
            await message.Create();

            // Send email
            var email = new EmailResource
            {
                To           = to,
                EmailMessage = message,
                EmailId      = new EmailIdResource
                {
                    Id = emailId
                }
            };
            await email.Create();
        }
Exemplo n.º 3
0
        public async Task <GenericResponse <StatusResponse> > ForgetPasswordAsync(EmailResource emailResource)
        {
            var user = await _userManager.FindByEmailAsync(emailResource.Email);

            if (user == null)
            {
                return new GenericResponse <StatusResponse>
                       {
                           Succeeded    = false,
                           ErrorMessage = "The user account does not exists"
                       }
            }
            ;

            if (!await _userManager.IsEmailConfirmedAsync(user))
            {
                return new GenericResponse <StatusResponse>
                       {
                           Succeeded    = false,
                           ErrorMessage = "The user account is inactive, try to confirm your email address"
                       }
            }
            ;

            await SendResetPassword(user);

            return(new GenericResponse <StatusResponse>
            {
                Succeeded = true,
                Data = new StatusResponse
                {
                    Status = $"Check your {user.Email} for instruction to reset your password"
                }
            });
        }
Exemplo n.º 4
0
        public async Task <IActionResult> ForgotPassword([FromBody] EmailResource emailResource)
        {
            var result = await _authService.ForgetPasswordAsync(emailResource);

            if (!result.Succeeded)
            {
                return(BadRequest(result.ErrorMessage));
            }

            return(Ok(result.Data));
        }
Exemplo n.º 5
0
        public async Task <IActionResult> ResendEmailConfirmation([FromBody] EmailResource email)
        {
            var result = await _authService.ResendEmailConfirmationLinkAsync(email);

            if (!result.Succeeded)
            {
                return(BadRequest(result.ErrorMessage));
            }

            return(Ok(result.Data));
        }
        /// <summary>
        ///     Execute a command asynchronously.
        /// </summary>
        /// <param name="command">Command to execute.</param>
        /// <returns>
        ///     Task which will be completed once the command has been executed.
        /// </returns>
        public async Task ExecuteAsync(SendTemplateEmail command)
        {
            var loader         = new TemplateLoader();
            var templateParser = new TemplateParser();

            var layout = loader.Load("Layout");

            var template = loader.Load(command.TemplateName);
            var html     = templateParser.RunAll(template, command.Model);

            if (html.IndexOf("src=\"cid:", StringComparison.OrdinalIgnoreCase) == -1)
            {
                html = html.Replace(@"src=""", @"src=""cid:");
            }

            string complete;

            try
            {
                complete = templateParser.RunFormatterOnly(layout,
                                                           new { Title = command.MailTitle, Body = html });
            }
            catch (Exception)
            {
                throw;
            }

            var msg = new EmailMessage(command.To)
            {
                Subject = command.Subject, HtmlBody = complete
            };

            foreach (var resource in template.Resources)
            {
                var linkedResource = new EmailResource(resource.Key, resource.Value);

                var reader     = new BinaryReader(resource.Value);
                var dimensions = ImageHelper.GetDimensions(reader);
                var key        = string.Format("src=\"cid:{0}\"", resource.Key);
                complete = complete.Replace(key,
                                            string.Format("{0} width=\"{1}\" height=\"{2}\" style=\"border: 1px solid #000\"", key,
                                                          dimensions.Width, dimensions.Height));
                resource.Value.Position = 0;

                msg.Resources.Add(linkedResource);
            }
            foreach (var resource in layout.Resources)
            {
                var linkedResource = new EmailResource(resource.Key, resource.Value);

                var reader     = new BinaryReader(resource.Value);
                var dimensions = ImageHelper.GetDimensions(reader);
                var key        = string.Format("src=\"cid:{0}\"", resource.Key);
                complete = complete.Replace(key,
                                            string.Format("{0} width=\"{1}\" height=\"{2}\"", key, dimensions.Width, dimensions.Height));
                resource.Value.Position = 0;

                msg.Resources.Add(linkedResource);
            }
            if (command.Resources != null)
            {
                foreach (var resource in command.Resources)
                {
                    msg.Resources.Add(resource);
                }
            }
            msg.HtmlBody = complete;

            var sendEmail = new SendEmail(msg);
            await _commandBus.ExecuteAsync(sendEmail);
        }
        public async Task <ActionResult <IEnumerable <RequestResource> > > GetRequestsByEmail([FromBody] EmailResource email)
        {
            var requests = await _requestService.GetAllRequestsByEmail(email.Email);

            var requestResources = _mapper.Map <IEnumerable <Request>, IEnumerable <RequestResource> >(requests);

            return(Ok(requestResources));
        }
Exemplo n.º 8
0
        public async Task <GenericResponse <StatusResponse> > ResendEmailConfirmationLinkAsync(EmailResource emailResource)
        {
            var user = await _userManager.FindByEmailAsync(emailResource.Email);

            if (user == null)
            {
                return new GenericResponse <StatusResponse>
                       {
                           Succeeded    = false,
                           ErrorMessage = "The account does not exist!"
                       }
            }
            ;

            if (await _userManager.IsEmailConfirmedAsync(user))
            {
                return new GenericResponse <StatusResponse>
                       {
                           Succeeded    = false,
                           ErrorMessage = "The account email is already confirmed"
                       }
            }
            ;

            await SendEmailConfirmationLink(user);

            return(new GenericResponse <StatusResponse>
            {
                Succeeded = true,
                Data = new StatusResponse
                {
                    Status = $"Please check your {user.Email} for link to confirm your email"
                }
            });
        }