Changed code to use log Info Changed code to append error messages rather than replace text Added/Changed code to use Log4Net. Changed logic for Updates to Use IDs rather than Objects for internal Updates Added a FormatColumn token to handle DTS, Added comments to describe tokens Added methods ParentRefU and ParentRefU2 to support otther changes
		
			
				
	
	
		
			564 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			564 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
//// FormatColumns
 | 
						|
//	private string FormatColumnOld(string sFormat,IColumn column,string sAlias)
 | 
						|
//	{
 | 
						|
//		string s=sFormat;
 | 
						|
//		s=s.Replace("{member}",ColumnToMemberVariable(column));//m - Member _firstname
 | 
						|
//		s=s.Replace("{fmember}",(column.Table.Name==_workingTable.Name?"":"_" + ToClassName(column.Table.Name).ToLower() + sAlias)+ColumnToMemberVariable(column));//m - Member _firstname
 | 
						|
//		s=s.Replace("{pmember}",(column.Table.Name==_workingTable.Name?"":ToClassName(column.Table.Name).ToLower() + sAlias)+"."+ColumnToPropertyName(column));//m - Member _firstname
 | 
						|
//		s=s.Replace("{local}",ColumnToMemberVariable(column).Substring(1));//l Local firstname
 | 
						|
//		s=s.Replace("{prop}",ColumnToPropertyName(column));
 | 
						|
//		s=s.Replace("{memberprop}",(column.IsInPrimaryKey ? ColumnToMemberVariable(column) : ColumnToPropertyName(column)));
 | 
						|
//		s=s.Replace("{@}",ColumnToParameterName(column));
 | 
						|
//		s=s.Replace("{@new}",ColumnToNewParameterName(column));
 | 
						|
//		string cType = ColumnToCSLAType(column);
 | 
						|
//		s=s.Replace("{ctype}",cType);
 | 
						|
//		s=s.Replace("{rmember}",vlnReturnMember(cType));
 | 
						|
//		s=s.Replace("{rtype}",vlnReturnType(cType));
 | 
						|
////		s=s.Replace("{dbtype}",ColumnToMemberVariable(column).Substring(1));
 | 
						|
//		s=s.Replace("{name}",column.Name);
 | 
						|
//		s=s.Replace("{class}",ToClassName(column.Table.Alias.Replace( " ", "" )));
 | 
						|
//		s=s.Replace("{fname}",(column.Table.Name==_workingTable.Name?"":column.Table.Name.Replace(" ","")+sAlias+"_")+column.Name);
 | 
						|
//		s=s.Replace("{sqltype}",ColumnToSQLDbType(column));
 | 
						|
//		s=s.Replace("{?ref}",(column.IsComputed || column.IsAutoKey ? "ref " : ""));
 | 
						|
//		s=s.Replace("{?dbtype}",(ColumnToCSLAType( column )=="SmartDate" ? ".DBValue" : ""));
 | 
						|
//		s=s.Replace("{?dbprefix}",(ColumnToCSLAType( column )=="SmartDate" ? "new SmartDate(" : ""));
 | 
						|
//		s=s.Replace("{?dbsuffix}",(ColumnToCSLAType( column )=="SmartDate" ? ").DBValue" : ""));
 | 
						|
//		s=s.Replace("{?dbsuff}",(ColumnToCSLAType( column )=="SmartDate" ? ")" : ""));
 | 
						|
//		s=s.Replace("{default}",ColumnDefault(column));		
 | 
						|
//		//s=s.Replace("{xxx}","");
 | 
						|
//		return s;
 | 
						|
//	}
 | 
						|
//	private string FormatColumnOld(string sFormat,IColumn column)
 | 
						|
//	{
 | 
						|
//		return FormatColumn(sFormat,column,"");
 | 
						|
//	}
 | 
						|
//	private string ColumnToSQLDbType(IColumn column)
 | 
						|
//	{
 | 
						|
//		switch(column.DataTypeName)
 | 
						|
//		{
 | 
						|
//			case "timestamp":
 | 
						|
