public TaggedVerseMenuOptionItem(
     string menu_option_id,
     string link_val,
     string select_action,
     string display_text,
     VerseTag verse_tag)
     : base(menu_option_id, link_val, select_action, display_text)
 {
     this.verse_tag = verse_tag;
 }
Beispiel #2
0
 public VerseTagTask(
     long user_id,
     int emotion_id,
     String start_verse,
     String end_verse,
     DateTime datetime,
     String description,
     VerseTag vt)
 {
     this.user_id = user_id;
     this.emotion_id = emotion_id;
     this.start_verse = start_verse;
     this.end_verse = end_verse;
     this.datetime = datetime;
     this.vt = vt ;
 }
Beispiel #3
0
        public static void addVerseTagDuringLoad(VerseTag vt)
        {
            //parts of this method should be synchronized not only called during startup.
            String unique_check_key = vt.emotion_id + "|" + vt.start_verse + "|" + vt.end_verse;

            String key = vt.start_verse + "|" + vt.end_verse;
            if (unique_check_map.ContainsKey(unique_check_key))
            {
                throw new VerseEmotionTagAlreadyPresentException("Attempted to add a verse tag which is already present for emotion: " + vt.emotion_id + " and verse_key: " + key);
            }

            unique_check_map.Add(unique_check_key, null);

            List<VerseTag> vts;
            if (verses_emotions.ContainsKey(key))
            {
                vts = verses_emotions[key];
            }
            else
            {
                vts = new List<VerseTag>();
                verses_emotions.Add(key, vts);
            }
            vts.Add(vt);

            //no check for duplicates when adding verse to emotion
            List<VerseTag> ets;
            if (emotion_verses.ContainsKey(vt.emotion_id))
            {
                ets = emotion_verses[vt.emotion_id];
            }
            else
            {
                ets = new List<VerseTag>();
                emotion_verses.Add(vt.emotion_id, ets);
            }
            ets.Add(vt);
        }
Beispiel #4
0
 public void addVerseTag(
     long user_id,
     String start_verse,
     String end_verse,
     int emo_id)
 {
     DateTime dt = DateTime.Now;
     VerseTag vt = new VerseTag(-1, emo_id, user_id, dt, start_verse, end_verse, null);
     //this will add verse tag to memory. and also does some unique checks.
     addVerseTag(vt);
     //this will spawn new thread to update DB
     new VerseTagTask(user_id, emo_id, start_verse, end_verse, dt, null, vt).AddVerseTask();
 }
Beispiel #5
0
 public static void loadVerseTags()
 {
     string sqlQuery = "SELECT id, emotion_id, user_id, datetime, start_verse, end_verse, description FROM emotion_tag";
     MySqlConnection conn = DBManager.getConnection();
     try
     {
         conn.Open();
         MySqlCommand cmd = new MySqlCommand(sqlQuery, conn);
         MySqlDataReader rdr = cmd.ExecuteReader();
         long id = -1;
         int emotion_id;
         long user_id;
         DateTime datetime;
         String start_verse;
         String end_verse;
         String description;
         while (rdr.Read())
         {
             id = long.Parse((rdr[0]).ToString());
             emotion_id = Int32.Parse((rdr[1]).ToString());
             user_id = long.Parse((rdr[2]).ToString());
             datetime = DateTime.Parse(rdr[3].ToString());
             start_verse = rdr[4].ToString();
             end_verse = rdr[5].ToString();
             description = rdr[6].ToString();
             String key = start_verse + "|" + end_verse;
             VerseTag vt = new VerseTag(
                     id,
                     emotion_id,
                     user_id,
                     datetime,
                     start_verse,
                     end_verse,
                     description);
             addVerseTagDuringLoad(vt);
         }
         rdr.Close();
         conn.Close();
         loadVerseTagLikes();
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.StackTrace);
         conn.Close();
     }
     finally
     {
         if (conn != null)
             conn.Close();
     }
 }