private static void WriteGroup(PwGroup pg, PwGroup pgRoot, ref uint uGroupIndex, Dictionary <PwGroup, UInt32> dictGroups, DateTime dtNeverExpire, Kdb3Manager mgr, bool bForceLevel0) { if (pg == pgRoot) { return; } Kdb3Group grp = new Kdb3Group(); grp.GroupId = uGroupIndex; dictGroups[pg] = grp.GroupId; grp.ImageId = (uint)pg.IconId; grp.Name = pg.Name; grp.CreationTime.Set(pg.CreationTime); grp.LastModificationTime.Set(pg.LastModificationTime); grp.LastAccessTime.Set(pg.LastAccessTime); if (pg.Expires) { grp.ExpirationTime.Set(pg.ExpiryTime); } else { grp.ExpirationTime.Set(dtNeverExpire); } grp.Level = (bForceLevel0 ? (ushort)0 : (ushort)(pg.GetLevel() - 1)); if (pg.IsExpanded) { grp.Flags |= (uint)Kdb3GroupFlags.Expanded; } if (!mgr.AddGroup(ref grp)) { Debug.Assert(false); throw new InvalidOperationException(); } ++uGroupIndex; }
private static void WriteGroup(PwGroup pg, PwGroup pgRoot, ref uint uGroupIndex, Dictionary<PwGroup, UInt32> dictGroups, DateTime dtNeverExpire, KdbManager mgr, bool bForceLevel0) { if(pg == pgRoot) return; KdbGroup grp = new KdbGroup(); grp.GroupId = uGroupIndex; dictGroups[pg] = grp.GroupId; grp.ImageId = (uint)pg.IconId; grp.Name = pg.Name; grp.CreationTime.Set(pg.CreationTime); grp.LastModificationTime.Set(pg.LastModificationTime); grp.LastAccessTime.Set(pg.LastAccessTime); if(pg.Expires) grp.ExpirationTime.Set(pg.ExpiryTime); else grp.ExpirationTime.Set(dtNeverExpire); grp.Level = (bForceLevel0 ? (ushort)0 : (ushort)(pg.GetLevel() - 1)); if(pg.IsExpanded) grp.Flags |= (uint)KdbGroupFlags.Expanded; if(!mgr.AddGroup(ref grp)) { Debug.Assert(false); throw new InvalidOperationException(); } ++uGroupIndex; }