示例#1
0
        public async Task <IEnumerable <PinData> > GetPins(IMessageChannel channel)
        {
            using (var db = data.GetContext()) {
                var pinIdsTask = db.GetPins(channel.Id);
                var pinsTask   = channel.GetPinnedMessagesAsync();
                await Task.WhenAll(pinIdsTask, pinsTask);

                var pinIds = pinIdsTask.Result;
                return(pinsTask.Result.OfType <IUserMessage>().Select(x => new PinData(x, pinIds.Contains(x.Id))));
            }
        }
示例#2
0
        public async Task Refresh(IMessageChannel channel)
        {
            var pinsTask = channel.GetPinnedMessagesAsync();

            using (var db = data.GetContext()) {
                var superPinsTask = db.GetPins(channel.Id);
                await Task.WhenAll(pinsTask, superPinsTask);

                var superPins = superPinsTask.Result;
                await Repin(pinsTask.Result.OfType <IUserMessage>().Where(x => superPins.Contains(x.Id)));
            }
        }