public PagedListResult <AccessInfo> SearchAccess(DateRange range, int page, Guid userId, AccessType accessType) { var list = _context.GetList <ClassAccess>() .Where(a => (!range.StartDate.HasValue || range.StartDate.HasValue && range.StartDate.Value <= a.AccessDateTime && (!range.EndDate.HasValue || range.EndDate.HasValue && range.EndDate .Value >= a.AccessDateTime && a.User.Id == userId)) && (accessType == AccessType.Class || accessType == AccessType.All)) .Select(a => new AccessInfo { FileAccess = null, ClassAccess = a, AccessType = AccessType.Class, AccessDateTime = a.AccessDateTime }) .Union( _context.GetList <FileAccess>() .Where(a => (!range.StartDate.HasValue || range.StartDate.HasValue && range.StartDate.Value <= a.AccessDateTime && (!range.EndDate.HasValue || range.EndDate.HasValue && range.EndDate.Value >= a.AccessDateTime && a.User.Id == userId)) && (accessType == AccessType.File || accessType == AccessType.All)) .Select(a => new AccessInfo { FileAccess = a, ClassAccess = null, AccessType = AccessType.File, AccessDateTime = a.AccessDateTime }).OrderByDescending(a => a.AccessDateTime) ) .OrderByDescending(x => x.AccessDateTime); var accessInfoGenericRepository = new GenericRepository <AccessInfo>(_context, list); var query = new SearchQuery <AccessInfo> { Take = 8, Skip = (page - 1) * 8 }; query.SortCriterias.Add(new DynamicFieldSortCriteria <AccessInfo>("AccessDateTime desc")); var pagedResult = accessInfoGenericRepository.Search(query); foreach (var item in pagedResult.Entities) { item.DateTimeDescription = _humanizer.Humanize(item.AccessDateTime, DateTime.Now, CultureInfo.CurrentUICulture); } return(pagedResult); }
internal static NoticeViewModel FromEntity(Notice item, DefaultDateTimeHumanizeStrategy humanizer) { return(new NoticeViewModel { Id = item.Id, DateTimeDescription = humanizer.Humanize(item.DateTime, DateTime.Now, CultureInfo.CurrentUICulture), Text = item.Text, ClassroomName = item.DeliveryPlan?.Classroom?.Name, DirectMessage = item.User != null }); }
public static ClassViewModel FromEntity(Class item, int depth, DefaultDateTimeHumanizeStrategy humanizer) { return(new ClassViewModel { Id = item.Id, TeacherId = item.Teacher.Id, TeacherName = item.Teacher.Name, CourseId = item.Course.Id, CourseName = item.Course.Name, Name = item.Name, Content = item.Content, ContentType = item.ContentType, CreatedAt = item.CreatedAt, DeliveryDays = item.DeliveryDays, CreatedAtDescription = humanizer != null ? humanizer.Humanize(item.CreatedAt, DateTime.Now, CultureInfo.CurrentUICulture) : string.Empty, Active = item.Active, Order = item.Order, Files = depth > 3 ? FileViewModel.FromEntityList(item.Files) : new List <FileViewModel>() }); }