示例#1
0
        /// <summary>
        /// Конструктор главной формы
        /// </summary>
        public MainForm()
        {
            InitializeComponent();

            AutoSizeMode = AutoSizeMode.GrowAndShrink;

            // Инициализация контейнера для хранения вариантов инвестиций.
            investments = new Investments();
            // Отключение кнопки создания графика.
            buttonForCreateGrafic.Enabled = false;
            // Отключение кнопки создания инвестиции.
            buttonForCreateInvestment.Enabled = false;
            // Отключение кнопки для подробной информации об инвестиции.
            buttonInfo.Enabled            = false;
            buttonSave.Enabled            = false;
            buttonSort.Enabled            = false;
            buttonForCreateGrafic.Enabled = false;

            if (!System.Net.NetworkInformation.NetworkInterface.GetIsNetworkAvailable())
            {
                MessageBox.Show("Отсутствует или ограничено подключение к сети.\nПроверьте настройки вашего сетевого подключения.");
            }

            toolTip = new ToolTip
            {
                AutoPopDelay = 3000,
                InitialDelay = 1000,
                ReshowDelay  = 500,
            };
            AddToolTips();
        }
示例#2
0
        /// <summary>
        /// Сохраняет данные о созданных вариантах инвестиции
        /// в текстовый файл.
        /// </summary>
        /// <param name="invsForSave"> Список вариантов инвестиции. </param>
        public void SaveFile(Investments invsForSave)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();

            saveFileDialog.Filter = "Текстовый документ (*.txt)|*.txt|Все файлы (*.*)|*.*";

            List <string> text = invsForSave.Invs.Select(i => (i.InvestmentName + "\n Валюта: " + i.Currency.ToString() +
                                                               "; Через " + i.PredictionPeriod + " дн. на счету будет " + Math.Round(i.ProceedsEstimate, 2).ToString() + " Руб.; Процент риска " + Math.Round(i.RiskEstimate, 2) +
                                                               "%; Доходность инвестиции: " + Math.Round(i.ProfitPercentage, 2) + "%").ToString()).ToList();

            if (saveFileDialog.ShowDialog() == DialogResult.OK)
            {
                StreamWriter streamWriter = new StreamWriter(saveFileDialog.FileName);
                foreach (var el in text)
                {
                    streamWriter.WriteLine(el);
                }
                streamWriter.Close();
                MessageBox.Show("Сохранение прошло успешно");
            }
        }
示例#3
0
        /// <summary>
        /// Конструктор класса.
        /// </summary>
        /// <param name="invs"> Список созданных пользователем вариантов инвестиций. </param>
        public InvestmentCreationForm(Investments invs, CurrencyType currency)
        {
            optionsPanel = new Panel
            {
                Location = new Point(0, 0),
                Size     = new Size(ClientSize.Width, 250),
            };
            FillOptionsPanel(currency);

            buttonPanel = new Panel
            {
                Location = new Point(0, 250),
                Size     = new Size(ClientSize.Width, 50),
            };
            FillButtonPanel();

            Controls.Add(optionsPanel);
            Controls.Add(buttonPanel);

            saveButton.Click += (sender, args) =>
            {
                // Проверка того, все ли поля формы были заполнены.
                if (!AllFieldsAreFilled())
                {
                    MessageBox.Show("Заполните все поля формы");
                }
                // Создание варианта инвестиции.
                else
                {
                    // Проверка соответствия ввода маске.
                    // Максимальное допустимое значение - 9999999.99.
                    // При вводе более 2 знаков после запятой значение округляется до 2 знаков.
                    if (amountRegex.IsMatch(amountBox.Text))
                    {
                        var amount = new decimal(Math.Round(double.Parse(amountBox.Text, CultureInfo.InvariantCulture), 2));
                        if (amount < 0.01m)
                        {
                            MessageBox.Show("Сумма должна быть ненулевой");
                        }
                        else
                        {
                            var name = nameBox.Text;
                            var selectedCurrButton = currencyPanel.Controls.OfType <RadioButton>().FirstOrDefault(b => b.Checked);
                            var curr         = DetermineCurrency(selectedCurrButton);
                            var selectedTime = timeBox.SelectedItem.ToString();
                            var period       = DeterminePeriod(selectedTime);

                            invs.AddInvestment(name, amount, curr, period);
                            var dialog = MessageBox.Show("Вариант инвестиции сохранен.");
                            if (dialog == DialogResult.OK)
                            {
                                this.DialogResult = DialogResult.OK;
                                Close();
                            }
                        }
                    }
                    else
                    {
                        MessageBox.Show("Введенная сумма не является числом или превышает допустимую сумму");
                    }
                }
            };
            cancelButton.Click += (sender, args) =>
            {
                this.DialogResult = DialogResult.Cancel;
                Close();
            };
        }