internal bool Configure(FileInfo file, out bool ForceReload) { ForceReload = false; bool configured = false; try { if (file != null && file.Exists) { using (XmlReader reader = XmlReader.Create(file.FullName)) { XmlNodeType cType = reader.MoveToContent(); if (cType != XmlNodeType.Element && reader.LocalName.Equals("sources")) { } else if (!reader.ReadToDescendant("source")) { } else { List <string> foundSources = new List <string>(); do { if (reader.GetAttribute("sourceType").Equals(typeof(WSTableSource).FullName)) { WSTableSource src = GetSource <WSTableSource>(reader); if (src != null) { src.ReadXml(reader, getTSource); foundSources.Add(src.NAME); } else { reader.MoveToElement(); ForceReload = true; } } } while (reader.ReadToNextSibling("source")); ForceReload = ForceReload || this.Any(x => !foundSources.Contains(x.NAME)); configured = reader.NodeType == XmlNodeType.EndElement && reader.LocalName.Equals("sources"); } } } } catch (Exception) { configured = false; } return(configured); }