Esempio n. 1
0
        /// <summary>
        /// Merge data to the class string using a index merge, mainly used for fixed width,if the index is more than the length of the value then the padding will be applyed useing the padding character
        /// </summary>
        /// <param name="value">The value that will be merged to the class string</param>
        /// <param name="at">The numeric index that will be used during the merge</param>
        /// <param name="padding">The padding character that will be used</param>
        /// <param name="mergeAlignment">The alignment used for the padding</param>
        void IndexMergeOp(string value, string at, string padding, enMergeAlignment mergeAlignment)
        {
            if (Int32.TryParse(at, out int indexToUse))
            {
                var paddedString = string.Empty;
                var difference   = indexToUse - value.Length;
                if (difference >= 0)
                {
                    var padChar = string.IsNullOrEmpty(padding) || padding.Length < 1 ? ' ' : padding[0];
                    paddedString = paddedString.PadRight(difference, padChar);

                    if (mergeAlignment == enMergeAlignment.Left)
                    {
                        paddedString = paddedString.Insert(0, value);
                    }
                    else
                    {
                        paddedString += value;
                    }
                }
                else
                {
                    if (difference < 0)
                    {
                        paddedString = value.Substring(0, indexToUse);
                    }
                }

                MergeData.Append(paddedString);
            }
        }
        public void Merge(string value, string mergeType, string at, string padding, string align)
        {
            enMergeType      mergingType;
            enMergeAlignment mergeAlignment = enMergeAlignment.Left;

            switch (mergeType)
            {
            case "Index":
                switch (align)
                {
                case "Left":
                    mergeAlignment = enMergeAlignment.Left;
                    break;

                case "Right":
                    mergeAlignment = enMergeAlignment.Right;
                    break;
                }
                mergingType = enMergeType.Index;
                break;

            case "Tab":
                mergingType = enMergeType.Tab;
                break;

            case "New Line":
                mergingType = enMergeType.NewLine;
                break;

            case "Chars":
                mergingType = enMergeType.Char;
                break;

            case "None":
                mergingType = enMergeType.None;
                break;

            default:
                throw new Exception("Error In Dev2MergeOperations");
            }
            Merge(value, mergingType, at, padding, mergeAlignment);
        }
        /// <summary>
        /// Merges the specified value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="mergeType">Type of the merge.</param>
        /// <param name="at">At.</param>
        /// <param name="padding">The padding.</param>
        /// <param name="mergeAlignment">The merge alignment.</param>
        /// <exception cref="System.ArgumentNullException">value;The value can not be null.</exception>
        public void Merge(string value, enMergeType mergeType, string at, string padding, enMergeAlignment mergeAlignment)
        {
            if(value != null)
            {
                switch(mergeType)
                {
                    case enMergeType.Char:
                        CharMergeOp(value, at);
                        break;

                    case enMergeType.Index:
                        IndexMergeOp(value, at, padding, mergeAlignment);
                        break;

                    case enMergeType.NewLine:
                        NewLineMergeOp(value);
                        break;

                    case enMergeType.Tab:
                        TabMergeOp(value);
                        break;

                    case enMergeType.None:
                        NoneMergeOp(value);
                        break;

                    default:
                        throw new Exception("Error In Dev2MergeOperations");
                }
            }
            else
            {
                throw new ArgumentNullException("value", "The value can not be null.");
            }

        }
Esempio n. 4
0
        /// <summary>
        /// Merges the specified value.
        /// </summary>
        /// <param name="value">The value.</param>
        /// <param name="mergeType">Type of the merge.</param>
        /// <param name="at">At.</param>
        /// <param name="padding">The padding.</param>
        /// <param name="mergeAlignment">The merge alignment.</param>
        /// <exception cref="System.ArgumentNullException">value;The value can not be null.</exception>
        public void Merge(string value, enMergeType mergeType, string at, string padding, enMergeAlignment mergeAlignment)
        {
            if (value != null)
            {
                switch (mergeType)
                {
                case enMergeType.Char:
                    CharMergeOp(value, at);
                    break;

                case enMergeType.Index:
                    IndexMergeOp(value, at, padding, mergeAlignment);
                    break;

                case enMergeType.NewLine:
                    NewLineMergeOp(value);
                    break;

                case enMergeType.Tab:
                    TabMergeOp(value);
                    break;

                case enMergeType.None:
                    NoneMergeOp(value);
                    break;

                default:
                    throw new Exception(ErrorResource.ErrorInDev2MergeOperations);
                }
            }
            else
            {
                throw new ArgumentNullException("value", ErrorResource.ValueCannotBeNull);
            }
        }
        /// <summary>
        /// Merge data to the class string using a index merge, mainly used for fixed width,if the index is more than the length of the value then the padding will be applyed useing the padding character
        /// </summary>
        /// <param name="value">The value that will be merged to the class string</param>
        /// <param name="at">The numeric index that will be used during the merge</param>
        /// <param name="padding">The padding character that will be used</param>
        /// <param name="mergeAlignment">The alignment used for the padding</param>
        private void IndexMergeOp(string value, string at, string padding, enMergeAlignment mergeAlignment)
        {
            int indexToUse;
            if(Int32.TryParse(at, out indexToUse))
            {
                string paddedString = string.Empty;
                int difference = indexToUse - value.Length;
                if(difference >= 0)
                {
                    var padChar = string.IsNullOrEmpty(padding) || padding.Length < 1 ? ' ' : padding[0];
                    paddedString = paddedString.PadRight(difference, padChar);

                    if(mergeAlignment == enMergeAlignment.Left)
                    {
                        paddedString = paddedString.Insert(0, value);
                    }
                    else
                    {
                        paddedString += value;
                    }
                }
                else if(difference < 0)
                {
                    paddedString = value.Substring(0, indexToUse);
                }

                MergeData.Append(paddedString);
            }
        }