Interface TicketResolutionStrategy

All Known Implementing Classes:
DefaultTicketResolutionStrategy

public interface TicketResolutionStrategy
Interface to support the strategies to be considered when moving a note in and out of resolved state and when finding out if a ticket can be considered 'closed'.
  • Method Details

    • resolveTicket

      CsTicketResolutionEventModel resolveTicket(CsTicketModel ticket, CsInterventionType intervention, CsResolutionType resolutionType, String note) throws TicketException
      Create a resolution event against a ticket and associate it with the ticket. This will also set the resolution event on the ticket itself
      Parameters:
      ticket - The ticket to mark as resolved
      intervention - The intervention of the resolution
      resolutionType - The type of the resolution
      note - The text note to add agsint the resolution
      Returns:
      The resolution event
      Throws:
      TicketException
    • resolveTicket

      CsTicketResolutionEventModel resolveTicket(CsTicketModel ticket, CsInterventionType intervention, CsResolutionType resolutionType, String note, Collection<MediaModel> attachments) throws TicketException
      Create a resolution event against a ticket and associate it with the ticket. This will also set the resolution event on the ticket itself
      Parameters:
      ticket - The ticket to mark as resolved
      intervention - The intervention of the resolution
      resolutionType - The type of the resolution
      note - The text note to add agsint the resolution
      Returns:
      The resolution event
      Throws:
      TicketException
    • unResolveTicket

      CsCustomerEventModel unResolveTicket(CsTicketModel ticket, CsInterventionType intervention, CsEventReason reason, String note) throws TicketException
      Remove the resolution event from the ticket (although keep in in the list of events) and add a note to a ticket to indicate that it is no longer resolved. This method should also update the ticket state to indicate it is no longer resolved if appropriate.
      Parameters:
      ticket - The ticket to un-resolve
      intervention - The intervention that caused the ticket's resolution to be removed
      reason - The reason for unresolving the ticket
      note - The note to add when the ticket is unresolved.
      Returns:
      The note created against the ticket.
      Throws:
      TicketException
    • unResolveTicket

      CsCustomerEventModel unResolveTicket(CsTicketModel ticket, CsInterventionType intervention, CsEventReason reason, String note, Collection<MediaModel> attachments) throws TicketException
      Remove the resolution event from the ticket (although keep in in the list of events) and add a note to a ticket to indicate that it is no longer resolved. This method should also update the ticket state to indicate it is no longer resolved if appropriate.
      Parameters:
      ticket - The ticket to un-resolve
      intervention - The intervention that caused the ticket's resolution to be removed
      reason - The reason for unresolving the ticket
      note - The note to add when the ticket is unresolved.
      attachments -
      Returns:
      The note created against the ticket.
      Throws:
      TicketException
    • isTicketClosed

      boolean isTicketClosed(CsTicketModel ticket)
      Find out if a ticket is considered 'closed'. This allows for specific implementations to use different rules around reporting a closed ticket.
      Parameters:
      ticket - The ticket to check
      Returns:
      true if the ticket is closed, false otherwise
    • isTicketResolvable

      boolean isTicketResolvable(CsTicketModel ticket)
      Find out whether a ticket is resolvable. This allows for specific implementations to use different rules.
      Parameters:
      ticket - The ticket to check
      Returns:
      true if the ticket is resolvable, false otherwise
    • filterTicketStatesToRemovedClosedStates

      List<CsTicketState> filterTicketStatesToRemovedClosedStates(List<CsTicketState> states)
      Filter a given list of ticket states to remove any which represent a resolved state and should only be used by the ticket resolution strategies. This method must not return a new states.
      Parameters:
      states - The states to filter
      Returns:
      A list with any states removed