예제 #1
0
        /// <summary>
        /// Clears all values in the data store. This method deletes all files in <see cref="GoogleUserCredentials"/>.
        /// </summary>
        Task IDataStore.ClearAsync()
        {
            try
            {
                foreach (var item in GoogleUserCredentials)
                {
                    GoogleUserCredentials.Remove(item);
                }
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception("Failed to clear credentials", ex);
            }

            return(Task.Delay(0));
        }
예제 #2
0
        /// <summary>
        /// Checks if the user exists <see cref="GenerateStoredKey"/>.
        /// </summary>
        private GoogleUserCredential GetUserByKey(string key)
        {
            try
            {
                var user = GoogleUserCredentials.Where(a => a.Key == key).FirstOrDefault();

                if (user != null)
                {
                    return(user);
                }

                return(null);
            }
            catch (System.Data.SqlClient.SqlException)
            {
                return(null);
            }
        }
예제 #3
0
        /// <summary>
        /// Deletes the given key. It deletes the <see cref="GenerateStoredKey"/> row in
        /// <see cref="GoogleUserCredentials"/>.
        /// </summary>
        /// <param name="key">The key to delete from the data store.</param>
        Task IDataStore.DeleteAsync <T>(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                throw new ArgumentException("Key MUST have a value");
            }

            try
            {
                var hold = GoogleUserCredentials.Where(a => a.Key == key).FirstOrDefault();
                GoogleUserCredentials.Remove(hold);
                SaveChangesAsync();
            }
            catch (System.Data.SqlClient.SqlException ex)
            {
                throw new Exception("Failed to delete credentials", ex);
            }

            return(Task.Delay(0));
        }
예제 #4
0
 /// <summary>
 /// Save the credentials.  If the user <see cref="GenerateStoredKey"/> does not exists we insert it other wise we will do an update.
 /// </summary>
 /// <param name="key"></param>
 /// <param name="serialized"></param>
 private void save(string key, string serialized)
 {
     try
     {
         var user = GoogleUserCredentials.Where(a => a.Key == key).FirstOrDefault();
         if (user == null)
         {
             var hold = new GoogleUserCredential {
                 Key = key, Credentials = serialized
             };
             GoogleUserCredentials.Add(hold);
         }
         else
         {
             var aUser = this.GoogleUserCredentials.Where(a => a.Key == key).FirstOrDefault();
             aUser.Credentials = serialized;
         }
         SaveChanges();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }