Esempio n. 1
0
            private void Load(string table_name, string sql_query)
            {
                ColumnNames = new List <string>();
                Rows        = new List <DatabaseRow>();

                SqlConnection connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString); // Grab the conection string for accessing the database.

                SqlCommand command = new SqlCommand(sql_query, connection);                                                                // Associate the given sql query with the connection.

                connection.Open();

                SqlDataReader reader = command.ExecuteReader(); // Send the sql query to the database for processing.

                for (int n = 0; n < reader.FieldCount; ++n)
                {
                    ColumnNames.Add(reader.GetName(n));
                }

                while (reader.Read())   // Access each student in turn (continue until there are no students left to read).
                {
                    DatabaseRow dr = new DatabaseRow();

                    for (int column = 0; column < ColumnCount; ++column)
                    {
                        dr.Add(ColumnNames[column], reader[column].ToString());
                    }

                    Rows.Add(dr);
                }

                connection.Close();
            }
Esempio n. 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMResultRow"/> class.
 /// </summary>
 /// <param name="databaseRow">
 /// The database row.
 /// </param>
 /// <param name="result">
 /// The result.
 /// </param>
 public UPCRMResultRow(DatabaseRow databaseRow, UPCRMResult result)
 {
     this.Result          = result;
     this.databaseRow     = databaseRow;
     this.serverData      = null;
     this.serverRecordIds = null;
 }
        /// <summary>
        /// Offlines the records for request.
        /// </summary>
        /// <returns></returns>
        public List <string> OfflineRecordsForRequest()
        {
            List <string> deleteRecordArray = null;
            IDatabase     database          = this.Storage.Database;

            database.BeginTransaction();
            DatabaseRecordSet recordSet = new DatabaseRecordSet(database);

            if (recordSet.Query.Prepare("SELECT infoAreaid, recordid FROM records WHERE requestnr = ? AND mode = 'NewOffline'"))
            {
                recordSet.Query.Bind(1, (int)this.RequestNr);
                int ret = recordSet.Execute();
                if (ret == 0)
                {
                    int count = recordSet.GetRowCount();
                    if (count > 0)
                    {
                        deleteRecordArray = new List <string>();
                        for (int i = 0; i < count; i++)
                        {
                            DatabaseRow row = recordSet.GetRow(i);
                            deleteRecordArray.Add($"{row.GetColumn(0)}.{row.GetColumn(1)}");
                        }
                    }
                }
            }

            database.Commit();
            return(deleteRecordArray);
        }
        public string ResultToStringForStatement(string databaseStatement)
        {
            DatabaseRecordSet recordSet = new DatabaseRecordSet(this.Database);
            int           ret           = recordSet.Execute(databaseStatement);
            StringBuilder resultString  = new StringBuilder();

            if (ret == 0)
            {
                for (int i = 0; i < recordSet.GetColumnCount(); i++)
                {
                    resultString.Append(i == 0 ? recordSet.GetColumnName(0) : $";{recordSet.GetColumnName(i)}");
                }

                resultString.AppendLine();
                for (int i = 0; i < recordSet.GetRowCount(); i++)
                {
                    DatabaseRow row = recordSet.GetRow(i);
                    for (int j = 0; j < recordSet.GetColumnCount(); j++)
                    {
                        resultString.Append(j == 0 ? row.GetColumn(0) : $";{row.GetColumn(j)}");
                    }

                    resultString.AppendLine();
                }
            }

            return(resultString.ToString());
        }
Esempio n. 5
0
        static void searchValue(SqliteConnection connection, string query)
        {
            List <DatabaseRow> records = new List <DatabaseRow>();
            SqliteCommand      command = new SqliteCommand($"SELECT * FROM whatdoesthefoxsay WHERE Service='{query}'", connection);

            if (query == "AllServices")
            {
                command.CommandText = "SELECT * FROM whatdoesthefoxsay";
            }
            SqliteDataReader r = command.ExecuteReader();

            while (r.Read())
            {
                DatabaseRow record = new DatabaseRow();
                record.ID       = r.GetInt32(0);
                record.Service  = r.GetString(1);
                record.Password = r.GetString(2);
                records.Add(record);
            }
            Console.WriteLine($"Found {records.Count} records! \n ");
            foreach (DatabaseRow row in records)
            {
                Console.WriteLine($"ID: {row.ID} Service: {row.Service} Password: {row.Password} \n ");
            }
        }
Esempio n. 6
0
        internal Dictionary <string, DatabaseRow> FetchAllDatabaseRowsFromSpreadsheet(string familyNamesColumn)
        {
            var familyNames    = SpreadsheetHandler.GetValuesFromRange(_service, _spreadsheet.Id, $"{_spreadsheet.DatabaseSheet.Name}!{familyNamesColumn}:{familyNamesColumn}");
            var characterNames = SpreadsheetHandler.GetValuesFromRange(_service, _spreadsheet.Id, $"{_spreadsheet.DatabaseSheet.Name}!{familyNamesColumn}:{familyNamesColumn}");

            if (familyNames.Count == 0)
            {
                return(null);
            }

            var rowDictionary = new Dictionary <string, DatabaseRow>();

            for (var i = 0; i < familyNames.Count; i++)
            {
                try
                {
                    var familyName    = familyNames[i][0].ToString();
                    var characterName = characterNames[i][0].ToString();
                    var member        = new DatabaseMember(familyName, characterName);
                    var databaseRow   = new DatabaseRow(i + 1, member);
                    rowDictionary.TryAdd(familyName, databaseRow);
                }
                catch { continue; }
            }

            _spreadsheet.DatabaseSheet.DatabaseRows = rowDictionary;
            return(rowDictionary);
        }
Esempio n. 7
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMResultRow"/> class.
 /// </summary>
 /// <param name="newRecordIdentification">
 /// The new record identification.
 /// </param>
 /// <param name="result">
 /// The result.
 /// </param>
 public UPCRMResultRow(string newRecordIdentification, UPCRMResult result)
 {
     this.Result                  = result;
     this.databaseRow             = null;
     this.serverData              = null;
     this.serverRecordIds         = null;
     this.newRecordIdentification = newRecordIdentification;
 }
Esempio n. 8
0
 /// <summary>
 /// Initializes a new instance of the <see cref="UPCRMResultRow"/> class.
 /// </summary>
 /// <param name="rowServerResponse">
 /// The row server response.
 /// </param>
 /// <param name="result">
 /// The result.
 /// </param>
 public UPCRMResultRow(List <object> rowServerResponse, UPCRMResult result)
 {
     this.Result          = result;
     this.databaseRow     = null;
     this.serverData      = rowServerResponse[1] as List <object>;
     this.serverRecordIds =
         (rowServerResponse[0] as List <string> ?? (rowServerResponse[0] as List <object>)?.Cast <string>())
         ?.ToList();
 }
