public void Run() { var mailAccess = MailAccessRepository.LoadFrom("mailfollowup.receiver.application.mail.access.txt", Assembly.GetExecutingAssembly()); var awsSecrets = SecretsRepository.LoadFrom("mailfollowup.receiver.application.awssecrets.txt", Assembly.GetExecutingAssembly()); var frc = new FlowRuntimeConfiguration(); frc.AddStreamsFrom("mailfollowup.receiver.application.root.flow", Assembly.GetExecutingAssembly()); var imap = new Imap(mailAccess); var erinnerungsauftraege = new Erinnerungsauftraege(Now, new FollowupParser()); var store = new MailStore(awsSecrets); frc.AddAction<Mail>("mail_abholen", imap.Mail_holen); frc.AddFunc<Mail, Erinnerungsauftrag>("erinnerungsauftrag_erstellen", erinnerungsauftraege.Erinnerungsauftrag_erstellen); frc.AddFunc<Erinnerungsauftrag, string>("erinnerungsauftrag_speichern", store.Save); frc.AddAction<string>("mail_verschieben", imap.Mail_verschieben); using (var fr = new FlowRuntime(frc)) { fr.Message += Console.WriteLine; fr.UnhandledException += e => { Console.WriteLine(e); Environment.Exit(1); }; fr.Process(".start"); fr.WaitForResult(); } }
public void Run() { var awsSecrets = SecretsRepository.LoadFrom("mailfollowup.reminder.app.awssecrets.txt", Assembly.GetExecutingAssembly()); var smtpSecrets = MailAccessRepository.LoadFrom("mailfollowup.reminder.app.mail.smtp.txt", Assembly.GetExecutingAssembly()); var frc = new FlowRuntimeConfiguration(); frc.AddStreamsFrom("mailfollowup.reminder.app.root.flow", Assembly.GetExecutingAssembly()); var store = new MailStore(awsSecrets); var smtp = new Smtp(smtpSecrets); frc.AddFunc("aktuelle_zeit_ermitteln", Now); frc.AddAction<DateTime, Erinnerungsauftrag>("erinnerungsauftrag_holen", store.Load); frc.AddFunc<Erinnerungsauftrag, Erinnerungsauftrag>("erinnerung_versenden", smtp.Send); frc.AddAction<Erinnerungsauftrag>("erinnerungsauftrag_loeschen", store.Delete); using (var fr = new FlowRuntime(frc)) { fr.Message += Console.WriteLine; fr.UnhandledException += e => { Console.WriteLine(e); Environment.Exit(1); }; fr.Process(".start"); fr.WaitForResult(); } }