UC4Service
SAIF.Services.WCF.UC4.Host.Services.UC4Service is the sole service class registered by this host, reached through the single UC4 route. It exposes eight operations — four job-invocation forms (no parameters, JSON string, positional values, key/value pairs) crossed with two identity modes (UC4Environment enum, short client id) — that gate a caller-supplied job name against an allow/deny rule list and forward allowed jobs to a downstream UC4 scheduling service.
Field
Value
Service class
SAIF.Services.WCF.UC4.Host.Services.UC4Service
Declared contract
IUC4Service — external (SAIF.Services.WCF.Contracts, assembly identity not resolvable)*
Route
UC4
Source
src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs
Service attributes
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)], [LogErrorBehavior] (external IServiceBehavior)
Instancing / concurrency
Not declared — WCF defaults (PerSession / Single)
Binding
Not configured; ServiceHostFactory applies WCF protocol mapping, which maps http to basicHttpBinding by default*
Class-level authorization
None in code
Error handling
[LogErrorBehavior] applied — contributes logging, not fault shaping; see Faults and error pipeline
Operations
8 (4 marked [Obsolete])
Also hosted in
— registered by exactly one host, on exactly one route name, in exactly one solution
The contract interface IUC4Service is not declared anywhere in this repository. Every operation section below is therefore derived from the public members of this class, not from the contract interface; the caveat is stated once here and not repeated per operation.
ExecuteJob
(Obsolete) Invokes a job identified by a UC4Environment enum value with no caller-supplied parameters, by converting the enum to a client id and delegating to ExecuteJobWithClientId.
Field
Value
Operation name
ExecuteJob
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJob (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:139)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
Yes — [Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")] (UC4Service.cs:138)
Authorization
None in code
Process
OP-001
Part
Type
Required
Default
Purpose
environment
SAIF.Core.Contracts.UC4.UC4Environment*
Not observable — external contract**
—
Selects the environment; converted internally to a short client id
jobName
string
Not observable — external contract**
—
The job to invoke
ExecuteJob output message
Field
Value
Return type
UC4Result (SAIF.Core.Contracts.UC4)*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
A blocked job returns new UC4Result() and discards the explanatory message — BR-UC4-005
ExecuteJob faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
Unmapped enum value
No fault metadata visible locally**
UC4EnvironmentFactory.GetUC4ClientId(environment) throws for an unmapped value**
Generic SOAP fault produced by the framework
Yes — includeExceptionDetailInFaults="true"
Delegated failures
No fault metadata visible locally**
Any failure mode of ExecuteJobWithClientId
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJob side effects
Aspect
Finding
Records written
None locally — the downstream service may write job-execution state, out of scope
Downstream calls
UC4Client.ScheduleJob (via delegation to ExecuteJobWithClientId)
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective — each call forwards a new job-execution request to the downstream scheduler
ExecuteJobWithClientId
Invokes a job identified by a short client id with no caller-supplied parameters (forwarded as an empty value array).
Field
Value
Operation name
ExecuteJobWithClientId
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithClientId (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:145)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
No
Authorization
None in code
Process
OP-002
Part
Type
Required
Default
Purpose
environment
short
Not observable — external contract**
—
The client id identifying the environment
jobName
string
Not observable — external contract**
—
The job to invoke
ExecuteJobWithClientId output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithClientId faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
Delegated failures
No fault metadata visible locally**
Any failure mode of ExecuteJobWithValuesAndClientId (delegates with an empty value array)
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithClientId side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob (via delegation to ExecuteJobWithValuesAndClientId)
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
ExecuteJobWithJson
(Obsolete) Invokes a job identified by a UC4Environment enum value with parameters supplied as a JSON-encoded string.
Field
Value
Operation name
ExecuteJobWithJson
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithJson (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:152)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
Yes — [Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")] (UC4Service.cs:151)
Authorization
None in code
Process
OP-003
Part
Type
Required
Default
Purpose
environment
UC4Environment*
Not observable — external contract**
—
Selects the environment; converted internally to a client id
jobName
string
Not observable — external contract**
—
The job to invoke
jsonKeyValuePairs
string
Not observable — external contract**
—
Job parameters as a single JSON-encoded KeyValuePair<string,string>[]; bounded by maxStringContentLength = 5242880
ExecuteJobWithJson output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithJson faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
JSON deserialization failure
No fault metadata visible locally**
JsonConvert.DeserializeObject fails on malformed jsonKeyValuePairs, parsed before the allow/deny gate — BR-UC4-013
Generic SOAP fault produced by the framework
Yes
Delegated failures
No fault metadata visible locally**
Any failure mode of ExecuteJobWithJsonAndClientId
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithJson side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob (via delegation to ExecuteJobWithJsonAndClientId)
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
ExecuteJobWithJsonAndClientId
Invokes a job identified by a short client id with parameters supplied as a JSON-encoded string.
Field
Value
Operation name
ExecuteJobWithJsonAndClientId
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithJsonAndClientId (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:159)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
No
Authorization
None in code
Process
OP-004
Part
Type
Required
Default
Purpose
environment
short
Not observable — external contract**
—
The client id identifying the environment
jobName
string
Not observable — external contract**
—
The job to invoke
jsonKeyValuePairs
string
Not observable — external contract**
—
Job parameters as a single JSON-encoded KeyValuePair<string,string>[]; bounded by maxStringContentLength = 5242880
ExecuteJobWithJsonAndClientId output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithJsonAndClientId faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
jobName null
No fault metadata visible locally**
Enforce.ArgumentNotNull(jobName, "jobName") — BR-UC4-004
Generic SOAP fault produced by the framework
Yes
JSON deserialization failure
No fault metadata visible locally**
JsonConvert.DeserializeObject fails on malformed jsonKeyValuePairs, parsed before the allow/deny gate — BR-UC4-013
Generic SOAP fault produced by the framework
Yes
Rule document missing/malformed
No fault metadata visible locally**
rules.UC4Rules.Environments dereferenced unguarded*
Generic SOAP fault produced by the framework
Yes
Downstream failure
No fault metadata visible locally**
Any exception constructing UC4Client or calling the downstream service
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithJsonAndClientId side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
ExecuteJobWithValues
(Obsolete) Invokes a job identified by a UC4Environment enum value with parameters supplied as an ordered list of positional values.
Field
Value
Operation name
ExecuteJobWithValues
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithValues (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:180)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
Yes — [Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")] (UC4Service.cs:179)
Authorization
None in code
Process
OP-005
Part
Type
Required
Default
Purpose
environment
UC4Environment*
Not observable — external contract**
—
Selects the environment; converted internally to a client id
jobName
string
Not observable — external contract**
—
The job to invoke
values
params string[]
Not observable — external contract**
Empty array
Positional parameters, named arg1, arg2, and each subsequent positional argument name before forwarding — BR-UC4-009
ExecuteJobWithValues output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithValues faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
Delegated failures
No fault metadata visible locally**
Any failure mode of ExecuteJobWithValuesAndClientId
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithValues side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob (via delegation to ExecuteJobWithValuesAndClientId)
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
ExecuteJobWithValuesAndClientId
Invokes a job identified by a short client id with parameters supplied as an ordered list of positional values. This is the canonical operation flow — see Operations and processes .
Field
Value
Operation name
ExecuteJobWithValuesAndClientId
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithValuesAndClientId (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:186)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
No
Authorization
None in code
Process
OP-006
Part
Type
Required
Default
Purpose
environment
short
Not observable — external contract**
—
The client id identifying the environment
jobName
string
Not observable — external contract**
—
The job to invoke
values
params string[]
Not observable — external contract**
Empty array
Positional parameters, named arg1, arg2, and each subsequent positional argument name before forwarding — BR-UC4-009
ExecuteJobWithValuesAndClientId output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithValuesAndClientId faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
jobName null
No fault metadata visible locally**
Enforce.ArgumentNotNull(jobName, "jobName") — BR-UC4-004
Generic SOAP fault produced by the framework
Yes
Rule document missing/malformed
No fault metadata visible locally**
rules.UC4Rules.Environments dereferenced unguarded*
Generic SOAP fault produced by the framework
Yes
Downstream failure
No fault metadata visible locally**
Any exception constructing UC4Client or calling the downstream service
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithValuesAndClientId side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
ExecuteJobWithParameters
(Obsolete) Invokes a job identified by a UC4Environment enum value with parameters supplied as key/value pairs, forwarded unmodified.
Field
Value
Operation name
ExecuteJobWithParameters
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithParameters (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:200)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
Yes — [Obsolete("The Enums for Enviroments is not kept up to date, please use method that takes in number for clientID")] (UC4Service.cs:199)
Authorization
None in code
Process
OP-007
Part
Type
Required
Default
Purpose
environment
UC4Environment*
Not observable — external contract**
—
Selects the environment; converted internally to a client id
jobName
string
Not observable — external contract**
—
The job to invoke
parameters
IEnumerable<KeyValuePair<string,string>>
Not observable — external contract**
—
Named job parameters, forwarded to the downstream service without inspection
ExecuteJobWithParameters output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithParameters faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
Delegated failures
No fault metadata visible locally**
Any failure mode of ExecuteJobWithParametersAndClientId
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithParameters side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob (via delegation to ExecuteJobWithParametersAndClientId)
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
ExecuteJobWithParametersAndClientId
Invokes a job identified by a short client id with parameters supplied as key/value pairs, forwarded unmodified (no positional naming step, unlike the values forms).
Field
Value
Operation name
ExecuteJobWithParametersAndClientId
Contract name
Not observable — contract assembly is external
SOAP action
Not observable — contract assembly is external
Implementing member
UC4Service.ExecuteJobWithParametersAndClientId (src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs:206)
Pattern
Request/response
Binding
basicHttpBinding (WCF protocol-mapping default)*
Obsolete
No
Authorization
None in code
Process
OP-008
Part
Type
Required
Default
Purpose
environment
short
Not observable — external contract**
—
The client id identifying the environment
jobName
string
Not observable — external contract**
—
The job to invoke
parameters
IEnumerable<KeyValuePair<string,string>>
Not observable — external contract**
—
Named job parameters, forwarded to the downstream service without inspection
ExecuteJobWithParametersAndClientId output message
Field
Value
Return type
UC4Result*
Meaning
The mapped downstream result on success; a default-constructed UC4Result when the job is blocked
Empty-result behavior
BR-UC4-005
ExecuteJobWithParametersAndClientId faults
Fault
Declared in host source
Raised when
Surfaced as
Detail crosses the boundary
jobName null
No fault metadata visible locally**
Enforce.ArgumentNotNull(jobName, "jobName") — BR-UC4-004
Generic SOAP fault produced by the framework
Yes
Rule document missing/malformed
No fault metadata visible locally**
rules.UC4Rules.Environments dereferenced unguarded*
Generic SOAP fault produced by the framework
Yes
Downstream failure
No fault metadata visible locally**
Any exception constructing UC4Client or calling the downstream service
Generic SOAP fault produced by the framework
Yes
Whether IUC4Service declares a [FaultContract] for any of these faults is Not observable — external contract**; the host source only shows that no FaultException is constructed locally. See Faults and error pipeline .
ExecuteJobWithParametersAndClientId side effects
Aspect
Finding
Records written
None locally
Downstream calls
UC4Client.ScheduleJob
Shared state touched
None
Repeat-call behavior
Not idempotent from the host's perspective
Coverage checklist
Public member
Documented section
Pattern
UC4Result ExecuteJob(UC4Environment environment, string jobName)
ExecuteJob
Request/response
UC4Result ExecuteJobWithClientId(short environment, string jobName)
ExecuteJobWithClientId
Request/response
UC4Result ExecuteJobWithJson(UC4Environment environment, string jobName, string jsonKeyValuePairs)
ExecuteJobWithJson
Request/response
UC4Result ExecuteJobWithJsonAndClientId(short environment, string jobName, string jsonKeyValuePairs)
ExecuteJobWithJsonAndClientId
Request/response
UC4Result ExecuteJobWithValues(UC4Environment environment, string jobName, params string[] values)
ExecuteJobWithValues
Request/response
UC4Result ExecuteJobWithValuesAndClientId(short environment, string jobName, params string[] values)
ExecuteJobWithValuesAndClientId
Request/response
UC4Result ExecuteJobWithParameters(UC4Environment environment, string jobName, IEnumerable<KeyValuePair<string,string>> parameters)
ExecuteJobWithParameters
Request/response
UC4Result ExecuteJobWithParametersAndClientId(short environment, string jobName, IEnumerable<KeyValuePair<string,string>> parameters)
ExecuteJobWithParametersAndClientId
Request/response
Non-operation public members (UC4Service(), UC4Service(IEnvironmentService), Dispose(), ERR_JOB_NOT_ALLOWED, ERR_JOB_NAME_INVALID, ERR_PARAMETER_NAME_INVALID, APP_NAME) are excluded — see Overview and Tech debt for the constants that are never actually returned to a caller.
Note: Statements marked with * were inferred from code structure, naming
conventions, or contextual evidence where direct confirmation was not available
in source artifacts. Statements marked with ** could not be confirmed; treat
as unknown until verified.
Sources
src/WCF/SAIF.Services.WCF.UC4.Host/UC4Service.cs
src/WCF/SAIF.Services.WCF.UC4.Host/Uc4Client.cs
src/WCF/SAIF.Services.WCF.UC4.Host/Web.config