TLSharp.Core.Session.FromBytes C# (CSharp) Method

FromBytes() public static method

public static FromBytes ( byte buffer, ISessionStore store, string sessionUserId ) : Session
buffer byte
store ISessionStore
sessionUserId string
return Session
        public static Session FromBytes(byte[] buffer, ISessionStore store, string sessionUserId)
        {
            using (var stream = new MemoryStream(buffer))
            using (var reader = new BinaryReader(stream))
            {
                var id = reader.ReadUInt64();
                var sequence = reader.ReadInt32();
                var salt = reader.ReadUInt64();
                var lastMessageId = reader.ReadInt64();
                var timeOffset = reader.ReadInt32();
                var serverAddress = Serializers.String.read(reader);
                var port = reader.ReadInt32();

                var isAuthExsist = reader.ReadInt32() == 1;
                int sessionExpires = 0;
                TLUser TLUser = null;
                if (isAuthExsist)
                {
                    sessionExpires = reader.ReadInt32();
                    TLUser = (TLUser)ObjectUtils.DeserializeObject(reader);
                }

                var authData = Serializers.Bytes.read(reader);

                return new Session(store)
                {
                    AuthKey = new AuthKey(authData),
                    Id = id,
                    Salt = salt,
                    Sequence = sequence,
                    LastMessageId = lastMessageId,
                    TimeOffset = timeOffset,
                    SessionExpires = sessionExpires,
                    TLUser = TLUser,
                    SessionUserId = sessionUserId,
                    ServerAddress = serverAddress,
                    Port = port
                };
            }
        }

Usage Example

Example #1
0
        public Session Load(string sessionUserId, string SessionPath = null)
        {
            string Path = string.Empty;

            if (SessionPath != null)
            {
                Path += SessionPath;
            }

            Path += sessionUserId;

            var sessionFileName = $"{Path}.dat";

            if (!File.Exists(sessionFileName))
            {
                return(null);
            }

            using (var stream = new FileStream(sessionFileName, FileMode.Open))
            {
                var buffer = new byte[2048];
                stream.Read(buffer, 0, 2048);

                return(Session.FromBytes(buffer, this, sessionUserId, SessionPath));
            }
        }
All Usage Examples Of TLSharp.Core.Session::FromBytes