コード例 #1
0
        public virtual string[] getBotPhrase(Pkey pKey, string[] flags, string[] flagsNot)
        {
            //  media media = new media();
            string[] phrases = null;
            var      key     = Enum.GetName(typeof(Pkey), pKey).ToLower();

            try
            {
                //improvse runtime
                if (flags.Length + flagsNot.Length > 0)
                {
                    phrases = (from t in DB.botphrase
                               where t.Pkey.ToLower() == key && flags.All(x => t.Flags.Contains(x)) && flagsNot.All(x => !t.Flags.Contains(x))
                               select t.Text).ToArray();
                }

                if (phrases == null)
                {
                    ObjectCache cache      = MemoryCache.Default;
                    var         cachedItem = cache.Get("getBotPhrase");
                    if (cachedItem == null)
                    {
                        //phrases = (from t in DB.botphrase
                        //           where t.Pkey.ToLower() == key && (t.Flags == null || !t.Flags.Contains("text"));
                        //                 select t.Text).ToArray();
                        var exp = new CacheItemPolicy();
                        exp.SlidingExpiration = (new TimeSpan(1, 0, 0, 0));
                        var dbParses = DB.botphrase.GroupBy(x => x.Pkey.ToLower()).ToDictionary(group => group.Key, group => group.Select(p => p.Text).ToArray());
                        cache.Set("getBotPhrase", dbParses, exp);
                        phrases = dbParses[key];
                    }
                    else
                    {
                        phrases = ((Dictionary <string, string[]>)cachedItem)[key];
                        if (phrases == null || phrases.Length == 0)
                        {
                            throw new Exception("empty phrase");
                        }
                    }
                }
            }
            catch (Exception e)
            {
                //   Logger.log(this.GetType().Name, MethodBase.GetCurrentMethod().Name, e.ToString());
                throw new NotImplementedException("key:" + key + " not in dictionary");
            }

            return(phrases);
        }
コード例 #2
0
        public virtual string getPhrase(Pkey key, string[] flags = null, string[] flagesNot = null, string textVar = null)
        {
            Logger.addLog("Bot: " + Enum.GetName(typeof(Pkey), key));

            if (flags == null)
            {
                flags = new string[] { }
            }
            ;
            if (flagesNot == null)
            {
                flagesNot = new string[] { }
            }
            ;

            var    phrases   = new DataBaseController().getBotPhrase(key, flags, flagesNot);
            string phraseRes = null;

            if (phrases.Length > 0)
            {
                var rundomInt = 0;
                phraseRes = phrases[rundomInt];
            }
            else
            {
                //   throw new botphraseException();
            }

            if (phraseRes != null)
            {
                return(phraseRes);
            }
            else
            {
                return("");
            }
        }
コード例 #3
0
 private string[] getPhrase(Pkey goodAnswer)
 {
     return(new string[] { "<p:" + Enum.GetName(typeof(Pkey), goodAnswer) + ">" });
 }
コード例 #4
0
 private string EnumVal(Pkey key)
 {
     return(Enum.GetName(typeof(Pkey), key));
 }
コード例 #5
0
 public string[] DBbotPhrase(Pkey key)
 {
     return(DB.getBotPhrase(key, new string[] { }, new string[] { }));
 }
