public static IAsyncOperation <string> executeSql(long connectionId, [ReadOnlyArray()] object[] args)
        {
            return(Task.Run <string>(() =>
            {
                try
                {
                    var query = (string)args[0];
                    var queryParams = (object[])args[1];

                    var connection = SQLiteConnectionManager.GetConnecionById(connectionId);

                    var cmd = connection.CreateCommand(query, queryParams);
                    List <Dictionary <string, object> > rows = cmd.ExecuteQuery <Dictionary <string, object> >();

                    var resultSet = new SqlResultSet();
                    for (var i = 0; i < rows.Count; i++)
                    {
                        resultSet.Rows.Add(ReadResultSetRow(rows[i]));
                    }

                    resultSet.RowsAffected = SQLite3.Changes(connection.Handle);
                    resultSet.InsertId = SQLite3.LastInsertRowid(connection.Handle);
                    return Serialize(typeof(SqlResultSet), resultSet);
                }
                catch (Exception ex)
                {
                    // You can't access the original message text from JavaScript code.
                    // http://msdn.microsoft.com/en-US/library/windows/apps/br230301.aspx#ThrowingExceptions
                    // so we return it via custom object
                    return Serialize(typeof(InvocationError), new InvocationError(ex));
                }
            }).AsAsyncOperation());
        }
 public static string Disconnect(long connectionId)
 {
     try
     {
         SQLiteConnectionManager.CloseConnection(connectionId);
     }
     catch (Exception ex)
     {
         return(Serialize(typeof(InvocationError), new InvocationError(ex)));
     }
     return("{}");
 }
        public static string Connect(string dbName)
        {
            var result = new ConnectionInfo();

            try
            {
                result.Id = SQLiteConnectionManager.CreateConnection(dbName);;
            }
            catch (Exception ex)
            {
                return(Serialize(typeof(InvocationError), new InvocationError(ex)));
            }

            return(Serialize(typeof(ConnectionInfo), result));
        }