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); }
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(""); } }
private string[] getPhrase(Pkey goodAnswer) { return(new string[] { "<p:" + Enum.GetName(typeof(Pkey), goodAnswer) + ">" }); }
private string EnumVal(Pkey key) { return(Enum.GetName(typeof(Pkey), key)); }
public string[] DBbotPhrase(Pkey key) { return(DB.getBotPhrase(key, new string[] { }, new string[] { })); }
//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 [] { }); } }
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(); } }