/// <summary> /// Returns folders information by Select query ignoring user rights. /// </summary> /// <param name="folderSchemaName">Folder table name.</param> /// <param name="folderIds">Unique identifiers of the folders.</param> /// <param name="userConnection">User connection.</param> /// <returns>Collection of folder information containers.</returns> public virtual List <FolderInfoModel> GetFoldersInfo(string folderSchemaName, List <Guid> folderIds, UserConnection userConnection) { List <FolderInfoModel> foldersInfo = new List <FolderInfoModel>(); Select selectQuery = new Select(userConnection) .Column("Id") .Column("Name") .Column("SearchData") .Column("FolderTypeId") .From(folderSchemaName) .Where("Id") .In(Column.Parameters(folderIds)) as Select; DBTypeConverter dbTypeConverter = userConnection.DBTypeConverter; using (DBExecutor dbExecutor = userConnection.EnsureDBConnection()) { using (IDataReader reader = selectQuery.ExecuteReader(dbExecutor)) { var nameColumnIndex = reader.GetOrdinal("Name"); var searchDataColumnIndex = reader.GetOrdinal("SearchData"); while (reader.Read()) { Guid folderId = dbTypeConverter.DBValueToGuid(reader["Id"]); string displayValue = reader.GetString(nameColumnIndex); Guid typeId = dbTypeConverter.DBValueToGuid(reader["FolderTypeId"]); byte[] searchData = reader.GetValue(searchDataColumnIndex) as byte[]; var folderInfo = new FolderInfoModel { Id = folderId, DisplayValue = displayValue, SearchDataBin = searchData, TypeId = typeId }; foldersInfo.Add(folderInfo); } } } return(foldersInfo); }
public List <ResponceEntryPoints> GetProcessEntryPointsData(string entitySchemaUId, string entityId) { entitySchemaUId.CheckArgumentNullOrEmpty("entitySchemaUId"); entityId.CheckArgumentNullOrEmpty("entityId"); UserConnection userConnection = UserConnection; var response = new List <ResponceEntryPoints>(); var entryPointSelect = (Select) new Select(userConnection) .Column("SysProcessElementDataId") .From("EntryPoint") .Where("EntitySchemaUId").IsEqual(Column.Parameter(new Guid(entitySchemaUId))) .And("EntityId").IsEqual(Column.Parameter(new Guid(entityId))) .And("IsActive").IsEqual(Column.Parameter(true)); IProcessEngine processEngine = userConnection.IProcessEngine; using (DBExecutor dbExecutor = userConnection.EnsureDBConnection()) { using (IDataReader reader = entryPointSelect.ExecuteReader(dbExecutor)) { DBTypeConverter dbTypeConverter = userConnection.DBTypeConverter; while (reader.Read()) { Guid elementId = dbTypeConverter.DBValueToGuid(reader[0]); var sysProcessElementData = new SysProcessElementData(userConnection); if (!sysProcessElementData.FetchFromDB(elementId)) { continue; } Guid sysProcessId = sysProcessElementData.SysProcessId; Process process = processEngine.FindProcessByUId(sysProcessId.ToString(), true); if (process == null) { continue; } var processActivity = (ProcessActivity)process.FindFlowElementByUId(elementId); BaseProcessSchemaElement schemaElement = processActivity.GetSchemaElement(); response.Add(new ResponceEntryPoints { id = elementId.ToString(), caption = schemaElement.Caption }); } } } return(response); }