//				return "SqlDbType.Timestamp";
 | 
						|
//			case "int":
 | 
						|
//				return "SqlDbType.Int";
 | 
						|
//			default:
 | 
						|
//				//return "//TODO: Need to fix ColumnToSQLDbType" + " " + column.DataType + " " + column.DataTypeName + " " + column.DataTypeNameComplete + " " + column.DbTargetType;
 | 
						|
//				return "SqlDBType./* " + column.DataTypeNameComplete + " " + column.DbTargetType + "*/";
 | 
						|
//		}
 | 
						|
//	}
 | 
						|
//	private string vlnReturnType(string sType)
 | 
						|
//	{
 | 
						|
//		string sReturnType=sType;
 | 
						|
//		if(sType=="SmartDate")sReturnType="string";
 | 
						|
//		return sReturnType;		
 | 
						|
//	}
 | 
						|
//	private string vlnReturnMember(string sType)
 | 
						|
//	{
 | 
						|
//		string sReturnMember="";
 | 
						|
//		return sReturnMember;		
 | 
						|
//	}
 | 
						|
//	private string FormatColumns(string sFormat,IColumns columns)
 | 
						|
//	{
 | 
						|
//		return FormatColumns(sFormat,columns,"");
 | 
						|
//	}
 | 
						|
//	private string FormatColumns(string sFormat,IList columns,string sep)
 | 
						|
//	{
 | 
						|
//		string s="";
 | 
						|
//		string ssep="";
 | 
						|
//		foreach(IColumn column in columns)
 | 
						|
//		{
 | 
						|
//			s+=ssep+FormatColumn(sFormat,column);
 | 
						|
//			ssep=sep;
 | 
						|
//		}
 | 
						|
//		return s;
 | 
						|
//	}
 | 
						|
//	private string ColumnToMemberVariable( IColumn Column )
 | 
						|
//	{
 | 
						|
//		return _prefix + UniqueColumn( Column ).ToLower();
 | 
						|
//	}
 | 
						|
//	
 | 
						|
//	private string ColumnToPropertyName( IColumn Column )
 | 
						|
//	{
 | 
						|
//		return ToPascalCase( UniqueColumn( Column ) );
 | 
						|
//	}
 | 
						|
//	
 | 
						|
//	private string ColumnFKToClassName( IColumn c )
 | 
						|
//	{
 | 
						|
//		return ToPascalCase( c.ForeignKeys[0].PrimaryTable.Alias.Replace( " ", "" ) );
 | 
						|
//	}
 | 
						|
//	private string ColumnToParameterName(IColumn col)
 | 
						|
//	{
 | 
						|
//		return "@" + ToLeadingLower(col.Name).Replace(" ","");
 | 
						|
//	}
 | 
						|
//	private string ColumnToNewParameterName(IColumn col)
 | 
						|
//	{
 | 
						|
//		return "@new" + col.Name.Replace(" ","");
 | 
						|
//	}
 | 
						|
//	private string ColumnToArgumentName( IColumn Column )
 | 
						|
//	{
 | 
						|
//		return UniqueColumn( Column ).ToLower();
 | 
						|
//	}
 | 
						|
//	
 | 
						|
//	private string ColumnToNHibernateProperty( IColumn Column )
 | 
						|
//	{
 | 
						|
//		return _prefix + UniqueColumn( Column );
 | 
						|
//	}
 | 
						|
//	
 | 
						|
//	private string UniqueColumn( IColumn Column )
 | 
						|
//	{
 | 
						|
//		string c = Column.Alias.Replace( " ", "" );
 | 
						|
//		if( Column.Table != null && Column.Table.Alias.Replace( " ", "" ) == c )
 | 
						|
//		{
 | 
						|
//			c += "Name";
 | 
						|
//		}
 | 
						|
//		if( Column.View != null && Column.View.Alias.Replace( " ", "" ) == c )
 | 
						|
//		{
 | 
						|
//			c += "Name";
 | 
						|
//		}
 | 
						|
//		return c;
 | 
						|
//	}
 | 
						|
//	
 | 
						|
//	// nhibernate doesn't have these, so use the existing types
 | 
						|
//	private string ColumnToCSLAType( IColumn Column )
 | 
						|
//	{
 | 
						|
//		string retVal = Column.LanguageType;
 | 
						|
//		
 | 
						|
//		switch( Column.LanguageType )
 | 
						|
//		{
 | 
						|
//			case "DateTime":
 | 
						|
//				if(Column.Description.IndexOf("{datetime}")>=0)
 | 
						|
//					retVal="DateTime";
 | 
						|
//				else
 | 
						|
//					retVal = "SmartDate";
 | 
						|
//				break;
 | 
						|
//	//		case "uint":
 | 
						|
//	//			retVal = "int";
 | 
						|
//	//			break;
 | 
						|
//	//		case "ulong":
 | 
						|
//	//			retVal = "long";
 | 
						|
//	//			break;
 | 
						|
//	//		case "ushort":
 | 
						|
//	//			retVal = "short";
 | 
						|
//	//			break;
 | 
						|
//		}
 | 
						|
//		return retVal;
 | 
						|
//	}
 | 
						|
//	private string ColumnToDefault( IColumn Column )
 | 
						|
//	{
 | 
						|
//		string retVal=";";
 | 
						|
//		if(Column.DataTypeName=="timestamp")
 | 
						|
//		{
 | 
						|
//			retVal = " = new byte[8];//timestamp";
 | 
						|
//		}
 | 
						|
//		else
 | 
						|
//		{
 | 
						|
//			//if(Column.Default != ""){
 | 
						|
//			//	retVal = ConvertDefault(Column) + ";// TODO: Default from DB " + RemoveParens(Column.Default) + " ";
 | 
						|
//			//}
 | 
						|
//			//else
 | 
						|
//			//{
 | 
						|
//				switch( ColumnToCSLAType(Column ) )
 | 
						|
//				{
 | 
						|
//					case "string":
 | 
						|
//						retVal = " = string.Empty;";
 | 
						|
//						break;
 | 
						|
//					case "DateTime":
 | 
						|
//						retVal = " = new DateTime();";
 | 
						|
//						break;
 | 
						|
//					case "SmartDate":
 | 
						|
//						retVal = " = string.Empty;";
 | 
						|
//						break;
 | 
						|
//					//case "Guid":
 | 
						|
//					//	retVal = "=new Guid();";
 | 
						|
//					//	break;
 | 
						|
//					default:
 | 
						|
//						// nothing to do here
 | 
						|
//						break;
 | 
						|
//				}
 | 
						|
//			//}
 | 
						|
//		}
 | 
						|
//		return retVal;
 | 
						|
//	}
 | 
						|
//	string ConvertDefault(IColumn column)
 | 
						|
//	{
 | 
						|
//		string s = RemoveParens(column.Default);
 | 
						|
//		switch(s)
 | 
						|
//		{
 | 
						|
//			case "getdate()":
 | 
						|
//				if(ColumnToCSLAType(column)=="DateTime")
 | 
						|
//					s="=DateTime.Now";
 | 
						|
//				else
 | 
						|
//					s="=DateTime.Now.ToShortDateString()";
 | 
						|
//				break;
 | 
						|
//			case "upper(suser_sname())":
 | 
						|
//				s= "=Environment.UserName.ToUpper()";
 | 
						|
//				break;
 | 
						|
//			case "suser_sname()":
 | 
						|
//				s="=Environment.UserName";
 | 
						|
//				break;
 | 
						|
//			default:
 | 
						|
//				if(IsNumeric(s))s="=" + s;
 | 
						|
//				else s="";
 | 
						|
//				break;
 | 
						|
//		}
 | 
						|
//		return s;
 | 
						|
//	}
 | 
						|
//	string ColumnDefault(IColumn column)
 | 
						|
//	{
 | 
						|
//		string s = RemoveParens(column.Default);
 | 
						|
//		switch(s)
 | 
						|
//		{
 | 
						|
//			case "getdate()":
 | 
						|
//				if(ColumnToCSLAType(column)=="DateTime")
 | 
						|
//					s="DateTime.Now";
 | 
						|
//				else
 | 
						|
//					s="DateTime.Now.ToShortDateString()";
 | 
						|
//				break;
 | 
						|
//			case "upper(suser_sname())":
 | 
						|
//				s= "Environment.UserName.ToUpper()";
 | 
						|
//				break;
 | 
						|
//			case "suser_sname()":
 | 
						|
//				s="Environment.UserName";
 | 
						|
//				break;
 | 
						|
//			default:
 | 
						|
//				if(IsNumeric(s))s="" + s;
 | 
						|
//				else s="";
 | 
						|
//				break;
 | 
						|
//		}
 | 
						|
//		return s;
 | 
						|
//	}
 | 
						|
//	private string ToLeadingCaps( string name )
 | 
						|
//	{
 | 
						|
//		char[] chars = name.ToLower().ToCharArray();
 | 
						|
//		chars[0] = Char.ToUpper( chars[0] );
 | 
						|
//		return new string( chars );
 | 
						|
//	}
 | 
						|
//	
 | 
						|
//	
 | 
						|
//	private string ToPascalCase( string name )
 | 
						|
//	{
 | 
						|
//		string notStartingAlpha = Regex.Replace( name, "^[^a-zA-Z]+", "" );
 | 
						|
//		string workingString = ToLowerExceptCamelCase( notStartingAlpha );
 | 
						|
//		workingString = RemoveSeparatorAndCapNext( workingString );
 | 
						|
//		return workingString;
 | 
						|
//	}
 | 
						|
//	private string ToClassName(string name)
 | 
						|
//	{
 | 
						|
//		return Regex.Replace(ToPascalCase(name),"s$","");
 | 
						|
//	}
 | 
						|
//	private string RemoveSeparatorAndCapNext( string input )
 | 
						|
//	{
 | 
						|
//		string dashUnderscore = "-_";
 | 
						|
//		string workingString = input;
 | 
						|
//		char[] chars = workingString.ToCharArray();
 | 
						|
//		int under = workingString.IndexOfAny( dashUnderscore.ToCharArray() );
 | 
						|
//		while( under > -1 )
 | 
						|
//		{
 | 
						|
//			chars[ under + 1 ] = Char.ToUpper( chars[ under + 1 ], CultureInfo.InvariantCulture );
 | 
						|
//			workingString = new String( chars );
 | 
						|
//			under = workingString.IndexOfAny( dashUnderscore.ToCharArray(), under + 1 );
 | 
						|
//		}
 | 
						|
//		chars[ 0 ] = Char.ToUpper( chars[ 0 ], CultureInfo.InvariantCulture );
 | 
						|
//		workingString = new string( chars );
 | 
						|
//		return Regex.Replace( workingString, "[-_]", "" );
 | 
						|
//	}
 | 
						|
//	private string ToLowerExceptCamelCase( string input )
 | 
						|
//	{
 | 
						|
//		char[] chars = input.ToCharArray();
 | 
						|
//		for( int i = 0; i < chars.Length; i++ )
 | 
						|
//		{
 | 
						|
//			int left = ( i > 0 ? i - 1 : i );
 | 
						|
//			int right = ( i < chars.Length - 1 ? i + 1 : i );
 | 
						|
//			if( i != left && i != right )
 | 
						|
//			{
 | 
						|
//				if( Char.IsUpper( chars[i] ) && Char.IsLetter( chars[ left ] ) && Char.IsUpper( chars[ left ] ) )
 | 
						|
//				{
 | 
						|
//					chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture );
 | 
						|
//				}
 | 
						|
//				else if( Char.IsUpper( chars[i] ) && Char.IsLetter( chars[ right ] ) && Char.IsUpper( chars[ right ] ) )
 | 
						|
//				{
 | 
						|
//					chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture );
 | 
						|
//				}
 | 
						|
//				else if( Char.IsUpper( chars[i] ) && !Char.IsLetter( chars[ right ] ) )
 | 
						|
//				{
 | 
						|
//					chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture );
 | 
						|
//				}
 | 
						|
//			}
 | 
						|
//		}
 | 
						|
//		chars[ chars.Length - 1 ] = Char.ToLower( chars[ chars.Length - 1 ], CultureInfo.InvariantCulture );
 | 
						|
//		return new string( chars );
 | 
						|
//	}
 | 
						|
	private string FormatColumnNew(string sFormat,IColumn column)
 | 
						|
	{
 | 
						|
		return FormatColumnNew(sFormat,column,"");
 | 
						|
	}
 | 
						|
	private string FormatColumnNew(string sFormat,IColumn col,string sAlias)
 | 
						|
	{
 | 
						|
		string s=sFormat;
 | 
						|
		IColumn column = col.Table.Columns[col.Name];
 | 
						|
//		IForeignKey fkkk = RelObjFK(column);
 | 
						|
		string relProp=RelObjProp(column);
 | 
						|
		string relType=RelObjType(column);
 | 
						|
		string suffix = "";//(PropertyName(column)==ClassName(column.Table)?"Fld":"");
 | 
						|
		s=s.Replace("{member}",MemberName(column)+suffix);//m - Member _firstname
 | 
						|
//member _DocID
 | 
						|
		s=s.Replace("{fmember}",(column.Table.Alias==_tableName?"":_prefix + ClassName(column.Table)+sAlias)+MemberName(column)+suffix);//m - Member _firstname
 | 
						|
//fmember _DocID
 | 
						|
		s=s.Replace("{pmember}",(column.Table.Alias==_tableName?_prefix:LocalName(ClassName(column.Table))+".")+PropertyName(column)+suffix);//m - Member _firstname
 | 
						|
//pmember _DocID
 | 
						|
		s=s.Replace("{rmember}",LocalName(ClassName(column.Table))+"."+PropertyName(column));//m - Member _firstname
 | 
						|
//rmember entry.DocID
 | 
						|
		s=s.Replace("{!prop}",relProp);
 | 
						|
//!prop MyDocument
 | 
						|
		s=s.Replace("{!member}",MemberName(relProp));
 | 
						|
//!member _MyDocument
 | 
						|
//		s=s.Replace("{!membercolumn}",MemberName(relProp) + (IsRelObj(column)?"." + RelObjCol(column):""));
 | 
						|
		s=s.Replace("{!membercolumn}",MemberName(relProp) + (IsRelObj(column)?"." + RelObjProp(RelObjCol2(column)):""));
 | 
						|
//!membercolumn _MyDocument.DocID
 | 
						|
		s=s.Replace("{!local}",LocalName(relProp));
 | 
						|
//!local myDocument
 | 
						|
		s=s.Replace("{!localcolumn}",LocalName(relProp) + (IsRelObj(column)?"." + RelObjCol(column):""));
 | 
						|
//!localcolumn myDocument.DocID
 | 
						|
		s=s.Replace("{!type}",relType);
 | 
						|
//!type Document
 | 
						|
		s=s.Replace("{!rtype}",ReturnType(relType));
 | 
						|
//!rtype Document
 | 
						|
		s=s.Replace("{!memberprop}",(column.IsInPrimaryKey ? MemberName(relProp) : relProp)+suffix);
 | 
						|
//!memberprop MyDocument
 | 
						|
		s=s.Replace("{!propmember}",(IsRelObj(column) ? relProp : MemberName(relProp))+suffix);
 | 
						|
//!propmember MyDocument
 | 
						|
		s=s.Replace("{!column}",RelObjCol(column));
 | 
						|
//!column DocID
 | 
						|
		s=s.Replace("{!empty}",RelObjEmpty(column));
 | 
						|
//!empty 0
 | 
						|
		s=s.Replace("{!typecast}",RelObjTypeCast(column));
 | 
						|
//!typecast 
 | 
						|
		s=s.Replace("{local}",LocalName(column)+suffix);//l Local firstname
 | 
						|
//local docID
 | 
						|
		s=s.Replace("{prop}",PropertyName(column)+suffix);
 | 
						|
//prop DocID
 | 
						|
		s=s.Replace("{memberprop}",(column.IsInPrimaryKey ? MemberName(column) : PropertyName(column))+suffix);
 | 
						|
//memberprop DocID
 | 
						|
		s=s.Replace("{@}",ParameterName(column));
 | 
						|
//@ @DocID
 | 
						|
		s=s.Replace("{@new}",NewParameterName(column));
 | 
						|
//@new @newDocID
 | 
						|
		string cType = CSLAType(column);
 | 
						|
		s=s.Replace("{ctype}",cType);
 | 
						|
//ctype int
 | 
						|
		s=s.Replace("{ctype1}",cType.Replace("?",""));
 | 
						|
//ctype1 int
 | 
						|
		s=s.Replace("{rmember}",ReturnMember(cType));
 | 
						|
//rmember entry.DocID
 | 
						|
		s=s.Replace("{rtype}",ReturnType(cType));
 | 
						|
//rtype int
 | 
						|
//		s=s.Replace("{dbtype}",LocalName(column));
 | 
						|
		s=s.Replace("{dtype}",DBType(column));
 | 
						|
//dtype int
 | 
						|
		s=s.Replace("{name}",column.Name);
 | 
						|
//name DocID
 | 
						|
		s=s.Replace("{class}",ClassName(column.Table));
 | 
						|
//class Entry
 | 
						|
		s=s.Replace("{fname}",(column.Table.Alias==_tableName?"":ClassName(column.Table)+sAlias+"_")+column.Name);
 | 
						|
//fname DocID
 | 
						|
		s=s.Replace("{sqltype}",column.DbTargetType);
 | 
						|
//sqltype SqlDbType.Int
 | 
						|
		s=s.Replace("{?ref}",(column.IsComputed || column.IsAutoKey ? "ref " : ""));
 | 
						|
//?ref 
 | 
						|
		s=s.Replace("{?dbtype}",(CSLAType( column )=="SmartDate" ? ".DBValue" : ""));
 | 
						|
//?dbtype 
 | 
						|
		s=s.Replace("{?dbprefix}",(CSLAType( column )=="SmartDate" ? "new SmartDate(" : ""));
 | 
						|
//?dbprefix 
 | 
						|
		s=s.Replace("{?dbsuffix}",(CSLAType( column )=="SmartDate" ? ").DBValue" : ""));
 | 
						|
//?dbsuffix 
 | 
						|
		s=s.Replace("{?dbsuff}",(CSLAType( column )=="SmartDate" ? ")" : ""));
 | 
						|
//?dbsuff 
 | 
						|
		s=s.Replace("{default}",DefaultValue(column));		
 | 
						|
//default 
 | 
						|
		s=s.Replace("{?output}",(column.IsComputed || column.IsAutoKey ? " output" : ""));
 | 
						|
//?output 
 | 
						|
		s=s.Replace("{@key}",ParamKeyName(column));
 | 
						|
//@key @DocID
 | 
						|
		s=s.Replace("{tbl}",column.Table.Name + sAlias);
 | 
						|
//tbl Entries
 | 
						|
		s=s.Replace("{?null}",(column.IsNullable?"=null":""));
 | 
						|
//?null 
 | 
						|
		s=s.Replace("{parent}",parentName(column));
 | 
						|
//parent myDocument.DocID
 | 
						|
		s=s.Replace("{Parent}",ParentName(column));
 | 
						|
//Parent DocID
 | 
						|
		s=s.Replace("{ParentType}",ParentTypeName(column));
 | 
						|
//ParentType */
 | 
						|
		s=s.Replace("{autoseed}",AutoSeed(column));
 | 
						|
		if(s.Contains("{ifLogic"))
 | 
						|
		{
 | 
						|
			string ifLogic="";
 | 
						|
			switch (CSLAType(column))
 | 
						|
			{
 | 
						|
				case("DateTime"):
 | 
						|
					ifLogic = "if ({name}.Year >= 1753 && {name}.Year <= 9999) ";
 | 
						|
					break;
 | 
						|
				case("DateTime?"):
 | 
						|
					ifLogic = "if ({name} != null && ((DateTime){name}).Year >= 1753 && ((DateTime){name}).Year <= 9999) ";
 | 
						|
					break;
 | 
						|
				default:
 | 
						|
					if(column.IsNullable && IsRelObj(column) && s.Contains("{ifLogicL"))
 | 
						|
						ifLogic="if ({name} != null) ";
 | 
						|
					break;
 | 
						|
			}
 | 
						|
			s=s.Replace("{ifLogicL}",ifLogic.Replace("{name}",FormatColumnNew("{!local}{?dbtype}",column,sAlias)));
 | 
						|
			s=s.Replace("{ifLogicl}",ifLogic.Replace("{name}",FormatColumnNew("{!local}{?dbtype}",column,sAlias)));
 | 
						|
			s=s.Replace("{ifLogicP}",ifLogic.Replace("{name}",FormatColumnNew("{?dbprefix}{member}{?dbsuffix}",column,sAlias)));
 | 
						|
			s=s.Replace("{ifLogic@}",ifLogic.Replace("{name}",FormatColumnNew("criteria.{prop}{?dbtype}",column,sAlias)));
 | 
						|
			//string name = FormatColumnNew("{local}{?dbtype}",column,sAlias);
 | 
						|
			//s=s.Replace("{ifLogicL}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" ));
 | 
						|
			//name = FormatColumnNew("{?dbprefix}{member}{?dbsuffix}",column,sAlias);
 | 
						|
			//s=s.Replace("{ifLogicP}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" ));
 | 
						|
			//name = FormatColumnNew("criteria.{prop}{?dbtype}",column,sAlias);
 | 
						|
			//s=s.Replace("{ifLogic@}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" ));
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatColumnFKNew(string sFormat,IColumn column)
 | 
						|
	{
 | 
						|
		string s=sFormat;
 | 
						|
		s=s.Replace("{fkname}",column.Name);
 | 
						|
		s=s.Replace("{fktable}",column.Table.Name);
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatPKColumns(string sFormat,IForeignKey pk,string sep,string sPrefix,ref string ssep,string sAlias)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		foreach(IColumn column in pk.PrimaryTable.Columns)
 | 
						|
		{
 | 
						|
			if(!IsIn(column,pk.PrimaryColumns) && column.DataTypeName != "timestamp")
 | 
						|
			{
 | 
						|
				s+=ssep+sPrefix+FormatColumn(sFormat,column,sAlias);
 | 
						|
				ssep=sep;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatFKColumns(string sFormat,IForeignKey fk,string sep,string sPrefix,ref string ssep)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		foreach(IColumn column in fk.ForeignTable.Columns)
 | 
						|
		{
 | 
						|
			//if(!IsIn(column,fk.ForeignColumns))
 | 
						|
			//{
 | 
						|
				s+=ssep+sPrefix+FormatColumn(sFormat,column);
 | 
						|
				ssep=sep;
 | 
						|
			//}
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private bool IsIn(IColumn column,IColumns columns)
 | 
						|
	{
 | 
						|
		foreach(IColumn col in columns)
 | 
						|
			if(col.Name==column.Name && col.Table.Name == column.Table.Name)
 | 
						|
				return true;
 | 
						|
		return false;
 | 
						|
	}
 | 
						|
	private string FormatColumns(string sFormat,IList columns,ref string sep,string sPrefix,ref string ssep)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		foreach(IColumn column in columns)
 | 
						|
		{
 | 
						|
			s+=ssep+sPrefix+FormatColumn(sFormat,column);
 | 
						|
			ssep=sep;
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatColumns(string sFormat,IList columns,string sep)
 | 
						|
	{
 | 
						|
		return FormatColumns(sFormat,columns,sep,"");
 | 
						|
	}
 | 
						|
	private string FormatColumns(string sFormat,IList columns,string sep,string sPrefix)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		string ssep="";
 | 
						|
		foreach(IColumn column in columns)
 | 
						|
		{
 | 
						|
			s+=ssep+sPrefix+FormatColumn(sFormat,column);
 | 
						|
			ssep=sep;
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatColumn(string sFormat,IColumn column)
 | 
						|
	{
 | 
						|
		return FormatColumn(sFormat,column,"");
 | 
						|
	}
 | 
						|
	private string FormatColumn(string sFormat,IColumn column,string sAlias)
 | 
						|
	{
 | 
						|
		return FormatColumnNew(sFormat,column,sAlias);
 | 
						|
	}
 | 
						|
	private string FormatColumns(string sFormat,IForeignKey FK,string sep,string sPrefix)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		string ssep="";
 | 
						|
		for(int i = 0;i<FK.PrimaryColumns.Count;i++)
 | 
						|
		{
 | 
						|
			s+=ssep+sPrefix+FormatColumnFK(FormatColumn(sFormat,FK.PrimaryColumns[i]),FK.ForeignColumns[i]);
 | 
						|
			ssep=sep;
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatColumnFK(string sFormat,IColumn fcolumn)
 | 
						|
	{
 | 
						|
		return FormatColumnFKNew(sFormat,fcolumn);
 | 
						|
	}
 | 
						|
	private string FormatColumns2(string sFormat,IForeignKey FK,string sep,string sPrefix)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		string ssep="";
 | 
						|
		for(int i = 0;i<FK.PrimaryColumns.Count;i++)
 | 
						|
		{
 | 
						|
			s+=ssep+sPrefix+FormatColumnFK(FormatColumn(sFormat,FK.ForeignColumns[i]),FK.ForeignColumns[i]);
 | 
						|
			ssep=sep;
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string FormatColumns(Hashtable dicFormat,IList columns,string sep,string sPrefix)
 | 
						|
	{
 | 
						|
		string s="";
 | 
						|
		string ssep="";
 | 
						|
		foreach(IColumn column in columns)
 | 
						|
		{
 | 
						|
			string sFmt = GetFormat(dicFormat,column);
 | 
						|
			if(sFmt != null)
 | 
						|
			{
 | 
						|
				s+=ssep+sPrefix+FormatColumn(sFmt,column);
 | 
						|
				ssep=sep;
 | 
						|
			}
 | 
						|
		}
 | 
						|
		return s;
 | 
						|
	}
 | 
						|
	private string GetFormat(Hashtable dicFormat,IColumn column){
 | 
						|
		string stype1=CSLAType(column);
 | 
						|
		if(dicFormat.Contains(stype1))
 | 
						|
			return (string)dicFormat[stype1];
 | 
						|
		string stype2=column.DataTypeName;
 | 
						|
		if(dicFormat.Contains(stype2))
 | 
						|
			return (string)dicFormat[stype2];
 | 
						|
		return string.Format("**** MyGeneration Error **** {0} of type {1},{2} not defined in Hashtable *",column.Name,stype1,stype2);
 | 
						|
		//return null;
 | 
						|
	}
 | 
						|
	private string FormatColumn(Hashtable dicFormat,IColumn column,string sPrefix,string sAlias)
 | 
						|
	{
 | 
						|
		string sFmt = GetFormat(dicFormat,column);
 | 
						|
		if(sFmt!=null)
 | 
						|
		{
 | 
						|
			return sPrefix + FormatColumn(sFmt,column,sAlias);
 | 
						|
		}
 | 
						|
		return "";
 | 
						|
	}
 | 
						|
	public string GetDescription(IColumn column)
 | 
						|
	{
 | 
						|
		string sDesc=column.Description;
 | 
						|
		sDesc=sDesc.Replace("{datetime}","");
 | 
						|
		sDesc=sDesc.Replace("{auto}","");
 | 
						|
		sDesc=sDesc.Replace("{info}","");
 | 
						|
		return sDesc;
 | 
						|
	}
 | 
						|
 | 
						|
 |