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 }