Esempio n. 1
0
        /// <summary>
        /// Возвращает список аргументов, полученных из их строкового представления.
        /// </summary>
        /// <param name="input">Строковое представление аргументов.</param>
        /// <param name="op">Идентификатор команды, аргументы которой рассматриваются.</param>
        /// <returns>Аргументы команды.</returns>
        private static int[] GetArguments(string input, PostOperationId op)
        {
            int[] result = null;
            List<string> t = input.Trim().Split(' ').ToList();
            t.RemoveAll(x => x == " " || x == "");

            try
            {
                if (op == PostOperationId.Decision)
                {
                    if (t.Count != 2)
                        ThrowInvalidNumParamsException();

                    result = new int[2];
                    result[0] = int.Parse(t[0]);
                    result[1] = int.Parse(t[1]);
                }
                else if (op == PostOperationId.Stop)
                {
                    if (t.Count > 0)
                        ThrowInvalidNumParamsException();

                    result = new int[0];
                }
                else
                {
                    if (t.Count > 1)
                        ThrowInvalidNumParamsException();

                    result = new int[t.Count];
                    if(result.Length == 1)
                    {
                        result[0] = int.Parse(t[0]);
                    }
                }
            }
            catch(InvalidOperationTextException ex)
            {
                throw ex;
            }
            catch
            {
                throw new InvalidOperationTextException("Неверные параметры операции");
            }

            return result;
        }
 /// <summary>
 /// Инициализирует аргументы указанной выполненной операцией.
 /// </summary>
 /// <param name="op">Выполненная операция.</param>
 public PostOperationExecutedEventArgs(PostOperationId op)
 {
     _op = op;
 }