---
title: Client reference
summary: Complete reference for every contract operation this repository calls.
status: draft
owner: SAIF.Core documentation
last_reviewed: 2026-09-24
---

# Client reference

This page documents the four operations of `SAIFDates`† that repository source calls, through the generated `SAIFDatesSoapClient`, via the authored wrapper `WorkCalendarServiceProxy`.

---

## IsWorkingDay

Returns whether a given date is a working day on a named calendar.

| Field | Value |
| --- | --- |
| **Operation** | `IsWorkingDay` |
| **SOAP action** | `http://saifonline/SAIFDates/SAIFDates/IsWorkingDay` |
| **Proxy member** | `bool IsWorkingDay(DateTime inDate, string inCalendar)` (generated, `internal`) |
| **Input message** | `IsWorkingDay` (`inDate`, `inCalendar`) |
| **Output message** | `IsWorkingDayResult : boolean` |
| **Declared faults** | None declared |
| **Called by** | `WorkCalendarServiceProxy.IsWorkingDay(DateTime date, string calendar)` (`Services/SAIF.Services.Web.Proxies/WorkCalendarServiceProxy.cs:28-31`) |
| **Source** | `WorkCalendarServiceProxy.cs:30` |

### Input message

| Part | Type | Required | Bound from | Purpose |
| --- | --- | --- | --- | --- |
| `inDate` | dateTime | Yes | `date` parameter | The date to check |
| `inCalendar` | string | Not stated in the WSDL | `calendar` parameter | The named calendar to check against; valid values are unknown from this repository** |

### Output message

| Part | Type | Consumed by the caller | Notes |
| --- | --- | --- | --- |
| `IsWorkingDayResult` | boolean | Yes | Returned unchanged as the wrapper method's return value |

### Faults

| Fault | Surfaces as | Handled at the call site |
| --- | --- | --- |
| Generic SOAP fault | `FaultException`* | Not handled — no `try`/`catch` surrounds the call; the exception propagates |

### Call site

```csharp
public bool IsWorkingDay(DateTime date, string calendar)
{
    return _webService.IsWorkingDay(date, calendar);
}
```

| Aspect | Finding |
| --- | --- |
| Invocation frequency | Not determined from source — no in-repository caller exists |
| Result cached | No |
| Timeout at this call site | None — binding defaults apply |
| Retry at this call site | None |

### Notes
- No repository source calls `WorkCalendarServiceProxy.IsWorkingDay`, so this operation, while present in source, is not reached end-to-end in this repository*.

---

## NextWorkDay

Returns the next working day after a given date on a named calendar.

| Field | Value |
| --- | --- |
| **Operation** | `NextWorkDay` |
| **SOAP action** | `http://saifonline/SAIFDates/SAIFDates/NextWorkDay` |
| **Proxy member** | `DateTime NextWorkDay(DateTime inDate, string inCalendar)` (generated, `internal`) |
| **Input message** | `NextWorkDay` (`inDate`, `inCalendar`) |
| **Output message** | `NextWorkDayResult : dateTime` |
| **Declared faults** | None declared |
| **Called by** | `WorkCalendarServiceProxy.NextWorkDay(DateTime date, string calendar)` (`WorkCalendarServiceProxy.cs:40-43`) |
| **Source** | `WorkCalendarServiceProxy.cs:42` |

### Input message

| Part | Type | Required | Bound from | Purpose |
| --- | --- | --- | --- | --- |
| `inDate` | dateTime | Not stated in the WSDL | `date` parameter | The reference date |
| `inCalendar` | string | Not stated in the WSDL | `calendar` parameter | The named calendar; valid values are unknown from this repository** |

### Output message

| Part | Type | Consumed by the caller | Notes |
| --- | --- | --- | --- |
| `NextWorkDayResult` | dateTime | Yes | Returned unchanged as the wrapper method's return value |

### Faults

| Fault | Surfaces as | Handled at the call site |
| --- | --- | --- |
| Generic SOAP fault | `FaultException`* | Not handled — the exception propagates |

### Call site

```csharp
public DateTime NextWorkDay(DateTime date, string calendar)
{
    return _webService.NextWorkDay(date, calendar);
}
```

| Aspect | Finding |
| --- | --- |
| Invocation frequency | Not determined from source — no in-repository caller exists |
| Result cached | No |
| Timeout at this call site | None — binding defaults apply |
| Retry at this call site | None |

### Notes
- No repository source calls `WorkCalendarServiceProxy.NextWorkDay`*.

---

## FirstWorkDayOfMonth

Returns the first working day of the month containing a given date.

| Field | Value |
| --- | --- |
| **Operation** | `FirstWorkDayOfMonth` |
| **SOAP action** | `http://saifonline/SAIFDates/SAIFDates/FirstWorkDayOfMonth` |
| **Proxy member** | `DateTime FirstWorkDayOfMonth(DateTime inDate, string inCalendar)` (generated, `internal`) |
| **Input message** | `FirstWorkDayOfMonth` (`inDate`, `inCalendar`) |
| **Output message** | `FirstWorkDayOfMonthResult : dateTime` |
| **Declared faults** | None declared |
| **Called by** | `WorkCalendarServiceProxy.FirstWorkDayOfMonth(DateTime date, string calendar)` (`WorkCalendarServiceProxy.cs:23-26`) |
| **Source** | `WorkCalendarServiceProxy.cs:25` |

