Coin.FormMain.Window_Loaded C# (CSharp) Method

Window_Loaded() private method

private Window_Loaded ( object sender, RoutedEventArgs e ) : void
sender object
e System.Windows.RoutedEventArgs
return void
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            MenuModeNormal.Tag = EEngMode.Normal;
            MenuModeBootstrap.Tag = EEngMode.Bootstrap;
            MenuModeLite.Tag = EEngMode.Lite;

            LvWallet.ItemsSource = ActiveWalletForms;
            LvEvent.ItemsSource = WalletEvents;

            var port = UserAppRegistryKey.GetValue("LocalPort");
            if (port != null) {
                try {
                    Eng.LocalPort = Convert.ToUInt16(port);
                } catch (Exception) {
                }
            }

            var proxyType = UserAppRegistryKey.GetValue("ProxyType");
            if (proxyType != null) {
                try {
                    Eng.ProxyString = ToProxyString(Convert.ToString(proxyType), Convert.ToString(UserAppRegistryKey.GetValue("ProxyEndPoint")));
                } catch (Exception) {
                }
            }

            Wallet[] wallets = null;
            try {
                wallets = Eng.Wallets;
            } catch (Exception x) {
                MessageBox.Show(x.Message, "Error", MessageBoxButton.OK, MessageBoxImage.Error);
                Application.Current.Shutdown();
                return;
            }

            foreach (var wallet in wallets) {
                string currencyName = wallet.CurrencyName;

                var wf = new WalletForms();
                wf.Wallet = wallet;
                MenuItem mi = new MenuItem();
                wf.MenuItem = mi;
                mi.Header = string.Format("{0}  {1}", wallet.CurrencySymbol, currencyName);
                mi.Icon = new Image() { Source = new BitmapImage(new Uri(String.Format("images/{0}.ico", currencyName), UriKind.Relative)) };
                menuCurrency.Items.Add(mi);
                mi.Template = menuTemplate;
                mi.IsCheckable = true;
                mi.Tag = wf;
                mi.Checked += Currency_CheckChanged;
                mi.Unchecked += Currency_CheckChanged;
                m_wallet2forms[wallet] = wf;

                EEngMode mode = wallet.CurrencySymbol == "BTC" ? EEngMode.Bootstrap : EEngMode.Normal;
                bool bMiningEnabled = false;
                var sk = UserAppRegistryKey.OpenSubKey(wf.Wallet.CurrencySymbol);
                if (sk != null) {
                    switch ((string)sk.GetValue("DBMode")) {
                    case "Normal": mode = EEngMode.Normal; break;
                    case "Bootstrap": mode = EEngMode.Bootstrap; break;
                    case "Lite": mode = EEngMode.Lite; break;
                    }
                    try {
            //						bMiningEnabled = (int)sk.GetValue("Mining", 0) != 0;
                    } catch (Exception) { }
                }
                wallet.Mode = mode;
                if (wallet.MiningAllowed)
                    wallet.MiningEnabled = bMiningEnabled;
            }

            timer1.Tick += (s, e1) => {
                bool b = false;
                foreach (var wf in ActiveWalletForms)
                    b |= wf.CheckForChanges();
                if (b)
                    UpdateView();
            };
            timer1.Start();
            List<WalletForms> ar = new List<WalletForms>();
            var obj = UserAppRegistryKey.GetValue("ActiveCurrencies", null);
            if (obj == null) {
                ar = (from de in m_wallet2forms select de.Value).Take(2).ToList();
                //!!!R				foreach (var de in m_wallet2forms)
                //!!!R					ar.Add(de.Value);
            } else {
                foreach (var s in (string[])obj) {
                    string[] ss = s.Split();
                    string name = ss[0];
                    try {
                        WalletForms wf = null;
                        foreach (var pp in m_wallet2forms)
                            if (pp.Key.CurrencyName == name) {
                                wf = pp.Value;
                                break;
                            }
                        if (wf != null) {
                            ar.Add(wf);
                        }
                    } catch (Exception) {
                    }
                }
            }
            foreach (var wf in ar) {
                try {
                    wf.MenuItem.IsChecked = true;
                } catch (Exception ex) {
                    MessageBox.Show(ex.Message, "Coin", MessageBoxButton.OK, MessageBoxImage.Error);
                }
            }
            m_Loaded = true;
            UpdateView();
            CheckForCommands();
            //			RegisterUriHandler();
        }