コード例 #1
0
        /// <summary>
        /// Load currencies, currency pairs, float rate indices and calendars from files in <paramref name="path"/>.
        /// </summary>
        /// <param name="path"></param>
        public static void LoadFromFolder(string path)
        {
            var sharedData = new SharedData();

            LoadCurrencies(sharedData, path);
            LoadCurrencyPairs(sharedData, path);
            LoadFloatRateIndices(sharedData, path);
            LoadCalendars(sharedData, path);
            QuantSAState.SetSharedData(sharedData);
        }
コード例 #2
0
ファイル: StaticData.cs プロジェクト: zhangz/QuantSA
        public static void Load()
        {
            var sharedData = new SharedData();

            LoadCurrencies(sharedData);
            LoadCurrencyPairs(sharedData);
            LoadFloatRateIndices(sharedData);
            LoadCalendars(sharedData);
            QuantSAState.SetSharedData(sharedData);
        }
コード例 #3
0
ファイル: AddIn.cs プロジェクト: zhangz/QuantSA
    // Called when addin opens
    public void AutoOpen()
    {
        try
        {
            QuantSAState.SetLogger(new ExcelFileLogFactory());
            ExcelDna.IntelliSense.IntelliSenseServer.Install();
            _log = QuantSAState.LogFactory.Get(MethodBase.GetCurrentMethod().DeclaringType);

            var pathString = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                                          "QuantSA");
            if (!Directory.Exists(pathString))
            {
                Directory.CreateDirectory(pathString);
            }
            //TODO: Check if newer version of addin exists.

            _log.Info("Loading static data");
            StaticData.Load();

            _log.Info("Check custom function visibility");
            // Get the functions that are set for the user.
            var funcsInUserFile = GetFunctionVisibility(FunctionsFilenameUser);

            //Check in the installation folder for any dlls that include a class of type IQuantSAPlugin
            AssemblyImageResources = new Dictionary <string, Bitmap>();
            _log.Info("Check for plugins");
            GetPlugins();
            var assemblies = new[]
            {
                Assembly.GetAssembly(typeof(XLEquities)),
                Assembly.GetAssembly(typeof(AddIn))
            };
            _log.Info("Add converters");
            foreach (var tuple in Plugins)
            {
                ExcelTypeConverter.AddConvertersFrom(tuple.Item2);
            }
            foreach (var assembly in assemblies)
            {
                ExcelTypeConverter.AddConvertersFrom(assembly);
            }

            _log.Info("Register user functions");
            foreach (var tuple in Plugins)
            {
                FunctionRegistration.RegisterFrom(tuple.Item2, tuple.Item1.GetShortName(), funcsInUserFile);
            }
            foreach (var assembly in assemblies)
            {
                FunctionRegistration.RegisterFrom(assembly, "QSA", funcsInUserFile);
            }
            UpdateUserFunctionFile(funcsInUserFile, FunctionRegistration.FunctionNames);
        }
        catch (Exception e)
        {
            _log.Error(e);
            var pathString = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData),
                                          "QuantSA");
            var fileName = Path.Combine(pathString, "QuantSAError.txt");
            File.WriteAllText(fileName, e.ToString());
            throw new AddInException("An error occurred while opening the QuantSA addin.\n" +
                                     "Check the error log file for details.\n\n" +
                                     $"{fileName}");
        }
    }
コード例 #4
0
 public void TestInitialize()
 {
     QuantSAState.SetLogger(new TestLogger());
 }