def validate_state(self, model, context=None):
        """
        Validate model state
        Run state validators and return and result object.
        :param model:  object or dict
        :param context: object, dict or None
        :return: shiftschema.result.Result
        """
        result = Result()
        for state_validator in self.state:
            error = state_validator.run(
                value=model,
                model=model,
                context=context
            )
            if error:
                result.add_state_errors(error)

        return result