Esempio n. 1
0
        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));
            }
        }
Esempio n. 2
0
        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));
            }
        }