Example #1
0
        public SPWorkflowTaskCollectionInstance GetWorkflowAvailableRunCount(SPListItemInstance listItem, object guidOrWorkflow, object filter)
        {
            if (listItem == null)
            {
                throw new JavaScriptException(this.Engine, "Error",
                                              "An instance of a SPListItem object must be supplied as the first argument.");
            }

            SPWorkflowTaskCollection result;

            if (guidOrWorkflow is SPWorkflowInstance)
            {
                if (filter == Undefined.Value)
                {
                    result = m_workflowManager.GetWorkflowTasks(listItem.ListItem,
                                                                (guidOrWorkflow as SPWorkflowInstance).SPWorkflow);
                }
                else
                {
                    var wf = filter as SPWorkflowFilterInstance;
                    if (wf == null)
                    {
                        throw new JavaScriptException(this.Engine, "Error",
                                                      "An instance of a SPWorkflowFilter object must be supplied as the second argument.");
                    }
                    result = m_workflowManager.GetWorkflowTasks(listItem.ListItem,
                                                                (guidOrWorkflow as SPWorkflowInstance).SPWorkflow, wf.SPWorkflowFilter);
                }
            }
            else
            {
                var guid = GuidInstance.ConvertFromJsObjectToGuid(guidOrWorkflow);
                if (filter == Undefined.Value)
                {
                    result = m_workflowManager.GetWorkflowTasks(listItem.ListItem,
                                                                guid);
                }
                else
                {
                    var wf = filter as SPWorkflowFilterInstance;
                    if (wf == null)
                    {
                        throw new JavaScriptException(this.Engine, "Error",
                                                      "An instance of a SPWorkflowFilter object must be supplied as the second argument.");
                    }
                    result = m_workflowManager.GetWorkflowTasks(listItem.ListItem,
                                                                guid, wf.SPWorkflowFilter);
                }
            }

            return(result == null
                ? null
                : new SPWorkflowTaskCollectionInstance(this.Engine.Object.InstancePrototype, result));
        }