Beispiel #1
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            if (databaseContext == null)
            {
                throw new ArgumentNullException(nameof(databaseContext));
            }
            base.ControlContext(StringContext, databaseContext);
            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            base.ControlContextContent(TrimedStringContext);
            if (databaseContext.Table == null)
            {
                return(DefaultAutoIndexAsString);
            }
            IColumnModel         columnModel  = databaseContext.Column;
            IList <IColumnModel> parentColumn = databaseContext.Table.Columns;

            if (parentColumn == null)
            {
                return(DefaultAutoIndexAsString);
            }
            if (parentColumn.Any(m => columnModel == m))
            {
                return(parentColumn.IndexOf(columnModel).ToString());
            }
            return(DefaultAutoIndexAsString);
        }
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            if (databaseContext == null)
            {
                throw new ArgumentNullException(nameof(databaseContext));
            }
            if (StringContext == null)
            {
                throw new Exception($"The provided {nameof(StringContext)} is null");
            }
            IColumnModel columnModel = databaseContext.Column;

            if (columnModel == null)
            {
                throw new Exception($"The {nameof(ColumnModel)} is not set");
            }

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (!TrimedStringContext.Equals(""))
            {
                throw new Exception($"There is a problem with the provided {nameof(StringContext)} :'{StringContext}' to the suited word '" + (Signature) + "'");
            }
            return(columnModel.Type);
        }
Beispiel #3
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel column = databaseContext.Column;

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (!TrimedStringContext.Equals(""))
            {
                throw new Exception($"There is a problem with the provided StringContext :'{StringContext}' to the suited word '{Signature}'");
            }
            if (databaseContext.Table == null)
            {
                return(ZeroIndexAsString);
            }
            int currentIndex                = ZeroIndex;
            int currentAutoIndex            = ZeroIndex;
            IList <IColumnModel> columnList =
                databaseContext.Table.Columns;

            for (currentIndex = 0; currentIndex < columnList.Count; currentIndex++)
            {
                IColumnModel currentColumn = columnList[currentIndex];
                if (currentColumn.IsNotNull)
                {
                    if (currentColumn.Equals(column))
                    {
                        return(Convert.ToString(currentAutoIndex));
                    }
                    currentAutoIndex++;
                }
            }
            return(ZeroIndexAsString);
        }
Beispiel #4
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            if (databaseContext == null)
            {
                throw new ArgumentNullException(nameof(databaseContext));
            }
            if (StringContext == null)
            {
                throw new Exception($"The provided {StringContext} is null");
            }
            IColumnModel columnModel = databaseContext.Column;

            if (columnModel == null)
            {
                throw new Exception($"The {databaseContext.Column} is not set");
            }

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (columnModel.IsAutoGeneratedValue)
            {
                return(HandleTrimedContext(TrimedStringContext, databaseContext));
            }
            else
            {
                return("");
            }
        }
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel columnModel = databaseContext.Column;
            var          parentTable = databaseContext.Table;

            if (parentTable == null)
            {
                throw new Exception("The provided column has no parent table");
            }
            IList <IColumnModel> columnList = parentTable.Columns;

            if (columnList == null || !columnList.Any())
            {
                throw new Exception("The provided column's parent table has no column associated to");
            }

            if (columnModel.IsIndexed == false)
            {
                return(string.Empty);
            }
            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);
            var    indexedColumn       = columnList.FirstOrDefault(currentColumn => currentColumn.IsIndexed);

            if (indexedColumn == default(IColumnModel))
            {
                return(string.Empty);
            }
            if (indexedColumn.Equals(columnModel))
            {
                return(HandleTrimedContext(TrimedStringContext, databaseContext));
            }
            return(string.Empty);
        }
Beispiel #6
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel columnModel = databaseContext.Column;

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (databaseContext.Table == null)
            {
                throw new Exception("The provided column has no parent table");
            }
            IList <IColumnModel> columnList = databaseContext.Table.Columns;

            if (columnList == null || !(columnList.Count > 0))
            {
                throw new Exception("The provided column's parent table has no column associated to");
            }

            foreach (IColumnModel currentColumn in columnList)
            {
                if (!currentColumn.IsAutoGeneratedValue)
                {
                    if (currentColumn.Equals(columnModel))
                    {
                        return(HandleTrimedContext(TrimedStringContext, databaseContext));
                    }
                    else
                    {
                        return("");
                    }
                }
            }
            return("");
        }
        /// <inheritdoc />
        public IInsertStatementBuilder WithIdColumn(string columnName)
        {
            var columnModel = new ColumnModel(columnName)
            {
                DatabaseProvider = DatabaseProvider
            };

            _idColumn = columnModel;
            return(this);
        }
Beispiel #8
0
        /// <inheritdoc />
        public ISelectStatementBuilder WithColumn(IColumnModel statementColumn)
        {
            if (statementColumn == null)
            {
                throw new ArgumentNullException(nameof(statementColumn));
            }

            statementColumn.DatabaseProvider = DatabaseProvider;
            _selectColumns.Add(statementColumn);
            return(this);
        }
