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
3ba3ea53fd
commit
e708464857
|
|
@ -76,7 +76,7 @@ namespace TLSharp.Core
|
||||||
await _sender.Send(invokewithLayer);
|
await _sender.Send(invokewithLayer);
|
||||||
await _sender.Receive(invokewithLayer);
|
await _sender.Receive(invokewithLayer);
|
||||||
|
|
||||||
dcOptions = ((TLConfig)invokewithLayer.Response).dc_options.lists;
|
dcOptions = ((TLConfig)invokewithLayer.Response).dc_options.ToList();
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -171,7 +171,7 @@ namespace TLSharp.Tests
|
||||||
|
|
||||||
var result = await client.GetContactsAsync();
|
var result = await client.GetContactsAsync();
|
||||||
|
|
||||||
var user = result.users.lists
|
var user = result.users
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.phone == normalizedNumber);
|
.FirstOrDefault(x => x.phone == normalizedNumber);
|
||||||
|
|
||||||
|
|
@ -192,7 +192,7 @@ namespace TLSharp.Tests
|
||||||
await client.ConnectAsync();
|
await client.ConnectAsync();
|
||||||
|
|
||||||
var dialogs = (TLDialogs) await client.GetUserDialogsAsync();
|
var dialogs = (TLDialogs) await client.GetUserDialogsAsync();
|
||||||
var chat = dialogs.chats.lists
|
var chat = dialogs.chats
|
||||||
.OfType<TLChannel>()
|
.OfType<TLChannel>()
|
||||||
.FirstOrDefault(c => c.title == "TestGroup");
|
.FirstOrDefault(c => c.title == "TestGroup");
|
||||||
|
|
||||||
|
|
@ -207,7 +207,7 @@ namespace TLSharp.Tests
|
||||||
|
|
||||||
var result = await client.GetContactsAsync();
|
var result = await client.GetContactsAsync();
|
||||||
|
|
||||||
var user = result.users.lists
|
var user = result.users
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.phone == NumberToSendMessage);
|
.FirstOrDefault(x => x.phone == NumberToSendMessage);
|
||||||
|
|
||||||
|
|
@ -223,7 +223,7 @@ namespace TLSharp.Tests
|
||||||
|
|
||||||
var result = await client.GetContactsAsync();
|
var result = await client.GetContactsAsync();
|
||||||
|
|
||||||
var user = result.users.lists
|
var user = result.users
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.phone == NumberToSendMessage);
|
.FirstOrDefault(x => x.phone == NumberToSendMessage);
|
||||||
|
|
||||||
|
|
@ -245,13 +245,13 @@ namespace TLSharp.Tests
|
||||||
|
|
||||||
var result = await client.GetContactsAsync();
|
var result = await client.GetContactsAsync();
|
||||||
|
|
||||||
var user = result.users.lists
|
var user = result.users
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.phone == NumberToSendMessage);
|
.FirstOrDefault(x => x.phone == NumberToSendMessage);
|
||||||
|
|
||||||
var inputPeer = new TLInputPeerUser() { user_id = user.id };
|
var inputPeer = new TLInputPeerUser() { user_id = user.id };
|
||||||
var res = await client.SendRequestAsync<TLMessagesSlice>(new TLRequestGetHistory() { peer = inputPeer });
|
var res = await client.SendRequestAsync<TLMessagesSlice>(new TLRequestGetHistory() { peer = inputPeer });
|
||||||
var document = res.messages.lists
|
var document = res.messages
|
||||||
.OfType<TLMessage>()
|
.OfType<TLMessage>()
|
||||||
.Where(m => m.media != null)
|
.Where(m => m.media != null)
|
||||||
.Select(m => m.media)
|
.Select(m => m.media)
|
||||||
|
|
@ -280,7 +280,7 @@ namespace TLSharp.Tests
|
||||||
|
|
||||||
var result = await client.GetContactsAsync();
|
var result = await client.GetContactsAsync();
|
||||||
|
|
||||||
var user = result.users.lists
|
var user = result.users
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.id == 5880094);
|
.FirstOrDefault(x => x.id == 5880094);
|
||||||
|
|
||||||
|
|
@ -352,7 +352,7 @@ namespace TLSharp.Tests
|
||||||
|
|
||||||
var result = await client.SearchUserAsync(UserNameToSendMessage);
|
var result = await client.SearchUserAsync(UserNameToSendMessage);
|
||||||
|
|
||||||
var user = result.users.lists
|
var user = result.users
|
||||||
.Where(x => x.GetType() == typeof(TLUser))
|
.Where(x => x.GetType() == typeof(TLUser))
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.username == UserNameToSendMessage.TrimStart('@'));
|
.FirstOrDefault(x => x.username == UserNameToSendMessage.TrimStart('@'));
|
||||||
|
|
@ -361,7 +361,7 @@ namespace TLSharp.Tests
|
||||||
{
|
{
|
||||||
var contacts = await client.GetContactsAsync();
|
var contacts = await client.GetContactsAsync();
|
||||||
|
|
||||||
user = contacts.users.lists
|
user = contacts.users
|
||||||
.Where(x => x.GetType() == typeof(TLUser))
|
.Where(x => x.GetType() == typeof(TLUser))
|
||||||
.OfType<TLUser>()
|
.OfType<TLUser>()
|
||||||
.FirstOrDefault(x => x.username == UserNameToSendMessage.TrimStart('@'));
|
.FirstOrDefault(x => x.username == UserNameToSendMessage.TrimStart('@'));
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using System;
|
using System;
|
||||||
|
using System.Collections;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
|
|
@ -7,10 +8,13 @@ using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace TeleSharp.TL
|
namespace TeleSharp.TL
|
||||||
{
|
{
|
||||||
public class TLVector<T> : TLObject
|
public class TLVector<T> : TLObject, IList<T>
|
||||||
{
|
{
|
||||||
[TLObject(481674261)]
|
[TLObject(481674261)]
|
||||||
public List<T> lists = new List<T>();
|
private List<T> lists = new List<T>();
|
||||||
|
|
||||||
|
public T this[int index] { get => ((IList<T>)lists)[index]; set => ((IList<T>)lists)[index] = value; }
|
||||||
|
|
||||||
public override int Constructor
|
public override int Constructor
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
|
|
@ -19,6 +23,30 @@ namespace TeleSharp.TL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public int Count => ((IList<T>)lists).Count;
|
||||||
|
|
||||||
|
public bool IsReadOnly => ((IList<T>)lists).IsReadOnly;
|
||||||
|
|
||||||
|
public void Add(T item)
|
||||||
|
{
|
||||||
|
((IList<T>)lists).Add(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear()
|
||||||
|
{
|
||||||
|
((IList<T>)lists).Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Contains(T item)
|
||||||
|
{
|
||||||
|
return ((IList<T>)lists).Contains(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CopyTo(T[] array, int arrayIndex)
|
||||||
|
{
|
||||||
|
((IList<T>)lists).CopyTo(array, arrayIndex);
|
||||||
|
}
|
||||||
|
|
||||||
public override void DeserializeBody(BinaryReader br)
|
public override void DeserializeBody(BinaryReader br)
|
||||||
{
|
{
|
||||||
int count = br.ReadInt32();
|
int count = br.ReadInt32();
|
||||||
|
|
@ -51,6 +79,31 @@ namespace TeleSharp.TL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IEnumerator<T> GetEnumerator()
|
||||||
|
{
|
||||||
|
return ((IList<T>)lists).GetEnumerator();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int IndexOf(T item)
|
||||||
|
{
|
||||||
|
return ((IList<T>)lists).IndexOf(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Insert(int index, T item)
|
||||||
|
{
|
||||||
|
((IList<T>)lists).Insert(index, item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool Remove(T item)
|
||||||
|
{
|
||||||
|
return ((IList<T>)lists).Remove(item);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RemoveAt(int index)
|
||||||
|
{
|
||||||
|
((IList<T>)lists).RemoveAt(index);
|
||||||
|
}
|
||||||
|
|
||||||
public override void SerializeBody(BinaryWriter bw)
|
public override void SerializeBody(BinaryWriter bw)
|
||||||
{
|
{
|
||||||
bw.Write(Constructor);
|
bw.Write(Constructor);
|
||||||
|
|
@ -86,5 +139,10 @@ namespace TeleSharp.TL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator()
|
||||||
|
{
|
||||||
|
return ((IList<T>)lists).GetEnumerator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue