public async Task <UserRepositoryModel> GetApplyFriendsAsync(EaUser user, int s, int t) { var uss = NonTrackingAsyncEnum.Where(u => u.IsEnable && u.Status == Friend.Applying && u.Target == user.Id); var count = await uss.Count(); var datas = await uss.Skip(s).Take(t).ToArray(); var ucol = datas.Select(d => d.Target); var usdatas = new RelFriend[datas.Count()]; var users = await _userManager.Users.AsNoTracking().ToAsyncEnumerable() .Where(u => ucol.Contains(u.Id)) .ToDictionary(u => u.Id, u => u.UserName); for (int i = 0; i < datas.Count(); i++) { var odata = datas[i]; usdatas[i] = new RelFriend() { Id = odata.Id, CreateTime = odata.CreateTime, Target = odata.Target, Creator = odata.Creator, Status = odata.Status, TargetName = users[odata.Target] }; } var upm = new UserRepositoryModel(count, s, t, usdatas); return(upm); }
public async Task <FriendRepositoryModel> GetFriendsAsync(EaUser user, int skip, int take) { var fs = NonTrackingAsyncEnum.Where(f => f.Status == Friend.Applied && f.IsEnable && f.Creator == user.Id || f.Target == user.Id); var count = await fs.Count(); var datas = await fs.Skip(skip).Take(take).ToArray(); var fpm = new FriendRepositoryModel(count, skip, take, datas); return(fpm); }
public async Task <MsgRepositoryModel> GetMsgAsync(EaUser user, int s, int t) { var msgs = NonTrackingAsyncEnum.Where(m => m.Creator == user.Id || m.Target == user.Id && m.IsEnable); var count = await msgs.Count(); var datas = await msgs.Skip(s).Take(t).ToArray(); var mpm = new MsgRepositoryModel(count, s, t, datas); return(mpm); }
public async Task <ContentRepositoryModel> GetUserContentsAsync(EaUser user, int s, int t) { var us = NonTrackingAsyncEnum.Where(c => c.EaUserId == user.Id && c.IsEnable); var count = await us.Count(); var datas = await us.Skip(s).Take(t).ToArray(); var crm = new ContentRepositoryModel(count, s, t, datas); return(crm); }
/// <summary> /// 获取内容 /// </summary> /// <param name="gid"></param> /// <param name="s"></param> /// <param name="t"></param> /// <param name="ai"></param> /// <returns></returns> public async Task <ContentRepositoryModel> GetContentsAsync(uint gid, int s = 0, int t = 6, bool ai = false)//一页6个 { var cs = NonTrackingAsyncEnum.Where(c => c.ContentGroupId == gid && c.IsEnable); var count = await cs.Count(); var datas = await cs.Skip(s).Take(t).ToArray(); if (ai) { await LoadFilesAsync(datas); } var cpm = new ContentRepositoryModel(count, s, t, datas); return(cpm); }
/// <summary> /// 搜索内容 /// </summary> /// <param name="ts"></param> /// <param name="s"></param> /// <param name="t"></param> /// <param name="ai"></param> /// <returns></returns> public async Task <ContentRepositoryModel> SearchContentAsync(string ts, int s, int t, bool ai = false) { var cs = NonTrackingAsyncEnum.Where(c => c.Title.Contains(ts) && c.IsEnable); var count = await cs.Count(); var selectcs = await cs.Skip(s).Take(t).ToArray(); if (ai) { await LoadFilesAsync(selectcs); } var cpm = new ContentRepositoryModel(count, s, t, selectcs); return(cpm); //return Json((await _contentRepository.GetAsync(c => c.Title.Contains(ts)&&c.IsEnable, preCount, preCount * page, autoin))); }
public async Task <ContentRepositoryModel> GetLikeContentAsync(EaUser user, int t, int s) { var cs = _likeRepository.Where(c => c.EaUserId == user.Id && c.IsEnable) .Skip(s) .Take(t) .Select(c => c.ContentId); //喜欢的内容页 var count = await cs.Count(); var lcs = await cs.ToList(); var datas = await NonTrackingAsyncEnum.Where(c => lcs.Contains(c.Id) && c.IsEnable).ToArray(); var cpm = new ContentRepositoryModel(count, s, t, datas); return(cpm); }
/// <summary> /// 获取商店 /// </summary> /// <param name="skip"></param> /// <param name="take"></param> /// <param name="autoin">是否自动装载</param> /// <returns></returns> public async Task <ShopRepositoryModel> GetShopsAsync(int skip, int take, bool autoin = false) { var sns = NonTrackingAsyncEnum.Where(s => s.IsEnable); var count = await sns.Count(); var datas = await sns.Skip(skip).Take(take).ToArray(); if (autoin) { await AutoFillAsync(datas); foreach (var item in datas) { await _shopItemRepository.AutoFillAsync(item.Items); } } return(new ShopRepositoryModel(count, skip, take, datas)); }