Possible values for the flags in the Integration table:
///
/// The Status field of the Integration table. NOT the same as the Status field in the IntegrationQueue table.
///
public enum IntegrationStatusEnum
{
///
/// If the Status is Invalid (0) then it's an indication that something is very wrong, that should never happen
///
Invalid = 0,
///
/// If Status is Enabled then the integration is... enabled.
///
Enabled = 1,
///
/// If Status is Paused, submits are accepted, queue is filling up, but NOT processed until integration is Enabled again
///
Paused = 2,
///
/// If Status is Ignored, queue is NOT filling up, submits are totally ignored.
///
Ignore = 3,
///
/// NOT FULLY IMPLEMENTED YET, DO NOT USE!
/// If Status is Scheduled then there is a schedule for when the integration should be enabled
/// Useful for dealing with service windows so there is no need to Pause/Enable the integration manually in the middle of the night
/// The status will be inferred from a schedule in the IntegrationSchedule table.
/// Default is Enabled. Higher status overrides lower, ie if schedule A says the integration
/// is Enabled and schedule B says it's Ignore, then status is Ignore
///
Scheduled = 4
};
///
/// This is the values for the Direction field
/// Mostly for information, but it is also used for dealing with healthchecks:
/// If Direction is Outgoing and a healthcheck says there is a problem then it will not try to send anything
/// If Direction is Incoming and a healtchcheck says there is a problem, Connection will still be Up and it will STILL accept incoming calls
///
public enum DirectionEnum
{
///
/// It should never be None (0), if it is then there's a problem
///
None = 0,
///
/// This is an Outgoing integration meaning it will make calls to another service
///
Outgoing,
///
/// This is an Incoming integration meaning it will accept calls from another service
///
Incoming,
///
/// Not outgoing nor incoming, perhaps just a local task
///
None
}
///
/// The Connection field is used for dealing with healthchecks
/// An integration can be Enabled but if a healthcheck says that Connection is Down it will not make any outgoing calls
///
public enum ConnectionEnum
{
///
/// Connection is Down. No calls will be made until it's Up again
///
Down = 0,
///
/// Connection is Up. All good.
///
Up
};
Possible values for the flags in the IntegrationQueue table:
///
/// The Status field for the IntegrationQueue, not the same as the Status field for the Integration
///
public enum StatusEnum
{
///
/// This is a new item that has not been processed yet
///
New = 1,
///
/// This was successfully processed, nothing more will be done
///
Success = 2,
///
/// There was an error, it will try again according to the RetryScheme of the integration
///
Error = 3,
///
/// It has been rejected completely, it will not try again (because it would just fail again)
/// This will never be accepted, there could be a permanent error in the data etc
///
Rejected = 4,
///
/// This status means that it has tried so many times, it is time to give up.
///
GaveUp = 5
}
///
/// The Command field is used to directly control the integration, to override what should be done with the IntegrationQueue item
///
public enum CommendEnum
{
///
/// No special action
///
None = 0,
///
/// The request will be tried again, immediately (not wait according to the schedule)
/// It doesn't matter what the current status is, even if it is Success it will still try again.
///
Reprocess_Request = 1,
///
/// This command will make it give up immediately, do not try again (even if the schedule says so)
///
GiveUp = 2,
///
/// This command will process the RESPONSE again. (It will call the ProcessResponse() method if you have overridden that method)
/// For example, if you have split it up so that in ProcessRequest() you call an API to get some data, and then in ProcessResponse()
/// you process that data and store it tables.... and you don't want to call the API again to get new data, you just want to
/// try to process it again, using the same data as the first time.
///
Reprocess_Response = 3
}