public float ReadFloatFromList()
        {
            if (this.ReadToken() != XToken.Name)
            {
                throw new InvalidDataException();
            }

            string value = this.currentString;
            XToken token = this.ReadToken();

            if (token != XToken.Semicolon && token != XToken.Comma)
            {
                throw new InvalidDataException();
            }

            token = this.GetNextToken();

            if (token == XToken.Semicolon || token == XToken.Comma)
            {
                this.ReadToken();
            }

            if (this.useDouble)
            {
                return((float)double.Parse(value, CultureInfo.InvariantCulture));
            }
            else
            {
                return(float.Parse(value, CultureInfo.InvariantCulture));
            }
        }
예제 #2
0
 public void ReadAssert(XToken token)
 {
     if (this.FileReader.ReadToken() != token)
     {
         throw new InvalidDataException();
     }
 }
예제 #3
0
        public XmlResolver(string xml)
        {
            if (string.IsNullOrWhiteSpace(xml))
            {
                throw new ArgumentNullException(nameof(xml));
            }

            this.Token = XToken.Parse(xml);
        }
예제 #4
0
        public void ReadSeparator()
        {
            XToken token = this.FileReader.GetNextToken();

            if (token == XToken.Semicolon || token == XToken.Comma)
            {
                this.FileReader.ReadToken();
            }
        }
예제 #5
0
        public XmlResolver(XmlNodeList list)
        {
            if (list == null)
            {
                throw new ArgumentNullException(nameof(list));
            }

            this.Token = new XToken(list);
        }
예제 #6
0
        public XmlResolver(XmlNode node)
        {
            if (node == null)
            {
                throw new ArgumentNullException(nameof(node));
            }

            this.Token = new XToken(node);
        }
        public void ReadTemplateMembersPart()
        {
            XToken token = this.tokenReader.FileReader.GetNextToken();

            if (IsTemplateMembers(token))
            {
                this.ReadTemplateMembersList();
            }
        }
예제 #8
0
        public TokenStorage(IAccountStorage accountStorage)
        {
            AccountStorage = accountStorage;

            _account     = null;
            AccessToken  = null;
            RefreshToken = null;
            UserToken    = null;
            XToken       = null;
        }
예제 #9
0
        public static XToken[] ReadTokenArray(this IXFileReader reader, int count)
        {
            var array = new XToken[count];

            for (int i = 0; i < count; i++)
            {
                array[i] = reader.ReadToken();
            }

            return(array);
        }
        public XToken ReadTemplatePrimitiveType()
        {
            XToken token = this.tokenReader.FileReader.ReadToken();

            if (!IsTemplatePrimitiveType(token))
            {
                throw new InvalidDataException();
            }

            return(token);
        }
        public void ReadTemplateParts()
        {
            this.ReadTemplateMembersPart();

            XToken token = this.tokenReader.FileReader.GetNextToken();

            if (token == XToken.OpenedBracket)
            {
                this.tokenReader.ReadAssert(XToken.OpenedBracket);
                this.ReadTemplateOptionInfo();
                this.tokenReader.ReadAssert(XToken.ClosedBracket);
            }
        }
        public Guid ReadTemplateOptionalClassId()
        {
            XToken token = this.tokenReader.FileReader.GetNextToken();

            if (token == XToken.Guid)
            {
                return(this.tokenReader.ReadGuid());
            }
            else
            {
                return(Guid.Empty);
            }
        }
        public string ReadTemplateOptionalName()
        {
            XToken token = this.tokenReader.FileReader.GetNextToken();

            if (token == XToken.Name)
            {
                return(this.tokenReader.ReadName());
            }
            else
            {
                return(string.Empty);
            }
        }
예제 #14
0
        public string ReadString()
        {
            this.ReadAssert(XToken.String);
            string str = this.FileReader.ReadString();

            XToken token = this.FileReader.ReadToken();

            if (token != XToken.Semicolon && token != XToken.Comma)
            {
                throw new InvalidDataException();
            }

            return(str);
        }
        public Tuple <XToken, string> ReadTemplateArrayDataType()
        {
            XToken token     = this.tokenReader.FileReader.GetNextToken();
            string dataName  = string.Empty;
            XToken dataToken = XToken.None;

            if (token == XToken.Name)
            {
                dataName = this.ReadTemplateName();
            }
            else
            {
                dataToken = this.ReadTemplatePrimitiveType();
            }

            return(Tuple.Create(dataToken, dataName));
        }
예제 #16
0
        public XToken GetNextToken()
        {
            if (this.isNextTokenRead)
            {
                return(this.token);
            }

            try
            {
                XToken token = (XToken)this.reader.ReadInt16();
                this.token           = token;
                this.isNextTokenRead = true;
                return(token);
            }
            catch (EndOfStreamException)
            {
                return((XToken)(-1));
            }
        }
        public XToken ReadToken()
        {
            if (this.isNextTokenRead)
            {
                this.isNextTokenRead = false;
                return(this.token);
            }

            try
            {
                XToken token = this.ParseToken();
                this.token = token;
                return(token);
            }
            catch (EndOfStreamException)
            {
                return((XToken)(-1));
            }
        }
