internal override IReadOnlyCollection <Question> ReadAll(Filter filter)
        {
            if (filter == null)
            {
                filter = new QuestionFilter();
            }
            else if (filter.GetType() != typeof(QuestionFilter))
            {
                throw new ArgumentException("Передаваемый фильтр не соответствует ожидаемому", "filter");
            }

            List <Question> output = new List <Question>();
            var             drc    = GetRowsUsingQuery(TableValuedFunctions.Tests.Question_Read, filter.ToSqlParameters());

            foreach (DataRow item in drc)
            {
                output.Add(new Question(
                               (string)item["Text"],
                               (int)item["ControlWorkId"],
                               (int)item["QuestionTypeId"],
                               (DateTime)item["DateAdd"]
                               ));
            }
            return(output);
        }
        internal override Question Read(int id)
        {
            if (id <= 0)
            {
                throw new ArgumentException("Идентификатор меньше или равен нулю", "id");
            }
            Filter filter = new QuestionFilter
            {
                Id = id
            };

            return(ReadAll(filter).FirstOrDefault());
        }