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);
                }
            }
        }
示例#2
0
        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);
        }
示例#4
0
        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();
        }