Beispiel #1
0
        /// <summary>
        /// Запустить alfamos и установить подключение
        /// </summary>
        /// <param name="anyAlfamos"></param>
        /// <returns>имя новой сессии</returns>
        public char OpenConnection(PCCOMM_Path anyAlfamos, out Process alfamos)
        {
            char currentSessionName = 'H';

            alfamos = null;
            for (int i = 8; i > 0; i--)
            {
                if (EUCL.Connect($"{ currentSessionName }") == 0)
                {
                    currentSessionName++;
                    alfamos = runAlfamos(currentSessionName, anyAlfamos.Path);

                    return(currentSessionName);
                }
                else if (currentSessionName != 'A')
                {
                    currentSessionName--;
                }
                else
                {
                    alfamos = runAlfamos(currentSessionName, anyAlfamos.Path);
                }
            }
            return(currentSessionName);
        }
Beispiel #2
0
        /// <summary>
        /// запустить сессию pccomm
        /// </summary>
        /// <param name="currentSessionName"></param>
        /// <param name="filePath"></param>
        private Process runAlfamos(char currentSessionName, string filePath)
        {
            int count = 0;

            if (Process.GetProcessesByName("pcscm").Length < 1)
            {
                Process.Start(_pcscm.Path);
            }
            Process newAlfamos = Process.Start(filePath);

            while (EUCL.Connect($"{currentSessionName}") != 0)
            {
                count++;
                if (count > WAIT_TIME)
                {
                    throw new Exception("Не удалось запустить сессию Equation.");
                }
                Thread.Sleep(1000);
            }
            EUCL.Connect($"{currentSessionName}");
            enter();
            enter();
            enter();
            return(newAlfamos);
        }
Beispiel #3
0
 /// <summary>
 /// Записать текущий профайл пользователя в Equation
 /// </summary>
 /// <param name="connectionChar">имя сессии</param>
 internal void GetUserProfile(char connectionChar)
 {
     EUCL.Connect(connectionChar.ToString());
     EUCL.ClearScreen();
     send("Я", 21, 17);
     enter();
     _currentUserProfile = EUCL.ReadScreen(6, 18, 4);
     EUCL.SendStr("@c");
     EUCL.Wait();
     EUCL.Disconnect(connectionChar.ToString());
 }
Beispiel #4
0
 /// <summary>
 /// Заполнить коллекцию счетов данными из equation
 /// </summary>
 /// <param name="accounts"></param>
 /// <param name="connectionChar"></param>
 internal void FillAccounts(List <Account> accounts, char connectionChar)
 {
     EUCL.Connect($"{connectionChar}");
     foreach (Account acc in accounts)
     {
         DateTime temp;
         EUCL.ClearScreen();
         send("БРХ", 21, 17);
         enter();
         send(acc.Number, 3, 29);
         enter();
         DateTime.TryParse(EUCL.ReadScreen(4, 70, 11), out temp);
         acc.OpenedDate = temp;
         if (DateTime.TryParse(EUCL.ReadScreen(5, 70, 11), out temp))
         {
             acc.ClosedDate = temp;
         }
     }
     EUCL.ClearScreen();
     EUCL.Disconnect($"{connectionChar}");
 }
Beispiel #5
0
 public Equation()
 {
     #region getConnection
     int attempCount = 0;
     Console.WriteLine("Connecting to Equation");
     Console.WriteLine($"Trying connect to {sessionName}...");
     while (EUCL.Connect(sessionName.ToString()) != 0)
     {
         if (attempCount++ > 5)
         {
             connected = false;
             Console.WriteLine("Connection failed");
             break;
         }
         sessionName++;
         Console.WriteLine($"Trying connect to {sessionName}...");
     }
     if (connected)
     {
         ClearScreen();
         Console.WriteLine("Connected.");
     }
     #endregion
 }