Ejemplo n.º 1
0
        private void btnStoreEntry_Click(object sender, EventArgs e)
        {
            if (lstWords.SelectedIndex > -1)
            {
                ThesaurusEntry entry = thesaurusEntries.Single(te => te.Query == ((string)lstWords.SelectedItem));

                foreach (ThesaurusResult result in entry.GetResults((string)lstResults.SelectedItem))
                {
                    foreach (ThesaurusDefinition tDef in result.Definitions)
                    {
                        Definition def = DataConverter.GetDefinitionObject(tDef, languageID);
                        def = Definition.InsertDefinition(def);

                        if (lstSynonyms.Items.Count > 0)
                        {
                            foreach (string synonym in lstSynonyms.Items)
                            {
                                ritchard.InsertSynonym(new Synonym {
                                    DefinitionID = def.DefinitionID, SynonymID = Definition.GetDefinitionIDForString(synonym)
                                });
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private Thesaurus ParseSource(XElement sourceElem, string id,
                                      bool authors)
        {
            if (sourceElem == null)
            {
                return(null);
            }

            Thesaurus thesaurus = new Thesaurus(
                $"apparatus-{(authors? "authors":"witnesses")}.{id}@en");

            foreach (XElement child in sourceElem
                     .Elements(XmlHelper.TEI + (authors? "bibl" : "witness")))
            {
                string value = _wsRegex.Replace(child.Value, " ").Trim();

                // prepend @n if @ref
                if (child.Attribute("ref") != null)
                {
                    value = child.Attribute("n").Value + value;
                }

                var entry = new ThesaurusEntry(
                    child.Attribute(XmlHelper.XML + "id").Value,
                    ReduceLabel(value));

                thesaurus.AddEntry(entry);
            }

            return(thesaurus);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Initializes a new instance of the <see cref="MongoThesaurusEntry"/> class.
        /// </summary>
        /// <param name="entry">The entry.</param>
        /// <exception cref="ArgumentNullException">entry</exception>
        public MongoThesaurusEntry(ThesaurusEntry entry)
        {
            if (entry == null)
            {
                throw new ArgumentNullException(nameof(entry));
            }

            Id    = entry.Id;
            Value = entry.Value;
        }
        protected void NotifyApprovedItem(string title, string whathappened)
        {
            ThesaurusEntryClient c     = new ThesaurusEntryClient();
            ThesaurusEntry       entry = c.GetAllByDictionary("approvals").Execute().SingleOrDefault(x => x.From == title);

            if (entry == null)
            {
                return;
            }

            EmailManager em = new EmailManager();

            em.SendMail("*****@*****.**", "Career|Thesaurus", "*****@*****.**", "Mapping Change Alert", whathappened);
        }
        public ActionResult CreateEntry(ThesaurusEntry newitem)
        {
            try
            {
                if (!IsValidUser(tokens => tokens[0] == Request["username"].ToString()))
                {
                    return(RedirectToAction("Logon"));
                }

                newitem.Timestamp = DateTime.Now;
                if (ModelState.IsValid)
                {
                    ThesaurusEntryClient c = new ThesaurusEntryClient();
                    c.AddNewItem(newitem);
                    NotifyApprovedItem(newitem.From, AuthTokens[2] + " added \"" + newitem.AddRemove + "\" relationship in " + newitem.PartitionKey + " between \"" + newitem.From + "\" and \"" + newitem.To + "\"");

                    if (newitem.PartitionKey == "similars")
                    {
                        var reverseitem = new ThesaurusEntry {
                            AddedAs = "similar", PartitionKey = newitem.PartitionKey, AddRemove = newitem.AddRemove, From = newitem.To, To = newitem.From, RowKey = ShortGuidGenerator.NewGuid()
                        };
                        c.AddNewItem(reverseitem);
                        NotifyApprovedItem(newitem.To, AuthTokens[2] + " added \"" + newitem.AddRemove + "\" relationship in " + newitem.PartitionKey + " between \"" + newitem.To + "\" and \"" + newitem.From + "\"");
                    }
                }


                if (newitem.AddedAs == "predecessor")
                {
                    return(RedirectToAction("Index", new { p = newitem.To }));
                }
                else
                {
                    return(RedirectToAction("Index", new { p = newitem.From }));
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("error", ex.Message);
                return(View(newitem));
            }
        }
        public ActionResult DeleteEntry(string d, string rowkey)
        {
            try
            {
                if (!IsValidUser(tokens => tokens[0] == Request["username"].ToString()))
                {
                    return(null);
                }

                ThesaurusEntryClient c     = new ThesaurusEntryClient();
                ThesaurusEntry       entry = c.GetByPartitionAndRowKey(d, rowkey);
                if (entry != null)
                {
                    c.Delete(entry);
                    NotifyApprovedItem(entry.From, AuthTokens[2] + " deleted \"" + entry.AddRemove + "\" relationship in " + d + " between \"" + entry.From + "\" and \"" + entry.To + "\"");

                    //get reverse entry
                    ThesaurusEntry reverseentry = c.GetAllByDictionary("similars").Execute().SingleOrDefault(x => x.From == entry.To && x.To == entry.From);
                    if (reverseentry != null)
                    {
                        c.Delete(reverseentry);
                        NotifyApprovedItem(entry.To, AuthTokens[2] + " deleted \"" + entry.AddRemove + "\" relationship in " + d + " between \"" + entry.To + "\" and \"" + entry.From + "\"");
                    }
                }

                Response.ContentType = "application/json";
                string retvalue = (new { result = "ok" }).ToJSON();
                Response.Write(retvalue);
                Response.End();
            }
            catch (Exception ex)
            {
                Response.ContentType = "application/json";
                Response.Write("{\"result\":\"error\", \"message\":\"" + ex.Message + "\"}");
                Response.End();
            }

            return(null);
        }
        public ActionResult AddEntry(string d, string t, string from, string to)
        {
            try
            {
                if (!IsValidUser(tokens => tokens[0] == Request["username"].ToString()))
                {
                    return(null);
                }

                ThesaurusEntryClient c = new ThesaurusEntryClient();
                c.AddNewItem(new ThesaurusEntry {
                    PartitionKey = d, AddRemove = t, From = from, To = to, RowKey = ShortGuidGenerator.NewGuid()
                });
                NotifyApprovedItem(from, AuthTokens[2] + " added \"" + t + "\" relationship in " + d + " between \"" + from + "\" and \"" + to + "\"");

                if (d == "similars")
                {
                    var reverseitem = new ThesaurusEntry {
                        PartitionKey = d, AddRemove = t, From = to, To = from, RowKey = ShortGuidGenerator.NewGuid()
                    };
                    c.AddNewItem(reverseitem);
                    NotifyApprovedItem(to, AuthTokens[2] + " added \"" + t + "\" relationship in " + d + " between \"" + to + "\" and \"" + from + "\"");
                }

                Response.ContentType = "application/json";
                string retvalue = (new { result = "ok" }).ToJSON();
                Response.Write(retvalue);
                Response.End();
            }
            catch (Exception ex)
            {
                Response.ContentType = "application/json";
                Response.Write("{\"result\":\"error\", \"message\":\"" + ex.Message + "\"}");
                Response.End();
            }

            return(null);
        }
Ejemplo n.º 8
0
        private void PopulateLstResults()
        {
            if (lstWords.SelectedItem != null)
            {
                string         query = ((string)lstWords.SelectedItem).Split(" ".ToCharArray())[0];
                ThesaurusEntry entry = thesaurusEntries.Single(ent => ent.Query == query);
                foreach (ThesaurusResult result in entry.GetResults())
                {
                    lstResults.Items.Add(result.Word);
                }

                if (entry.GetResults().Count > 0)
                {
                    lstResults.Enabled       = true;
                    lstResults.SelectedIndex = 0;
                }
                else
                {
                    lstResults.Items.Add("<no results>");
                    lstResults.Enabled = false;
                }
            }
        }