protected bool TryAdd(Obj obj, out ObjectReference <Obj> reference) { reference = null; if (!Objects.TryAdd(obj.Identifier, obj)) { return(false); } ObjectReference <Obj> objref = null; if (!Synchroniser.CreateSynchroniser(obj, () => objref = References.Create(obj))) { Objects.TryRemove(obj.Identifier, out _); return(false); } reference = objref; return(true); }
public ActionResult AddReference(Guid targetVerseId, Guid sourceBookId, int sourceChapterNum, int sourceVerseNum, int startOffset, int endOffset) { var sourceVerse = VerseManager.GetByBookIdChapterVerse(sourceBookId, sourceChapterNum, sourceVerseNum); if (startOffset < endOffset) { ReferenceManager.Create(targetVerseId, sourceVerse.Id, startOffset, endOffset); } else { ReferenceManager.Create(targetVerseId, sourceVerse.Id, endOffset, startOffset); } return(View()); }