Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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
     });
 }
Exemplo n.º 3
0
 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>()
     });
 }