Пример #1
0
        public override async Task Execute()
        {
            Result = new HomeDisplay()
            {
                Name = CurrentUser.Name, Id = CurrentUser.Id
            };

            var attendanceQuery = Session.Query <AttendanceMaster, AttendanceIndex>()
                                  .ProjectInto <AttendanceMaster>()
                                  .Take(128)
                                  .Skip(0)
                                  .Where(a => a.When > DateHelper.FormatDayStart(DateTime.UtcNow) &&
                                         a.When < DateHelper.FormatDayEnd(DateTime.UtcNow.AddDays(Forward)) &&
                                         a.UserId == CurrentUser.Id && a.TenantId == CurrentUser.TenantId)
                                  .OrderByDescending(a => a.DateModified);

            var attendanceResult = AttendanceDisplayProjection.Transform(attendanceQuery).LazilyAsync();

            var msgQuery = Session.Query <MsgMaster, MsgIndex>()
                           .ProjectInto <MsgMaster>()
                           .Take(5)
                           .Skip(0)
                           .Where(m => m.Recipients.Contains(CurrentUser.Id) && m.TenantId == CurrentUser.TenantId)
                           .OrderByDescending(a => a.DateModified);

            var msgResult = MsgDisplayTrans.Transform(msgQuery).LazilyAsync();

            Result.Attendances = await attendanceResult.Value;
            Result.Msgs        = await msgResult.Value;
        }
Пример #2
0
        public override async Task Execute()
        {
            var query = Session.Query <AttendanceMaster, AttendanceIndex>()
                        .ProjectInto <AttendanceMaster>()
                        .Statistics(out QueryStatistics stats)
                        .Take(Filter.Take)
                        .Skip(Filter.Skip * Filter.Take)
                        .OrderByDescending(a => a.DateModified);

            if (Filter.DateFrom > DateTime.MinValue || Filter.DateTo > DateTime.MaxValue)
            {
                query = query.Where(v => v.When > Filter.DateFrom && v.When < Filter.DateTo);
            }

            if (Filter.ParticipantKeys.Any())
            {
                query = query.Where(v => v.UserId.In(Filter.ParticipantKeys));
            }

            query = await Init(query, Filter, "attendance");

            Result = await AttendanceDisplayProjection.Transform(query).ToListAsync();

            Process(Filter, stats);
        }
Пример #3
0
 public override async Task Execute()
 {
     Result = await AttendanceDisplayProjection
              .Transform(Session.Query <AttendanceMaster, AttendanceIndex>().Where(c => c.Id == Id))
              .FirstOrDefaultAsync();
 }