/// <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(); } }
/// <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(); } }