From 1ced231e48400bdde241cad1ef9d6155da5a4575 Mon Sep 17 00:00:00 2001 From: Kyle Spearrin Date: Fri, 19 May 2017 10:44:42 -0400 Subject: [PATCH] null checks --- src/Console/Program.cs | 30 +++++++++++++++++++----------- src/Core/Models/ImportRequest.cs | 4 ++-- src/Core/Utilities/Sync.cs | 7 +++++-- src/Service/Service.cs | 2 +- 4 files changed, 27 insertions(+), 16 deletions(-) diff --git a/src/Console/Program.cs b/src/Console/Program.cs index 4ebbedf9..e801515e 100644 --- a/src/Console/Program.cs +++ b/src/Console/Program.cs @@ -821,7 +821,7 @@ namespace Bit.Console if(result.Success) { WriteSuccessLine(string.Format("Syncing complete ({0} users, {1} groups).", - result.Users.Count, result.Groups.Count)); + result.Users?.Count ?? 0, result.Groups?.Count ?? 0)); } else { @@ -855,22 +855,30 @@ namespace Bit.Console var result = await Sync.SyncAllAsync(force, false); if(result.Success) { - Con.WriteLine("Groups:"); - foreach(var group in result.Groups) + if(result.Groups != null) { - Con.WriteLine(" {0} - {1}", group.Name, group.ExternalId); - foreach(var user in group.UserMemberExternalIds) + Con.WriteLine("Groups:"); + + foreach(var group in result.Groups) { - Con.WriteLine(" {0}", user); + Con.WriteLine(" {0} - {1}", group.Name, group.ExternalId); + foreach(var user in group.UserMemberExternalIds) + { + Con.WriteLine(" {0}", user); + } } } - Con.WriteLine(); - Con.WriteLine("Users:"); - foreach(var user in result.Users) + if(result.Users != null) { - Con.WriteLine(" {0}{1}{2}", user.Email ?? user.ExternalId, - user.Disabled ? " (-)" : null, user.Deleted ? " (X)" : null); + Con.WriteLine(); + Con.WriteLine("Users:"); + + foreach(var user in result.Users) + { + Con.WriteLine(" {0}{1}{2}", user.Email ?? user.ExternalId, + user.Disabled ? " (-)" : null, user.Deleted ? " (X)" : null); + } } } else diff --git a/src/Core/Models/ImportRequest.cs b/src/Core/Models/ImportRequest.cs index 4e7a0956..8f00e248 100644 --- a/src/Core/Models/ImportRequest.cs +++ b/src/Core/Models/ImportRequest.cs @@ -8,8 +8,8 @@ namespace Bit.Core.Models { public ImportRequest(List groups, List users) { - Groups = groups.Select(g => new Group(g)).ToArray(); - Users = users.Select(u => new User(u)).ToArray(); + Groups = groups?.Select(g => new Group(g)).ToArray() ?? new Group[] { }; + Users = users?.Select(u => new User(u)).ToArray() ?? new User[] { }; } public Group[] Groups { get; set; } diff --git a/src/Core/Utilities/Sync.cs b/src/Core/Utilities/Sync.cs index a76c9414..cad0e0ec 100644 --- a/src/Core/Utilities/Sync.cs +++ b/src/Core/Utilities/Sync.cs @@ -24,14 +24,17 @@ namespace Bit.Core.Utilities var groups = entriesResult.Item1; var users = entriesResult.Item2; - FlattenUsersToGroups(groups, null, groups); + if(groups?.Any() ?? false) + { + FlattenUsersToGroups(groups, null, groups); + } if(!sendToServer) { RestoreDeltas(startingGroupDelta, startingUserDelta); } - if(!sendToServer || (groups.Count == 0 && users.Count == 0)) + if(!sendToServer || ((groups?.Count ?? 0) == 0 && (users?.Count ?? 0) == 0)) { return new SyncResult { diff --git a/src/Service/Service.cs b/src/Service/Service.cs index e3315219..77f5d850 100644 --- a/src/Service/Service.cs +++ b/src/Service/Service.cs @@ -100,7 +100,7 @@ namespace Service sw.Stop(); if(result.Success) { - _eventLog.WriteEntry($"Synced {result.Groups.Count} groups, {result.Users.Count} users. " + + _eventLog.WriteEntry($"Synced {result.Groups?.Count ?? 0} groups, {result.Users?.Count ?? 0} users. " + $"The sync took {(int)sw.Elapsed.TotalSeconds} seconds to complete.", EventLogEntryType.SuccessAudit); }