internal static List <WorkflowPermission> GetWorkflowPermissionsByID(int ID)
            {
                string CacheKey = CacheFactory.GetCacheKey(CacheFactory.Keys.Workflow + "GetWorkflowPermissionsByID", ID);
                List <WorkflowPermission> _WorkflowPerm = CacheFactory.Get(CacheKey) as List <WorkflowPermission>;

                if (_WorkflowPerm == null)
                {
                    _WorkflowPerm = WorkflowPermission.Query("where WorkflowID=@0", ID).ToList();
                    CacheFactory.Set(CacheKey, _WorkflowPerm);
                }
                return(_WorkflowPerm);
            }
            internal static void DeleteWorkflow(Workflow wflow)
            {
                foreach (WorkflowState state in GetAllStatesbyWorkflowID(wflow.ID))
                {
                    WorkflowLog.Delete("Where StateID=@0", state.StateID);
                    WorkflowStatePermission.Delete("Where StateID=@0", state.StateID);
                    state.Delete();
                }

                WorkflowPermission.Delete("Where Workflowid=@0", wflow.ID);
                wflow.Delete();

                CacheFactory.Clear(CacheFactory.Keys.Workflow);
            }