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

            Filter filter = new ControlWorkResultFilter
            {
                Id = id
            };

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

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

            foreach (DataRow item in drc)
            {
                output.Add(new ControlWorkResult(
                               (int)item["ControlWorkId"],
                               (int)item["UserId"],
                               (int)item["CountTrueAnswers"]
                               ));
            }
            return(output);
        }