Agusto Xaverius P Sipahutar

Job:Making some bugs and patch
Moss/Wss,C#,Sql Server,WWF,K2.BlackPearl
Motto : Keep Study and study
See also: Other Geeks@INDC

News




MCP Logo
MCTS Logo

MCP ID# 3542391

My Curiculum Vitae


Agusto Xaverius P S's Facebook profile

Other Article

My Community

My Article/Share Knowledge

Others Moss/Wss Site

My Other Website/Blogs

My Share (Ebook,etc)

July 2008 - Posts

SharePoint Interview Questions

Check this out this link : http://sharepoint-interview-questions.blogspot.com/.

Share this post: | | | |
Posted: Jul 29 2008, 05:54 PM by agusto | with no comments
Filed under:
K2Helper

using System;
using System.Collections; 
using System.Collections.Generic;
using System.Text;
using System.Data;
using SourceCode.Workflow.Client;
using SourceCode.Workflow.Common;
using SourceCode.Workflow.Runtime; 


namespace MyCommon
{
    /// <summary>
    /// K2Helper Class
    /// </summary>
    public class K2Helper: IDisposable
    {
        private string serverName = string.Empty;
        private SourceCode.Workflow.Client.Connection conn = null;
        private string errorMessage = string.Empty;
        private SourceCode.Workflow.Client.User user = null;      

        /// <summary>
        /// Initializes a new instance of the <see cref="K2HelperClient"/> class.
        /// </summary>
        /// <param name="ServerName">Name of the server.</param>
        public K2Helper(string ServerName)
        {
            serverName = ServerName;
            try
            {
                Open();
            }catch (Exception ex)
            {
                errorMessage = ex.Message + "," + ex.Source;
            }
        }

        /// <summary>
        /// Gets the name of the server.
        /// </summary>
        /// <value>The name of the server.</value>
        public string ServerName
        {
            get { return serverName; }
        }

        /// <summary>
        /// Gets the user.
        /// </summary>
        /// <value>The user.</value>
        public User User
        {
            get { return conn.User; }
        }

        /// <summary>
        /// Gets the error message.
        /// </summary>
        /// <value>The error message.</value>
        public string ErrorMessage
        {
            get { return errorMessage; }
        }

        /// <summary>
        /// Gets the conn.
        /// </summary>
        /// <value>The conn.</value>
        public SourceCode.Workflow.Client.Connection K2Conn
        {
            get
            {
                Open();
                return conn;
            }

            set { conn = value; }
        }

        /// <summary>
        /// Opens this instance.
        /// </summary>
        private void Open()
        {
            if (string.IsNullOrEmpty(serverName)) serverName = "localhost"; 
            if (conn == null)
            {
                conn = new Connection();
                conn.Open(serverName);
            }
        }

        /// <summary>
        /// Impersonates the user.
        /// </summary>
        /// <param name="userName">Name of the user.</param>
        public void ImpersonateUser(string userName)
        {
            Open();
            conn.ImpersonateUser(userName);  
        }
        /// <summary>
        /// K2s the server event finish.
        /// </summary>
        /// <param name="k2SN">The k2 SN.</param>
        /// <returns></returns>
        public bool K2ServerEventFinish(string k2SN)
        {
            SourceCode.Workflow.Client.ServerItem k2ServerItem=null;   
            bool sts=false;
            try
            {
                Open();
                k2ServerItem = conn.OpenServerItem(k2SN);
                k2ServerItem.Finish();
                sts = true;
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message + "," + ex.Source;
            }
            finally
            {
                k2ServerItem = null;
            }
            return sts;
        }

        /// <summary>
        /// Starts the process instance.
        /// </summary>
        /// <param name="processName">Name of the process.</param>
        /// <param name="param">The param.</param>
        /// <returns></returns>
        public ProcessInstance StartProcessInstance(string processName, Hashtable param)
        {
            ProcessInstance instance = null;
            try
            {
                Open();
                instance = conn.CreateProcessInstance(processName);
                IDictionaryEnumerator list = param.GetEnumerator();
                while (list.MoveNext())
                {
                    instance.DataFields[list.Key.ToString()].Value = list.Value;
                }
                conn.StartProcessInstance(instance);
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message + "," + ex.Source;
            }
            return instance;
        }

