private LexEntry CreateNewLexEntry(CreateNewArgs e) { LexEntry newGuy = _lexEntryRepository.CreateItem(); // If we're creating from a previously deleted word, omit the guid part of the stored label. // See https://jira.sil.org/browse/WS-96 for a picture of what could happen otherwise. // Also restore the guid in case this form was referred to more than once. string word = e.LabelOfNewItem; Match m = Regex.Match(e.LabelOfNewItem, "_[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}"); if (m.Success) { word = e.LabelOfNewItem.Substring(0, m.Index); newGuy.Guid = new Guid(m.Value.Substring(1)); } newGuy.LexicalForm.SetAlternative(_field.WritingSystemIds[0], word); //hack: if something is a baseform itself, it isn't likely to have its own baseform //This satisfies Rene's request of WS-419 if (_field.FieldName == "BaseForm") { newGuy.SetFlag(LexEntry.WellKnownProperties.FlagSkipBaseform); } return(newGuy); }
public void LexEntryRelationCollectionMissingButSkipFlagged() { _source.SetFlag("flag-skip-synonyms"); Assert.IsFalse(_missingRelationFieldFilter.FilteringPredicate(_source)); }