public static BusinessDataTable GetData(string tableName, string sortIndex, string sortOrder, long pageIndex, long pageSize, string filter, BusinessISGDatabaseType databaseType)
 {
     var database = Mapper.Map<BusinessISGDatabaseType, Data.Enumerations.DALISGDatabaseType>(databaseType);
     var dalTable = DynamicEntity.GetData(tableName, sortIndex, sortOrder, pageIndex, pageSize, filter, database);
     var rtrn = Mapper.Map<DALDataTable, BusinessDataTable>(dalTable);
     return rtrn;
 }
        public static bool UpdateRow(string tableName, BusinessDataTableRowMetaData row, BusinessISGDatabaseType databaseType)
        {
            row.Cells.ForEach(cell => cell.Value = cell.Value.ToString().Replace("'", "''"));

            var database = Mapper.Map<BusinessISGDatabaseType, Data.Enumerations.DALISGDatabaseType>(databaseType);
            var rtrn = DynamicEntity.UpdateRow(tableName, Mapper.Map<BusinessDataTableRowMetaData, DALDataTableRowMetaData>(row), database);
            return rtrn;
        }
        public static void BulkInsert(DataTable changeTable, BusinessDataTableMetaData metaData, string tableName, BusinessISGDatabaseType databaseType)
        {
            var columns = new List<BusinessDataTableColumn>();
            // ReSharper disable once LoopCanBeConvertedToQuery
            foreach (DataColumn column in changeTable.Columns)
            {
                var selectedColumn = metaData.Columns.FirstOrDefault(x => string.Equals(x.ExcelColumn, column.ColumnName, StringComparison.CurrentCultureIgnoreCase));

                var isNullable = (selectedColumn == null || selectedColumn.IsNullable);
                var typeName = (selectedColumn != null) ? selectedColumn.StrongType.ToString() : column.DataType.ToString();
                var length = (selectedColumn == null || selectedColumn.Length == 0) ? Convert.ToInt16(-1) : selectedColumn.Length;
                
                var columnName = (selectedColumn != null) ? selectedColumn.Name : column.ColumnName;
                columns.Add(
                    new BusinessDataTableColumn
                    {
                        Name = columnName,
                        IsNullable = isNullable,
                        TypeName = typeName,
                        Length = length
                    });
            }

            var rows = new List<BusinessDataTableRow>();
            foreach (DataRow row in changeTable.Rows)
            {
                var cells = new List<BusinessDataTableCell>();
                // ReSharper disable once LoopCanBeConvertedToQuery
                foreach (var column in columns)
                {
                    var selectedColumn = metaData.Columns.FirstOrDefault(x => string.Equals(x.Name, column.Name, StringComparison.CurrentCultureIgnoreCase));
                    var columnName = (selectedColumn != null && !string.IsNullOrEmpty(selectedColumn.ExcelColumn)) ? selectedColumn.ExcelColumn : column.Name;
                    cells.Add(
                        new BusinessDataTableCell
                        {
                            ColumnName = column.Name,
                            Value = row[columnName].ToString()
                        });
                }

                rows.Add(
                    new BusinessDataTableRow
                    {
                        Cells = cells
                    });
            }

            var businessDataTable =
                new BusinessDataTable
                {
                    Name = tableName,
                    Columns = columns,
                    Rows = rows
                };

            var database = Mapper.Map<BusinessISGDatabaseType, DALISGDatabaseType>(databaseType);
          
            var dalDataTable = Mapper.Map<BusinessDataTable, DALDataTable>(businessDataTable);
            DynamicEntity.BulkInsert(dalDataTable, database);
        }
 public static List<string> GetDistinctValues(string tableName, string columnName, BusinessISGDatabaseType databaseType)
 {
     var database = Mapper.Map<BusinessISGDatabaseType, Data.Enumerations.DALISGDatabaseType>(databaseType);
     var rtrn = DynamicEntity.GetDistinctValues(tableName, columnName, database);
     return rtrn;
 }
 public static long GetRowCount(string tableName, string filter, BusinessISGDatabaseType databaseType)
 {
     var database = Mapper.Map<BusinessISGDatabaseType, Data.Enumerations.DALISGDatabaseType>(databaseType);
     var rtrn = DynamicEntity.GetRowCount(tableName, filter, database);
     return rtrn;
 }