public ActionResult RescheduleAppointment(RescheduleApplointmentListModelFilter filter = null, int pageNumber = 1) { int totalRecords; var model = _eventCustomerReportingService.GetRescheduleAppointments(pageNumber, _pageSize, filter, out totalRecords); if (model == null) { model = new RescheduleApplointmentListModel(); } if (filter == null) { filter = new RescheduleApplointmentListModelFilter { RescheduleFrom = DateTime.Now.AddDays(-30), RescheduleTo = DateTime.Now } } ; filter.RescheduleFrom = filter.RescheduleFrom.HasValue ? filter.RescheduleFrom.Value : DateTime.Now.Date.AddDays(-30); filter.RescheduleTo = filter.RescheduleTo.HasValue ? filter.RescheduleTo.Value : DateTime.Now.Date; model.Filter = filter; var currentAction = ControllerContext.RouteData.Values["action"].ToString(); Func <int, string> urlFunc = pn => Url.Action(currentAction, new { pageNumber = pn, filter.EventFrom, filter.EventTo, filter.RescheduleFrom, filter.RescheduleTo, filter.CustomerId, filter.CustomerName, filter.CorporateAccountId, filter.HospitalPartnerId }); model.PagingModel = new PagingModel(pageNumber, _pageSize, totalRecords, urlFunc); return(View(model)); }
public IEnumerable <EventAppointmentChangeLog> GetRescheduledAppointment(int pageNumber, int pageSize, RescheduleApplointmentListModelFilter filter, out int totalRecords) { using (var adapter = PersistenceLayer.GetDataAccessAdapter()) { var linqMetaData = new LinqMetaData(adapter); IEnumerable <EventAppointmentChangeLogEntity> entities; if (filter == null) { filter = new RescheduleApplointmentListModelFilter { RescheduleFrom = DateTime.Now.Date.AddDays(-30), RescheduleTo = DateTime.Now.Date }; } filter.RescheduleFrom = filter.RescheduleFrom.HasValue ? filter.RescheduleFrom.Value : DateTime.Now.Date.AddDays(-30); filter.RescheduleTo = filter.RescheduleTo.HasValue ? filter.RescheduleTo.Value : DateTime.Now.Date; var query = (from eacl in linqMetaData.EventAppointmentChangeLog select eacl); if (filter.CustomerId > 0) { query = (from q in query join ec in linqMetaData.EventCustomers on q.EventCustomerId equals ec.EventCustomerId where ec.CustomerId == filter.CustomerId select q); } else { query = (from q in query where q.DateCreated >= filter.RescheduleFrom.Value && q.DateCreated <= filter.RescheduleTo.Value.AddHours(23).AddMinutes(59) select q); //if (filter.EventFrom.HasValue || filter.EventTo.HasValue || !string.IsNullOrEmpty(filter.CustomerName)) //{ // var queryForFilter = (from q in query // join ec in linqMetaData.EventCustomers on q.EventCustomerId equals ec.EventCustomerId // join e in linqMetaData.Events on ec.EventId equals e.EventId // select new { q, ec, e }); // if (filter.EventFrom.HasValue || filter.EventTo.HasValue) // { // if (filter.EventFrom.HasValue) // { // queryForFilter = (from q in queryForFilter where q.e.EventDate >= filter.EventFrom.Value select q); // } // if (filter.EventTo.HasValue) // { // queryForFilter = (from q in queryForFilter where q.e.EventDate <= filter.EventTo.Value select q); // } // } // if (!string.IsNullOrEmpty(filter.CustomerName)) // { // queryForFilter = (from q in queryForFilter // join oru in linqMetaData.OrganizationRoleUser on q.ec.CustomerId equals oru.OrganizationRoleUserId // join u in linqMetaData.User on oru.UserId equals u.UserId // where (u.FirstName + (u.MiddleName.Trim().Length > 0 ? (" " + u.MiddleName + " ") : " ") + u.LastName).Contains(filter.CustomerName) // select q); // } // query = (from q in queryForFilter select q.q); //} if (filter.HospitalPartnerId > 0) { var eventIds = (from ea in linqMetaData.EventHospitalPartner where ea.HospitalPartnerId == filter.HospitalPartnerId select ea.EventId); query = (from q in query where (eventIds.Contains(q.OldEventId) || eventIds.Contains(q.NewEventId)) select q); } if (filter.CorporateAccountId > 0) { var eventIds = (from ea in linqMetaData.EventAccount where ea.AccountId == filter.CorporateAccountId select ea.EventId); query = (from q in query where (eventIds.Contains(q.OldEventId) || eventIds.Contains(q.NewEventId)) select q); } if (!string.IsNullOrEmpty(filter.CustomerName)) { query = (from q in query join ec in linqMetaData.EventCustomers on q.EventCustomerId equals ec.EventCustomerId join oru in linqMetaData.OrganizationRoleUser on ec.CustomerId equals oru.OrganizationRoleUserId join u in linqMetaData.User on oru.UserId equals u.UserId where (u.FirstName + (u.MiddleName.Trim().Length > 0 ? (" " + u.MiddleName + " ") : " ") + u.LastName).Contains(filter.CustomerName) select q); } query = (from q in query orderby q.DateCreated descending select q); } totalRecords = query.Count(); entities = query.TakePage(pageNumber, pageSize).ToList(); return(Mapper.Map <IEnumerable <EventAppointmentChangeLogEntity>, IEnumerable <EventAppointmentChangeLog> >(entities)); } }