コード例 #6
0
        //public bool isEnglish(string text)
        //{
        //    foreach (var c in text)
        //        {
        //            if((c <= 90 && c >= 65) || (c <= 122 && c >= 97))
        //            {
        //                 return true;
        //            }
        //        }
        //    return false;
        //}

        //public bool isHebrew(string text)
        //{
        //    foreach (var c in text)
        //    {
        //        if (c <= 0x0005EA && c >= 0x0005D0)
        //        {
        //            return true;
        //        }
        //    }
        //    return false;
        //}



        public virtual string[] getPhrase(Pkey key, string[] flags = null, string[] flagesNot = null, string textVar = null)
        {
            try
            {
                if (flags == null)
                {
                    flags = new string[] { }
                }
                ;
                if (flagesNot == null)
                {
                    flagesNot = new string[] { }
                }
                ;

                var        phrases    = Db.getBotPhrase(key, flags, flagesNot);
                var        keyInt     = (int)key;
                List <int> lastParses = null;

                if (user != null)
                {
                    if (user.PreviusParses[keyInt] == null)
                    {
                        user.PreviusParses[keyInt] = new int[] { };
                    }
                    var parses = new List <string>(phrases);
                    lastParses = new List <int>(user.PreviusParses[keyInt]);

                    if (lastParses.Count == phrases.Length && lastParses.Count > 0)
                    {
                        lastParses.RemoveAt(0);
                    }

                    parses.RemoveAll(x => x != null && lastParses.Contains(x.GetHashCode()));
                }
                string phraseRes = null;
                if (phrases.Length > 0)
                {
                    var rundomInt = RandomNum.getNumber(phrases.Length);
                    phraseRes = phrases[rundomInt];
                    if (user != null && lastParses != null)
                    {
                        lastParses.Add(phraseRes.GetHashCode());
                        user.PreviusParses[keyInt] = lastParses.ToArray();
                    }
                }
                else
                {
                    //   throw new botphraseException();
                }


                Logger.addLog("Bot: " + Enum.GetName(typeof(Pkey), key));
                if (phraseRes != null)
                {
                    phraseRes = formateVars(phraseRes, textVar);

                    //if (user.Language == "en")
                    //{
                    //    phraseRes = ControlerTranslate.TranslateToEng(phraseRes);
                    //}

                    return(phraseRes.Split('|'));
                }
                else
                {
                    return(new string[] { });
                }
            }catch (Exception ex)
            {
                Logger.addErrorLog("getPhrase: " + Enum.GetName(typeof(Pkey), key), ex.Message + ex.StackTrace);
                return(new string [] { });
            }
        }
コード例 #7
0
        private void ExecuteCapsCommand()
        {
            if (caps == false)
            {
                caps         = true;
                CapsEnabled  = true;
                CapsDisabled = false;

                Akey = Akey.ToUpper();
                Bkey = Bkey.ToUpper();
                Ckey = Ckey.ToUpper();
                Dkey = Dkey.ToUpper();
                Ekey = Ekey.ToUpper();
                Fkey = Fkey.ToUpper();
                Gkey = Gkey.ToUpper();
                Hkey = Hkey.ToUpper();
                Ikey = Ikey.ToUpper();
                Jkey = Jkey.ToUpper();
                Kkey = Kkey.ToUpper();
                Lkey = Lkey.ToUpper();
                Mkey = Mkey.ToUpper();
                Nkey = Nkey.ToUpper();
                Okey = Okey.ToUpper();
                Pkey = Pkey.ToUpper();
                Qkey = Qkey.ToUpper();
                Rkey = Rkey.ToUpper();
                Skey = Skey.ToUpper();
                Tkey = Tkey.ToUpper();
                Vkey = Vkey.ToUpper();
                Ukey = Ukey.ToUpper();
                Wkey = Wkey.ToUpper();
                Xkey = Xkey.ToUpper();
                Ykey = Ykey.ToUpper();
                Zkey = Zkey.ToUpper();
            }
            else
            {
                caps         = false;
                CapsEnabled  = false;
                CapsDisabled = true;
                Akey         = Akey.ToLower();
                Bkey         = Bkey.ToLower();
                Ckey         = Ckey.ToLower();
                Dkey         = Dkey.ToLower();
                Ekey         = Ekey.ToLower();
                Fkey         = Fkey.ToLower();
                Gkey         = Gkey.ToLower();
                Hkey         = Hkey.ToLower();
                Ikey         = Ikey.ToLower();
                Jkey         = Jkey.ToLower();
                Kkey         = Kkey.ToLower();
                Lkey         = Lkey.ToLower();
                Mkey         = Mkey.ToLower();
                Nkey         = Nkey.ToLower();
                Okey         = Okey.ToLower();
                Pkey         = Pkey.ToLower();
                Qkey         = Qkey.ToLower();
                Rkey         = Rkey.ToLower();
                Skey         = Skey.ToLower();
                Tkey         = Tkey.ToLower();
                Vkey         = Vkey.ToLower();
                Ukey         = Ukey.ToLower();
                Wkey         = Wkey.ToLower();
                Xkey         = Xkey.ToLower();
                Ykey         = Ykey.ToLower();
                Zkey         = Zkey.ToLower();
            }
        }