Exemplo n.º 1
0
        private void Initialize(RecognizerInfo recognizerInfo)
        {
            try
            {
                _sapiRecognizer = new SapiRecognizer(SapiRecognizer.RecognizerType.InProc);
            }
            catch (COMException e)
            {
                throw RecognizerBase.ExceptionFromSapiCreateRecognizerError(e);
            }

            if (recognizerInfo != null)
            {
                ObjectToken token = recognizerInfo.GetObjectToken();
                if (token == null)
                {
                    throw new ArgumentException(SR.Get(SRID.NullParamIllegal), nameof(recognizerInfo));
                }
                try
                {
                    _sapiRecognizer.SetRecognizer(token.SAPIToken);
                }
                catch (COMException e)
                {
                    throw new ArgumentException(SR.Get(SRID.RecognizerNotFound), RecognizerBase.ExceptionFromSapiCreateRecognizerError(e));
                }
            }

            // For the SpeechRecognitionEngine we don't want recognition to start until the Recognize() or RecognizeAsync() methods are called.
            _sapiRecognizer.SetRecoState(SPRECOSTATE.SPRST_INACTIVE);
        }
Exemplo n.º 2
0
        public void Cache(ObjectToken objectToken)
        {
            if (objectToken == null)
            {
                throw new ArgumentNullException();
            }

            cache[objectToken.Number] = objectToken;
        }
Exemplo n.º 3
0
        public ObjectToken WriteObject(Stream stream, IToken token)
        {
            var reference = new IndirectReference(CurrentNumber++, 0);
            var obj       = new ObjectToken(stream.Position, reference, token);

            objectOffsets.Add(reference, obj.Position);
            TokenWriter.WriteToken(obj, stream);
            return(obj);
        }
Exemplo n.º 4
0
        private static ObjectToken WriteObject(IToken content, Stream stream, Dictionary <IndirectReference, long> objectOffsets, ref int number)
        {
            var reference = new IndirectReference(number++, 0);
            var obj       = new ObjectToken(stream.Position, reference, content);

            objectOffsets.Add(reference, obj.Position);
            // TODO: write
            TokenWriter.WriteToken(obj, stream);
            return(obj);
        }
Exemplo n.º 5
0
        public Transition(State from, string toName, ObjectToken data) : base(data)
        {
            this.Name = this["name"];
            this.From = from;

            if (string.IsNullOrWhiteSpace(toName))
            {
                throw new DiagramException("转换必须定义目标状态属性,请在流程图中给相关转换指定to属性");
            }
            this._toName = toName.Trim();
        }
Exemplo n.º 6
0
        private static ObjectToken WriteObject(IToken content, MemoryStream stream, Dictionary <IndirectReference, long> objectOffsets, ref int number)
        {
            var reference = new IndirectReference(number++, 0);
            var obj       = new ObjectToken(stream.Position, reference, content);

            objectOffsets.Add(reference, obj.Position);
            // TODO: write
            stream.Write(new byte[50], 0, 50);
            stream.WriteByte(Break);
            return(obj);
        }
        private void Authenticate <T, V>(T param, InvokeResult <V> result)
            where T : AuthenticateParam
            where V : AuthenticateUserRet
        {
            if (param is AuthenticateUserParam)
            {
                string connectstring_Or_Dbname = null;
                if (param.ObjectId != "*")
                {
                    var deployNode = GlobalManager.DeployNodes.SingleOrDefault(item => item.ApplicationIdFrom == param.ApplicationIdFrom && item.ApplicationIdTo == param.ApplicationIdTo && item.ObjectId == param.ObjectId &&
                                                                               item.RunMode.Value == param.RunMode);
                    if (deployNode != null)
                    {
                        connectstring_Or_Dbname = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(deployNode.ConnectString));
                    }
                }
                else
                {
                    connectstring_Or_Dbname = Global.oldConnectString;
                }
                var a = param.ToStringObjectDictionary();

                CertManager.LogonUser(param.Code, param.Password,
                                      new LogonSuccessDelegate <User>(delegate(LogonSuccessEventArgs <User> args)
                {
                    //查询
                    (result as InvokeResult <AuthenticateUserRet>).ret.isCCSeat = args.Instance.isCCSeat();
                    SPParam theSPParam = new ObjectToken {
                        ApplicationIdFrom = param.ApplicationIdFrom, ApplicationIdTo = param.ApplicationIdTo, ObjectType = GlobalManager.DIKey_00011_User, ObjectId = TypeConverter.ChangeString(args.Instance.UserId)
                    }.ToSPParam();
                    BuilderFactory.DefaultBulder(connectstring_Or_Dbname).ExecuteSPNoneQuery("SP_Cer_SignIn", theSPParam);
                    if (theSPParam.ErrorCode == 0)
                    {
                        result.ret.Token = TypeConverter.ChangeString(theSPParam["Token"]).ToGuid();

                        Redirect r = Global.redirects.FirstOrDefault(item => item.ApplicationIdFrom == param.ApplicationIdFrom && item.ApplicationIdTo == param.ApplicationIdTo && item.Tag == "SignIn");
                        if (r != null)
                        {
                            result.ret.RedirectUrl = r.Url.ReplaceWithKeys(theSPParam);
                        }
                    }
                    else
                    {
                        result.Success      = false;
                        result.ErrorMessage = theSPParam.ErrorMessage;
                    }
                }),
                                      new LogonFailureDelegate(delegate(LogonFailureEventArgs args)
                {
                    result.Success      = false;
                    result.ErrorMessage = args.ErrorMessage;
                }), connectstring_Or_Dbname);
            }
        }
