コード例 #1
0
 /// <summary>
 /// On va répondre au client
 /// mais avant, nous devons tracer cette demande
 /// en informant Syslog
 /// </summary>
 private void LogResponse()
 {
     Services.WriteOperationStatusToLog(GetUser(),
                                        String.Format(" and provided {0}.", ArgsChecker.GuessTokenType(GetUser(), GetInputValue()) == ArgsChecker.TOKEN_UNKNOWN ? CreditCardVerifier.TruncatePan(GetInputValue()) : GetInputValue()),
                                        String.Format(".The following values were returned to user : {0}", GetValueMessage()),
                                        String.Format(".Unfortunately, the process failed for the following reason: {0}", GetExceptionMessage()),
                                        IsError(),
                                        GetDuration());
 }
コード例 #2
0
        public string BuildBulkInsertSql(List <PoolEntry <object[]> > rows)
        {
            const string rowSeparator = ",\r\n";

            ArgsChecker.CheckForNull <ArgumentNullException>(rows, () => ArgsChecker.EArgs(nameof(rows)));
            ArgsChecker.CheckForNull <InvalidOperationException>(ColumnNames, () => ArgsChecker.EArgs("ColumnNames can't be null"));
            if (TableName == string.Empty)
            {
                throw new InvalidOperationException("TableName can't be blank");
            }
            if (LiteralParamBinding && ColumnNameToMetadataIndexMap == null)
            {
                throw new InvalidOperationException("ColumnNameToMetadataIndexMap can't be null");
            }

            var stringBuilder = new StringBuilder($"INSERT INTO {TableName}\r\n(");

            foreach (var columnName in ColumnNames)
            {
                stringBuilder.Append($"\"{columnName}\",");
            }
            stringBuilder.Remove(stringBuilder.Length - 1, 1);
            stringBuilder.Append(") VALUES\r\n");
            for (var i = 0; i < rows.Count; i++)
            {
                stringBuilder.Append("(");
                if (!LiteralParamBinding)
                {
                    var columnIndex = 0;
                    foreach (var dummy in ColumnNames)
                    {
                        stringBuilder.Append($"{ParamIndicator}P{columnIndex++}_{i},");
                    }
                }
                else
                {
                    foreach (var column in ColumnNameToMetadataIndexMap)
                    {
                        stringBuilder.Append(_getNativeValueAsSqlString(column.Value >= 0 ? rows[i].Value[column.Value] : DBNull.Value) + ",");
                    }
                }

                stringBuilder.Remove(stringBuilder.Length - 1, 1);
                stringBuilder.Append($"){rowSeparator}");
                if (SingleParamSetInsertStatement)
                {
                    break;
                }
            }
            stringBuilder.Remove(stringBuilder.Length - rowSeparator.Length, rowSeparator.Length);

            return(stringBuilder.ToString());
        }
コード例 #3
0
        private void LogRequest()
        {
            if (!this.requestLogged)
            {
                Logger.WriteInformationToLog(String.Format("(login = {0}, IP¨= {1}) is calling {2} and provided {3}",
                                                           GetUser().GetLogin(), GetUser().GetClientIP(), UserInfo.GetApplicationName(GetUser().GetApplication()),
                                                           ArgsChecker.IsValidToken(GetUser(), GetInputValue()) ? GetInputValue() : CreditCardVerifier.TruncatePan(GetInputValue())));

                // request logged
                this.requestLogged = true;
            }
        }
コード例 #4
0
        /// <summary>
        /// Validate arguments
        /// We need at least POS and Comcocode
        /// </summary>
        public void ValidateArguments()
        {
            // Correct POS
            this.argPos = Util.CorrectPos(GetUser(), GetArgPos());

            // sanity check for comcode
            // it's mandatory
            ArgsChecker.ValidateComCode(GetUser(), GetArgComcode(), true);

            // Sanity check for Cost center id, not mandatory
            ArgsChecker.ValidateCostCenterId(GetUser(), GetArgCostCenter(), false);

            // Sanity check for traveler, not mandatory
            ArgsChecker.ValidatePerCode(GetUser(), GetArgPercode(), false);

            // validate service list
            Util.CorrectService(GetUser(), GetArgService());
        }
コード例 #5
0
        public override void Prepare()
        {
            ArgsChecker.CheckForNull <NullReferenceException>(ColumnMetadatas, () => ArgsChecker.EArgs(nameof(ColumnMetadatas)));

            base.Prepare();

            var regExPattern    = "^";
            var currentColumnId = 0;

            while (currentColumnId++ < ColumnMetadatas.Count)
            {
                regExPattern += $"(.*){Delimiter}";
            }
            regExPattern  = regExPattern.Remove(regExPattern.Length - Delimiter.Length, Delimiter.Length);
            regExPattern += "$";
            RegexParser   = new Regex(regExPattern, RegexOptions.Compiled | RegexOptions.CultureInvariant);

            _prepared = true;
        }
