mirror of
https://github.com/sochix/TLSharp.git
synced 2025-12-06 08:02:00 +01:00
Make TLVector implement IList
This commit is contained in:
parent
d769dd3c2f
commit
659becfd51
|
|
@ -76,7 +76,7 @@ namespace TLSharp.Core
|
|||
await _sender.Send(invokewithLayer);
|
||||
await _sender.Receive(invokewithLayer);
|
||||
|
||||
dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.lists;
|
||||
dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.ToList();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -171,7 +171,7 @@ namespace TLSharp.Tests
|
|||
|
||||
var result = await client.GetContactsAsync();
|
||||
|
||||
var user = result.Users.lists
|
||||
var user = result.Users
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Phone == normalizedNumber);
|
||||
|
||||
|
|
@ -192,7 +192,7 @@ namespace TLSharp.Tests
|
|||
await client.ConnectAsync();
|
||||
|
||||
var dialogs = (TLDialogs) await client.GetUserDialogsAsync();
|
||||
var chat = dialogs.Chats.lists
|
||||
var chat = dialogs.Chats
|
||||
.OfType<TLChannel>()
|
||||
.FirstOrDefault(c => c.Title == "TestGroup");
|
||||
|
||||
|
|
@ -207,7 +207,7 @@ namespace TLSharp.Tests
|
|||
|
||||
var result = await client.GetContactsAsync();
|
||||
|
||||
var user = result.Users.lists
|
||||
var user = result.Users
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Phone == NumberToSendMessage);
|
||||
|
||||
|
|
@ -223,7 +223,7 @@ namespace TLSharp.Tests
|
|||
|
||||
var result = await client.GetContactsAsync();
|
||||
|
||||
var user = result.Users.lists
|
||||
var user = result.Users
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Phone == NumberToSendMessage);
|
||||
|
||||
|
|
@ -245,13 +245,13 @@ namespace TLSharp.Tests
|
|||
|
||||
var result = await client.GetContactsAsync();
|
||||
|
||||
var user = result.Users.lists
|
||||
var user = result.Users
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Phone == NumberToSendMessage);
|
||||
|
||||
var inputPeer = new TLInputPeerUser() { UserId = user.Id };
|
||||
var res = await client.SendRequestAsync<TLMessagesSlice>(new TLRequestGetHistory() { Peer = inputPeer });
|
||||
var document = res.Messages.lists
|
||||
var document = res.Messages
|
||||
.OfType<TLMessage>()
|
||||
.Where(m => m.Media != null)
|
||||
.Select(m => m.Media)
|
||||
|
|
@ -280,7 +280,7 @@ namespace TLSharp.Tests
|
|||
|
||||
var result = await client.GetContactsAsync();
|
||||
|
||||
var user = result.Users.lists
|
||||
var user = result.Users
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Id == 5880094);
|
||||
|
||||
|
|
@ -352,7 +352,7 @@ namespace TLSharp.Tests
|
|||
|
||||
var result = await client.SearchUserAsync(UserNameToSendMessage);
|
||||
|
||||
var user = result.Users.lists
|
||||
var user = result.Users
|
||||
.Where(x => x.GetType() == typeof(TLUser))
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Username == UserNameToSendMessage.TrimStart('@'));
|
||||
|
|
@ -361,7 +361,7 @@ namespace TLSharp.Tests
|
|||
{
|
||||
var contacts = await client.GetContactsAsync();
|
||||
|
||||
user = contacts.Users.lists
|
||||
user = contacts.Users
|
||||
.Where(x => x.GetType() == typeof(TLUser))
|
||||
.OfType<TLUser>()
|
||||
.FirstOrDefault(x => x.Username == UserNameToSendMessage.TrimStart('@'));
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
|
|
@ -7,10 +8,17 @@ using System.Threading.Tasks;
|
|||
|
||||
namespace TeleSharp.TL
|
||||
{
|
||||
public class TLVector<T> : TLObject
|
||||
public class TLVector<T> : TLObject, IList<T>
|
||||
{
|
||||
[TLObject(481674261)]
|
||||
public List<T> lists = new List<T>();
|
||||
private List<T> lists = new List<T>();
|
||||
|
||||
public T this[int index]
|
||||
{
|
||||
get { return lists[index]; }
|
||||
set { lists[index] = value; }
|
||||
}
|
||||
|
||||
public override int Constructor
|
||||
{
|
||||
get
|
||||
|
|
@ -19,6 +27,30 @@ namespace TeleSharp.TL
|
|||
}
|
||||
}
|
||||
|
||||
public int Count => lists.Count;
|
||||
|
||||
public bool IsReadOnly => ((IList<T>)lists).IsReadOnly;
|
||||
|
||||
public void Add(T item)
|
||||
{
|
||||
lists.Add(item);
|
||||
}
|
||||
|
||||
public void Clear()
|
||||
{
|
||||
lists.Clear();
|
||||
}
|
||||
|
||||
public bool Contains(T item)
|
||||
{
|
||||
return lists.Contains(item);
|
||||
}
|
||||
|
||||
public void CopyTo(T[] array, int arrayIndex)
|
||||
{
|
||||
lists.CopyTo(array, arrayIndex);
|
||||
}
|
||||
|
||||
public override void DeserializeBody(BinaryReader br)
|
||||
{
|
||||
int count = br.ReadInt32();
|
||||
|
|
@ -51,6 +83,31 @@ namespace TeleSharp.TL
|
|||
}
|
||||
}
|
||||
|
||||
public IEnumerator<T> GetEnumerator()
|
||||
{
|
||||
return lists.GetEnumerator();
|
||||
}
|
||||
|
||||
public int IndexOf(T item)
|
||||
{
|
||||
return lists.IndexOf(item);
|
||||
}
|
||||
|
||||
public void Insert(int index, T item)
|
||||
{
|
||||
lists.Insert(index, item);
|
||||
}
|
||||
|
||||
public bool Remove(T item)
|
||||
{
|
||||
return lists.Remove(item);
|
||||
}
|
||||
|
||||
public void RemoveAt(int index)
|
||||
{
|
||||
lists.RemoveAt(index);
|
||||
}
|
||||
|
||||
public override void SerializeBody(BinaryWriter bw)
|
||||
{
|
||||
bw.Write(Constructor);
|
||||
|
|
@ -86,5 +143,10 @@ namespace TeleSharp.TL
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
IEnumerator IEnumerable.GetEnumerator()
|
||||
{
|
||||
return lists.GetEnumerator();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue