nHydrate.Generator.Forms.ColumnCodeFacadeUpdateForm.ProcessColumnCollection C# (CSharp) Method

ProcessColumnCollection() private method

private ProcessColumnCollection ( ReferenceCollection columnCollection ) : void
columnCollection ReferenceCollection
return void
		private void ProcessColumnCollection(ReferenceCollection columnCollection)
		{
			var columnList = new Dictionary<Reference, string>();
			foreach (Reference reference in columnCollection)
			{
				columnList.Add(reference, ((Column)reference.Object).Name);
			}

			//Remove Prefix
			if (optPrefix.Checked)
			{
				if (!string.IsNullOrEmpty(txtPrefix.Text))
				{
					var keys = new List<Reference>(columnList.Keys);
					foreach (var reference in keys)
					{
						var column = (Column)reference.Object;
						var newName = columnList[reference];
						if (newName.StartsWith(txtPrefix.Text))
						{
							newName = newName.Substring(txtPrefix.Text.Length, newName.Length - txtPrefix.Text.Length);
							columnList[reference] = newName;
						}
					}
				}
			}

			if (chkReplaceText.Checked)
			{
				var keys = new List<Reference>(columnList.Keys);
				foreach (var reference in keys)
				{
					var column = (Column)reference.Object;
					//Replace text
					columnList[reference] = columnList[reference].Replace(txtReplaceSource.Text, txtReplaceTarget.Text);
				}
			}

			if (optUnderscore.Checked)
			{
				//Underscore
				var keys = new List<Reference>(columnList.Keys);
				foreach (var reference in keys)
				{
					var column = (Column)reference.Object;

					var currentName = columnList[reference];
					var lowerCount = 0;
					var index = 0;
					var newName = string.Empty;
					var lastCap = false;
					var lastUnderscore = false;
					foreach (var c in currentName)
					{
						var thisCap = (c.ToString() == c.ToString().ToUpper()) && (c != '_');

						if ((thisCap == lastCap) && (lastCap) && (chkSkip2Caps.Checked))
						{
							//Skip the underscore since this is a double in row
						}
						else
						{
							//If this is an upper char then add underscore
							if ((!lastUnderscore) && (index > 0) && c.ToString() == c.ToString().ToUpper() && (c != '_') && (c != ' '))
								newName += "_";
						}

						if (c.ToString() == c.ToString().ToLower())
							lowerCount++;

						if (c == ' ') newName += '_';
						else if (ValidationHelper.ValidCodeChars.Contains(c)) newName += c;

						index++;
						lastCap = thisCap;
						lastUnderscore = (c == '_');
					}

					//Only se if there was at least one lower char in string
					if (lowerCount > 0)
					{
						columnList[reference] = newName;
					}

				}
			}

			if (optUpcase.Checked)
			{
				//Lowcase
				var keys = new List<Reference>(columnList.Keys);
				foreach (var reference in keys)
				{
					var column = (Column)reference.Object;
					var newName = columnList[reference].ToLower();
					columnList[reference] = newName;
				}
			}

			//Reset all names
			foreach (var reference in columnList.Keys)
			{
				var column = (Column)reference.Object;

				try
				{
					column.CancelUIEvents = true;
					if (_fieldSetting == FieldSettingConstants.Name)
						column.Name = columnList[reference];
					else if (_fieldSetting == FieldSettingConstants.CodeFacade)
						column.CodeFacade = columnList[reference];
					column.CancelUIEvents = false;
				}
				catch (Exception ex)
				{
					throw;
				}
				finally
				{
					column.CancelUIEvents = false;
				}

			}

		}