diff --git a/Application/Alerts/AlertExtensions.cs b/Application/Alerts/AlertExtensions.cs index b90db826..933f4e8b 100644 --- a/Application/Alerts/AlertExtensions.cs +++ b/Application/Alerts/AlertExtensions.cs @@ -5,8 +5,17 @@ using SharedLibraryCore.Database.Models; namespace IW4MAdmin.Application.Alerts; +/// +/// extension method helper class to allow building of alerts +/// public static class AlertExtensions { + /// + /// builds basic alert for user with provided category + /// + /// client to build the alert for + /// alert category + /// public static Alert.AlertState BuildAlert(this EFClient client, Alert.AlertCategory? type = null) { return new Alert.AlertState @@ -16,36 +25,72 @@ public static class AlertExtensions }; } + /// + /// sets the category for an existing alert + /// + /// existing alert + /// new category + /// public static Alert.AlertState WithCategory(this Alert.AlertState state, Alert.AlertCategory category) { state.Category = category; return state; } + /// + /// sets the alert type for an existing alert + /// + /// existing alert + /// new type + /// public static Alert.AlertState OfType(this Alert.AlertState state, string type) { state.Type = type; return state; } + /// + /// sets the message for an existing alert + /// + /// existing alert + /// new message + /// public static Alert.AlertState WithMessage(this Alert.AlertState state, string message) { state.Message = message; return state; } + /// + /// sets the expiration duration for an existing alert + /// + /// existing alert + /// duration before expiration + /// public static Alert.AlertState ExpiresIn(this Alert.AlertState state, TimeSpan expiration) { state.ExpiresAt = DateTime.Now.Add(expiration); return state; } - + + /// + /// sets the source for an existing alert + /// + /// existing alert + /// new source + /// public static Alert.AlertState FromSource(this Alert.AlertState state, string source) { state.Source = source; return state; } + /// + /// sets the alert source to the provided client + /// + /// existing alert + /// new client + /// public static Alert.AlertState FromClient(this Alert.AlertState state, EFClient client) { state.Source = client.Name.StripColors();