        /// <summary>
        /// Redirects the work list item.
        /// </summary>
        /// <param name="item">The item.</param>
        /// <param name="userName">Name of the user. ex MyDomain\Agusto</param>
        /// <returns></returns>
        public bool RedirectWorkListItem(WorklistItem item,string userName)
        {
            bool sts = false;
            try
            {
                if (item == null)
                {
                    errorMessage = "WorklistItem is null";
                    return false;
                }
                item.Redirect(userName); 
            }
            catch (Exception ex)
            {
                errorMessage = ex.Message + "," + ex.Source;
            }
            return sts;
        }

        /// <summary>
        /// Gets the work list item client by K2 Serial Number
        /// </summary>
        /// <param name="k2SN">K2SN</param>
        /// <returns></returns>
        public WorklistItem GetWorkListItem(string k2SN)
        {
            Open();
            WorklistItem item = conn.OpenWorklistItem(k2SN, "ASP", true, true);
            return item;
        }

        /// <summary>
        /// Gets the server item by K2 Serial Number
        /// </summary>
        /// <param name="k2SN">k2SN</param>
        /// <returns></returns>
        public ServerItem GetServerItem(string k2SN)
        {
            Open();
            ServerItem item = conn.OpenServerItem(k2SN);
            return item;
        }

        /// <summary>
        /// Creates the work list data table.
        /// </summary>
        /// <returns></returns>
        private DataTable CreateWorkListDataTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID"); 
            dt.Columns.Add("Folio"); 
            dt.Columns.Add("ProcInstID");
            dt.Columns.Add("StartDate");
            dt.Columns.Add("SerialNumber");
            return dt;
        }

        /// <summary>
        /// Gets the work list data table.
        /// </summary>
        /// <param name="list">The list.</param>
        /// <returns></returns>
        public DataTable GetWorkListDataTable(Worklist list)
        {
            DataTable dt = null;
            if (list != null && list.Count > 0)
            {
                dt = CreateWorkListDataTable();
                foreach (WorklistItem item in list)
                {
                    DataRow dr = dt.NewRow();
                    dr["Folio"] = item.ProcessInstance.Folio;
                    dr["ProcInstID"] = item.ProcessInstance.ID;
                    dr["StartDate"] = item.ProcessInstance.StartDate;
                    dr["SerialNumber"] = item.SerialNumber;
                    dr["ID"] = item.ID.ToString(); 
                }
            }
            return dt;
        }

        /// <summary>
        /// Gets the work list.
        /// </summary>
        /// <returns></returns>
        public Worklist GetWorkList()
        {
            Open();
            Worklist list = conn.OpenWorklist();
            return list;
        }

        /// <summary>
        /// Gets the work list.
        /// </summary>
        /// <param name="criteria">The criteria.</param>
        /// <returns></returns>
        public Worklist GetWorkList(WorklistCriteria criteria)
        {
            Open();
            Worklist list = conn.OpenWorklist(criteria);
            return list;
        }

        /// <summary>
        /// Gets the work list.
        /// </summary>
        /// <param name="processName">Name of the process.</param>
        /// <returns></returns>
        public Worklist GetWorkListByProcessName(string processName)
        {
            WorklistCriteria criteria = new WorklistCriteria();
            criteria.AddFilterField(WCField.ProcessName, WCCompare.Equal, processName);
            return GetWorkList(criteria);  
        }

        /// <summary>
        /// Gets the work list by folio.
        /// </summary>
        /// <param name="folio">The folio.</param>
        /// <returns></returns>
        public Worklist GetWorkListByFolio(string folio)
        {
            WorklistCriteria criteria = new WorklistCriteria();
            criteria.AddFilterField(WCField.ProcessFolio, WCCompare.Equal, folio);
            return GetWorkList(criteria); 
        }

        /// <summary>
        /// Stop a process instance by process ID.
        /// </summary>
        /// <param name="ProcessID"></param>
        /// <returns></returns>
        public bool StopProcessInstance(int ProcessID)
        {
            SourceCode.K2Mng.K2Manager mgr = this.GetK2Manager();
            bool flag = mgr.StopProcessInstances(ProcessID);
            mgr.Logout();
            return flag;
        }

        /// <summary>
        /// Releases the worklist item.
        /// </summary>
        /// <param name="worklistItemID">The worklistItemID.</param>
        /// <returns>boolean</returns>
        public bool ReleaseWorklistItem(int worklistItemID)
        {
            SourceCode.K2Mng.K2Manager mgr = this.GetK2Manager();
            bool flag = mgr.ReleaseWorklistItem(worklistItemID);
            mgr.Logout();
            return flag;
        }
        /// <summary>
        /// Gets the k2 manager.
        /// </summary>
        /// <returns></returns>
        public SourceCode.K2Mng.K2Manager GetK2Manager()
        {
            SourceCode.K2Mng.K2Manager mgr = new SourceCode.K2Mng.K2Manager();
            try
            {
                mgr.Login(serverName, 5252, "");
            }
            catch (Exception ex)
            {
                throw new Exception("Access to K2 Server denied!", ex);
            }
            return mgr;
        }

        /// <summary>
        /// Gets the string table list.
        /// </summary>
        /// <returns></returns>
        public SourceCode.K2Mng.StringTables GetStringTableList()
        {
            SourceCode.K2Mng.K2Manager mgr = this.GetK2Manager();
            return mgr.GetStringTableList(); 
        }

        public SourceCode.K2Mng.StringTable GetStringTableDevelomentFolder()
        {
            string primaryFolder = "Development";
            return GetStringTableByPrimaryFolder(primaryFolder);
        }

        public SourceCode.K2Mng.StringTable GetStringTableByPrimaryFolder(string primaryFolder)
        {
            SourceCode.K2Mng.StringTable sT = this.GetK2Manager().GetStringTable(primaryFolder);
            return sT;
        }

        /// <summary>
        /// Gets all work list items.
        /// </summary>
        /// <param name="dtStart">The dt start.</param>
        /// <param name="dtEnd">The dt end.</param>
        /// <param name="destination">The destination.</param>
        /// <param name="processName">Name of the process.</param>
        /// <param name="activityName">Name of the activity.</param>
        /// <param name="eventName">Name of the event.</param>
        /// <param name="folio">The folio.</param>
        /// <returns></returns>
        public SourceCode.K2Mng.WorkListItems GetK2MngAllWorkListItems(DateTime dtStart, DateTime dtEnd, string destination, string processName, string activityName, string eventName, string folio)
        {
            SourceCode.K2Mng.WorkListItems list;
            SourceCode.K2Mng.K2Manager mgr = this.GetK2Manager();
            list = mgr.GetWorkListItems(dtStart, dtEnd, destination, processName, activityName, eventName, folio);   
            mgr.Logout();
            return list;
        }

        /// <summary>
        /// Gets the k2 MNG all work list items.
        /// </summary>
        /// <param name="dtStart">The dtStart.</param>
        /// <param name="dtEnd">The dtEnd.</param>
        /// <returns></returns>
        public SourceCode.K2Mng.WorkListItems GetK2MngAllWorkListItems(DateTime dtStart, DateTime dtEnd)
        {
            SourceCode.K2Mng.WorkListItems list;
            SourceCode.K2Mng.K2Manager mgr = this.GetK2Manager();
            list = mgr.GetWorkListItems(dtStart, dtEnd, string.Empty, string.Empty, string.Empty, string.Empty, string.Empty);
            mgr.Logout();
            return list;
        }

        /// <summary>
        /// Gets all process instances.
        /// </summary>
        /// <returns></returns>
        public SourceCode.K2Mng.ProcessInstances GetK2MngAllProcessInstances()
        {
            SourceCode.K2Mng.ProcessInstances list;
            SourceCode.K2Mng.K2Manager mgr = this.GetK2Manager();
            list = mgr.GetProcessInstances();
            mgr.Logout();
            return list;
        }

        /// <summary>
        /// Closes this instance.
        /// </summary>
        public void Close()
        {
            if (conn != null)
            {
                conn.Close();
            }
            conn = null; 
        }

        /// <summary>
        /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
        /// </summary>
        public void Dispose()
        {
            serverName = string.Empty;
            errorMessage = string.Empty;
            Close();
            GC.Collect();
        }
    }
}

Share this post: | | | |