Esempio n. 1
0
        /// <summary>
        /// Кодирование заголовка запроса в формат,
        /// пригодный для отправки на сервер.
        /// </summary>
        /// <returns></returns>
        public IEnumerable <string> Encode()
        {
            string        glued  = _GlueCommand();
            List <string> result = new List <string>
            {
                glued,
                Workstation.ToInvariantString(),
                glued,
                ClientID.ToInvariantString(),
                QueryID.ToInvariantString()
            };

            // Документация на сервер неверно описывает формат
            // клиентского пакета. На самом деле он таков (для команды А):
            // общая длина пакета
            // 'A'
            // АРМ, например 'C'
            // 'A'
            // ID клиента, например 523444
            // номер команды, для A всегда 1
            // пароль
            // имя пользователя
            // пустая строка
            // пустая строка
            // пустая строка

            if (!string.IsNullOrEmpty(Password))
            {
                result.Add(Password);
            }

            if (!string.IsNullOrEmpty(UserName))
            {
                result.Add(UserName);
            }

            while (result.Count < 10)
            {
                result.Add(string.Empty);
            }

            return(result);
        }