public static void ExtractEntitiesFromUrl(interaction_url interaction_url, string url, Repository tycheRepo)
        {
            AlchemyAPI.AlchemyAPI alchemyObj = new AlchemyAPI.AlchemyAPI();
            alchemyObj.SetAPIKey(ConfigurationManager.AppSettings["AlchemyAPIKey"]);

            string xml;
            XDocument xdoc;

            try
            {
                xml = alchemyObj.URLGetRankedNamedEntities(url);
            }
            catch
            {
                xml = "";
            }

            if (xml != "")
            {
                xdoc = XDocument.Load(new StringReader(xml));
                foreach (XElement e in xdoc.Descendants("entity"))
                {
                    interaction_url_entity entity = new interaction_url_entity();
                    entity.interaction_url_id = interaction_url.id;
                    entity.entity = e.Element("text").Value;
                    entity.entity_count = int.Parse(e.Element("count").Value);
                    entity.entity_relevance = decimal.Parse(e.Element("relevance").Value);
                    entity.entity_sentiment = e.Element("sentiment").Element("type").Value;
                    if (e.Element("sentiment").Element("score") != null)
                        entity.entity_sentiment_score = decimal.Parse(e.Element("sentiment").Element("score").Value);
                    else
                        entity.entity_sentiment_score = 0;
                    tycheRepo.Add(entity);
                }

                tycheRepo.Save();

                Thread.Sleep(12);
            }
        }
        public void ParseLinks(List<interaction> tweets)
        {
            for (int i = 0; i < tweets.Count; i++)
            {
                string tweet = tweets[i].content_id;

                if (tweet.Length == 0)
                {
                    continue;
                }
                MatchCollection mc = Regex.Matches(tweet, @"(www[^ \s]+|http[^ \s]+)([\s]|$)", RegexOptions.IgnoreCase);
                for (int j = 0; j < mc.Count; j++)
                {
                    string url = mc[j].Value;

                    interaction_url interactionUrl = new interaction_url();
                    interactionUrl.interaction_id = tweets[i].id;
                    interactionUrl.url = url;
                    TycheRepository.Add(interactionUrl);

                    TycheRepository.Save();

                    #region Keyword extraction
                    Common.ExtractKeywordsFromUrl(interactionUrl, url, TycheRepository);
                    #endregion

                    #region Entity extraction
                    Common.ExtractEntitiesFromUrl(interactionUrl, url, TycheRepository);
                    #endregion

                    TycheRepository.UpdateLastInteractionProcessed(tweets[i].id, InteractionProcessedAction.Url);

                    TycheRepository.Save();
                }
            }
        }
 partial void Deleteinteraction_url(interaction_url instance);
 partial void Updateinteraction_url(interaction_url instance);
 partial void Insertinteraction_url(interaction_url instance);
		private void detach_interaction_urls(interaction_url entity)
		{
			this.SendPropertyChanging();
			entity.interaction = null;
		}