Exemplo n.º 8
0
        public virtual IndirectReferenceToken WriteToken(IToken token, IndirectReferenceToken indirectReference)
        {
            if (!Initialized)
            {
                InitializePdf(DefaultVersion);
            }

            offsets.Add(indirectReference.Data, Stream.Position);
            var obj = new ObjectToken(Stream.Position, indirectReference.Data, token);

            TokenWriter.WriteToken(obj, Stream);
            return(indirectReference);
        }
Exemplo n.º 9
0
        internal VoiceInfo(ObjectToken token)
        {
            _registryKeyPath = token._sKeyId;
            _id          = token.Name;
            _description = token.Description;
            _name        = token.TokenName();
            SsmlParserHelpers.TryConvertAge(token.Age.ToLowerInvariant(), out _age);
            SsmlParserHelpers.TryConvertGender(token.Gender.ToLowerInvariant(), out _gender);
            string value;

            if (token.Attributes.TryGetString("Language", out value))
            {
                _culture = SapiAttributeParser.GetCultureInfoFromLanguageString(value);
            }
            string value2;

            if (token.TryGetString("Assembly", out value2))
            {
                _assemblyName = value2;
            }
            string value3;

            if (token.TryGetString("CLSID", out value3))
            {
                _clsid = value3;
            }
            if (token.Attributes != null)
            {
                Dictionary <string, string> dictionary = new Dictionary <string, string>();
                string[] valueNames = token.Attributes.GetValueNames();
                foreach (string text in valueNames)
                {
                    string value4;
                    if (token.Attributes.TryGetString(text, out value4))
                    {
                        dictionary.Add(text, value4);
                    }
                }
                _attributes = new ReadOnlyDictionary <string, string>(dictionary);
            }
            string value5;

            if (token.Attributes != null && token.Attributes.TryGetString("AudioFormats", out value5))
            {
                _audioFormats = new ReadOnlyCollection <SpeechAudioFormatInfo>(SapiAttributeParser.GetAudioFormatsFromString(value5));
            }
            else
            {
                _audioFormats = new ReadOnlyCollection <SpeechAudioFormatInfo>(new List <SpeechAudioFormatInfo>());
            }
        }
Exemplo n.º 10
0
        static Dictionary <string, ValueExpression> loadKeyValues(ObjectToken self, string name)
        {
            var values     = new Dictionary <string, ValueExpression>();
            var varConfigs = self[name];

            if (varConfigs != null && varConfigs != Token.Empty)
            {
                foreach (KeyValuePair <string, Token> pair in varConfigs as ObjectToken)
                {
                    values.Add(pair.Key, new ValueExpression(pair.Value));
                }
            }
            return(values);
        }
Exemplo n.º 11
0
        public void ShoulHandleNullArgument()
        {
            var call   = new CallToken(null);
            var group  = new GroupToken(null);
            var lambda = new LambdaToken(null);
            var obj    = new ObjectToken(null);
            var array  = new ArrayToken(null);

            Assert.NotNull(call.Args);
            Assert.NotNull(group.Tokens);
            Assert.NotNull(lambda.Parameters);
            Assert.NotNull(obj.Members);
            Assert.NotNull(array.Items);
        }
Exemplo n.º 12
0
        public virtual IndirectReferenceToken WriteToken(IToken token)
        {
            if (!Initialized)
            {
                InitializePdf(DefaultVersion);
            }

            var ir = ReserveObjectNumber();

            offsets.Add(ir.Data, Stream.Position);
            var obj = new ObjectToken(Stream.Position, ir.Data, token);

            TokenWriter.WriteToken(obj, Stream);
            return(ir);
        }