Esempio n. 9
0
            public DatabaseRow AddDatabaseRow(string Name)
            {
                DatabaseRow rowDatabaseRow = ((DatabaseRow)(this.NewRow()));

                rowDatabaseRow.ItemArray = new object[] {
                    Name,
                    null
                };
                this.Rows.Add(rowDatabaseRow);
                return(rowDatabaseRow);
            }
        /// <summary>
        /// Loads from database.
        /// </summary>
        /// <param name="database">The database.</param>
        /// <returns>
        /// True if success, else false
        /// </returns>
        public override bool LoadFromDatabase(IDatabase database)
        {
            if (!base.LoadFromDatabase(database))
            {
                return(false);
            }

            int ret = 0;
            DatabaseRecordSet recordSet = new DatabaseRecordSet(database);

            if (recordSet.Query.Prepare("SELECT data, filename, mimetype, infoareaid, recordid, fieldid FROM documentuploads WHERE requestnr = ?"))
            {
                recordSet.Query.Bind(1, this.RequestNr);
                ret = recordSet.Execute();
                if (ret == 0)
                {
                    int count = recordSet.GetRowCount();
                    if (count == 1)
                    {
                        DatabaseRow row           = recordSet.GetRow(0);
                        string      databaseValue = row.GetColumn(0);
                        if (databaseValue.StartsWith("file://"))
                        {
                            string lastPathComponent = databaseValue.StartsWith("file://localhost") ? Path.GetFileName(databaseValue) : databaseValue.Substring(7);

                            this.LocalFileUrl = this.Storage.GetOfflineStoragePath(lastPathComponent);

                            Task <byte[]> t = SimpleIoc.Default.GetInstance <IPlatformService>().StorageProvider.FileContents(this.LocalFileUrl);
                            this.Data = t.Result;

                            if (SimpleIoc.Default.GetInstance <ILogSettings>().LogUpSync)
                            {
                                SimpleIoc.Default.GetInstance <ILogger>().LogDebug($"Sync request {this.RequestNr}: document {this.LocalFileUrl} loaded ({this.Data.Length} bytes)", LogFlag.LogUpSync);
                            }
                        }
                        else
                        {
                            this.LocalFileUrl = null;
                            this.Data         = Convert.FromBase64String(databaseValue);
                        }

                        this.FileName = row.GetColumn(1);
                        this.MimeType = row.GetColumn(2);
                        string infoAreaId = row.GetColumn(3);
                        string recordId   = row.GetColumn(4);
                        this.RecordIdentification = StringExtensions.InfoAreaIdRecordId(infoAreaId, recordId);
                        this.FieldId = row.GetColumnInt(5);
                    }
                }
            }

            return(ret == 0 && this.Data != null);
        }
        /// <summary>
        /// Requests from result row.
        /// </summary>
        /// <param name="row">The row.</param>
        /// <returns></returns>
        public UPOfflineRequest RequestFromResultRow(DatabaseRow row)
        {
            var col  = row.GetColumnInt(0);
            var col1 = row.GetColumn(1);
            var col2 = row.GetColumn(2);

            if (col1 == null || col2 == null)
            {
                return(null);
            }

            return(this.RequestWithNrTypeProcessType(col,
                                                     (OfflineRequestType)Enum.Parse(typeof(OfflineRequestType), col1),
                                                     (OfflineRequestProcess)Enum.Parse(typeof(OfflineRequestProcess), col2)));
        }
Esempio n. 12
0
            public DatabaseRow FindRow(string field, string value)
            {
                for (int r = 0; r < RowCount; ++r)
                {
                    DatabaseRow dr = GetRow(r);

                    if (dr.ContainsField(field))
                    {
                        if (dr[field] == value)
                        {
                            return(dr);
                        }
                    }
                }

                return(null);
            }
        /// <summary>
        /// Attaches the next server request number.
        /// </summary>
        public void AttachNextServerRequestNumber()
        {
            IDatabase database = this.Storage.Database;

            database.BeginTransaction();

            DatabaseRecordSet recordSet = new DatabaseRecordSet(database);

            if (recordSet.Query.Prepare("SELECT nextRequestNumber FROM requestcontrol"))
            {
                if (recordSet.Execute() == 0)
                {
                    if (recordSet.GetRowCount() == 1)
                    {
                        DatabaseRow row = recordSet.GetRow(0);
                        this.ServerRequestNumber = row.GetColumnInt(0);
                        DatabaseStatement updateStatement = new DatabaseStatement(database);
                        if (updateStatement.Prepare("UPDATE requestcontrol SET nextRequestNumber = ?"))
                        {
                            updateStatement.Bind(1, this.ServerRequestNumber + 1);
                            if (updateStatement.Execute() != 0)
                            {
                                this.ServerRequestNumber = -1;
                            }
                        }

                        if (this.RequestNr > 0)
                        {
                            updateStatement = new DatabaseStatement(database);
                            if (updateStatement.Prepare("UPDATE requests SET serverRequestNumber = ? WHERE requestnr = ?"))
                            {
                                updateStatement.Bind(1, this.ServerRequestNumber);
                                updateStatement.Bind(2, this.RequestNr);
                                updateStatement.Execute();
                            }
                        }
                    }
                    else
                    {
                        this.ServerRequestNumber = -1;
                    }
                }
            }

            database.Commit();
        }
