Beispiel #1
0
        public async Task <IActionResult> EditData(string connectionName, string tableName, string id, int page, int tableRowIndx, string searchFields = "", string sortColumn = "", string sortDir = "")
        {
            var tableDataVM = new TableDataVM
            {
                TableList      = await _util.GetTableList(connectionName),
                TableName      = tableName,
                ConnectionName = connectionName
            };

            tableDataVM.TableGroups = await _util.GetTableGroups(tableDataVM.TableList);

            var columnList    = new List <TableColumnInfo>();
            var tableDataDict = new PagedData {
                Data = new Dictionary <int, Row>()
            };

            columnList = await _util.GetColumnInfo(connectionName, tableName);

            tableDataDict = await _util.GetTableDataList(columnList, connectionName, tableName, page);

            var row = tableDataDict.Data[tableRowIndx];
            var tableColumnInfosJson = row.TableColumnInfosJson;

            var tablemetadata = await _util.GetTableMetadata(connectionName, tableName);

            tableDataVM.SequenceName = tablemetadata.SequenceName;

            tableDataVM.ColumnList    = columnList;
            tableDataVM.TableDataList = tableDataDict;
            tableDataVM.RowData       = await _util.GetRowData(connectionName, tableName, id, tableColumnInfosJson);

            tableDataVM.TableColumnInfosJson = tableColumnInfosJson;
            tableDataVM.SortColumn           = sortColumn;
            tableDataVM.SortDir = sortDir;

            var searchFieldsArray = JsonConvert.DeserializeObject <List <SearchFieldInfo> >(searchFields);

            foreach (var field in searchFieldsArray)
            {
                tableDataVM.SearchValues[field.Name] = field.Value;
            }

            tableDataVM.SearchFields = searchFields;

            return(View(tableDataVM));
        }
Beispiel #2
0
        public async Task <IActionResult> AddConnection(CustomConnection connection)
        {
            var info = Request.Form["process"];

            Console.WriteLine(info);

            if (info == "test")
            {
                var connectionString = Util.GetConnectionString(connection);
                var oconn            = new OracleConnection(connectionString);

                oconn.Open();
                oconn.Dispose();

                ViewBag.ConnectionSuccess = "Connection Success";

                return(View(connection));
            }

            if (ModelState.IsValid)
            {
                var tableList = await _util.GetTableList(connection);

                var sequenceList = await _util.GetSequenceList(connection);

                foreach (var table in tableList)
                {
                    var tablemetadata = await _util.GetTableMetadata(connection.Name, table);

                    if (tablemetadata == null)
                    {
                        tablemetadata = new TableMetadata();
                    }

                    tablemetadata.Connection   = connection.Name;
                    tablemetadata.TableName    = table;
                    tablemetadata.SequenceName = Util.FindBestMatch(table, sequenceList);

                    if (tablemetadata.Id > 0)
                    {
                        _context.Update(tablemetadata);
                    }
                    else
                    {
                        _context.Add(tablemetadata);
                    }
                }

                if (connection.Id > 0)
                {
                    _context.Update(connection);
                }
                else
                {
                    _context.Add(connection);
                }

                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(connection));
        }