コード例 #6
0
        public override void Prepare()
        {
            ArgsChecker.CheckForNull <NullReferenceException>(ColumnMetadatas, () => ArgsChecker.EArgs(nameof(ColumnMetadatas)));

            base.Prepare();

            var regExPattern    = "^";
            var prevPosition    = 0;
            var prevColumnSize  = 0;
            var currentColumnId = 0;

            foreach (var columnMeta in ColumnMetadatas)
            {
                if (columnMeta.ColumnSize == null)
                {
                    throw new NullReferenceException($"{nameof(columnMeta.ColumnSize)}[{currentColumnId}]");
                }

                var currentPosition = columnMeta.StartPosition ?? prevPosition + prevColumnSize;
                if (currentPosition < prevPosition + prevColumnSize)
                {
                    throw new DataPipelineException("Field position can't be < than previous field position + previous column size");
                }
                if (currentPosition > prevPosition + prevColumnSize)
                {
                    regExPattern += $".{{{currentPosition - prevPosition - prevColumnSize}}}";
                }
                regExPattern  += $"(.{{{columnMeta.ColumnSize}}})";
                prevPosition   = currentPosition;
                prevColumnSize = (int)columnMeta.ColumnSize;
                currentColumnId++;
            }

            regExPattern += "$";
            RegexParser   = new Regex(regExPattern, RegexOptions.Compiled | RegexOptions.CultureInvariant);

            _prepared = true;
        }
コード例 #7
0
        public string BuildBulkSql(
            string sqlCommandText,
            List <PoolEntry <object[]> > rows,
            bool paramsAsList)
        {
            ArgsChecker.CheckForNull <ArgumentNullException>(rows, () => ArgsChecker.EArgs(nameof(rows)));
            ArgsChecker.CheckForNull <InvalidOperationException>(ColumnNames, () => ArgsChecker.EArgs("ColumnNames can't be null"));
            if (LiteralParamBinding && ColumnNameToMetadataIndexMap == null)
            {
                throw new InvalidOperationException("ColumnNameToMetadataIndexMap can't be null");
            }

            var stringBuilder = new StringBuilder(!paramsAsList ? "SELECT " : "");

            var columnNumber = 0;

            if (!paramsAsList)
            {
                if (!LiteralParamBinding)
                {
                    foreach (var columnName in ColumnNames)
                    {
                        stringBuilder.Append($"{ParamIndicator}P{columnNumber++}_0 \"{columnName}\",");
                    }
                }
                else
                {
                    foreach (var column in ColumnNameToMetadataIndexMap)
                    {
                        stringBuilder.Append($"{_getNativeValueAsSqlString(column.Value >= 0 ? rows[0].Value[column.Value] : DBNull.Value)} \"{column.Key}\",");
                    }
                }

                stringBuilder.Remove(stringBuilder.Length - 1, 1);
                stringBuilder.Append($" {InternalSelectSuffix} ");
            }

            for (var i = paramsAsList ? 0 : 1; i < rows.Count; i++)
            {
                stringBuilder.Append(!paramsAsList ? "\r\nUNION ALL\r\nSELECT " : "");
                if (!LiteralParamBinding)
                {
                    columnNumber = 0;
                    foreach (var dummy in ColumnNames)
                    {
                        stringBuilder.Append($"{ParamIndicator}P{columnNumber++}_{i},");
                    }
                }
                else
                {
                    foreach (var column in ColumnNameToMetadataIndexMap)
                    {
                        stringBuilder.Append(_getNativeValueAsSqlString(column.Value >= 0 ? rows[i].Value[column.Value] : DBNull.Value) + ",");
                    }
                }

                if (!paramsAsList || i == rows.Count - 1)
                {
                    stringBuilder.Remove(stringBuilder.Length - 1, 1);
                }
                if (!paramsAsList)
                {
                    stringBuilder.Append($" {InternalSelectSuffix} ");
                }
            }

            var newSqlCommandText = Regex.Replace(sqlCommandText,
                                                  @"(\/\*\<DATA\>\*\/.*?\/\*\<\/DATA\>\*\/)|@@@Parameters|@@@Params",
                                                  stringBuilder.ToString(),
                                                  RegexOptions.Compiled | RegexOptions.Singleline);

            return(newSqlCommandText);
        }
        public void RetriveAValidURLIsInMultipleArgs()
        {
            var args = new string[] { "https://blog.codinghorror.com/", "", "Hello" };

            Assert.AreEqual(ArgsChecker.ExtractURLFromConsoleArguments(args), "https://blog.codinghorror.com/");
        }
        public void RetriveAValidURLIsNotInArgs()
        {
            var args = new string[] { "" };

            Assert.AreEqual(ArgsChecker.ExtractURLFromConsoleArguments(args), "");
        }
        public void AValidURLIsNotInArgs()
        {
            var args = "";

            Assert.IsFalse(ArgsChecker.ValidateURL(args));
        }
        public void AValidURLIsInArgs()
        {
            var args = "https://blog.codinghorror.com/";

            Assert.IsTrue(ArgsChecker.ValidateURL(args));
        }
 public void AreTheyArgsNull()
 {
     string[] args = null;
     Assert.IsFalse(ArgsChecker.ValidateConsoleArguments(args));
 }
        public void AreThereAnyArgsPassedInOneArgs()
        {
            var args = new string[] { "" };

            Assert.IsTrue(ArgsChecker.ValidateConsoleArguments(args));
        }