Beispiel #9
0
 public IDatabaseContext CopyWithOverride(IDatabaseContext copied, IColumnModel column)
 {
     return(new ProcessorDatabaseContext()
     {
         Column = column,
         ForeignKeyConstraint = copied.ForeignKeyConstraint,
         Table = copied.Table,
         ConstraintVisitorContext = copied.ConstraintVisitorContext,
         Database = copied.Database,
     });
 }
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel columnModel         = databaseContext.Column;
            string       TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (!TrimedStringContext.Equals(""))
            {
                throw new Exception($"There is a problem with the provided {nameof(StringContext)} :'{StringContext}' to the suited word '{Signature}'");
            }
            return(columnModel.Name);
        }
Beispiel #11
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel columnModel = databaseContext.Column;

            if (columnModel.IsIndexed)
            {
                return(string.Empty);
            }
            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            return(HandleTrimedContext(TrimedStringContext, databaseContext));
        }
Beispiel #12
0
        public PersistableColumnModel ToPersistable(IColumnModel converted)
        {
            var result = new PersistableColumnModel();

            result.IsAutoGeneratedValue = converted.IsAutoGeneratedValue;
            result.IsNotNull            = converted.IsNotNull;
            result.IsPrimaryKey         = converted.IsPrimaryKey;
            result.Name         = converted.Name;
            result.Type         = converted.Type;
            result.ValueMaxSize = converted.ValueMaxSize;
            result.IsIndexed    = converted.IsIndexed;
            return(result);
        }
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel columnModel         = databaseContext.Column;
            string       TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (!columnModel.IsAutoGeneratedValue)
            {
                return(HandleTrimedContext(TrimedStringContext, databaseContext));
            }
            else
            {
                return("");
            }
        }
Beispiel #14
0
        public override string HandleTrimedContext(string StringTrimedContext, IDatabaseContext databaseContext)
        {
            if (StringTrimedContext == null)
            {
                return(null);
            }
            IColumnModel columnModel = databaseContext.Column;

            if (columnModel == null)
            {
                return(StringTrimedContext);
            }
            return(TemplateHandler.
                   HandleTemplate(StringTrimedContext, databaseContext));
        }
Beispiel #15
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            if (databaseContext == null)
            {
                throw new ArgumentNullException(nameof(databaseContext));
            }
            if (StringContext == null)
            {
                throw new Exception($"The provided {nameof(StringContext)} is null");
            }
            IColumnModel columnModel = databaseContext.Column;

            if (columnModel == null)
            {
                throw new Exception($"The {nameof(ColumnModel)} is not set");
            }
            if (databaseContext.Table == null)
            {
                throw new Exception("The provided column has no parent table");
            }
            IList <IColumnModel> columnList = databaseContext.Table.Columns;

            if (columnList == null || !columnList.Any())
            {
                throw new Exception("The provided column's parent table has no column associated to");
            }

            if (columnModel.IsAutoGeneratedValue == false)
            {
                return(string.Empty);
            }
            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);
            var    indexedColumn       = columnList.FirstOrDefault(currentColumn => currentColumn.IsAutoGeneratedValue);

            if (indexedColumn == default(IColumnModel))
            {
                return(string.Empty);
            }
            if (!indexedColumn.Equals(columnModel))
            {
                return(HandleTrimedContext(TrimedStringContext, databaseContext));
            }
            return(string.Empty);
        }
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            if (databaseContext == null)
            {
                throw new ArgumentNullException(nameof(databaseContext));
            }
            if (StringContext == null)
            {
                throw new Exception($"The provided {nameof(StringContext)} is null");
            }
            IColumnModel column = databaseContext.Column;

            if (column == null)
            {
                throw new Exception($"The {nameof(ColumnModel)} is not set");
            }

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (TrimedStringContext == "")
            {
                throw new Exception("There is a problem with the function provided in template '" +
                                    (StartContext + TrimedStringContext + EndContext) +
                                    "' -> The value parameter cannot be empty");
            }
            InitConversionHandlerMap();
            if (!DestinationTypeSets.Contains(TrimedStringContext.ToLowerInvariant()))
            {
                return($"CONVERT:UNKNOWN({TrimedStringContext})");
            }
            if (conversionMap.TryGetValue(new MappingKey()
            {
                DestinationTypeSet = TrimedStringContext.ToLowerInvariant(), SourceType = column.Type
            }, out var result))
            {
                var processedResult = TemplateHandler.HandleTableColumnTemplate(result, DatabaseContextCopier.CopyWithOverride(databaseContext, column));
                return(processedResult);
            }

            return(column.Type);
        }
