public static void AddHashTag(this Postcard postcard, string hashTag)
 {
     using (ApplicationDbContext db = new ApplicationDbContext())
     {
         postcard = db.Postcards.Single(p => p.Id == postcard.Id);
         HashTag existingHashTag = db.HashTags.SingleOrDefault(h =>
             h.Value == hashTag);
         if (existingHashTag == null)
         {
             existingHashTag = new HashTag
             {
                 Value = hashTag
             };
             HashTagSearcher.AddUpdateLuceneIndex(existingHashTag);
         }
         postcard.HashTags.Add(existingHashTag);
         db.SaveChanges();
     }
 }
 public static void AddUpdateLuceneIndex(HashTag hashTag)
 {
     AddUpdateLuceneIndex(new List<HashTag> { hashTag });
 }
 private static void AddToLuceneIndex(HashTag hashTag, IndexWriter writer)
 {
     var searchQuery = new TermQuery(new Term("Id", hashTag.Id.ToString()));
     writer.DeleteDocuments(searchQuery);
     var doc = new Document();
     doc.Add(new Field("Id", hashTag.Id.ToString(), Field.Store.YES,
         Field.Index.NOT_ANALYZED));
     doc.Add(new Field("Value", hashTag.Value, Field.Store.YES,
         Field.Index.ANALYZED));
     writer.AddDocument(doc);
 }