public IWorkflowInstantiationCriteria Create(string name)
        {
            var w = new UmbracoWorkflowInstantiationCriteria

                        {   Name = name, 
                            Events = new List<string>()
                        };

            return w;
        }
        public IWorkflowInstantiationCriteria Create(string name)
        {
            var w = new UmbracoWorkflowInstantiationCriteria

            {
                Name   = name,
                Events = new List <string>()
            };

            return(w);
        }
        public bool IsCriteriaValid(UmbracoWorkflowInstantiationCriteria criteria, User u)
        {
            if (criteria.Users.Count > 0)
            {
                Log.Debug(string.Format("Validating criteria for users {0}. Current user {1}", string.Join(", ", criteria.Users), u.Id));
            }
            Log.Debug(string.Format("Users contains user {0}", criteria.Users.Contains(u.Id)));

            if (criteria.UserTypes.Count > 0)
            {
                Log.Debug(string.Format("User type criteria {0} current user {1}", string.Join(", ", criteria.UserTypes), u.UserType.Id));
            }
            Log.Debug(string.Format("UserTypes contains user {0}", criteria.UserTypes.Contains(u.UserType.Id)));

            var userMatches     = UserMatches(criteria.Users, u);
            var userTypeMatches = UserTypeMatches(criteria.UserTypes, u);


            Log.Debug(string.Format("return: {0} and {1}", userMatches, userTypeMatches));
            if ((criteria.Users.Count > 0) && (criteria.UserTypes.Count > 0))
            {
                if (criteria.CriteriaOperand == "and")
                {
                    return(userMatches && userTypeMatches);
                }
                return(userMatches || userTypeMatches);
            }

            if (criteria.Users.Count > 0)
            {
                return(userMatches);
            }

            if (criteria.UserTypes.Count > 0)
            {
                return(userTypeMatches);
            }
            return(true);
        }