public Data LoadFile(string fileName) { Data data = null; try { switch (Path.GetExtension(fileName)) { case ".json": { return(JsonConvert.DeserializeObject <Data>(File.ReadAllText(fileName))); } case ".xml": { return(XmlParser.Deserialize <Data>(fileName)); } case ".csv": { return(CsvParser.Deserialize(fileName)); } default: { Error?.Invoke(new Exception("Invalid file extension")); Environment.Exit(0); return(null); } } } catch (Exception ex) { Error?.Invoke(ex); } return(null); }