void exporter_OnException(object sender, ExchangeExceptionEventArgs e) { string errText = e.OriginalException.Message; AddToLog(errText); OutlookExport exporter = (OutlookExport)sender; exporter.Terminate(); e.Handled = true; //throw e.OriginalException; }
private void ExportUsingCriteria() { OutlookExport exporter = schedulerControl1.Storage.CreateOutlookExporter() as OutlookExport; if (exporter != null) { exporter.AppointmentExporting += exporter_AppointmentExporting; exporter.AppointmentExported += exporter_AppointmentExported; exporter.OnException += exporter_OnException; exporter.CalendarFolderName = OutlookExchangeHelper.GetOutlookCalendarFolders().FirstOrDefault().FullPath; using (MemoryStream stream = new MemoryStream()) { exporter.Export(stream); } } }
public void Execute(Outlook.Application outlook, string[] args) { Log.Info("Starting rules export"); var rulefile = new OutlookExport { ReceiveRules = new List <Rule>(), SendRules = new List <Rule>() }; var rules = outlook.Session.DefaultStore.GetRules(); var ruleParts = typeof(Export).Assembly.GetImplementations <IRulePart>().ToList(); foreach (var rule in rules.OfType <Outlook.Rule>()) { Log.Info($"Exporting rule \"{rule.Name}\"..."); var ruleModel = ruleParts.Where(r => r.IsEnabled(rule)) .Aggregate(new Rule { Name = rule.Name }, (model, r) => r.ApplyToModel(model, rule)); switch (rule.RuleType) { case Outlook.OlRuleType.olRuleReceive: rulefile.ReceiveRules.Add(ruleModel); break; case Outlook.OlRuleType.olRuleSend: rulefile.SendRules.Add(ruleModel); break; } } Log.Info("Writing rulefile..."); Json.WriteFile(rulefile, args[0]); Log.Info("Finished rules export"); }