Exemplo n.º 1
0
        public IEnumerable <EventNote> GetEventNotes(int pageNumber, int pageSize, EventNotesModelFilter filter, out int totalRecords)
        {
            using (var adapter = PersistenceLayer.GetDataAccessAdapter())
            {
                var linqMetaData = new LinqMetaData(adapter);

                var query = (from en in linqMetaData.EventNote
                             select en);

                if (filter != null)
                {
                    if (filter.HealthPlanId > 0)
                    {
                        var eventIds     = (from ea in linqMetaData.EventAccount where ea.AccountId == filter.HealthPlanId select ea.EventId);
                        var eventNoteIds = (from enl in linqMetaData.EventNotesLog where eventIds.Contains(enl.EventId) select enl.EventNoteId);

                        query = (from q in query where eventNoteIds.Contains(q.Id) select q);
                    }
                    if (filter.FromDate.HasValue || filter.ToDate.HasValue)
                    {
                        var eventIds = (from e in linqMetaData.Events
                                        where (filter.FromDate.HasValue || e.EventDate >= filter.FromDate) &&
                                        (filter.ToDate.HasValue || e.EventDate <= filter.ToDate)
                                        select e.EventId);
                        var eventNoteIds = (from enl in linqMetaData.EventNotesLog where eventIds.Contains(enl.EventId) select enl.EventNoteId);

                        query = (from q in query where eventNoteIds.Contains(q.Id) select q);
                    }
                    if (filter.PodId > 0)
                    {
                        var eventIds = (from e in linqMetaData.Events
                                        join ep in linqMetaData.EventPod on e.EventId equals ep.EventId
                                        join p in linqMetaData.PodDetails on ep.PodId equals p.PodId
                                        where p.PodId == filter.PodId
                                        select e.EventId);
                        var eventNoteIds = (from enl in linqMetaData.EventNotesLog where eventIds.Contains(enl.EventId) select enl.EventNoteId);

                        query = (from q in query where eventNoteIds.Contains(q.Id) select q);
                    }
                }

                totalRecords = query.Count();

                var finalQuery = query.OrderByDescending(x => x.DateCreated).TakePage(pageNumber, pageSize).ToArray();

                return(Mapper.Map <IEnumerable <EventNoteEntity>, IEnumerable <EventNote> >(finalQuery));
            }
        }
Exemplo n.º 2
0
        public ActionResult ManageEventNotes(EventNotesModelFilter filter = null, int pageNumber = 1)
        {
            int totalRecords;

            filter = filter ?? new EventNotesModelFilter();

            var listModel = _eventService.GetEventNotes(pageNumber, _pageSize, filter, out totalRecords) ?? new EventNotesListModel();

            listModel.Filter = filter;

            var currentAction          = ControllerContext.RouteData.Values["action"].ToString();
            Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.FromDate, filter.ToDate, filter.HealthPlanId, filter.PodId });

            listModel.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc);

            return(View(listModel));
        }