Пример #1
0
        private async Task RefreshImChannels(bool force = false)
        {
            if (!force && ImChannels.Any())
            {
                return;
            }

            if (BusyStart != null)
            {
                BusyStart();
            }

            ImChannels.Clear();

            var members = await _slackClient.GetMembers();

            var ims = await _slackClient.GetImChannels();

            var imsVm = new List <SlackItem>();

            // todo move isDeleted flag to slack client
            foreach (var c in ims.Where(im => !im.is_user_deleted))
            {
                var m = members.FirstOrDefault(mem => mem.id == c.user)
                        ?? new Member {
                    real_name = c.user, profile = new Profile {
                        image_48 = "Assets/MediumGray.png", title = ""
                    }
                };
                imsVm.Add(new SlackItem(c.id, m.real_name, m.profile.title, m.real_name, null, m.profile.image_48));
            }

            foreach (var item in imsVm.OrderBy(c => c.Title))
            {
                ImChannels.Add(item);
            }

            if (BusyStop != null)
            {
                BusyStop();
            }
        }