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 <MsgDetailRepositoryModel> GetMsgDetailsAsync(EaUser user, uint mid, int s, int t, bool isdes = false) { var msgs = await NonTrackingAsyncEnum.SingleOrDefault(m => m.IsEnable && m.Id == mid && m.Creator == user.Id || m.Target == user.Id); if (msgs == null) { return(new MsgDetailRepositoryModel(false)); } var mds = _msgDetailRepository.Where(m => m.MsgId == msgs.Id && m.IsEnable); if (isdes) { mds = mds.OrderBy(m => m.Id); } else { mds = mds.OrderByDescending(m => m.Id); } var count = await mds.Count(); var datas = await mds.Skip(s).Take(t).ToArray(); await _msgDetailRepository.AutoFillAsync(datas); var mdpm = new MsgDetailRepositoryModel(count, s, t, datas); return(mdpm); }
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); }
public async Task <bool> DeleteMsgAsync(EaUser user, uint mid) { var msg = await NonTrackingAsyncEnum.SingleOrDefault(m => m.IsEnable && m.Id == mid && m.Creator == user.Id); if (msg == null) { return(false); } msg.IsEnable = false; DbSet.Update(msg); var res = DbContext.SaveChanges(); return(res > 0); }
/// <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)); }
public async Task <bool> SendMsgAsync(EaUser user, MsgSendModel model) { var msg = await NonTrackingAsyncEnum.SingleOrDefault(s => s.Id == model.Mid); if (msg == null) { return(false); } _msgDetailRepository.DbSet.Add(new MsgDetail() { Content = model.Text, MsgId = model.Mid, Cmds = model.Cmd }); var res = DbContext.SaveChanges(); return(res > 0); }
public async Task <bool> QuireNeedUpdateAsync(EaUser user, uint mid, uint lmid) { var msg = await NonTrackingAsyncEnum.SingleOrDefault(s => s.Id == mid); if (msg == null) { return(false); } var rlmid = await _msgDetailRepository.Where(md => md.MsgId == msg.Id) .OrderBy(md => md.Id) .LastOrDefault(); if (rlmid == null)//没有消息具体 { return(true); } return(rlmid.Id > lmid); }
public async Task <int> GetGroupContentCountAsync(uint gid) { return(await NonTrackingAsyncEnum.Count(c => c.ContentGroupId == gid && c.IsEnable)); }
/// <summary> /// 获取一个内容 /// </summary> /// <param name="cid"></param> /// <returns></returns> public async Task <Content> GetContentAsync(uint cid) { var content = await NonTrackingAsyncEnum.SingleOrDefault(c => c.Id == cid); return(content); }