コード例 #1
0
        /// <summary>
        /// Get OOF status for current user from Client API and return it
        /// TODO: Remove User FQN parameter
        /// </summary>
        private void GetUserStatus()
        {
            ServiceObject serviceObject = base.ServiceBroker.Service.ServiceObjects[0];

            serviceObject.Properties.InitResultTable();
            DataTable results = base.ServiceBroker.ServicePackage.ResultTable;

            using (Connection k2Con = this.ServiceBroker.K2Connection.GetWorkflowClientConnection())
            {
                SourceCode.Workflow.Client.UserStatuses status = k2Con.GetUserStatus();

                DataRow dr = results.NewRow();
                dr[Constants.SOProperties.OutOfOffice.UserStatus] = status.ToString();
                results.Rows.Add(dr);
                k2Con.Close();
            }
        }
コード例 #2
0
        /// <summary>
        /// Set OOF status for a user
        /// </summary>
        /// <param name="status">OOF Status (Available, OOF, None)</param>
        private void SetStatus(SourceCode.Workflow.Client.UserStatuses status)
        {
            using (Connection k2Con = this.ServiceBroker.K2Connection.GetWorkflowClientConnection())
            {
                // None for userstatus means the users is not configured, throw an exception
                if (UserStatuses.None == k2Con.GetUserStatus() && UserStatuses.OOF == status)
                {
                    // exception should be thrown only in case that user tries to set OOF,
                    throw new ApplicationException(Resources.OutOfOfficeNotConfiguredForUser);
                }

                try
                {
                    k2Con.SetUserStatus(status);
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(Resources.FailedToSetOOF, ex);
                }

                k2Con.Close();
            }
        }