コード例 #1
0
        /// <summary>
        /// Changes owner of process element data.
        /// <param name="elementDataOwnerInfo">Information about owner of process element data.</param>
        /// </summary>
        public void Change(SysProcessElementDataOwnerInfo elementDataOwnerInfo)
        {
            var ownerProcessesId = GetEntityProcesses(elementDataOwnerInfo);

            if (ownerProcessesId.Length > 0)
            {
                UpdateSysProcessElementDataOwner(ownerProcessesId, elementDataOwnerInfo);
                UpdateSysProcessElementToDoOwner(ownerProcessesId, elementDataOwnerInfo);
            }
        }
コード例 #2
0
        private Guid[] GetEntityProcesses(SysProcessElementDataOwnerInfo elementDataOwnerInfo)
        {
            var select = new Select(_userConnection)
                         .Column("SysProcessId")
                         .From("SysProcessEntity").WithHints(new NoLockHint())
                         .Where("EntityId")
                         .IsEqual(Column.Parameter(elementDataOwnerInfo.EntityId)) as Select;

            return(select.ExecuteEnumerable(r => r.GetColumnValue <Guid>("SysProcessId")).ToArray());
        }
コード例 #3
0
        /// <summary>
        /// <see cref="IEntityEventAsyncOperation.Execute"/>
        /// <remarks>Executes operation by changing process elements data owner.</remarks>
        /// </summary>
        public void Execute(UserConnection userConnection, EntityEventAsyncOperationArgs arguments)
        {
            var operationArgs    = (EntityOwnerEventAsyncOperationArgs)arguments;
            var ownerProcessInfo = new SysProcessElementDataOwnerInfo {
                EntityId   = operationArgs.EntityId,
                NewOwnerId = operationArgs.EntityColumnValues.GetTypedValue <Guid>(operationArgs.OwnerColumnName),
                OldOwnerId = operationArgs.OldEntityColumnValues.GetTypedValue <Guid>(operationArgs.OwnerColumnName),
            };

            new SysProcessElementDataOwner(userConnection).Change(ownerProcessInfo);
        }
コード例 #4
0
 private void UpdateSysProcessElementDataOwner(IEnumerable <Guid> processesId, SysProcessElementDataOwnerInfo elementDataOwnerInfo)
 {
     new Update(_userConnection, "SysProcessElementData")
     .Set("OwnerId", Column.Parameter(elementDataOwnerInfo.NewOwnerId))
     .Where("SysProcessId").In(Column.Parameters(processesId))
     .And("OwnerId").IsEqual(Column.Parameter(elementDataOwnerInfo.OldOwnerId))
     .Execute();
 }