public void RefreshEnums(ExecutionLogInterface log, List<MetaSource> sources)
{
int errorCount = 0;
StringBuilder errorSummary = new StringBuilder("");
try
{
log.Log("Starting Refresh Enumerated Lists\r\n");
foreach (MetaSource source in sources.OrderBy(i => i.Name))
{
log.Log("Processing data source '{0}'", source.Name);
foreach (MetaEnum item in source.MetaData.Enums.OrderBy(i => i.Name).Where(i => i.IsDynamic && (i.IsEditable || i.IsDbRefresh)))
{
if (log.IsJobCancelled()) return;
log.LogNoCR("Refreshing Enum '{0}':", item.Name);
item.RefreshEnum(false);
if (!string.IsNullOrEmpty(item.Error))
{
errorCount++;
log.LogRaw("ERROR\r\n");
log.Log(item.Error);
errorSummary.AppendFormat("\r\n[{2}] Enum '{0}': {1}\r\n", item.Name, item.Error, source.Name);
}
else
{
log.LogRaw("OK\r\n");
_setModified = true;
}
}
}
}
catch (Exception ex)
{
log.Log("\r\n[UNEXPECTED ERROR RECEIVED]\r\n{0}\r\n", ex.Message);
}
log.Log("Refresh Enumerated Lists terminated\r\n");
if (errorCount > 0) log.Log("SUMMARY: {0} Error(s) detected.\r\n{1}", errorCount, errorSummary);
else log.Log("Youpi, pas d'erreur !");
}