Skip to content

Commit

Permalink
More comments
Browse files Browse the repository at this point in the history
  • Loading branch information
versx committed Dec 14, 2020
1 parent 5b21c2c commit abc3ea7
Showing 1 changed file with 53 additions and 7 deletions.
60 changes: 53 additions & 7 deletions src/Data/Subscriptions/SubscriptionManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
using WhMgr.Data.Subscriptions.Models;
using WhMgr.Diagnostics;

/// <summary>
/// User subscription manager class
/// </summary>
public class SubscriptionManager
{
#region Variables
Expand All @@ -29,6 +32,9 @@ public class SubscriptionManager

#region Properties

/// <summary>
/// Gets all current user subscriptions
/// </summary>
public IReadOnlyList<SubscriptionObject> Subscriptions => _subscriptions;

#endregion
Expand Down Expand Up @@ -64,22 +70,22 @@ public SubscriptionManager(WhConfig whConfig)

// Reload subscriptions every 60 seconds to account for UI changes
_reloadTimer = new Timer(_whConfig.ReloadSubscriptionChangesMinutes * 60 * 1000);
_reloadTimer.Elapsed += OnReloadTimerElapsed;
_reloadTimer.Elapsed += (sender, e) => ReloadSubscriptions();
_reloadTimer.Start();

ReloadSubscriptions();
}

private void OnReloadTimerElapsed(object sender, ElapsedEventArgs e)
{
// TODO: Only reload based on last_changed timestamp in metadata table
ReloadSubscriptions();
}

#endregion

#region User

/// <summary>
/// Get user subscription from guild id and user id
/// </summary>
/// <param name="guildId">Discord guild id to lookup</param>
/// <param name="userId">Discord user id to lookup</param>
/// <returns>Returns user subscription object</returns>
public SubscriptionObject GetUserSubscriptions(ulong guildId, ulong userId)
{
if (!IsDbConnectionOpen())
Expand All @@ -104,6 +110,11 @@ public SubscriptionObject GetUserSubscriptions(ulong guildId, ulong userId)
}
}

/// <summary>
/// Get user subscriptions from subscribed Pokemon id
/// </summary>
/// <param name="pokeId">Pokemon ID to lookup</param>
/// <returns>Returns list of user subscription objects</returns>
public List<SubscriptionObject> GetUserSubscriptionsByPokemonId(int pokeId)
{
return _subscriptions?
Expand All @@ -114,6 +125,11 @@ public List<SubscriptionObject> GetUserSubscriptionsByPokemonId(int pokeId)
.ToList();
}

/// <summary>
/// Get user subscriptions from subscribed PvP Pokemon id
/// </summary>
/// <param name="pokeId">Pokemon ID to lookup</param>
/// <returns>Returns list of user subscription objects</returns>
public List<SubscriptionObject> GetUserSubscriptionsByPvPPokemonId(int pokeId)
{
return _subscriptions?
Expand All @@ -124,6 +140,11 @@ public List<SubscriptionObject> GetUserSubscriptionsByPvPPokemonId(int pokeId)
.ToList();
}

/// <summary>
/// Get user subscriptions from subscribed Raid Pokemon id
/// </summary>
/// <param name="pokeId">Pokemon ID to lookup</param>
/// <returns>Returns list of user subscription objects</returns>
public List<SubscriptionObject> GetUserSubscriptionsByRaidBossId(int pokeId)
{
return _subscriptions?
Expand All @@ -134,6 +155,11 @@ public List<SubscriptionObject> GetUserSubscriptionsByRaidBossId(int pokeId)
.ToList();
}

/// <summary>
/// Get user subscriptions from subscribed Quest reward keyword
/// </summary>
/// <param name="reward">Ques reward keyword</param>
/// <returns>Returns list of user subscription objects</returns>
public List<SubscriptionObject> GetUserSubscriptionsByQuestReward(string reward)
{
return _subscriptions?
Expand All @@ -144,6 +170,11 @@ public List<SubscriptionObject> GetUserSubscriptionsByQuestReward(string reward)
.ToList();
}

/// <summary>
/// Gets user subscriptions from subscribed Invasion encounter rewards
/// </summary>
/// <param name="encounterRewards">Invasion encounter rewards</param>
/// <returns>Returns list of user subscription objects</returns>
public List<SubscriptionObject> GetUserSubscriptionsByEncounterReward(List<int> encounterRewards)
{
return _subscriptions?
Expand All @@ -154,6 +185,10 @@ public List<SubscriptionObject> GetUserSubscriptionsByEncounterReward(List<int>
.ToList();
}

/// <summary>
/// Get all enabled user subscriptions
/// </summary>
/// <returns>Returns all enabled user subscription objects</returns>
public List<SubscriptionObject> GetUserSubscriptions()
{
try
Expand Down Expand Up @@ -186,8 +221,13 @@ public List<SubscriptionObject> GetUserSubscriptions()
return null;
}

/// <summary>
/// Reload all user subscriptions
/// </summary>
public void ReloadSubscriptions()
{
// TODO: Only reload based on last_changed timestamp in metadata table

var subs = GetUserSubscriptions();
if (subs == null)
return;
Expand All @@ -199,6 +239,12 @@ public void ReloadSubscriptions()

#region Remove

/// <summary>
/// Remove all user subscriptions based on guild id and user id
/// </summary>
/// <param name="guildId">Discord guild id to lookup</param>
/// <param name="userId">Discord user id to lookup</param>
/// <returns>Returns <c>true</c> if all subscriptions were removed, otherwise <c>false</c>.</returns>
public static bool RemoveAllUserSubscriptions(ulong guildId, ulong userId)
{
_logger.Trace($"SubscriptionManager::RemoveAllUserSubscription [GuildId={guildId}, UserId={userId}]");
Expand Down

0 comments on commit abc3ea7

Please sign in to comment.