using GreenTree.Nachtragsmanagement.Core.Domain.Misc;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GreenTree.Nachtragsmanagement.Services.Scheduling
{
    public interface INotificationScheduler
    {
        /// <summary>
        /// Starts the scheduler and builds all corresponding notification jobs
        /// </summary>
        void Start();

        /// <summary>
        /// Determines the next execution time of a specific job
        /// </summary>
        /// <param name="jobId">The job id.</param>
        DateTime GetNextExecutionOfJob(string jobId);

        /// <summary>
        /// Determines the next execution time of a specific mail notification
        /// </summary>
        /// <param name="mailNotification">The mail notification job.</param>
        DateTime GetNextExecutionOfJob(MailNotification mailNotification);
    }
}