private void RecursiveAddGroup(TreeGroupModel tree, GroupModel parent, PwGroup pgContainer, PwGroup pgFind) { if (pgContainer == null) return; IList<GroupModel> tnc; if (parent == null) tnc = tree.Nodes; else tnc = parent.Childs; foreach (PwGroup pg in pgContainer.Groups) { string strName = pg.Name; // + GetGroupSuffixText(pg); int nIconID = ((!pg.CustomIconUuid.EqualsValue (PwUuid.Zero)) ? ((int)PwIcon.Count + db.GetCustomIconIndex (pg.CustomIconUuid)) : (int)pg.IconId); bool bExpired = (pg.Expires && (pg.ExpiryTime <= m_dtCachedNow)); if (bExpired) nIconID = (int) PwIcon.Expired; GroupModel node = new GroupModel () { Name = strName, ImageIndex = nIconID, SelectedImageIndex = nIconID, Group = pg, Expires = pg.Expires, ExpiryTime = pg.ExpiryTime }; tnc.Add (node); RecursiveAddGroup (tree, node, pg, pgFind); } }
public TreeGroupModel FindGroups() { TreeGroupModel model = new TreeGroupModel (); DateTime m_dtCachedNow = DateTime.Now; GroupModel root = null; // add root if exists if (db.RootGroup != null) { int nIconID = ((!db.RootGroup.CustomIconUuid.EqualsValue (PwUuid.Zero)) ? ((int)PwIcon.Count + db.GetCustomIconIndex ( db.RootGroup.CustomIconUuid)) : (int)db.RootGroup.IconId); if (db.RootGroup.Expires && (db.RootGroup.ExpiryTime <= m_dtCachedNow)) nIconID = (int) PwIcon.Expired; root = new GroupModel () { Name = db.RootGroup.Name, ImageIndex = nIconID, SelectedImageIndex = nIconID, Group = db.RootGroup, Expires = db.RootGroup.Expires, ExpiryTime = db.RootGroup.ExpiryTime }; model.Nodes.Add (root); } RecursiveAddGroup (model, root, db.RootGroup, null); return model; }