public virtual Select ProcessDynamicFolder(Guid folderId) { var dataValueTypeManager = (DataValueTypeManager)UserConnection.AppManagerProvider.GetManager("DataValueTypeManager"); DataValueType dateTimeDataValueType = dataValueTypeManager.GetInstanceByName("DateTime"); DataValueType guidDataValueType = dataValueTypeManager.GetInstanceByName("Guid"); DataValueType intDataValueType = dataValueTypeManager.GetInstanceByName("Integer"); EntitySchema targetSchema = UserConnection.EntitySchemaManager.GetInstanceByUId(TargetSchemaUId); IEntitySchemaQueryFilterItem filters = CommonUtilities.GetFolderEsqFilters( UserConnection, folderId, TargetFolderSchemaUId, TargetSchemaUId, true); var esq = new EntitySchemaQuery(targetSchema); if (RootSchemaName.Equals("BulkEmail") || RootSchemaName.Equals("BulkEmailSplit")) { esq.AddColumn(RootSchemaRecordRId, intDataValueType).SetForcedQueryColumnValueAlias("RootSchemaRecordId"); esq.AddColumn("Email"); } else { esq.AddColumn(RootSchemaRecordId, guidDataValueType).SetForcedQueryColumnValueAlias("RootSchemaRecordId");; esq.AddColumn(DefResponseId, guidDataValueType); esq.AddColumn(true, dataValueTypeManager.GetInstanceByName("Boolean")); esq.AddColumn(UserConnection.CurrentUser.ContactId, guidDataValueType); esq.AddColumn(UserConnection.CurrentUser.ContactId, guidDataValueType); esq.AddColumn("Id").SetForcedQueryColumnValueAlias("ContactRecordId"); if (IsSetCampaignFirstStep == true && RootSchemaName == "Campaign") { var campaignFirstStepId = GetCampaignFirstStep(RootSchemaRecordId); esq.AddColumn(campaignFirstStepId, guidDataValueType).SetForcedQueryColumnValueAlias("CurrentStepId"); } } if (filters != null) { esq.Filters.Add(filters); } Select folderQuery = esq.GetSelectQuery(UserConnection); Select resultSelect; switch (RootSchemaName) { case "Event": resultSelect = GetContactInEventDynamicFolderProcessingQuery(folderQuery); break; case "BulkEmailSplit": case "BulkEmail": resultSelect = GetContactInBulkEmailDynamicFolderProcessingQuery(folderQuery); break; case "Campaign": resultSelect = GetContactInCampaignDynamicFolderProcessingQuery(folderQuery); break; default: resultSelect = null; break; } return(resultSelect); }
/// <summary> /// Create esq for entity /// </summary> /// <param name="entitySchemaName">Entity schema name</param> /// <param name="folderId">Search folder id</param> /// <param name="newFolderId">New folder id</param> /// <returns></returns> protected virtual Select CreateEntityDataSelect(string entitySchemaName, Guid folderId, Guid newFolderId) { var entitySchemaManager = _userConnection.EntitySchemaManager; var entitySchema = entitySchemaManager.GetInstanceByName(entitySchemaName); var sourceSchemaUId = entitySchema.UId; var folderSchemaUId = _userConnection.EntitySchemaManager.GetInstanceByName($"{entitySchemaName}Folder").UId; var esq = new EntitySchemaQuery(entitySchema); esq.PrimaryQueryColumn.IsAlwaysSelect = true; esq.AddColumn(newFolderId, _userConnection.DataValueTypeManager.FindDataValueTypeByType(typeof(Guid))); var esqFilter = CommonUtilities.GetFolderEsqFilters(_userConnection, folderId, folderSchemaUId, sourceSchemaUId, true); esq.Filters.Add(esqFilter); return(esq.GetSelectQuery(_userConnection)); }
public static IEntitySchemaQueryFilterItem GetFolderFilters( UserConnection userConnection, Guid recordId, Guid folderSchemaUId, Guid sourceSchemaUId) { return(CommonUtilities.GetFolderEsqFilters( userConnection, recordId, folderSchemaUId, sourceSchemaUId, true)); }