Work-calendar date queries¶
WorkCalendarServiceProxy wraps the WorkCalendar SOAP service (SAIFDatesSoapClient) to answer four work-day calendar questions, passing the date and calendar name through to the wire operation unchanged.
| Field | Value |
|---|---|
| Operation ID | OP-WP-06 |
| Trigger | A caller request; no in-repository code constructs this wrapper |
| Inputs | DateTime date, string calendar |
| Outputs | A DateTime result (FirstWorkDayOfMonth, LastWorkDayOfMonth, NextWorkDay) or a bool result (IsWorkingDay) |
| Primary components | WorkCalendarServiceProxy.FirstWorkDayOfMonth, IsWorkingDay, LastWorkDayOfMonth, NextWorkDay |
| Entry point | Services/SAIF.Services.Web.Proxies/WorkCalendarServiceProxy.cs |
Steps¶
- Construct
WorkCalendarServiceProxy(serviceUrl): guardserviceUrl(WP-BR-001), then build a defaultBasicHttpBindingclient. FirstWorkDayOfMonth(date, calendar),IsWorkingDay(date, calendar),LastWorkDayOfMonth(date, calendar),NextWorkDay(date, calendar): each passes(date, calendar)directly to the same-named wire operation and returns the result unchanged; there is no local business logic in any of the four methods.
Process flow¶
The following diagram visualizes the uniform pass-through pattern shared by all four queries.
flowchart TD
Start([Caller invokes a date query method]) --> Call["Call same-named wire operation<br>with (date, calendar)"]
Call --> Ret([Return wire result unchanged])
Failure and edge-case behavior¶
- A null/empty
serviceUrlat construction throws an argument exception before any wire client is created. - None of the four methods performs local validation of
dateorcalendar; an unknown calendar name or invalid date is handled entirely by the remote WorkCalendar service*.
Related documentation¶
Note: Statements marked with
*were inferred from code structure, naming conventions, or contextual evidence where direct confirmation was not available in source artifacts.
Sources¶
Services/SAIF.Services.Web.Proxies/WorkCalendarServiceProxy.cs