Beispiel #1
0
 public async Task <Models.Chat> GetChatAsync(string firstAddress, string secondAddress, Func <IQueryable <Models.Chat>, IQueryable <Models.Chat> > eagerLoading = null)
 {
     return((await ChatUsers
             .Include(cu => cu.Chat)
             .Where(cu => cu.Address == firstAddress &&
                    ChatUsers.Any(cuSecond => cu.ChatId == cuSecond.ChatId && cuSecond.Address == secondAddress)
                    )
             .FirstOrDefaultAsync(cu => !cu.Chat.IsGroup))?.Chat);
 }
Beispiel #2
0
        private void GetOnlineListCallback(ResultInfo <IEnumerable <User> > res)
        {
            Observable.Start(() =>
            {
                foreach (var item in res.RData)
                {
                    if (!ChatUsers.Any(o => o.User.Name.Equals(item.Name)))
                    {
                        ChatUsers.Add(new ChatUser()
                        {
                            User = item
                        });
                        Loginer.CurrCC.DownloadAvatar(item.Id);
                    }
                }

                var users = this.ChatUsers.Where(o => !res.RData.Any(x => x.Id == o.User.Id)).ToList();
                foreach (var item in users)
                {
                    this.RemoveUser(item);
                }
            }, RxApp.MainThreadScheduler);
        }