public AnnouncementQueryResult GetAdminAnnouncementsOrderedByTitle(AdminAnnouncementsQuery query)
        {
            var ps = new Dictionary <string, object>()
            {
                ["pFrom"] = query.FromTitle,
                ["pTo"]   = query.ToTitle
            };

            return(InternalGetAnnouncements("spGetAdminAnnouncementsOrderedByTitle", query, ps));
        }
        protected AnnouncementQueryResult InternalGetAnnouncements(string procedureName, AdminAnnouncementsQuery query, IDictionary <string, object> additionalParams)
        {
            additionalParams = additionalParams ?? new Dictionary <string, object>();

            additionalParams.Add(STUDENT_ID, query.StudentId);
            additionalParams.Add(GRADE_LEVELS_IDS_PARAM, query.GradeLevelsIds ?? new List <int>());
            additionalParams.Add(NOW_PARAM, query.Now);
            return(InternalGetAnnouncements <AnnouncementsQuery>(procedureName, query, additionalParams));
        }
        //public override AnnouncementQueryResult GetAnnouncements(AnnouncementsQuery query)
        //{
        //    var parameters = new Dictionary<string, object>
        //        {
        //            {ID_PARAM, query.Id },
        //            {ROLE_ID_PARAM, query.RoleId },
        //            {OWNED_ONLY_PARAM, query.OwnedOnly },
        //            {FROM_DATE_PARAM, query.FromDate },
        //            {TO_DATE_PARAM, query.ToDate },
        //            {START_PARAM, query.Start },
        //            {COUNT_PARAM, query.Count },
        //            {NOW_PARAM, query.Now },
        //            {PERSON_ID_PARAM, query.PersonId},
        //            {GRADE_LEVELS_IDS_PARAM, query.GradeLevelsIds ?? new List<int>()},
        //            {COMPLETE, query.Complete},
        //            {STUDENT_ID, query.StudentId}
        //        };
        //    using (var reader = ExecuteStoredProcedureReader(GET_ADMIN_ANNOUNCEMENT_PROCEDURE, parameters))
        //    {
        //        return ReadAnnouncementsQueryResult(reader, query);
        //    }
        //}

        public AnnouncementQueryResult GetAdminAnnouncementsOrderedByDate(AdminAnnouncementsQuery query)
        {
            return(InternalGetAnnouncements("spGetAdminAnnouncementsOrderedByDate", query, null));
        }