private IEnumerable <Sezam.Data.EF.User> ReadUsers() { int count = 0; int inactiveCount = 0; string userFile = Path.Combine(rootPath.FullName, "user.dat"); using (BinaryReader r = new BinaryReader(File.Open(userFile, FileMode.Open))) { // int deletedCount = 0; while (r.PeekChar() != -1) { var user = new Sezam.Data.EF.User(count > 0 ? count : 99999); user.Read(r); Console.WriteLine($"{user.Username,-16} {user.FullName,-28} {user.City,-16} {user.LastCall:dd MMM yyyy HH:mm}"); count++; if (!user.LastCall.HasValue) { inactiveCount++; } yield return(user); } } Debug.WriteLine("Read {0} users, {1} inactive.", count, inactiveCount); }
public static void Read(this Sezam.Data.EF.User u, BinaryReader r) { u.Username = r.ReadShortString(15); _ = r.ReadChar(); // gender u.FullName = r.ReadShortString(30); u.StreetAddress = r.ReadShortString(35); u.PostCode = r.ReadShortString(5); u.City = r.ReadShortString(16); u.AreaCode = r.ReadShortString(4); u.Phone = r.ReadShortString(10); u.Company = r.ReadShortString(30); u.DateOfBirth = r.ReadShortDate(); u.MemberSince = r.ReadDosTime(); _ = r.ReadBytes(10); u.LastCall = r.ReadDosTime(); _ = r.ReadInt32(); // DayTime ? u.PaidUntil = r.ReadShortDate(); r.ReadBytes(13 * 4 + 16 + 5 * 4 + 14 + 16 + 18); }