private Options[] MergePreservingSortOrder (Options[] existingProfiles, Options[] profilesToImport, Action<string> logger)
{
var mergedProfiles = existingProfiles.ToList ();
foreach (var profileToImport in profilesToImport)
{
var existingProfile = mergedProfiles.FirstOrDefault (p => p.Id == profileToImport.Id);
if (existingProfile == null)
{
logger($"Adding profile '{profileToImport.Name}'");
mergedProfiles.Add (profileToImport);
}
else
{
logger ($"Replacing profile '{profileToImport.Name}'");
var index = mergedProfiles.IndexOf (existingProfile);
mergedProfiles.RemoveAt (index);
mergedProfiles.Insert (index, profileToImport);
}
}
return mergedProfiles.ToArray ();
}
}