Beispiel #17
0
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            if (databaseContext == null)
            {
                throw new ArgumentNullException(nameof(databaseContext));
            }
            if (StringContext == null)
            {
                throw new Exception($"The provided {nameof(StringContext)} is null");
            }
            IColumnModel columnModel = databaseContext.Column;

            if (columnModel == null)
            {
                throw new Exception($"The {nameof(columnModel)} is not set");
            }

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (databaseContext.Table == null)
            {
                throw new Exception("The provided column has no parent table");
            }
            IList <IColumnModel> columnList = databaseContext.Table.Columns;

            if (columnList == null || !(columnList.Count > 0))
            {
                throw new Exception("The provided column's parent table has no column associated to");
            }
            if (columnModel.Equals(columnList[(columnList.Count - 1)]))
            {
                return(HandleTrimedContext(TrimedStringContext, databaseContext));
            }
            else
            {
                return("");
            }
        }
        public override string ProcessContext(string StringContext, IDatabaseContext databaseContext)
        {
            ControlContext(StringContext, databaseContext);
            IColumnModel descriptionPojo = databaseContext.Column;

            string TrimedStringContext = TrimContextFromContextWrapper(StringContext);

            if (databaseContext.Table == null)
            {
                throw new Exception("The provided column has no parent table");
            }
            IList <IColumnModel> columnList = databaseContext.Table.Columns;

            if (columnList == null || !(columnList.Count > 0))
            {
                throw new Exception("The provided column's parent table has no column associated to");
            }
            IColumnModel currentLastPrimaryColumn = null;

            foreach (IColumnModel currentColumn in columnList)
            {
                if (!currentColumn.IsPrimaryKey)
                {
                    currentLastPrimaryColumn = currentColumn;
                }
            }
            if (currentLastPrimaryColumn == null)
            {
                return("");
            }
            if (currentLastPrimaryColumn.Equals(descriptionPojo))
            {
                return("");
            }
            return(HandleTrimedContext(TrimedStringContext, databaseContext));
        }
 /// <inheritdoc />
 public override void Clear()
 {
     _insertTableName = string.Empty;
     _idColumn        = null;
     _insertColumns.Clear();
 }
Beispiel #20
0
 public ColumnProperties(IColumnModel model)
 {
     this.mModel = model;
 }
Beispiel #21
0
 bool IColumnModelLookup.TryGetValue(string columnName, out IColumnModel value)
 => _columnDictionary.TryGetValue(columnName?.Trim().ToLower(), out value);
Beispiel #22
0
        /// <summary>
        /// Reads a worksheet and returns a set of <see cref="List{T}"/> of the entries.
        /// <br/><br/>
        /// Must not return null.
        /// </summary>
        protected virtual IList OnReadSheet(ExcelWorksheet worksheet, ISheetModel model)
        {
            if (worksheet == null)
            {
                throw new ArgumentNullException(nameof(worksheet));
            }
            if (model == null)
            {
                throw new ArgumentNullException(nameof(model));
            }
            ExcelRange dataRange = (model.ReadRangeLocator ?? DefaultReadRangeLocator)(worksheet);

            if (dataRange == null)
            {
                //no data on sheet
                if (model.Columns.Any(x => !x.Optional))
                {
                    throw new SheetEmptyException(model.Name);
                }
                return(CreateListForSheet(model.Type));
            }
            IList data          = CreateListForSheet(model.Type, dataRange.Rows - 1);
            var   headerRow     = dataRange.Start.Row;
            var   firstCol      = dataRange.Start.Column;
            var   columns       = dataRange.Columns;
            var   firstRow      = dataRange.Start.Row + 1;
            var   lastRow       = dataRange.End.Row;
            var   columnMapping = new IColumnModel[columns];
            var   columnMapped  = new bool[model.Columns.Count];
            var   modelColumns  = model.Columns.ToList();

            for (int colIndex = 0; colIndex < columns; colIndex++)
            {
                var col  = colIndex + firstCol;
                var cell = worksheet.Cells[headerRow, col];
                if (cell.Value != null)
                {
                    var headerName = cell.Text;
                    if (model.Columns.TryGetValue(headerName, out var columnModel))
                    {
                        var columnModelIndex = modelColumns.IndexOf(columnModel);
                        if (columnMapped[columnModelIndex])
                        {
                            throw new DuplicateColumnException(columnModel.Name, model.Name);
                        }
                        columnMapped[columnModelIndex] = true;
                        columnMapping[colIndex]        = columnModel;
                    }
                }
            }

            for (int i = 0; i < model.Columns.Count; i++)
            {
                if (columnMapped[i] == false && !model.Columns[i].Optional)
                {
                    throw new ColumnMissingException(model.Columns[i].Name, model.Name);
                }
            }

            for (int row = firstRow; row <= lastRow; row++)
            {
                var range = worksheet.Cells[row, firstCol, row, firstCol + columns - 1];
                var obj   = OnReadRow(range, model, columnMapping);
                if (obj != null)
                {
                    data.Add(obj);
                }
            }

            return(data);
        }
 internal ColumnProperties(IColumnModel model)
 {
     mModel = model;
 }