private static MarbleDiagramTree GetItem(SimpleObservableCollection<MarbleDiagramTree> tree, string name)
        {
            var mi = tree.FirstOrDefault(m => m.Name == name);
            if (mi == null)
            {
                mi = new MarbleDiagramTree()
                {
                    Name = name
                };
                tree.Add(mi);
            }

            return mi;
        }
        private bool LoadFrom(Stream inputStream)
        {
            try
            {
                var loadedData = XDocument.Load(inputStream);
                if (loadedData.Root == null)
                    return false;

                using (var reader = loadedData.Root.CreateReader())
                {
                    var list = (List<Customer>)new XmlSerializer(typeof(List<Customer>)).Deserialize(reader);
                    _customers = new SimpleObservableCollection<Customer>(list);
                    return true;
                }
            }
            catch (Exception exception)
            {
                CustomerManagementTrace.Trace("Problem loading customer list {0}", exception.ToLongString());
                return false;
            }
        }