def send_event(self, action, properties, event_severity=EVENT_SEVERITY):
        """
        send css_event and if fails send custom_event instead
        Args:
            action (ACTIONS): the action causing the event
            properties (dict): the action additional properties
            event_severity (string): the event severity
        Raises:
            XCLIError: if the xcli.cmd.custom_event failed
            KeyError: if action wasn't predefined
            TypeError: if properties is not None or dict
        """
        # verify properties
        event_properties = dict() if (properties is None) else properties
        if type(event_properties) is not dict:
            raise TypeError('properties is not dict')

        # prepare event
        event_bunch = Bunch(
            Product=self.product_name,
            Version=self.product_version,
            Server=self.server_name,
            Platform=self.platform,
            Action=action,
            Properties=event_properties)
        event_description = self._get_description_prefix() + \
            json.dumps(event_bunch)

        use_custom_event = True
        if CSS_PRODUCT_EVENT in dir(self.xcli.cmd):
            try:
                # send css product event
                log.debug("sending css_product_event "
                          "description=%s severity=%s",
                          event_description, event_severity)
                self.xcli.cmd.css_product_event(severity=event_severity,
                                                product=self.product_name,
                                                version=self.product_version,
                                                server=self.server_name,
                                                platform=self.platform,
                                                action=action,
                                                properties=event_properties)
                use_custom_event = False
            except (UnrecognizedCommandError,
                    OperationForbiddenForUserCategoryError):
                log.warning("failed css_product_event "
                            "description=%s severity=%s",
                            event_description, event_severity)
        if use_custom_event:
            # send custom event
            log.debug("sending custom_event description=%s severity=%s",
                      event_description, event_severity)
            self.xcli.cmd.custom_event(
                description=event_description, severity=event_severity)
send css_event and if fails send custom_event instead
        Args:
            action (ACTIONS): the action causing the event
            properties (dict): the action additional properties
            event_severity (string): the event severity
        Raises:
            XCLIError: if the xcli.cmd.custom_event failed
            KeyError: if action wasn't predefined
            TypeError: if properties is not None or dict