public override async Task Execute() { var query = Session.Query <MsgMaster, MsgIndex>() .ProjectInto <MsgMaster>() .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.DateCreated > Filter.DateFrom && v.DateCreated < Filter.DateTo); } if (Filter.AuthorKeys.Any()) { query = query.Where(v => v.AuthorId.In(Filter.AuthorKeys)); } if (Filter.RecipientKeys.Any()) { query = query.Where(v => v.Recipients.In(Filter.RecipientKeys)); } if (Filter.PrivateRestrict) { query = query.Where(v => v.IsPrivate.Value); } query = await Init(query, Filter, "msg"); Result = await MsgDisplayTrans.Transform(query).ToListAsync(); Process(Filter, stats); }
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; }
public override async Task Execute() { var msgQuery = MsgDisplayTrans.Transform(Session.Query <MsgMaster, MsgIndex>().Where(c => c.Id == Id)) .Take(1).LazilyAsync(); var favQuery = Session.Query <FavMaster, FavFanIndex>().Where(c => c.Id == Id).Take(1).CountLazilyAsync(); var msgResult = await msgQuery.Value; var favResult = await favQuery.Value; Result = msgResult.FirstOrDefault(); Result.Favourite = favResult > 0; }
public override async Task Execute() { Result = await Session.LoadAsync <Msg>(Id); if (Result != null) { ResultFiles = await VisibleDisplayProjection .Transform(Session.Query <VisibleFile, VisibleIndex>().Where(c => c.Id.In(Result.Files))) .ToListAsync(); ResultRecipients = await ResultProfileProjection .Transform(Session.Query <UserMaster, UserIndex>().Where(c => c.Id.In(Result.Recipients)) .OfType <IEntityProfile>()).ToListAsync(); if (!string.IsNullOrEmpty(Result.ReplyId)) { ResultReply = await MsgDisplayTrans .Transform(Session.Query <MsgMaster, MsgIndex>().Where(c => c.Id == Result.ReplyId)) .FirstOrDefaultAsync(); } } }
public override async Task Execute() { Result = new StatsDisplay() { Name = CurrentUser.TenantName, Id = CurrentUser.TenantId }; var meetingQuery = Session.Query <MeetingMaster, MeetingIndex>() .ProjectInto <MeetingMaster>() .Take(128) .Skip(0) .Where(a => a.When > DateHelper.FormatDayStart(DateTime.UtcNow.AddDays(-Back)) && a.When < DateHelper.FormatDayEnd(DateTime.UtcNow) && a.TenantId == CurrentUser.TenantId) .OrderByDescending(a => a.DateModified); var meetingResult = MeetingDisplayProjection.Transform(meetingQuery).LazilyAsync(); var msgQuery = Session.Query <MsgMaster, MsgIndex>() .ProjectInto <MsgMaster>() .Take(5) .Skip(0) .Where(m => m.DateCreated > DateHelper.FormatDayStart(DateTime.UtcNow.AddDays(-Back)) && m.TenantId == CurrentUser.TenantId) .OrderByDescending(a => a.DateModified); var msgResult = MsgDisplayTrans.Transform(msgQuery).LazilyAsync(); var tenantQuery = TenantStatProjection .Transform(Session.Query <TenantStat, TenantStatIndex>().Where(c => c.Id == CurrentUser.TenantId)) .Take(1).LazilyAsync(); var tenantResult = await tenantQuery.Value; Result.Meetings = await meetingResult.Value; Result.Msgs = await msgResult.Value; Result.Tenant = tenantResult.FirstOrDefault(); }