protected static bool UpdateRank(int?primary, int?edit, ref Trooper p, ref Trooper s, [NotNullWhen(true)] out RankChange?update) { if (primary != edit) { update = new RankChange() { ChangedFrom = primary ?? -1, ChangedTo = edit ?? -1, ChangedOn = DateTime.UtcNow, SubmittedByRosterClerk = true }; p.RankChanges.Add(update); s.SubmittedRankChanges.Add(update); if (primary < edit) { p.LastPromotion = DateTime.UtcNow; } return(true); } update = null; return(false); }
internal void OnRankChange(User user, string channel, UserRank rank) => RankChange?.Invoke(user, channel, rank);