예제 #1
0
        private void LoadWorkspace()
        {
            WindowDataHandler.WindowPlacements.Clear();
            var path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Inside MMA\\settings\\workspace";

            Directory.CreateDirectory(path);
            var dialog = new OpenFileDialog {
                InitialDirectory = path
            };

            if (dialog.ShowDialog(_thisWindow) == true)
            {
                try
                {
                    Application.Current.Dispatcher.Invoke(() => {
                        foreach (Window window in Application.Current.Windows)
                        {
                            if (window.GetType() != typeof(MainWindow) && window.GetType().Namespace.Split('.')[0] != "Microsoft")
                            {
                                window.Close();
                            }
                        }
                    });
                    WindowDataHandler.GetWindowData(dialog.FileName);
                    OpenSavedWindows();
                }
                catch
                {
                }
            }
        }
예제 #2
0
        public void UpdateLevel2Args(Level2ArgsType type, dynamic arg)
        {
            Level2Args args = GetWindowArgs() ?? new Level2Args();

            switch (type)
            {
            case Level2ArgsType.Type:
                args.Type = arg;
                break;

            case Level2ArgsType.AlertSize:
                args.AlertSize = arg;
                break;

            case Level2ArgsType.AlertTwoSize:
                args.AlertTwoSize = arg;
                break;
            }
            WindowDataHandler.UpdateWindowArgs(Id, args);
        }
예제 #3
0
        public MainWindowViewModel(IDialogCoordinator dialog, IHubProxy hub, HubConnection connection, Window window)
        {
            Connection               = connection;
            Connection.Reconnected  += ConnectionOnReconnected;
            Connection.StateChanged += ConnectionOnStateChanged;
            Hub                    = hub;
            Dialog                 = dialog;
            AdminViewModel         = new AdminViewModel(Hub, DialogCoordinator.Instance);
            _flashWindowHelper     = new FlashWindowHelper(Application.Current);
            _thisWindow            = window;
            MenuItemConnectCommand = new Command(arg => Show_LoginForm());
            SecurityChooseCommand  = new Command(SecurityChoose);
            SecuritiesCommand      = new Command(arg => GetSecurities());
            OpenWindowCommand      = new Command(OpenWindow);
            ChangePassCommand      = new Command(arg => ChangePass());
            SleepCommand           = new Command(arg => SelfSleep());
            SaveWorkspaceCommand   = new Command(arg => SaveWorkspace());
            LoadWorkspaceCommand   = new Command(arg => LoadWorkspace());
            Status                 = "Status: Disconnected";
            //get watchlists collection and initialize watcher to monitor changes in the watchlists' folder
            GetWatchlists();
            InitializeWatcher();
            SecVm.WatchListsCollection = WatchListsCollection;
            //Subscribing to events
            TXmlConnector.SendNewFormData += XmlConnector_OnSendNewFormData; //general data
            /*TXmlConnector.SendNewStatus += XmlConnector_OnSendNewStatus;*/ //status
            TXmlConnector.SendStatus      += XmlConnector_OnSendNewStatus;
            TXmlConnector.SendNewSecurity += XmlConnector_OnSendNewSecurity; //securities
            TXmlConnector.ConnectorSetCallback();
            TXmlConnector.FormReady = true;

            //Initializing the connector dll
            var path = (Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\Inside MMA\\logs\\" + ClientInfo.InsideLogin).Replace("\\", "//");

            Directory.CreateDirectory(path);
            foreach (var file in new DirectoryInfo(path).GetFiles())
            {
                file.Delete();
            }
            //loading settings
            WindowDataHandler.GetWindowData();
            Settings.Default.Reload();
            Level2Settings.Default.Reload();
            //path = path.Substring(0, path.LastIndexOf('\\') + 1) + "\0";
            if (TXmlConnector.ConnectorInitialize(path, (short)Settings.Default.LogLevel))
            {
                TXmlConnector.StatusDisconnected.Set();
            }

            //setting the number decimal separator to a point
            var customCulture = (CultureInfo)Thread.CurrentThread.CurrentCulture.Clone();

            customCulture.NumberFormat.NumberDecimalSeparator = ".";
            CultureInfo.DefaultThreadCurrentCulture           = customCulture;
            Thread.CurrentThread.CurrentCulture = customCulture;

            //subbing for singlar events
            Hub?.On("Sleep", Sleep);
            Hub?.On("Unsleep", Unsleep);
            Hub?.On("SelectWindows", WindowAvailabilityManager.SelectWindows);
            Hub?.On("Disconnect", DisconnectByServer);
            Hub?.On("DisplayMessage", DisplayMessage);
            Hub?.On("CancelOrders", ClientOrdersViewModel.CancelAllOrdersMethod);
            Hub?.On("CancelStoporders", ClientOrdersViewModel.CancelAllStopordersMethod);
            Hub?.On("CloseBalance", ClientsViewModel.CloseBalanceMethod);
            //requesting license exp date
            Hub?.On("License", GetLicense);
            Hub?.Invoke("GetLicense");
            //setting the stoporder manager
            new OrderManager(ClientOrdersViewModel.ClientStoporders, ClientOrdersViewModel.ClientOrders);
            //setting the report manager
            ReportManager.Set();
            ShowPatchnotes();
        }
예제 #4
0
 public void UpdateWindowArgs(dynamic args)
 {
     WindowDataHandler.UpdateWindowArgs(Id, args);
 }
예제 #5
0
 public void UpdateWindowInstrument()
 {
     WindowDataHandler.UpdateWindowInstrument(Id, Board, Seccode);
 }
예제 #6
0
 public void UpdateWindowBinding(bool isAnchored)
 {
     WindowDataHandler.UpdateWindowBinding(Id, isAnchored);
 }
예제 #7
0
 public void UpdateWindowPosition(object sender, MouseEventArgs mouseEventArgs)
 {
     WindowDataHandler.UpdateWindowPlacement(Id, Window.GetPlacement());
 }
예제 #8
0
 public void RestoreWindowPosition(object sender, EventArgs eventArgs)
 {
     Window.SetPlacement(WindowDataHandler.GetSavedPlacement(Id));
 }
예제 #9
0
 public void CloseWindow()
 {
     WindowDataHandler.CloseWindow(Id);
 }
예제 #10
0
        public void SaveWindow()
        {
            var windowType = Window.GetType().ToString();

            Id = WindowDataHandler.SaveWindow(windowType, GetType().ToString(), Board, Seccode);
        }
예제 #11
0
 public dynamic GetWindowArgs()
 {
     return(WindowDataHandler.GetWindowArgs(Id));
 }