public void AddSettingsFile(Stream stream) { using (var xmlStream = new StreamReader(stream)) { AddBehaviors(ApplicationBehaviors.Deserialize(xmlStream.BaseStream)); } }
void AddBehaviors(ApplicationBehaviors newBehaviors) { // Add new common behaviors. _settings.CommonIgnoreWindows.Window = newBehaviors.CommonIgnoreWindows.Window .Union(_settings.CommonIgnoreWindows.Window) .ToArray(); // Add new or overwrite existing process behaviors. List <ApplicationBehaviorsProcess> processes = _settings.Process.ToList(); foreach (ApplicationBehaviorsProcess newProcess in newBehaviors.Process) { ApplicationBehaviorsProcess same = processes.FirstOrDefault(p => newProcess.Equals(p)); if (same != null) { processes.Remove(same); } processes.Add(newProcess); } _settings.Process = processes.ToArray(); }