private void AddLczColumn(Guid cultureId, string cultureName, Select select, string schemaName, string schemaAlias, string referencePath, string columnName, bool useInnerJoin = true, string columnAlias = null, string tableAlias = null) { EntitySchema schema = EntitySchemaManager.GetInstanceByName(schemaName); string lczTableName = schema.LocalizationSchemaName; string lczTableAliasName = string.IsNullOrEmpty(tableAlias) ? GetLczAliasName(schemaName, cultureName) : tableAlias; string lczColumnAliasName = string.IsNullOrEmpty(columnAlias) ? GetLczAliasName(string.Concat(schemaName, columnName), cultureName) : columnAlias; string lczColumnName = columnName; IsNullQueryFunction lczColumnQueryFunction = GetLczColumnQueryFunction(lczTableAliasName, lczColumnName, schemaAlias, columnName); select.Column(lczColumnQueryFunction).As(lczColumnAliasName); if (useInnerJoin) { select.InnerJoin(lczTableName).As(lczTableAliasName) .On(lczTableAliasName, "RecordId").IsEqual(schemaAlias, referencePath) .And(lczTableAliasName, "SysCultureId").IsEqual(new QueryParameter(cultureId)); } else { select.LeftOuterJoin(lczTableName).As(lczTableAliasName) .On(lczTableAliasName, "RecordId").IsEqual(schemaAlias, referencePath) .And(lczTableAliasName, "SysCultureId").IsEqual(new QueryParameter(cultureId)); } }
public static void AddLczColumn(UserConnection userConnection, Guid cultureId, string cultureName, Select select, string schemaName, string schemaAlias, string referencePath, string columnName, bool useInnerJoin = true, string columnAlias = null, string tableAlias = null) { var schema = userConnection.EntitySchemaManager.GetInstanceByName(schemaName); string lczTableName = schema.GetLocalizableStringsSchemaName(); string lczTableAliasName = string.IsNullOrEmpty(tableAlias) ? GetLczAliasName(schemaName, cultureName) : tableAlias; string lczColumnAliasName = string.IsNullOrEmpty(columnAlias) ? GetLczAliasName(string.Concat(schemaName, columnName), cultureName) : columnAlias; string lczColumnName = UseMultilanguageData ? columnName : "Value"; IsNullQueryFunction lczColumnQueryFunction = GetLczColumnQueryFunction(lczTableAliasName, lczColumnName, schemaAlias, columnName); select.Column(lczColumnQueryFunction).As(lczColumnAliasName); if (useInnerJoin) { select.InnerJoin(lczTableName).As(lczTableAliasName) .On(lczTableAliasName, "RecordId").IsEqual(schemaAlias, referencePath) .And(lczTableAliasName, "SysCultureId").IsEqual(new QueryParameter(cultureId)); } else { select.LeftOuterJoin(lczTableName).As(lczTableAliasName) .On(lczTableAliasName, "RecordId").IsEqual(schemaAlias, referencePath) .And(lczTableAliasName, "SysCultureId").IsEqual(new QueryParameter(cultureId)); } if (!UseMultilanguageData) { Guid columnUId = schema.Columns.GetByName(columnName).UId; select.And(lczTableAliasName, "ColumnUId").IsEqual(new QueryParameter(columnUId)); } }