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.Send(invokewithLayer);
|
||||||
await _sender.Receive(invokewithLayer);
|
await _sender.Receive(invokewithLayer);
|
||||||
|
|
||||||
dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.lists;
|
dcOptions = ((TLConfig)invokewithLayer.Response).DcOptions.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() { UserId = user.Id };
|
var inputPeer = new TLInputPeerUser() { UserId = 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,17 @@ 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 { return lists[index]; }
|
||||||
|
set { lists[index] = value; }
|
||||||
|
}
|
||||||
|
|
||||||
public override int Constructor
|
public override int Constructor
|
||||||
{
|
{
|
||||||
get
|
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)
|
public override void DeserializeBody(BinaryReader br)
|
||||||
{
|
{
|
||||||
int count = br.ReadInt32();
|
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)
|
public override void SerializeBody(BinaryWriter bw)
|
||||||
{
|
{
|
||||||
bw.Write(Constructor);
|
bw.Write(Constructor);
|
||||||
|
|
@ -86,5 +143,10 @@ namespace TeleSharp.TL
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
IEnumerator IEnumerable.GetEnumerator()
|
||||||
|
{
|
||||||
|
return lists.GetEnumerator();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue