/// <summary>
 /// Updates the login entry.
 /// </summary>
 /// <returns>An awaitable task.</returns>
 /// <param name="record">The record to update.</param>
 public virtual Task UpdateLoginTokenAsync(LoginEntry record)
 {
     return(ExecuteCommandAsync(
                m_updateLoginEntryCommand,
                record.Token,
                record.UserID,
                record.Username
                ));
 }
 /// <summary>
 /// Deletes a login entry from the storage
 /// </summary>
 /// <returns>An awaitable task.</returns>
 /// <param name="record">The record to drop.</param>
 public virtual Task DropLoginEntryAsync(LoginEntry record)
 {
     return(ExecuteCommandAsync(
                m_dropLoginEntryCommand,
                record.UserID,
                record.Username,
                record.Token
                ));
 }
 /// <summary>
 /// Deletes a login entry from the storage
 /// </summary>
 /// <returns>An awaitable task.</returns>
 /// <param name="record">The record to drop.</param>
 public virtual Task DropLoginEntryAsync(LoginEntry record)
 {
     return(m_lock.LockedAsync(() =>
                               m_connection.Delete <LoginEntry>(x =>
                                                                x.UserID == record.UserID &&
                                                                x.Username == record.Username &&
                                                                x.Token == record.Token
                                                                )
                               ));
 }
 /// <summary>
 /// Updates the login entry.
 /// </summary>
 /// <returns>An awaitable task.</returns>
 /// <param name="record">The record to update.</param>
 public virtual Task UpdateLoginTokenAsync(LoginEntry record)
 {
     return(m_lock.LockedAsync(() =>
                               m_connection.Update <LoginEntry>(
                                   new { record.Token },
                                   x => x.UserID == record.UserID &&
                                   x.Username == record.Username
                                   )
                               ));
 }
 /// <summary>
 /// Adds a login entry to the storage
 /// </summary>
 /// <returns>An awaitable task.</returns>
 /// <param name="record">The record to add.</param>
 public virtual Task AddLoginEntryAsync(LoginEntry record)
 {
     return(m_lock.LockedAsync(() =>
                               m_connection.InsertItem(record)
                               ));
 }