Exemplo n.º 13
0
        public void Cache(ObjectToken objectToken, bool force = false)
        {
            if (objectToken == null)
            {
                throw new ArgumentNullException();
            }

            // Don't cache incorrect locations.
            var crossReference = crossReferenceTable();

            if (!force && crossReference != null && crossReference.ObjectOffsets.TryGetValue(objectToken.Number, out var expected) &&
                objectToken.Position != expected)
            {
                return;
            }

            cache[objectToken.Number] = objectToken;
        }
Exemplo n.º 14
0
        private static void WriteObject(ObjectToken objectToken, Stream outputStream)
        {
            WriteLong(objectToken.Number.ObjectNumber, outputStream);
            WriteWhitespace(outputStream);

            WriteInt(objectToken.Number.Generation, outputStream);
            WriteWhitespace(outputStream);

            outputStream.Write(ObjStart, 0, ObjStart.Length);
            WriteLineBreak(outputStream);

            WriteToken(objectToken.Data, outputStream);

            WriteLineBreak(outputStream);
            outputStream.Write(ObjEnd, 0, ObjEnd.Length);

            WriteLineBreak(outputStream);
        }
Exemplo n.º 15
0
        public void Flush(decimal version, IndirectReferenceToken catalogReference)
        {
            if (catalogReference == null)
            {
                throw new ArgumentNullException(nameof(catalogReference));
            }

            WriteString($"%PDF-{version:0.0}", Stream);

            Stream.WriteText("%");
            Stream.WriteByte(169);
            Stream.WriteByte(205);
            Stream.WriteByte(196);
            Stream.WriteByte(210);
            Stream.WriteNewLine();

            var         offsets      = new Dictionary <IndirectReference, long>();
            ObjectToken catalogToken = null;

            foreach (var pair in tokenReferences)
            {
                var referenceToken = pair.Key;
                var token          = pair.Value;
                var offset         = Stream.Position;
                var obj            = new ObjectToken(offset, referenceToken.Data, token);

                TokenWriter.WriteToken(obj, Stream);

                offsets.Add(referenceToken.Data, offset);

                if (catalogToken == null && referenceToken == catalogReference)
                {
                    catalogToken = obj;
                }
            }

            if (catalogToken == null)
            {
                throw new Exception("Catalog object wasn't found");
            }

            // TODO: Support document information
            TokenWriter.WriteCrossReferenceTable(offsets, catalogToken, Stream, null);
        }
Exemplo n.º 16
0
        public static DiagramLine ExtractFromMyVariable(MyVariable variable)
        {
            ObjectToken body = (ObjectToken)variable.Value;
            List <ObjectPropertyToken> propertirs  = body.Value as List <ObjectPropertyToken>;
            DiagramNodeBuilder         nodeBuilder = new DiagramNodeBuilder(variable.Name);

            for (int i = 0; i < propertirs.Count; i++)
            {
                switch (propertirs[i].IdentifierToken.Value)
                {
                case  "width": nodeBuilder.BuildWidth((int)propertirs[i].Value.Value); break;

                case  "color": nodeBuilder.BuildDrawColor((string)propertirs[i].Value.Value); break;

                case  "arrow": nodeBuilder.BuildArrow((string)propertirs[i].Value.Value); break;
                }
            }
            return(nodeBuilder.Build());
        }
Exemplo n.º 17
0
 public IActionResult Login(
     [FromBody] UserDto userDto,
     [FromServices] AuthenticateManager authenticateManager,
     [FromServices] IUserServiceAuthenticate userService)
 {
     try
     {
         ObjectToken objectToken = authenticateManager.Authenticate(userDto, userService);
         if (objectToken.authenticated)
         {
             return(Ok(objectToken));
         }
         return(Unauthorized());
     }
     catch (Exception e)
     {
         return(BadRequest(e.Message));
     }
 }
