public Dictionary<string, Guid> ExportMap()
{
var map = m_pages
.Select(p => p.ExportMap())
.Where(i => i != null)
.ToDictionary(i => i.Item1, i => i.Item2);
var dup = map.GroupBy(i => i.Value).FirstOrDefault(g => g.Count() > 1);
if (dup != null)
{
var list = String.Join(", ", dup.Select(i => "'" + i.Key + "'"));
throw new InvalidOperationException(
$"Project UID = {dup.Key.ToString("B").ToUpper()} seems not unique and belongs to projects {list}.");
}
return map;
}