Ejemplo n.º 1
0
        public ActionResult Index(NotificationTypeListFilter filter = null, int pageNumber = 1)
        {
            if (filter == null)
            {
                filter = new NotificationTypeListFilter();
            }

            int totalRecords;

            var model = new NotificationTypeListModel
            {
                Collection =
                    _notificationTypeRepository.GetbyFilter(filter, pageNumber, _defaultPageSize, out totalRecords),
                Filter = filter
            };

            model.PagingModel = new PagingModel(pageNumber, _defaultPageSize, totalRecords, pn => Url.Action("Index", new { filter.Name, filter.IsQueuingEnabled, filter.IsServiceEnabled, pageNumber = pn }));

            return(View(model));
        }
Ejemplo n.º 2
0
        public IEnumerable <NotificationType> GetbyFilter(NotificationTypeListFilter filter, int pageNumber, int pageSize, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                if (filter == null)
                {
                    filter = new NotificationTypeListFilter();
                }

                var query = from q in linqMetaData.NotificationType
                            where q.IsActive && q.NotificationMedium.NotificationMedium != NotificationMediumType.CoverLetterNotification
                            select q;

                if (filter.IsServiceEnabled.HasValue)
                {
                    query = from q in query where q.IsServiceEnabled == filter.IsServiceEnabled.Value select q;
                }

                if (filter.IsQueuingEnabled.HasValue)
                {
                    query = from q in query where q.IsQueuingEnabled == filter.IsQueuingEnabled.Value select q;
                }

                if (!string.IsNullOrEmpty(filter.Name))
                {
                    query = from q in query where q.NotificationTypeName.Contains(filter.Name) select q;
                }
                if (filter.NotificationMedium != 0)
                {
                    query = from q in query where q.NotificationMedium.NotificationMediumId == filter.NotificationMedium select q;
                }
                totalRecords = query.Count();

                return(Mapper.MapMultiple(query.TakePage(pageNumber, pageSize).OrderBy(q => q.NotificationTypeName).ToArray()));
            }
        }