public PageModelResult <Subject> Read(SubjectFilter filter)
        {
            PageModelResult <Subject> model    = new PageModelResult <Subject>(filter);
            IEnumerable <Subject>     subjects = this.repository.Read(filter);

            model.RowCount  = subjects.Count();
            model.PageIndex = filter.PageIndex;
            model.Data      = subjects.Skip(filter.Skip).Take(filter.Take);

            return(model);
        }
        public static PageOperationResponse <SubjectMessage> MapTo(PageModelResult <Subject> model)
        {
            PageOperationResponse <SubjectMessage> response = new PageOperationResponse <SubjectMessage>(model.Protocol);

            response.Messages  = model.Messages.ToList();
            response.PageCount = model.PageCount;
            response.PageIndex = model.PageIndex;
            response.RowCount  = model.RowCount;
            response.Data      = model.Data.ToList().Select(MapTo);

            return(response);
        }