using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Windows.Forms;
using MercatorApi;
using MercatorUi;
using MercatorExtensions;
using System.Linq;
// <CompileWithRoslyn />
namespace Main
{
public class Customizer : MercatorUi.ICustomizers.IExec, MercatorUi.ICustomizers.IPenginServerInstanceInitialized
{
public void Main(MercatorUi.ICustomizers.ExecAction action)
{
if (action == MercatorUi.ICustomizers.ExecAction.DossierOpen)
MercatorOutlook.OutlookStatic.Office365GraphParams = SendMailOffice365GraphParameters;
}
public void PenginServerInstanceInitialized()
{
MercatorOutlook.OutlookStatic.Office365GraphParams = SendMailOffice365GraphParameters;
}
private IneoSmtp.Smtp.SendMailOffice365GraphParameters SendMailOffice365GraphParameters
{
get //!\ niet opslaan in een statische variabele want de clientSecret zal wijzigen
{
var l = Api.Zselect<(string id, string secret)>(Globals.RepData, "select id,secret from FREE_TABLE_SECRETS where id like 'Off365%'");
if (l == null)
throw new ApplicationException("SendMailOffice365GraphParameters SQL error : " + Api.LastError);
foreach (string key in new string[4] { "Off365ClId", "Off365ClSe", "Off365Tena", "Off365UId" })
if (!l.Any(p => p.id == key))
throw new ApplicationException($"SendMailOffice365GraphParameters key \"{key}\" is missing !");
return new IneoSmtp.Smtp.SendMailOffice365GraphParameters(
l.First(p => p.id == "Off365ClId").secret,
l.First(p => p.id == "Off365ClSe").secret,
l.First(p => p.id == "Off365Tena").secret,
l.First(p => p.id == "Off365UId").secret);
}
}
}
}