/// <summary> /// Reload the links in a box; to be called after the UI records changes in links /// </summary> public void UpdateLinks(ExtPerson ep) { using var db = new SystematizerContext(); var links = DBUtil.LoadLinksFor(db, ep.Person).ToList(); ep.Links = links; }
/// <summary> /// Reload the links in a box; to be called after the UI records changes in links /// </summary> public void UpdateLinks(ExtBox ebox) { using var db = new SystematizerContext(); var links = DBUtil.LoadLinksFor(db, ebox.Box).ToList(); ebox.Links = links; }
/// <summary> /// Load person detail for editing /// </summary> /// <returns>null if not found</returns> public ExtPerson LoadPerson(long id) { using var db = new SystematizerContext(); var person = db.Person.Find(id); if (person == null) { return(null); } var links = DBUtil.LoadLinksFor(db, person).ToList(); var catIds = db.PersonCat.Where(r => r.PersonId == id).Select(r => r.CatId); return(new ExtPerson(person, links, catIds.ToArray())); }
/// <summary> /// Get box for detail view or editing; caller should call SaveBox or AbandonBox when the pane/window is closed /// </summary> /// <returns>null if not found</returns> public ExtBox LoadBoxForEditing(long boxId) { using var db = new SystematizerContext(); var box = db.Box.Find(boxId); if (box == null) { return(null); } Globals.BoxEditingPool.CheckOut(box); var links = DBUtil.LoadLinksFor(db, box).ToList(); return(new ExtBox(box, links)); }
/// <summary> /// Get boxes for detail view or editing; caller should call SaveBox or AbandonBox when the pane/window is closed /// </summary> public IEnumerable <ExtBox> LoadUnclassBoxesForEditing() { var ret = new List <ExtBox>(); using (var db = new SystematizerContext()) { var boxes = db.Box.Where(r => r.IsUnclass != 0 && r.DoneDate == null); foreach (var box in boxes) { Globals.BoxEditingPool.CheckOut(box); var links = DBUtil.LoadLinksFor(db, box).ToList(); ret.Add(new ExtBox(box, links)); } } return(ret); }