private List <List <string> > GetRecordsForSelection(string tableName)
        {
            var records = new List <List <string> >();

            var indexInfo = CheckTableCanBeRestricted(tableName).Split('|');

            if (indexInfo[0] == "WHERE")
            {
                records = SelectWithIndexWhere(indexInfo[1], tableName);
            }
            else
            {
                var keyValuePairs = MongoDB.GetEntireCollection(tableName);
                foreach (var keyValue in keyValuePairs)
                {
                    var key         = keyValue.GetElement("_id").Value.ToString().Split('#');
                    var value       = keyValue.GetElement("value").Value.ToString().Split('#');
                    var tableRecord = new List <string>();
                    tableRecord.AddRange(key);
                    tableRecord.AddRange(value);
                    records.Add(tableRecord);
                }
            }

            // Further restrict by the rest of the conditions for that table
            return(ApplyWhereConditions(records, tableName));
        }
        private void DetermineColumnsPositions(MongoDBAcess mongoDB)
        {
            var columnInfoString = DatabaseManager.FetchTableColumns(DBName, TableName);

            foreach (var info in columnInfoString.Split(';')[1].Split('|'))
            {
                ColumnsInfo.Add(new ColumnInfo(info));
            }

            var columnInfo = DatabaseManager.FetchTableColumns(DBName, TableName).Split(';')[1].Split('|');

            for (int idx = 0; idx < columnInfo.Length; idx++)
            {
                ColumnsPositions.Add(new KeyValuePair <string, int>(columnInfo[idx].Split('#')[0], idx));
            }

            var tableContent = mongoDB.GetEntireCollection(TableName);

            foreach (var record in tableContent)
            {
                var keySplit   = record.GetElement("_id").Value.ToString().Split('#');
                var valueSplit = record.GetElement("value").Value.ToString().Split('#');
                RecordsSplit.Add(keySplit.Concat(valueSplit).ToList());
            }
        }
Exemplo n.º 3
0
        private string SelectEntireTable()
        {
            try
            {
                var records       = "";
                var keyValuePairs = MongoDB.GetEntireCollection(TableName);
                foreach (var keyValue in keyValuePairs)
                {
                    records += keyValue.GetElement("_id").Value + "#" + keyValue.GetElement("value").Value + "|";
                }

                return(records);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }