/// <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."); } }
/// <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); } }