private async Task SendInProcessApprovalMail(string email, string username, string comment) { var name = email.Split('@')[0]; var sm = new SendEmailCommand(); sm.Subject = $"{comment} awaiting approval"; sm.Content = $"Hello {name} <br/>" + $"You have a pending task on {comment} to be approved"; sm.ToAddresses.Add(new EmailAddressCommand { Address = email, Name = name }); sm.SaveIt = true; var mailSent = await _email.BuildAndSaveEmail(sm); EmailMessage em = new EmailMessage { Subject = sm.Subject, Content = sm.Content, FromAddresses = mailSent.FromAddresses, ToAddresses = _mapper.Map <List <EmailAddress> >(sm.ToAddresses), }; em.SendIt = true; em.Module = (int)Modules.CENTRAL; await _email.Send(em); }
private async Task SendStaffAccountDetailMail(string email, string username, string name, string action) { var sm = new SendEmailCommand(); sm.Subject = $"Account details {action}"; sm.Content = $"Dear { name } <br/>" + $"Below is your account login details <br/> " + $"<b>Username : {username} <br/>" + $"<b>Password : Password@1 <br/>" + $"Please be sure to change your password on first login"; sm.ToAddresses.Add(new EmailAddressCommand { Address = email, Name = name }); var mailSent = await _email.BuildAndSaveEmail(sm); EmailMessage em = new EmailMessage { Subject = sm.Subject, Content = sm.Content, FromAddresses = mailSent.FromAddresses, ToAddresses = _mapper.Map <List <EmailAddress> >(sm.ToAddresses), }; sm.SendIt = true; em.Module = (int)Modules.CENTRAL; await _email.Send(em); }
public async Task <SendEmailRespObj> Handle(SendEmailToSpicificOfficersCommand request, CancellationToken cancellationToken) { var response = new SendEmailRespObj { ResponseStatus = (int)EmailStatus.Failed, Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage() } }; try { var userId = _accessor.HttpContext.User?.FindFirst(f => f.Type == "userId")?.Value; var user = await _userManager.FindByIdAsync(userId); if (string.IsNullOrEmpty(request.Content)) { response.Status.Message.FriendlyMessage = "No Message Specified"; return(response); } _logger.Information(request.ActivitIds.ToString()); var activities = _dataContext.cor_userroleactivity.Where(q => request.ActivitIds.Contains(q.ActivityId)).ToList(); var userRoles = _roleManager.Roles.Where(w => activities.Select(q => q.RoleId).Contains(w.Id)).ToList(); //var identityRoles = (from a in _dataContext.UserRoles // join b in userRoles on a.RoleId equals b.Id // ).ToList(); var identityRoles = _dataContext.UserRoles.Where(q => userRoles.Select(w => w.Id).Contains(q.RoleId)).ToList(); var usersBasedOnIdentityRoles = _userManager.Users.Where(q => identityRoles.Select(e => e.UserId).Contains(q.Id)).ToList(); SendEmailCommand req = _mapper.Map <SendEmailCommand>(request); if (usersBasedOnIdentityRoles.Count() == 0) { response.Status.Message.FriendlyMessage = "No Receiver Found"; return(response); } req.ToAddresses = new List <EmailAddressCommand>(); foreach (var staff in usersBasedOnIdentityRoles) { var to = new EmailAddressCommand { Address = staff.Email, Name = staff.UserName, }; req.ToAddresses.Add(to); } var em = await _email.BuildAndSaveEmail(req); em.SendIt = request.SendIt; if (request.Template == (int)EmailTemplate.Default) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "default.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "flave"); } if (request.Template == (int)EmailTemplate.LoginDetails) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "loginDetails.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "flave"); } em.Module = (int)Modules.CENTRAL; if (request.SendIt) { await _email.Send(em); } response.ResponseStatus = (int)EmailStatus.Sent; response.Status.Message.FriendlyMessage = "Email sent"; return(response); } catch (Exception ex) { var errorCode = ErrorID.Generate(4); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); response.Status.IsSuccessful = false; response.Status.Message.FriendlyMessage = "Error occured!! Unable to process request"; response.Status.Message.MessageId = errorCode; response.Status.Message.TechnicalMessage = $"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"; return(response); } }
public async Task <SendEmailRespObj> Handle(SendEmailCommand request, CancellationToken cancellationToken) { var response = new SendEmailRespObj { ResponseStatus = (int)EmailStatus.Failed, Status = new APIResponseStatus { IsSuccessful = true, Message = new APIResponseMessage() } }; try { if (string.IsNullOrEmpty(request.Content)) { response.Status.Message.FriendlyMessage = "No Message Specified"; return(response); } if (!request.ToAddresses.Any()) { response.Status.Message.FriendlyMessage = "No Receiver Specified"; return(response); } foreach (var recr in request.ToAddresses) { var useraccount = await _userManager.FindByEmailAsync(recr.Address); if (useraccount != null) { request.UserIds = useraccount.Id; } } var em = await _email.BuildAndSaveEmail(request); em.SendIt = request.SendIt; if (request.Template == (int)EmailTemplate.Default) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "default.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "PPPPPP"); } if (request.Template == (int)EmailTemplate.LoginDetails) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "loginDetails.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "PPPPPP"); } if (request.Template == (int)EmailTemplate.OTP) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "otp.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "PPPPPP"); } if (request.Template == (int)EmailTemplate.Login) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "login.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "PPPPPP"); } if (request.Template == (int)EmailTemplate.Advert) { var pathToFile = _env.WebRootPath + Path.DirectorySeparatorChar.ToString() + "Templates" + Path.DirectorySeparatorChar.ToString() + "EmailTemplate" + Path.DirectorySeparatorChar.ToString() + "advert.html"; var builder = new BodyBuilder(); using (StreamReader SourceReader = File.OpenText(pathToFile)) { builder.HtmlBody = SourceReader.ReadToEnd(); } em.Content = string.Format(builder.HtmlBody, request.Content.Replace("{", "").Replace("}", ""), "PPPPPP"); } if (request.SendIt) { await _email.Send(em); } response.ResponseStatus = (int)EmailStatus.Sent; response.Status.Message.FriendlyMessage = "Email sent"; return(response); } catch (Exception ex) { var errorCode = ErrorID.Generate(4); _logger.Error($"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"); response.Status.IsSuccessful = false; response.Status.Message.FriendlyMessage = "Error occured!! Unable to process request"; response.Status.Message.MessageId = errorCode; response.Status.Message.TechnicalMessage = $"ErrorID : {errorCode} Ex : {ex?.Message ?? ex?.InnerException?.Message} ErrorStack : {ex?.StackTrace}"; return(response); } }