Exemplo n.º 18
0
        private RecognizerInfo(ObjectToken token, CultureInfo culture)
        {
            // Retrieve the token name
            _id = token.Name;

            // Retrieve default display name
            _description = token.Description;

            // Store full object token id for internal use.
            // NOTE - SAPI returns the wrong hive for tokenenum tokens (always HKLM).
            // Do not rely on the path to be correct in all cases.
            _sapiObjectTokenId = token.Id;

            _name = token.TokenName();

            _culture = culture;

            // Enum all values and add to custom table
            Dictionary <string, string> attrs = new();

            foreach (string keyName in token.Attributes.GetValueNames())
            {
                string attributeValue;
                if (token.Attributes.TryGetString(keyName, out attributeValue))
                {
                    attrs[keyName] = attributeValue;
                }
            }
            _attributes = new ReadOnlyDictionary <string, string>(attrs);

            string audioFormats;

            if (token.Attributes.TryGetString("AudioFormats", out audioFormats))
            {
                _supportedAudioFormats = new ReadOnlyCollection <SpeechAudioFormatInfo>(SapiAttributeParser.GetAudioFormatsFromString(audioFormats));
            }
            else
            {
                _supportedAudioFormats = new ReadOnlyCollection <SpeechAudioFormatInfo>(new List <SpeechAudioFormatInfo>());
            }

            _objectToken = token;
        }
Exemplo n.º 19
0
        protected void LogOffUser <T, V>(T param, InvokeResult <V> result)
            where T : LogOffUserParam
            where V : LogOffUserRet
        {
            if (param is LogOffUserParam)
            {
                string connectstring_Or_Dbname = null;
                if (param.ObjectId != "*")
                {
                    var deployNode = GlobalManager.DeployNodes.SingleOrDefault(item => item.ApplicationIdFrom == param.ApplicationIdFrom && item.ApplicationIdTo == param.ApplicationIdTo && item.ObjectId == param.ObjectId &&
                                                                               item.RunMode.Value == param.RunMode);
                    if (deployNode != null)
                    {
                        connectstring_Or_Dbname = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(deployNode.ConnectString));
                    }
                }
                else
                {
                    connectstring_Or_Dbname = Global.oldConnectString;
                }

                SPParam theSPParam = new ObjectToken {
                    ApplicationIdFrom = param.ApplicationIdFrom, ApplicationIdTo = param.ApplicationIdTo, Token = param.Token
                }.ToSPParam();
                BuilderFactory.DefaultBulder(connectstring_Or_Dbname).ExecuteSPNoneQuery("SP_Cer_SignOut", theSPParam);
                if (theSPParam.ErrorCode == 0)
                {
                    //浏览器类
                    Redirect r = Global.redirects.FirstOrDefault(item => item.ApplicationIdFrom == param.ApplicationIdFrom && item.ApplicationIdTo == param.ApplicationIdTo && item.ObjectId == param.ObjectId && item.Tag == (param.Tag ?? "SignOut"));
                    if (r != null)
                    {
                        theSPParam.MixInWithDictionary(param.ToStringObjectDictionary());
                        result.ret.RedirectUrl = r.Url.ReplaceWithKeys(theSPParam);
                    }
                }
                else
                {
                    result.Success      = false;
                    result.ErrorMessage = theSPParam.ErrorMessage;
                }
            }
        }
Exemplo n.º 20
0
        internal static RecognizerInfo Create(ObjectToken token)
        {
            if (token.Attributes == null)
            {
                return(null);
            }
            string value;

            if (!token.Attributes.TryGetString("Language", out value))
            {
                return(null);
            }
            CultureInfo cultureInfoFromLanguageString = SapiAttributeParser.GetCultureInfoFromLanguageString(value);

            if (cultureInfoFromLanguageString != null)
            {
                return(new RecognizerInfo(token, cultureInfoFromLanguageString));
            }
            return(null);
        }
Exemplo n.º 21
0
        public static DiagramNode ExtractFromMyVariable(MyVariable variable)
        {
            ObjectToken body = (ObjectToken)variable.Value;
            List <ObjectPropertyToken> propertirs  = body.Value as List <ObjectPropertyToken>;
            DiagramNodeBuilder         nodeBuilder = new DiagramNodeBuilder(variable.Name);

            for (int i = 0; i < propertirs.Count; i++)
            {
                switch (propertirs[i].IdentifierToken.Value)
                {
                case  "type": nodeBuilder.BuildType((string)propertirs[i].Value.Value); break;

                case  "drawColor": nodeBuilder.BuildDrawColor((string)propertirs[i].Value.Value); break;

                case  "fillColor": nodeBuilder.BuildFillColor((string)propertirs[i].Value.Value); break;

                case  "units": nodeBuilder.BuildUnits((int)propertirs[i].Value.Value); break;
                }
            }
            return(nodeBuilder.Build());
        }
Exemplo n.º 22
0
 public bool TryGetCached(IndirectReference reference, out ObjectToken objectToken)
 {
     return(cache.TryGetValue(reference, out objectToken));
 }
Exemplo n.º 23
0
 public State(ObjectToken proto, Diagram ownDiagram) : this(proto["name"], proto, async() => ownDiagram)
 {
 }
