/// <summary> /// Adds a token to the waitlist. /// </summary> /// <param name="clientId">clientId: ID_A</param> /// <param name="hashedToken">hashed token</param> /// <param name="loginLog">Log-Object</param> public static void AddToWaitList(string clientId, string hashedToken, LoginLog loginLog) { if (String.IsNullOrEmpty(clientId) || String.IsNullOrEmpty(hashedToken) || loginLog == null) throw new ArgumentException("No null values or empty strings allowed."); hashedToken = hashedToken.ToUpper(); // sets overridden log to success: false. if (Items.ContainsKey(clientId)) { Repository.SetLoginSuccess(Items[clientId].LoginLog, false); } // will override old entry Items[clientId] = new WaitlistItem { HashedToken = hashedToken, LoginLog = loginLog }; // Start Timer Timer removeTimer = new Timer {Interval = Timeframe}; removeTimer.Elapsed += (sender, e) => RemoveFromWaitlist(sender, e, clientId); removeTimer.Enabled = true; }
protected bool Equals(WaitlistItem other) { return string.Equals(HashedToken, other.HashedToken) && Equals(LoginLog, other.LoginLog); }