コード例 #1
0
        public string Generate(int id)
        {
            var user = _users.GetWithKeys(id);

            if (user is null)
            {
                throw new ApiException(HttpStatusCode.NotFound, "User not found.");
            }

            var rand = new Random();
            var hash = new string(Enumerable.Repeat(_alphabet, _size)
                                  .Select(s => s[rand.Next(s.Length)])
                                  .ToArray());

            var controlToken = new ControlToken
            {
                Token              = hash,
                SolicitationDate   = DateTime.Now,
                AuthenticationDate = null,
                Client             = user.Name,
            };

            _uow.Begin();
            controlToken = _uow.ControlToken.Insert(controlToken);
            _uow.Commit();

            return(hash);
        }
コード例 #2
0
ファイル: MessageTexture.cs プロジェクト: nanase/sitrine
            public static bool Create(out ControlToken token, string source, ref int index)
            {
                char operate;
                int parameter = 0;

                token = null;

                Match m = ControlToken.tokenizer.Match(source, index);

                if (!m.Success ||
                    m.Groups[2].Success && !int.TryParse(m.Groups[2].Value, out parameter))
                    return false;

                operate = m.Groups[1].Value[0];

                token = new ControlToken(operate, parameter);
                index += m.Length - 1;

                return true;
            }
コード例 #3
0
ファイル: MessageTexture.cs プロジェクト: nanase/sitrine
        private bool Parse(string text)
        {
            ControlToken ctoken;
            for (int i = 0, j = text.Length; i < j; i++)
            {
                if (text[i] == '\\')
                {
                    if (!ControlToken.Create(out ctoken, text, ref i))
                        return false;

                    this.tokenQueue.Enqueue(ctoken);
                }
                else
                {
                    this.tokenQueue.Enqueue(text[i]);
                }
            }

            return true;
        }
コード例 #4
0
        public void Lexer_Tokenize_SimpleQuery_ReturnsExpectedTokens()
        {
            var qualifiedQuery = @"mutation {
                                  createHero(  name: ""John"", age: 23  ) {
                                    name
                                    # Queries can have comments!
                                    friends {
                                      name
                                    }
                                  }
                                }";

            var source   = new SourceText(qualifiedQuery.AsMemory());
            var tokenSet = Lexer.Tokenize(source);

            // first two tokens should be control parens
            HelperAsserts.AssertTokenChain(
                tokenSet,
                new NameToken("mutation".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.CurlyBraceLeft, SourceLocation.None),
                new NameToken("createHero".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.ParenLeft, SourceLocation.None),
                new NameToken("name".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.Colon, SourceLocation.None),
                new StringToken("\"John\"".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.Comma, SourceLocation.None),
                new NameToken("age".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.Colon, SourceLocation.None),
                NumberToken.FromSourceText("23".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.ParenRight, SourceLocation.None),
                ControlToken.FromType(TokenType.CurlyBraceLeft, SourceLocation.None),
                new NameToken("name".AsMemory(), SourceLocation.None),
                new CommentToken("# Queries can have comments!".AsMemory(), SourceLocation.None),
                new NameToken("friends".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.CurlyBraceLeft, SourceLocation.None),
                new NameToken("name".AsMemory(), SourceLocation.None),
                ControlToken.FromType(TokenType.CurlyBraceRight, SourceLocation.None),
                ControlToken.FromType(TokenType.CurlyBraceRight, SourceLocation.None),
                ControlToken.FromType(TokenType.CurlyBraceRight, SourceLocation.None),
                EndOfFileToken.Instance);
        }
コード例 #5
0
ファイル: MessageTexture.cs プロジェクト: nanase/sitrine
        private void Control(ControlToken token, ref int i)
        {
            switch (token.Operate)
            {
                case '\\':
                    this.updated = true;
                    SizeF charSize = this.renderer.DrawChars("\\", this.charPosition);
                    charSize.Height = 0.0f;
                    this.charPosition = PointF.Add(this.charPosition, charSize);
                    break;

                case 'c':
                    if (this.renderer.Options.Brushes.Length <= token.Parameter)
                        Trace.TraceWarning("Out of brush index: {0}", token.Parameter);
                    else
                        this.renderer.BrushIndex = token.Parameter;

                    break;

                default:
                    break;
            }
        }
コード例 #6
0
ファイル: MessageTexture.cs プロジェクト: nanase/sitrine
            public static bool Create(out ControlToken token, string source, ref int index)
            {
                char operate;
                int parameter = 0;

                token = null;

                Match m = ControlToken.tokenizer.Match(source, index);

                if (!m.Success ||
                    m.Groups[2].Success && !int.TryParse(m.Groups[2].Value, out parameter))
                    return false;

                operate = m.Groups[1].Value[0];

                token = new ControlToken(operate, parameter);
                index += m.Length - 1;

                return true;
            }
コード例 #7
0
ファイル: MessageTexture.cs プロジェクト: nanase/sitrine
        private void Control(ControlToken token, ref int i)
        {
            switch (token.Operate)
            {
                case '\\':
                    this.updated = true;
                    SizeF charSize = this.renderer.DrawChars("\\", this.charPosition);
                    charSize.Height = 0.0f;
                    this.charPosition = PointF.Add(this.charPosition, charSize);
                    break;

                case 'c':
                    if (this.renderer.Options.Brushes.Length <= token.Parameter)
                        Trace.TraceWarning("Out of brush index: {0}", token.Parameter);
                    else
                        this.renderer.BrushIndex = token.Parameter;

                    break;

                default:
                    break;
            }
        }
コード例 #8
0
 public ControlToken LoadNavigation(ControlToken enterprise, Expression <Func <Enterprise, object> > expression)
 {
     throw new NotImplementedException();
 }
コード例 #9
0
 public ControlToken Remove(ControlToken entity)
 {
     return(_baseRepository.Remove(entity));
 }
コード例 #10
0
 public ControlToken LoadNavigation(ControlToken enterprise, Expression <Func <ControlToken, object> > expression)
 {
     return(_baseRepository.LoadNavigation(enterprise, expression));
 }
コード例 #11
0
 public ControlToken LoadCollection(ControlToken enterprise, string collectionPropName)
 {
     return(_baseRepository.LoadCollection(enterprise, collectionPropName));
 }
コード例 #12
0
 public ControlToken Insert(ControlToken entity)
 {
     return(_baseRepository.Insert(entity));
 }
コード例 #13
0
 protected ASTComputationBase(ControlToken ctok)
 {
     controlToken = ctok;
 }