Exemplo n.º 24
0
 public State(string name, ObjectToken proto, Diagram diagram) : this(name, proto, async() => diagram)
 {
 }
Exemplo n.º 25
0
 public Diagram(ObjectToken proto, State ownState) : base(proto)
 {
     this.OwnState = ownState;
 }
Exemplo n.º 26
0
 protected WorkflowConfig(string name, ObjectToken proto) : base(proto)
 {
     this.Name = name;
 }
Exemplo n.º 27
0
        /*
         * name: start
         * imports:
         *  userId:
         *      ./abc
         *      ../abc
         *
         */
        public static async Task <ObjectToken> ParseAsync(TextReader stream)
        {
            int deep = 0;
            IDictionary <string, Token> currentMap = null;
            List <Token> currentArr = null;
            var          root       = new ObjectToken(currentMap = new Dictionary <string, Token>());


            Stack <IDictionary <string, Token> > stack = new Stack <IDictionary <string, Token> >();
            var    lineAt    = 1;
            var    charAt    = 0;
            var    buffer    = new char[1024];
            var    readed    = 0;
            var    level     = 0;
            var    lastToken = '\n';
            var    sb        = new StringBuilder();
            string key       = null;
            string value     = null;
            string lastName  = null;

            while ((readed = await stream.ReadAsync(buffer, 0, 1024)) != 0)
            {
                for (int i = 0; i < readed; i++)
                {
                    char ch = buffer[i];
                    charAt++;
                    if (ch == '\t')
                    {
                        if (lastToken == '\n')
                        {
                            level++;
                            continue;
                        }
                        else
                        {
                            throw new DiagramException($"意外的\\t符号,row={lineAt},col={charAt}");
                        }
                    }
                    else if (ch == '#')
                    {
                        if (lastToken == '\n')
                        {
                            lastToken = ch;
                        }
                        else
                        {
                            throw new DiagramException($"意外的#符号,row={lineAt},col={charAt}");
                        }
                    }
                    else if (ch == ':')
                    {
                        lastName = key;
                        key      = sb.ToString().Trim();
                        if (currentArr != null)
                        {
                            throw new DiagramException($"意外的:符号,当前正在定义数组,无法指定属性,row={lineAt},col={charAt}");
                        }

                        sb        = new StringBuilder();
                        lastToken = ch;
                    }
                    else if (ch == '\n')
                    {
                        lineAt++; lastToken = '\n';
                        value = sb.ToString().Trim();
                        sb    = new StringBuilder();

                        if (level > deep)
                        {
                            if (level > deep + 1)
                            {
                                throw new DiagramException($"多余的tab,row={lineAt}");
                            }
                            deep++;
                            //将当前map压入堆栈
                            stack.Push(currentMap);
                            Token ct = null;
                            if (key == null)
                            {
                                var nextArr = new List <Token>();
                                ct = new ArrayToken(nextArr);
                                currentMap[lastName] = ct;
                                currentArr           = nextArr;
                                currentMap           = null;
                            }
                            else
                            {
                                var nextMap = new Dictionary <string, Token>();
                                ct = new ObjectToken(nextMap);
                                currentMap[lastName] = ct;
                                currentMap           = nextMap;
                                currentArr           = null;
                            }

                            lastName = null;
                        }
                        else if (deep == level)
                        {
                        }
                        else
                        {
                            for (var j = deep; j > level; j--)
                            {
                                currentMap = stack.Pop();
                            }

                            if (currentMap == null)
                            {
                                throw new DiagramException($"内部算法错误");
                            }
                        }
                        if (currentArr != null)
                        {
                            currentArr.Add(new StringToken(value));
                        }
                        else
                        {
                            if (currentMap.ContainsKey(key))
                            {
                                throw new DiagramException($"重复的属性定义${key},row={lineAt},col={charAt}");
                            }

                            currentMap.Add(key, new StringToken(value));
                        }

                        level = 0;
                    }
                    else
                    {
                        sb.Append(ch);
                    }
                }
            }
            return(root);
        }
Exemplo n.º 28
0
 public State(ObjectToken proto, Func <Task <Diagram> > diagramGetter) : this(proto["name"], proto, diagramGetter)
 {
 }
Exemplo n.º 29
0
 protected WorkflowConfig(ObjectToken proto) : this(proto["name"], proto)
 {
 }
Exemplo n.º 30
0
 public State(string name, ObjectToken proto, Func <Task <Diagram> > diagramGetter) : base(name, proto)
 {
     this._DiagramGetter = diagramGetter;
 }