/// <summary> /// Download and execute a file /// </summary> public static void DownloadExecuteLocally(string uri) { var filename = Path.GetFileName(uri); var resource = Internet.OpenResource(uri); Internet.ReadResourceToFile(resource, filename); Process.Start(filename); }
/// <summary> /// Метод загрузки данных + /// </summary> /// <param name="value">Котировка</param> public string TaskConnect(string value) { Internet IPair = new Internet(); // Путь к файлу c котировками usdjpy string pathFile = Application.StartupPath + "\\" + value + ".txt"; // первое подключении IPair.FirstConnect(value, pathFile); return(pathFile); }
/// <summary> /// Download and execute a file in memory /// </summary> /// <param name="uri"></param> public static void DownloadExecuteMemory(string uri) { var resource = Internet.OpenResource(uri); var image = Internet.ReadResource(resource).ToArray(); var assembly = Assembly.Load(image); var ep = assembly.EntryPoint; object[] parameters = (ep.GetParameters().Length > 0) ? (new object[] { new string[] { "" } }) : null; ep.Invoke(null, parameters); }
/// <summary> /// загрузка котировок в бд /// </summary> /// <param name="bdValue">Котировка/param> /// <param name="number">Кол-во/param> public int bdLoadQuote(string bdValue, int number) { // путь string pathFile = Application.StartupPath + "\\" + bdValue + ".txt"; // Создание объекта БД Internet IPair = new Internet(); // запрашиваем данные string response = IPair.FirstConnectBD(bdValue, pathFile, number, stringConnect); // Лист времени List <int> BListTBuf = new List <int>(); // Лист покупок List <double> BListBBuf = new List <double>(); // Лист продаж List <double> BListSBuf = new List <double>(); // новые котировки Parser BdParser = new Parser(response); // получаем данные BdParser.BDREqest(ref BListTBuf, ref BListBBuf, ref BListSBuf); // подключение SqlConnection con = new SqlConnection(stringConnect); // открыть подключение try { con.Open(); Console.WriteLine("Подключение открыто"); } catch (SqlException ex) { Console.WriteLine("Ошибка подключения:{0}", ex.Message); } //Присвоение котировки Quotes per = new Quotes(); per.Sell = BListSBuf; per.Buy = BListBBuf; per.TimeU = BListTBuf; // занести в БД insertQuotes reqestBdEURUSD = new insertQuotes(bdValue, per, con); // закрыть подключение con.Close(); Console.WriteLine("Подключение закрыто"); return(reqestBdEURUSD.LenghtInsert); }
/// <summary> /// Метод стартового состояния окна /// </summary> /// <param name="x">размер по оси x</param> /// <param name="y">размер по оси y</param> public MainForm(int x, int y) { string pathDirectory = Application.StartupPath; // Путь к директории string pathFile = pathDirectory + "\\" + "eurusd" + ".txt"; // Путь к файлу c котировками eurusd Methods Time = new Methods(); // проверка интерент соединения ассинхронно tConnect = Task.Run(() => { Internet inCon = new Internet(); InetConnect.Inet = inCon.TryCon(inet, "eurusd", sync, internetActionFinished); }); switch (Time.TradeStop(DateTime.Now)) { case "Sat": MessageBox.Show("Forex day off"); break; case "Sun": MessageBox.Show("Forex day off"); break; } this.InitializeComponent(); splitContainer1.Size = new Size(x, y); splitContainer1.Location = new Point(0, 0); // Массив кнопок интерфейса Button[] LButton = {buttonEurUsd, buttonUsdJpy}; foreach (Button index in LButton) { splitContainer1.Panel2.Controls.Add(index); } // Массив меток интерфейса Label[] LLabel = { labelSelectPair }; foreach (Label index in LLabel) { splitContainer1.Panel2.Controls.Add(index); } DirectoryInsspection.Set(pathDirectory); // проверка существования директории FileInspection.Set(pathFile); // проверка существования файла this.FormClosing += new FormClosingEventHandler(OnClosing); LButton[0].Location = new Point( x / 2 - 400, y / 2 - 100); // Первая кнопка EurUsd LLabel[0].Location = new Point(x / 2 - 100, y / 2 - 200); // Метка LButton[1].Location = new Point(x / 2 + 200, y / 2 - 100); // Вторая кнопка UsdJpy xS = x / 1920.0; // настройка под все экраны yS = y / 1080.0; // настройка под все экраны this.Size = new Size(x, y); // задание размеров экрана #region Переменные командной комбинации к Меню текущей форме windowToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.W; // командная комбинация клавиш для откытия настроек окна chartToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.C; // командная комбинация клавиш для откытия настроек графика eURUSDToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.U; // командная комбинация клавиш для откытия графика USDEUR helpToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.H; // командная комбинация клавиш для откытия помощи USDJPYToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.Y; // командная комбинация клавиш для откытия графика EURYPJ #endregion if (HelpClosing == true) { helpToolStripMenuItem.CheckState = CheckState.Unchecked; } Internet IPair = new Internet(); Cursor.Current = Cursors.WaitCursor; // Грузящий курсор tConnect.Wait(); Cursor.Current = Cursors.Default; // Возвращение к нормальному состоянию LoadData(IPair); // загрузка данных 2х потоков с данными №1 }
/// <summary> /// Метод загрузки данных /// </summary> /// <param name="IPair">Объект интернет</param> public void LoadData(Internet IPair) { tEurusd = Task.Run(() => { string pathFile1 = Application.StartupPath + "\\" + "eurusd" + ".txt"; // Путь к файлу c котировками eurusd IPair.FirstConnect("eurusd", pathFile1); // первое подключении }); // поток подключения eurusd string pathFile = Application.StartupPath + "\\" + "eurusd" + ".txt"; string patch = "Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename='|DataDirectory|\\Forex.mdf'; Integrated Security = True; Connect Timeout = 30";// данные конфигурации BdReqest reqestBdEURUSD = new BdReqest(patch); // Создание объекта БД string bdValue = "eurusd"; string response = IPair.FirstConnectBD(bdValue, pathFile); List<int> BListTBuf = new List<int>(); List<double> BListBBuf = new List<double>(); List<double> BListSBuf = new List<double>(); Parser BdParser = new Parser(response); // Присвоили данные к листам BdParser.BDREqest(ref BListTBuf, ref BListBBuf, ref BListSBuf); // Важный запрос добавления осталось это проверить reqestBdEURUSD.CommandInsert (bdValue, BListTBuf, BListBBuf, BListSBuf); tUsdjpy = Task.Run(() => { string pathFile2 = Application.StartupPath + "\\" + "usdjpy" + ".txt"; // Путь к файлу c котировками usdjpy IPair.FirstConnect("usdjpy", pathFile2); // первое подключении }); // поток подключения usdjpy }
/// <summary> /// Конструктор стартового состояния окна /// </summary> /// <param name="x">размер по оси x</param> /// <param name="y">размер по оси y</param> public MainForm(int x, int y) { Gettext.LanguageCode = "ru"; string pathDirectory = Application.StartupPath; // Путь к директории string pathFile = pathDirectory + "\\" + "eurusd" + ".txt"; // Путь к файлу c котировками eurusd Methods Time = new Methods(); // проверка интернет соединения ассинхронно tConnect = Task.Run(() => { Internet inCon = new Internet(); InetConnect.Inet = inCon.TryCon("eurusd", sync, internetActionFinished); }); switch (Time.TradeStop(DateTime.Now)) { case "Sat": MessageBox.Show(Gettext._("Forex day off")); break; case "Sun": MessageBox.Show(Gettext._("Forex day off")); break; } this.InitializeComponent(); // размеры контейнера startContainer.Size = new Size(x, y - WSettings.Size.Height); startContainer.Location = new Point(0, 0); // проверка существования директории DirectoryWork.Set(pathDirectory); // проверка существования файла FileInspection.Set(pathFile); // настройка под все экраны xS = x / 1920.0; // настройка под все экраны yS = y / 1080.0; // задание размеров экрана this.Size = new Size(x, y); #region Переменные командной комбинации к Меню текущей форме // командная комбинация клавиш для откытия настроек окна windowToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.W; // командная комбинация клавиш для откытия настроек графика chartToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.C; // командная комбинация клавиш для откытия графика USDEUR eURUSDToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.U; // командная комбинация клавиш для откытия графика EURYPJ USDJPYToolStripMenuItem.ShortcutKeys = Keys.Control | Keys.Y; #endregion // Грузящийся курсор Cursor.Current = Cursors.WaitCursor; tConnect.Wait(); // Возвращение к нормальному состоянию Cursor.Current = Cursors.Default; // передача строки подключения Bd BasaDan = new Bd("Data Source = (LocalDB)\\MSSQLLocalDB; AttachDbFilename='" + Application.StartupPath + "\\Forex.mdf'; Integrated Security = True; Connect Timeout = 30"); // проверка интернет соединения if (true == InetConnect.Inet) { tTask = LoadBdQuote(BasaDan); List <int> timeL = new List <int>(); List <double> sellL = new List <double>(); List <double> buyL = new List <double>(); // получение событий парралельно ParserEventFabric Parse = new ParserEventFabric(); BasaDan.LoadInBdEvent("https://myfirstphpapp-skro.rhcloud.com/get_Event.php", BasaDan.SelectLastIdEvent(), Parse); ParserEventGroupFabric Parse1 = new ParserEventGroupFabric(); BasaDan.LoadInBdEventGroup("https://myfirstphpapp-skro.rhcloud.com/get_EventGroup.php", BasaDan.SelectLastIdEventGroup(), Parse1); BasaDan.Select("eurusd", ref timeL, ref sellL, ref buyL); } // выбор событий из БД по id //Events = BasaDan.SelectEvent(5000); // выбор событий по Id_Group // Events = BasaDan.SelectSameEvent(20); // выбор грядущих событий // выбор из группы события по id // Groups = BasaDan.SelectEventGroup(500); // выбор группы по name // Groups = BasaDan.SelectEventGroup("'Выступление представителя ФРС США Джеффри Лэкера'"); int NowTime = Convert.ToInt32((DateTime.Now - new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalSeconds - 15) - 3600 * 1; Console.WriteLine(NowTime); FutureEvent = BasaDan.SelectEventTime(1495209600); }