예제 #18
0
        private List <int> ReadIntegerList()
        {
            XToken token = this.ReadToken();

            if (token != XToken.IntegerList && token != XToken.None)
            {
                throw new InvalidDataException();
            }

            int count = this.reader.ReadInt32();
            var list  = new List <int>(count);

            for (int i = 0; i < count; i++)
            {
                list.Add(this.reader.ReadInt32());
            }

            return(list);
        }
        public void AssembleToken()
        {
            string      content     = TestData["XTokenValid.json"];
            XASResponse xasResponse = NewtonsoftJsonSerializer.Default
                                      .Deserialize <XASResponse>(content);
            XToken token = new XToken(xasResponse);

            Assert.AreEqual(token.Issued, new DateTime(2014, 9, 20, 18, 41, 8).AddTicks(602402));
            Assert.AreEqual(token.Expires, new DateTime(2099, 9, 21, 18, 41, 8).AddTicks(602402));
            Assert.AreEqual(token.Jwt, "eyWTF/bdf+sd34ji234kasdf34asfs==");
            Assert.IsNotNull(token.UserInformation);

            Assert.AreEqual(token.UserInformation.AgeGroup, "Adult");
            Assert.AreEqual(token.UserInformation.Gamertag, "xboxWebapiGamertag");
            Assert.AreEqual(token.UserInformation.Privileges, "191 193 196 199 200 201");
            Assert.AreEqual(token.UserInformation.Userhash, "162358993400365622");
            Assert.AreEqual(token.UserInformation.UserSettingsRestrictions, "123");
            Assert.AreEqual(token.UserInformation.XboxUserId, 234568092345979);
        }
        public Tuple <int, string> ReadTemplateDimensionSize()
        {
            XToken token = this.tokenReader.FileReader.GetNextToken();
            int    size  = 0;
            string name  = string.Empty;

            if (token == XToken.Integer)
            {
                size = this.tokenReader.ReadInteger();
            }
            else if (token == XToken.Name)
            {
                name = this.tokenReader.ReadName();
            }
            else
            {
                throw new InvalidDataException();
            }

            return(Tuple.Create(size, name));
        }
        public static bool IsTemplatePrimitiveType(XToken token)
        {
            switch (token)
            {
            case XToken.UnsignedWord:
            case XToken.UnsignedDword:
            case XToken.Float:
            case XToken.Double:
            case XToken.SignedChar:
            case XToken.UnsignedChar:
            case XToken.SignedWord:
            case XToken.SignedDword:
            case XToken.LPStr:
            case XToken.Unicode:
            case XToken.CString:
            case XToken.String:
                return(true);
            }

            return(false);
        }
        public void GetFamilyAccount_Request()
        {
            //Assemble
            const ulong  xuid    = 1234567890;
            IRestRequest request = null;

            var parameters = new List <Parameter>();

            var mock = new Mock <IRestSharpEx>();

            mock.Setup(r => r.DefaultParameters).Returns(parameters);

            mock.SetupGenericExecute <AccountResponse>()
            .Callback((IRestRequest req) =>
            {
                request = req;
            })
            .AddGenericExecuteResponse(new RestResponse <AccountResponse>());

            var token = new XToken
            {
                Jwt = string.Empty
            };

            var configMock = new Mock <IXblConfiguration>();

            configMock.Setup(c => c.Userhash).Returns(string.Empty);
            configMock.Setup(c => c.xToken).Returns(token);

            var sut = new AccountService(configMock.Object, mock.Object);

            //Act
            sut.GetFamilyAccount(xuid);

            //Assert
            Assert.IsNotNull(request);
            Assert.IsNotNull(request.Resource);
            Assert.IsNotEmpty(request.Resource);
            Assert.IsTrue(request.Resource.Contains(xuid.ToString()));
        }
예제 #23
0
        public void GetAchievementGameprogress_Request()
        {
            //Assemble
            const ulong  xuid    = 1234567890;
            const ulong  titleId = 10987654321;
            IRestRequest request = null;

            var parameters = new List <Parameter>();

            var mock = new Mock <IRestSharpEx>();

            mock.Setup(r => r.DefaultParameters).Returns(parameters);

            mock.Setup(r => r.Execute(It.IsAny <RestRequestEx>()))
            .Callback((IRestRequest req) => { request = req; })
            .Returns(new RestResponse());

            var token = new XToken
            {
                Jwt = string.Empty
            };

            var configMock = new Mock <IXblConfiguration>();

            configMock.Setup(c => c.Userhash).Returns(string.Empty);
            configMock.Setup(c => c.xToken).Returns(token);

            var sut = new AchievementService(configMock.Object, mock.Object);

            //Act
            sut.GetAchievementGameprogress(xuid, titleId);

            //Assert
            Assert.IsNotNull(request);
            Assert.IsNotNull(request.Resource);
            Assert.IsNotEmpty(request.Resource);
            Assert.IsTrue(request.Resource.Contains(xuid.ToString()));
        }
        public uint ReadUnsignedIntegerFromList()
        {
            if (this.ReadToken() != XToken.Name)
            {
                throw new InvalidDataException();
            }

            string value = this.currentString;
            XToken token = this.ReadToken();

            if (token != XToken.Semicolon && token != XToken.Comma)
            {
                throw new InvalidDataException();
            }

            token = this.GetNextToken();

            if (token == XToken.Semicolon || token == XToken.Comma)
            {
                this.ReadToken();
            }

            return(uint.Parse(value, CultureInfo.InvariantCulture));
        }
예제 #25
0
        public string ReadNullTerminatedString()
        {
            byte b3 = this.reader.ReadByte();
            byte b2 = this.reader.ReadByte();
            byte b1;

            var c = new List <byte>();

            while ((b1 = this.reader.ReadByte()) != 0 || b2 > 63)
            {
                c.Add(b3);

                b3 = b2;
                b2 = b1;
            }

            c.Add(b3);
            string s = Encoding.ASCII.GetString(c.ToArray());

            this.token           = (XToken)b2;
            this.isNextTokenRead = true;

            return(s);
        }