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);
        }