示例#1
0
        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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }
示例#4
0
        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);
        }
示例#6
0
        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);
        }
示例#10
0
        /// <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));
        }
示例#11
0
        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);
        }
示例#12
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);
        }
示例#13
0
 public async Task <int> GetGroupContentCountAsync(uint gid)
 {
     return(await NonTrackingAsyncEnum.Count(c => c.ContentGroupId == gid && c.IsEnable));
 }
示例#14
0
        /// <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);
        }