### Input message

| Part | Type | Required | Bound from | Purpose |
| --- | --- | --- | --- | --- |
| `inDate` | dateTime | Not stated in the WSDL | `date` parameter | The reference date |
| `inCalendar` | string | Not stated in the WSDL | `calendar` parameter | The named calendar; valid values are unknown from this repository** |

### Output message

| Part | Type | Consumed by the caller | Notes |
| --- | --- | --- | --- |
| `FirstWorkDayOfMonthResult` | dateTime | Yes | Returned unchanged as the wrapper method's return value |

### Faults

| Fault | Surfaces as | Handled at the call site |
| --- | --- | --- |
| Generic SOAP fault | `FaultException`* | Not handled — the exception propagates |

### Call site

```csharp
public DateTime FirstWorkDayOfMonth(DateTime date, string calendar)
{
    return _webService.FirstWorkDayOfMonth(date, calendar);
}
```

| Aspect | Finding |
| --- | --- |
| Invocation frequency | Not determined from source — no in-repository caller exists |
| Result cached | No |
| Timeout at this call site | None — binding defaults apply |
| Retry at this call site | None |

### Notes
- No repository source calls `WorkCalendarServiceProxy.FirstWorkDayOfMonth`*.

---

## LastWorkDayOfMonth

Returns the last working day of the month containing a given date.

| Field | Value |
| --- | --- |
| **Operation** | `LastWorkDayOfMonth` |
| **SOAP action** | `http://saifonline/SAIFDates/SAIFDates/LastWorkDayOfMonth` |
| **Proxy member** | `DateTime LastWorkDayOfMonth(DateTime inDate, string inCalendar)` (generated, `internal`) |
| **Input message** | `LastWorkDayOfMonth` (`inDate`, `inCalendar`) |
| **Output message** | `LastWorkDayOfMonthResult : dateTime` |
| **Declared faults** | None declared |
| **Called by** | `WorkCalendarServiceProxy.LastWorkDayOfMonth(DateTime date, string calendar)` (`WorkCalendarServiceProxy.cs:34-37`) |
| **Source** | `WorkCalendarServiceProxy.cs:36` |

### Input message

| Part | Type | Required | Bound from | Purpose |
| --- | --- | --- | --- | --- |
| `inDate` | dateTime | Not stated in the WSDL | `date` parameter | The reference date |
| `inCalendar` | string | Not stated in the WSDL | `calendar` parameter | The named calendar; valid values are unknown from this repository** |

### Output message

| Part | Type | Consumed by the caller | Notes |
| --- | --- | --- | --- |
| `LastWorkDayOfMonthResult` | dateTime | Yes | Returned unchanged as the wrapper method's return value |

### Faults

| Fault | Surfaces as | Handled at the call site |
| --- | --- | --- |
| Generic SOAP fault | `FaultException`* | Not handled — the exception propagates |

### Call site

```csharp
public DateTime LastWorkDayOfMonth(DateTime date, string calendar)
{
    return _webService.LastWorkDayOfMonth(date, calendar);
}
```

| Aspect | Finding |
| --- | --- |
| Invocation frequency | Not determined from source — no in-repository caller exists |
| Result cached | No |
| Timeout at this call site | None — binding defaults apply |
| Retry at this call site | None |

### Notes
- No repository source calls `WorkCalendarServiceProxy.LastWorkDayOfMonth`*.

---

## Coverage checklist

| Operation | Documented section | Called by |
| --- | --- | --- |
| `IsWorkingDay` | [`IsWorkingDay`](#isworkingday) | `WorkCalendarServiceProxy.IsWorkingDay` |
| `NextWorkDay` | [`NextWorkDay`](#nextworkday) | `WorkCalendarServiceProxy.NextWorkDay` |
| `FirstWorkDayOfMonth` | [`FirstWorkDayOfMonth`](#firstworkdayofmonth) | `WorkCalendarServiceProxy.FirstWorkDayOfMonth` |
| `LastWorkDayOfMonth` | [`LastWorkDayOfMonth`](#lastworkdayofmonth) | `WorkCalendarServiceProxy.LastWorkDayOfMonth` |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Contract](contract.md)
- [Operation map](operation-map.md)
- [Consumption](consumption.md)
- [Dependencies](dependencies.md)
- [Tech debt](tech-debt.md)

> **Note:** Statements marked with `†` are derived from dependency library
> documentation via the Legends CLI. Statements marked with `*` were inferred
> from code structure or contextual evidence. Statements marked with `**` could
> not be confirmed; treat as unknown until verified.

## Sources
- `Services/SAIF.Services.Web.Proxies/WorkCalendarServiceProxy.cs`
- `Services/SAIF.Services.Web.Proxies/Service References/WorkCalendar/saifdates.wsdl`
