コード例 #1
0
        /// <summary>
        ///   Connect to Vault and add all the lifecycle information
        /// </summary>
        private void CreateLifecyleDefinition()
        {
            if (m_lcStates == null || m_lcTrans == null)
            {
                MessageBox.Show("You must select load a Visio file");
                return;
            }

            var defaultState = (string)m_defaultStateComboBox.SelectedItem;

            if (defaultState.Length == 0)
            {
                MessageBox.Show("You must select a default state");
                return;
            }

            string lcDefName = m_lcDefNameTextBox.Text;

            if (lcDefName.Length == 0)
            {
                MessageBox.Show("You must enter a lifecycle definition name");
                return;
            }

            string lcDefDesc = m_lcDescTextBox.Text;

            try
            {
                DocExSvc.DocumentServiceExtensions docExSvc = ServiceManager.GetDocumentServiceExtensions();

                LfCycDef lcDef = docExSvc.AddLifeCycleDefinition(lcDefName, lcDefDesc);

                // map the state name to the state object
                var m_stateObjMap = new Dictionary <string, LfCycState>();

                foreach (string lcStateName in m_lcStates)
                {
                    bool       isDefault  = (lcStateName == defaultState);
                    LfCycState lcStateObj = docExSvc.AddLifeCycleState(lcDef.Id, lcStateName, "", isDefault, false,
                                                                       null, null, false, RestrictPurgeOption.None);
                    m_stateObjMap.Add(lcStateName, lcStateObj);
                }

                foreach (Pair trans in m_lcTrans)
                {
                    long fromId = m_stateObjMap[trans.FromStateName].Id;
                    long toId   = m_stateObjMap[trans.ToStateName].Id;

                    docExSvc.AddLifeCycleStateTransition(fromId, toId, false, BumpRevisionEnum.None,
                                                         JobSyncPropEnum.None, false, null, null, null);
                }

                MessageBox.Show("Import Completed");
            }
            catch (Exception e)
            {
                MessageBox.Show("Exception thrown: " + e.Message);
            }
        }
コード例 #2
0
        private void CreateLifecycleDefinitionAlex()
        {
            if (_statesList == null || _transitionsList == null)
            {
                MessageBox.Show("You must select load a Visio file");
                return;
            }
            var defaultState = (string)m_defaultStateComboBox.SelectedItem;

            if (defaultState.Length == 0)
            {
                MessageBox.Show("You must select a default state");
                return;
            }

            var lcDefName = m_lcDefNameTextBox.Text;

            if (lcDefName.Length == 0)
            {
                MessageBox.Show("You must enter a lifecycle definition name");
                return;
            }

            var lcDefDesc = m_lcDescTextBox.Text;

            try
            {
                var docExSvc = ServiceManager.GetDocumentServiceExtensions();

                var lcDef = docExSvc.AddLifeCycleDefinition(lcDefName, lcDefDesc);

                // map the state name to the state object
                var mStateObjMap = new Dictionary <string, LfCycState>();

                foreach (var lcStateName in _shapetextlist)
                {
                    var state = (from st in _statesList
                                 where st.Statename == lcStateName
                                 select st).FirstOrDefault();
                    var isDefault = state.IsDefault;
                    var comments  = new string[state.Comments.Count];
                    var i         = 0;
                    foreach (var comment in state.Comments)
                    {
                        comments[i] = comment;
                        i++;
                    }
                    var lcStateObj = docExSvc.AddLifeCycleState(lcDef.Id, lcStateName, state.StateDescription,
                                                                isDefault, state.UseStateBasedSecurity, state.AccessControlEntry,
                                                                comments, state.IsReleasedState,
                                                                state.RestrictPurgeOption);
                    mStateObjMap.Add(lcStateName, lcStateObj);
                }

                foreach (var trans in m_lcTrans)
                {
                    var transition = (from tr in _transitionsList
                                      where tr.FromStateName == trans.FromStateName && tr.ToStateName == trans.ToStateName
                                      select tr).FirstOrDefault() ?? (from tr in _transitionsList
                                                                      where
                                                                      tr.ReverseFromStateName == trans.FromStateName &&
                                                                      tr.ReverseToStateName == trans.ToStateName
                                                                      select tr).FirstOrDefault();
                    if (transition == null)
                    {
                        throw new Exception("There is no corresponding transition in this workflow");
                    }
                    var fromId         = mStateObjMap[trans.FromStateName].Id;
                    var toId           = mStateObjMap[trans.ToStateName].Id;
                    var tmpallowedlist = new long[transition.AllowedUserIds.Count];
                    var i = 0;
                    foreach (var user in transition.AllowedUserIds)
                    {
                        tmpallowedlist[i] = user;
                        i++;
                    }
                    var tmpdeniedlist = new long[transition.DeniedUserIds.Count];
                    var j             = 0;
                    foreach (var user in transition.DeniedUserIds)
                    {
                        tmpdeniedlist[j] = user;
                        j++;
                    }
                    docExSvc.AddLifeCycleStateTransition(fromId, toId, transition.EnforceChildStateSync,
                                                         transition.BumpRevision, transition.SyncPropOption,
                                                         transition.UseTransitionBasedSecurity,
                                                         tmpallowedlist, tmpdeniedlist,
                                                         transition.Conditions);
                    //docExSvc.AddLifeCycleStateTransition(fromId, toId, false, BumpRevisionEnum.None,
                    //                                     JobSyncPropEnum.None, false, null, null, null);
                }

                MessageBox.Show("Import Completed");
            }
            catch (Exception e)
            {
                MessageBox.Show("Exception thrown: " + e.Message);
            }
        }