Пример #1
0
 public void StartReceiveCore([NotNull] ListInfo info, TwitterAccount account = null)
 {
     lock (_listReceiverReferenceCount)
     {
         if (_listReceiverReferenceCount.ContainsKey(info))
         {
             _listReceiverReferenceCount[info]++;
         }
         else
         {
             _listReceiverReferenceCount.Add(info, 1);
             var lparam = info.ToParameter();
             _receiverDictionary.Add(info, lparam);
             lock (_listReceivers)
             {
                 var  accessor = (IApiAccessor)account?.CreateAccessor() ?? new RandomAccountAccessor();
                 long id       = account?.Id ?? 0;
                 if (!_listReceivers.TryGetValue(id, out var receiver))
                 {
                     receiver = new ListReceiver(accessor, StatusInbox.Enqueue, BackstageModel.NotifyException);
                     _listReceivers.Add(id, receiver);
                     ReceiveManager.ReceiveEngine.RegisterReceiver(receiver);
                 }
                 receiver.AddList(lparam);
             }
         }
     }
 }
Пример #2
0
 public static async Task <DatabaseList> GetOrReceiveListDescription(IApiAccessor accessor, ListInfo listInfo)
 {
     return(await Task.Run(async() =>
     {
         var userId = UserProxy.GetId(listInfo.OwnerScreenName);
         var dbl = await Database.ListCrud.GetAsync(userId, listInfo.Slug).ConfigureAwait(false);
         if (dbl != null)
         {
             return dbl;
         }
         var twl = await accessor.ShowListAsync(listInfo.ToParameter(), CancellationToken.None);
         return await SetListDescription(twl.Result).ConfigureAwait(false);
     }).ConfigureAwait(false));
 }