Esempio n. 14
0
        internal DatabaseRow GetRowOfValue(string value, IList <IList <object> > columnValues)
        {
            DatabaseRow row       = null;
            int         rowNumber = 0;

            for (int i = 0; i < columnValues.Count; i++)
            {
                var columnValuesFlattened = columnValues[i];
                if (columnValuesFlattened.Count == 0)
                {
                    continue;
                }
                if (columnValuesFlattened[0].ToString() == value)
                {
                    rowNumber = i + 1;
                    row       = new DatabaseRow(rowNumber, _spreadsheet.DatabaseSheet.DatabaseRows.FirstOrDefault(x => x.Value.RowNumber == rowNumber).Value.Member);
                    break;
                }
            }
            return(row);
        }
Esempio n. 15
0
        //Function to query DB and return an array of rows
        public override DatabaseRow[] ExecuteQuery(string query, params QueryParameter[] parameters)
        {
            try {
                using (MySqlConnection connection = new MySqlConnection(connectionString)) {
                    using (MySqlCommand command = new MySqlCommand(query, connection)) {
                        foreach (QueryParameter parameter in parameters)
                        {
                            command.Parameters.AddWithValue(parameter.name, parameter.obj);
                        }

                        connection.Open();

                        using (MySqlDataReader reader = command.ExecuteReader()) {
                            int fieldCount          = reader.FieldCount;
                            List <DatabaseRow> rows = new List <DatabaseRow> ();

                            while (reader.Read())
                            {
                                //For each row create a DatabaseRow
                                DatabaseRow row = new DatabaseRow();

                                //And add each field to it
                                for (int i = 0; i < fieldCount; i++)
                                {
                                    row.Add(reader.GetName(i), reader.GetValue(i));
                                }

                                //Add it to the rows
                                rows.Add(row);
                            }

                            return(rows.ToArray());
                        }
                    }
                }
            }
            catch (MySqlException e) {
                throw new DatabaseException(e.Message, e);
            }
        }
Esempio n. 16
0
        /// <summary>
        /// Loads this instance.
        /// </summary>
        /// <returns></returns>
        private int Load()
        {
            CRMDatabase       database  = this.DataStore.DatabaseInstance;
            DatabaseRecordSet recordSet = new DatabaseRecordSet(database);
            int ret = recordSet.Execute("SELECT infoareaid, recordid, rollbackinfo FROM rollbackinfo WHERE requestnr = ?", this.RequestId);

            if (ret != 0)
            {
                return(ret);
            }

            int rowCount = recordSet.GetRowCount();

            for (int i = 0; i < rowCount; i++)
            {
                DatabaseRow row = recordSet.GetRow(i);
                string      recordIdentification = $"{row.GetColumn(0)}.{row.GetColumn(1)}";
                var         rollbackinfo         = row.GetColumn(2);
                this.AddRecordIdentificationRollbackInfo(recordIdentification, rollbackinfo);
            }

            return(0);
        }
        public void TradingLib_DatabaseConnector_InsertSelectRemoveTest()
        {
            DatabaseRow expectedDatabaseRow = new DatabaseRow(1, 2, 3, 4, 5, 6, 7);

            DBC.InsertIntoDatabase(expectedDatabaseRow);             // Inserts unlikely values into the database
            List <DatabaseRow> values = DBC.SelectAllFromDatabase(); // Selects every row from the database

            bool hasBeenFound = false;                               // False until found

            string sql = "DELETE FROM prices WHERE " +
                         "date=1 AND " +
                         "price=2 AND " +
                         "bid_v=3 AND " +
                         "ask_v=4 AND " +
                         "change_perc=5 AND " +
                         "high=6 AND " +
                         "low=7;";              // Create sql to delete the row

            foreach (DatabaseRow row in values) // Iterates through every row
            {
                if (row.data[0] == 1 &
                    row.data[1] == 2 &
                    row.data[2] == 3 &
                    row.data[3] == 4 &
                    row.data[4] == 5 &
                    row.data[5] == 6 &
                    row.data[6] == 7)                                               // If the row is the values previously inserted
                {
                    hasBeenFound = true;                                            // Test is passed
                    SQLiteCommand command = new SQLiteCommand(sql, DBC.connection); // Create the command
                    command.ExecuteNonQuery();                                      // Execute the command
                }
            }

            Assert.IsTrue(hasBeenFound);
        }
 public DatabaseRowChangeEvent(DatabaseRow row, global::System.Data.DataRowAction action) {
     this.eventRow = row;
     this.eventAction = action;
 }
        /// <summary>
        /// 	Executes a query on the database returning an array of rows.
        /// </summary>
        /// <returns>The rows of the database selected.</returns>
        /// <param name="query">The query.</param>
        /// <param name="paramaters">The paramaters to be added to this query.</param>
        public override DatabaseRow[] ExecuteQuery(string query, params QueryParameter[] parameters)
        {
            try
            {
                using (MySqlConnection connection = new MySqlConnection (connectionString))
                {
                    using (MySqlCommand command = new MySqlCommand (query, connection))
                    {
                        foreach (QueryParameter parameter in parameters)
                            command.Parameters.AddWithValue(parameter.name, parameter.obj);

                        connection.Open();
                        using (MySqlDataReader reader = command.ExecuteReader())
                        {
                            int fieldCount = reader.FieldCount;
                            List<DatabaseRow> rows = new List<DatabaseRow> ();

                            while (reader.Read())
                            {
                                //For each row create a DatabaseRow
                                DatabaseRow row = new DatabaseRow();

                                //And add each field to it
                                for (int i = 0; i < fieldCount; i++)
                                {
                                    row.Add(
                                        reader.GetName(i),
                                        reader.GetValue(i)
                                    );
                                }

                                //Add it to the rows
                                rows.Add(row);
                            }

                            return rows.ToArray();
                        }
                    }
                }
            }
            catch(MySqlException e)
            {
                throw new DatabaseException(e.Message, e);
            }
        }
