Example #1
0
 //если в FAQ вернет айди FAQ иначе -1
 public int inFAQ(QA x)
 {
     FAQ f;// = db.tFAQ.Where(c => c.theme_id == x.theme_id).FirstOrDefault();
     foreach (var a in db.tFAQ)
     {
         if(a.theme_id==x.theme_id)
         {
             if(x.question == a.question)
             {
                 return a.Id;
             }
         }
     }
     return -1;
 }
Example #2
0
 //вернет сложность вопроса
 public int DifficulityQ(QA x)
 {
     Themes t = db.tThemes.Where(c => c.Id == x.theme_id).FirstOrDefault();
     int kAnsweredQa=0;
     foreach (var a in db.tFQA)
     {
         if (a.theme_id == t.Id)
         {
             if (a.answer != null && a.answer != "") kAnsweredQa++;
         }
     }
     int res = t.difficulity;
     res -= delPercent * (kAnsweredQa / this.nullDifficulityOfQA);
     if (res < 0) res = 0;
     return res;
 }
Example #3
0
        public QA proccessMessage(string title, string message, string email)
        {
            QA res = new QA();
            res.theme_id = ThemeQ(title);
            res.question = message;
            res.email = email;
            res.start_time = DateTime.Now;

            Themes sot = db.tThemes.Where(c => c.Id == res.theme_id).FirstOrDefault();
            int year = res.start_time.Year + sot.standart_time.Year;
            int month = res.start_time.Month + sot.standart_time.Month;
            int day = res.start_time.Day + sot.standart_time.Day;
            int hour = res.start_time.Hour + sot.standart_time.Hour;
            int minute = res.start_time.Minute + sot.standart_time.Minute;
            int sec = res.start_time.Second + sot.standart_time.Second;

            DateTime dt = new DateTime(year, month, day, hour, minute, sec);
            res.end_time = dt;

            return res;
        }
Example #4
0
        public string getSomeQA(QA x, bool isNeedAnswer)
        {
            string res="";
            List<int> lq;

            if (!isNeedAnswer) lq = analyzer.someQ(x);
            else lq = analyzer.someAnswers(x);

            if (lq == null) return res;

            foreach (var a in db.tFQA)
            {
                if (!lq.Contains(a.Id)) continue;
                res += a.Id.ToString() + "|";
                res += a.question + "|";
                Themes t = db.tThemes.Where(c => c.Id == a.theme_id).FirstOrDefault();
                if (t == null) throw new Exception("Не найдена тема getSomeQ control");
                res += t.Theme + "|";
                res += a.answer;
                res += "~";
            }
            return res;
        }
Example #5
0
        //обработка сообщений (теги удаляет)
        public QA proccessMessage(MailMessage message)
        {
            QA res = new QA();
            res.theme_id = ThemeQ(message.Subject);

            bool tag = false; //это убирает лишние теги из письма <div></div>
            for (int i = 0; i < message.Body.Length; i++ )
            {
                if (message.Body[i] == '<') tag = true;

                if(!tag)
                {
                    res.question += message.Body[i];
                }

                if (message.Body[i] == '>') tag = false;
            }

            res.consulter_id = -1;
            res.email = message.From.Address;
            res.start_time = DateTime.Now;
            res.end_time = DateTime.Now;

            return res;
        }
Example #6
0
        //вернет айдишники похожих QA по вопросу
        public List<int> someQ(QA x)
        {
            List<int> res = new List<int>();

            if (x != null)
            {
                foreach (var a in db.tFQA)
                {
                    if (a.theme_id == x.theme_id)
                    {
                        if (match(x.question, a.question)) res.Add(a.Id);
                    }
                }
            }

               return res;
        }
Example #7
0
        //вернет айдишники похожих QA по ответу
        public List<int> someAnswers(QA x)
        {
            List<int> res = new List<int>();

            if (x!=null && x.answer != null)
            {
                foreach (var a in db.tFQA)
                {
                    if (a.theme_id == x.theme_id && a.answer != null)
                    {
                        if (match(x.answer, a.answer)) res.Add(a.Id);
                    }
                }
            }

            return res;
        }
Example #8
0
 public int getDiff(QA x)
 {
     return analyzer.DifficulityQ(x);
 }