private async Task SendNotificationsForMembers(List <Member> membersByDayOfWeekAndHours, Project project, string subjectName) { if (membersByDayOfWeekAndHours.Any()) { foreach (var member in membersByDayOfWeekAndHours) { var dayOrDays = project.NotificationDay == 1 ? "day" : "days"; var linkToCreateTEntry = $"https://time.coral.team:1593/calendar/week;date={NotificationPeriodFirstDay.Month}-{NotificationPeriodFirstDay.Day}-{NotificationPeriodFirstDay.Year}"; var linkCallBackMain = "https://time.coral.team:1593/"; var dateFormatShort = new GetDateFormat().GetDateFormaDotNetShortById(member.DateFormatId); var dateRangeShort = $"{NotificationPeriodFirstDay.ToString(dateFormatShort, CultureInfo.InvariantCulture)} - {NotificationPeriodLastDay.ToString(dateFormatShort, CultureInfo.InvariantCulture)}"; var emailSenderSimpleModel = new EmailSenderSimpleModel { Subject = $"Reminder to fill time entry {member.User.Email} by {subjectName} Settigs", ToEmail = member.User.Email, EmailText = $@"<p>Hello, {member.FullName}!<br> <p>This is a friendly reminder that you haven’t filled your time entries for the last work <b>{project.NotificationDay}</b> {dayOrDays}:<br> <p>({dateRangeShort}) on <b>{project.Name}</b> project.<br> <p>Would you like to enter your time now? <a href=""{linkToCreateTEntry}"">Just click here to open CoralTime</a><br><br> <p>Best wishes, <a href=""mailto:[email protected]"">CoralTime Team!</a>" }; await EmailSenderSimple(_configuration, emailSenderSimpleModel); } } }
private async Task SendNotificationsForMembers(List <MembersWithEditionPeriodDays> membersWithNotificationRange, Project project, string subjectName) { if (membersWithNotificationRange.Any()) { foreach (var memberNotifRange in membersWithNotificationRange) { var dayOrDays = project.NotificationDay == 1 ? "day" : "days"; var linkToCreateTEntry = $"https://time.coral.team:1593/calendar/week;date={NotificationPeriodFirstDay.Month}-{NotificationPeriodFirstDay.Day}-{NotificationPeriodFirstDay.Year}"; var dateFormatShort = new GetDateFormat().GetDateFormaDotNetShortById(memberNotifRange.Member.DateFormatId); //var dateRangeShort = $"{NotificationPeriodFirstDay.ToString(dateFormatShort, CultureInfo.InvariantCulture)} - {NotificationPeriodLastDay.ToString(dateFormatShort, CultureInfo.InvariantCulture)}"; var editionDaysFormat = "<b>" + string.Join(", </b><b>", memberNotifRange.EditionPeriodDays.Select(x => x.ToString(dateFormatShort, CultureInfo.InvariantCulture))) + "</b>"; var emailSenderSimpleModel = new EmailSenderSimpleModel { Subject = $"Reminder to fill time entry {memberNotifRange.Member.User.Email} by {subjectName} Settigs", ToEmail = memberNotifRange.Member.User.Email, EmailText = $@"<p>Hello, {memberNotifRange.Member.FullName}!<br> <p>This is a friendly reminder. <p>That you haven’t filled your Time Entries on <b>{project.Name}</b> project.<br> <p>for the next last work <b>{project.NotificationDay}</b> {dayOrDays}: {editionDaysFormat}. <p><a href=""{linkToCreateTEntry}"">Would you like to enter your time now?</a><br><br> <p>Best wishes, <a href=""mailto:[email protected]"">CoralTime Team!</a>" }; await EmailSenderSimple(_configuration, emailSenderSimpleModel); } } }
private async Task CreateAndSendEmailNotificationForUserAsync(string emailText, string emailMember, string subject) { var emailSenderSimpleModel = new EmailSenderSimpleModel { Subject = subject, ToEmail = emailMember, EmailText = emailText }; await EmailSenderSimple(_configuration, emailSenderSimpleModel); }
public async Task EmailSenderSimple(IConfiguration configuration, EmailSenderSimpleModel emailSenderSimpleModel) { var body = new TextPart("html") { Text = emailSenderSimpleModel.EmailText }; var emailSender = new EmailSender(configuration); emailSender.CreateSimpleMessage(emailSenderSimpleModel.ToEmail, new Multipart { body }, emailSenderSimpleModel.Subject); await emailSender.SendMessageAsync(); }