Esempio n. 20
0
        internal Dictionary <string, DatabaseField> GetDatabaseFieldsFromConsecutiveColumns(DatabaseSheet sheet, Dictionary <string, DatabaseColumn> columns, DatabaseRow row)
        {
            var databaseFields = new Dictionary <string, DatabaseField>();

            foreach (var column in columns)
            {
                var databaseField = new DatabaseField(sheet, column.Value, row);
                databaseFields.TryAdd(column.Key, databaseField);
            }
            return(databaseFields);
        }
Esempio n. 21
0
        /// <summary>
        /// Checks the update before cache save with database.
        /// </summary>
        /// <param name="database">The database.</param>
        /// <returns>0, if success, else error number</returns>
        private int CheckUpdateBeforeCacheSaveWithDatabase(DatabaseBase database)
        {
            UPCRMTableInfo tableInfo       = this.UndoRequest.DataStore.TableInfoForInfoArea(this.RecordIdentification.InfoAreaId());
            StringBuilder  selectStatement = new StringBuilder();

            selectStatement.Append("SELECT ");
            bool first = true;

            List <string> allColumns = this.FieldDictionary.Keys.ToList();

            foreach (string columnName in allColumns)
            {
                if (first)
                {
                    first = false;
                }
                else
                {
                    selectStatement.Append(", ");
                }

                selectStatement.Append(columnName);
            }

            if (first)
            {
                selectStatement.Append("recid");
            }

            selectStatement.Append($" FROM {tableInfo.DatabaseTableName} WHERE recid = ?");
            CRMDatabase       db = this.UndoRequest.DataStore.DatabaseInstance;
            DatabaseRecordSet rs = new DatabaseRecordSet(db);

            if (!rs.Query.Prepare(selectStatement.ToString()))
            {
                return(-1);
            }

            rs.Query.Bind(1, this.RecordIdentification.RecordId());
            int ret = rs.Execute();

            if (ret != 0)
            {
                return(ret);
            }

            int rc = rs.GetRowCount();

            if (rc == 0)
            {
                this.Mode          = "UpdateNew";
                this.UndoOperation = "Delete";
                return(0);
            }

            if (rc > 1)
            {
                return(-1);
            }

            this.UndoOperation = "Update";
            int         colIndex = 0;
            DatabaseRow row      = rs.GetRow(0);

            foreach (string col in allColumns)
            {
                string v = row.GetColumn(colIndex++);
                if (v != null)
                {
                    UPCRMUndoField undoField = this.FieldDictionary[col];
                    undoField.OldValue = v;
                }
            }

            return(0);
        }
        /// <summary>
        /// Loads from database.
        /// </summary>
        /// <param name="database">The database.</param>
        /// <returns>True if success, else false</returns>
        public virtual bool LoadFromDatabase(IDatabase database)
        {
            DatabaseRecordSet recordSet = new DatabaseRecordSet(database);
            string            sql       = @"SELECT json, error, errorcode, response, titleLine, detailsLine, imageName, serverRequestNumber, servertime, 
                           sessionid, translationkey, relatedInfo, baseerror, appversion, errorstack FROM requests WHERE requestnr = ?";

            recordSet.Query.Prepare(sql);
            recordSet.Query.Bind(1, this.RequestNr);
            int ret = recordSet.Execute();

            if (ret == 0 && recordSet.GetRowCount() > 0)
            {
                this.Loaded = true;
                DatabaseRow row = recordSet.GetRow(0);
                this.Json           = row.GetColumn(0);
                this.blockExecution = false;

                if (!row.IsNull(1))
                {
                    string cError = row.GetColumn(1);
                    if (cError == Constants.OFFLINEREQUEST_BLOCKED_TEXT)
                    {
                        this.blockExecution = true;
                    }

                    this.Error = row.GetColumn(1);
                }

                this.Code = row.GetColumnInt(2, -1);
                if (!row.IsNull(3))
                {
                    this.Response = row.GetColumn(3);
                }

                if (!row.IsNull(4))
                {
                    this.titleLine = row.GetColumn(4);
                }

                if (!row.IsNull(5))
                {
                    this.detailsLine = row.GetColumn(5);
                }

                if (!row.IsNull(6))
                {
                    this.imageName = row.GetColumn(6);
                }

                if (!row.IsNull(7))
                {
                    this.ServerRequestNumber = row.GetColumnInt(7);
                }

                if (!row.IsNull(8))
                {
                    this.ServerDateTime = row.GetColumn(8);
                }

                if (!row.IsNull(9))
                {
                    this.ServerSessionId = row.GetColumn(9);
                }

                if (!row.IsNull(10))
                {
                    this.ErrorTranslationKey = row.GetColumn(10);
                }

                if (!row.IsNull(11))
                {
                    string _relatedInfo = row.GetColumn(11);
                    this.RelatedInfoDictionary = _relatedInfo.JsonDictionaryFromString();
                }

                if (!row.IsNull(12))
                {
                    this.BaseErrorCode = row.GetColumnInt(12);
                }

                if (!row.IsNull(13))
                {
                    this.ApplicationVersion = row.GetColumn(13);
                }

                if (!row.IsNull(14))
                {
                    this.ErrorStack = row.GetColumn(14);
                }
                return(true);
            }

            return(false);
        }
 public void AddDatabaseRow(DatabaseRow row) {
     this.Rows.Add(row);
 }
 public void RemoveDatabaseRow(DatabaseRow row) {
     this.Rows.Remove(row);
 }
Esempio n. 25
0
            public LookUpTableRow AddLookUpTableRow(string Name, string WhereClause, bool UseAsFullSelect, DatabaseRow parentDatabaseRowByDatabase_LookUpTable)
            {
                LookUpTableRow rowLookUpTableRow = ((LookUpTableRow)(this.NewRow()));

                rowLookUpTableRow.ItemArray = new object[] {
                    Name,
                    WhereClause,
                    UseAsFullSelect,
                    parentDatabaseRowByDatabase_LookUpTable[1]
                };
                this.Rows.Add(rowLookUpTableRow);
                return(rowLookUpTableRow);
            }
Esempio n. 26
0
 public DatabaseRowChangeEvent(DatabaseRow row, DataRowAction action)
 {
     this.eventRow    = row;
     this.eventAction = action;
 }
Esempio n. 27
0
 public void RemoveDatabaseRow(DatabaseRow row)
 {
     this.Rows.Remove(row);
 }
Esempio n. 28
0
 public void AddDatabaseRow(DatabaseRow row)
 {
     this.Rows.Add(row);
 }