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

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

            foreach (DataRow item in drc)
            {
                output.Add(new Answer(
                               (int)item["AnswerId"],
                               (int)item["QuestionId"],
                               (string)item["Text"],
                               (bool)item["IsTrue"]
                               ));
            }

            return(output);
        }
        internal override Answer Read(int id)
        {
            if (id <= 0)
            {
                throw new ArgumentException("Идентификатор меньше или равен нулю", "id");
            }
            Filter filter = new AnswerFilter
            {
                Id = id
            };

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