예제 #1
0
 private void storeRandMessageToBuffer(irkki message = null, irkki_old mesOld = null, string initiator = "")
 {
     try
     {
         using (var db = new DB.internetEntities())
         {
             rand_messages rm = null;
             if (message != null)
             {
                 rm = new rand_messages {
                     rowid_irc = message.id, message = message.viesti, kanava = message.kanava, initiator = initiator
                 };
             }
             else if (mesOld != null)
             {
                 rm = new rand_messages {
                     rowid_irc = mesOld.id, message = mesOld.viesti, kanava = mesOld.kanava, initiator = initiator
                 };
             }
             if (rm != null)
             {
                 db.rand_messages.Add(rm);
                 db.SaveChanges();
             }
         }
     } catch (Exception e)
     {
         helperClass.writeLog("storeRandMessageToBuffer() Message: " + e.ToString(), 3);
     }
 }
예제 #2
0
 private irkki_old getOldRand(string channel, string like, string messageTarget = "")
 {
     try
     {
         using (var DB = new internetEntities())
         {
             List <string>    sent_rands = DB.rand_messages.Where(x => (messageTarget == "" || x.initiator == messageTarget) && x.kanava == channel).Select(x => x.message).ToList();
             List <irkki_old> mList      = null;
             mList = DB.irkki_old.Where(x => x.viesti != "x" && !x.viesti.StartsWith("!random") && (like == "" || x.viesti.Contains(like)) && x.kanava.ToLower() == channel.ToLower() && (!sent_rands.Contains(x.viesti))).OrderBy(x => Guid.NewGuid()).Take(1).ToList();
             irkki_old mes = null;
             if (mList.Any())
             {
                 mes = mList.First();
                 storeRandMessageToBuffer(null, mes, messageTarget);
                 return(mes);
             }
             else
             {
                 return(null);
             }
         }
     } catch (Exception e)
     {
         //return new List<irkki_old>();
         return(null);
     }
 }
예제 #3
0
        private string random(string channel, string like = "", bool onlyOld = false, string messageTarget = "")
        {
            string    rand   = "";
            irkki     mes    = null;
            irkki_old oldMes = null;

            try
            {
                using (var DB = new internetEntities())
                {
                    double countOld = DB.irkki_old.Count();
                    double countNew = DB.irkki.Where(x => x.viesti != "x").Count();
                    double total    = countOld + countNew;
                    double limit    = rnd1.NextDouble();
                    if (onlyOld || (limit < countOld / total))  //Old
                    {
                        oldMes = getOldRand(channel, like, messageTarget);
                        if (oldMes != null)
                        {
                            rand = formRandomMessage(oldMes.aika.Value, oldMes.nick, oldMes.viesti);
                        }
                        else
                        {
                            mes = getRand(channel, like, messageTarget);
                            if (mes != null)
                            {
                                rand = formRandomMessage(mes.aika.Value, mes.nick, mes.viesti);
                            }
                        }
                    }
                    else   // new
                    {
                        mes = getRand(channel, like, messageTarget);
                        if (mes != null)
                        {
                            rand = formRandomMessage(mes.aika.Value, mes.nick, mes.viesti);
                        }
                        else
                        {
                            oldMes = getOldRand(channel, like, messageTarget);
                            if (oldMes != null)
                            {
                                rand = formRandomMessage(oldMes.aika.Value, oldMes.nick, oldMes.viesti);
                            }
                        }
                    }
                }
            } catch (Exception e)
            {
                helperClass.writeLog("Virhe random()-metodissa. Virheviesti: " + e.ToString(), 4);
            }
            return(rand);
        }