Apricot.App.App C# (CSharp) Method

App() public method

public App ( ) : System
return System
        public App()
        {
            Configuration config = null;
            string directory = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), System.Reflection.Assembly.GetExecutingAssembly().GetName().Name);

            if (Directory.Exists(directory))
            {
                string fileName = Path.GetFileName(System.Reflection.Assembly.GetExecutingAssembly().Location);

                foreach (string s in from s in Directory.EnumerateFiles(directory, "*.config") where String.Equals(fileName, Path.GetFileNameWithoutExtension(s)) select s)
                {
                    ExeConfigurationFileMap exeConfigurationFileMap = new ExeConfigurationFileMap();

                    exeConfigurationFileMap.ExeConfigFilename = s;
                    config = ConfigurationManager.OpenMappedExeConfiguration(exeConfigurationFileMap, ConfigurationUserLevel.None);
                }
            }

            if (config == null)
            {
                config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
                directory = null;
            }

            if (config.AppSettings.Settings["Scripts"] != null)
            {
                this.runtime = new ScriptRuntime(ScriptRuntimeSetup.ReadConfiguration());

                foreach (string fileName in Directory.GetFiles(directory == null ? config.AppSettings.Settings["Scripts"].Value : Path.Combine(directory, config.AppSettings.Settings["Scripts"].Value)))
                {
                    ScriptEngine engine;

                    if (this.runtime.TryGetEngineByFileExtension(Path.GetExtension(fileName), out engine))
                    {
                        ScriptSource source = engine.CreateScriptSourceFromFile(fileName);
                        CompiledCode code = source.Compile();

                        code.Execute(this.runtime.CreateScope());
                    }
                }
            }
        }