Click or drag to resize

ServiceRouterGetUserTimeOffRequest Method

Returns a GetUserTimeOffRequestOut response with a result model List<GetUserTimeOffRequestModel>

Namespace: AppOne.Services.V2
Assembly: AppOne.Web.Service (in AppOne.Web.Service.dll) Version: 1.0.141
Syntax
public GetUserTimeOffRequestOut GetUserTimeOffRequest(
	GetUserTimeOffRequestIn input
)

Parameters

input  GetUserTimeOffRequestIn
A new GetUserTimeOffRequestIn object

Return Value

GetUserTimeOffRequestOut
A GetUserTimeOffRequestOut object
Exceptions
ExceptionCondition
ServiceException - Start Date and End Date range should be with in 60 days
- End Date range should be after Start Date Range
Remarks
Use this method to get a results list of GetUserTimeOffRequestModel. The GetUserTimeOffRequestModel contains the meta data necessary to report on a a users time-off request.

DataAction Names

NameDescriptionValues Example
SELECT-ALLReturns all users in system regardless of any state.[ignored]
SELECT-EMPIDReturns only the users with the specified employee ID passed in the values property."abc-123","123","efg"...
SELECT-EMPID-SINGLEReturns only one user with the specified employee ID passed in the values property. The option allows for unlimited date ranges"abc-123","123","efg"...

Note  Note
The StartDate and EndDate both should be with in 60 days of each other or an exception will be returned. To increase the responsiveness of this service call use a short time span between the StartDate and EndDate or disable the IgnoreDeletedRequests property.

Layout Overview:
Within the time off rules there is the concept of request data and detail data. Below are the differences between each:

PropertyDescription
Request: This data is higher level data such as the complete start and end times for a given duration and the total time taken for a request. A request can consist of several detail items. For example a request from 07/01/2000 to 07/03/2000 would have three separate detail items with one detail item to represent a single day.
Detail:This data is lower level data of which belong to a specific request where each detail will have one parent.

The IgnoreDetails flag will return the details for every single day that was requested. Please only use this flag if the data is needed.

Example
JSON Request
{
    "AuthToken": "...",
    "StartDate":"\/Date(1462086000000+0000)\/",
    "EndDate":"\/Date(1464678000000+0000)\/",
    "DateTimeSchema":0,
    "IgnoreDeletedRequests":false,
    "DataAction":{
        "Name":"SELECT-ALL",
        "Values":[""]
    }
}
JSON Response
{
   "Report": {
      "APIVersion": "2.0",
      "ProcessTime": "0.0182467",
      "RequestTime": "/Date(1463093096606+0000)/",
      "ResponseTime": "/Date(1463093096624+0000)/",
      "Results": 1
   },
   "Results": [{
      "ID": 980,
      "DateTimeSubmitted": "/Date(1463106734903+0000)/",
      "DurationPerDaySecs": 28800,
      "EmpIdentifier": "5555",
      "EmpNotes": "e note",
      "EndDateTime": "/Date(1463522400000+0000)/",
      "EndDateTimeSchema": "2016-05-17T15:00:00",
      "IncludeWeekends": true,
      "PayTypeID": 9,
      "StartDateTime": "/Date(1463407200000+0000)/",
      "StartDateTimeSchema": "2016-05-16T07:00:00",
      "StatusType": 0,
      "Detail":[
        {
            "ID": 191600,
            "EndDateTime": "/Date(1463436000000+0000)/",
            "EndDateTimeSchema": "2016-05-17T15:00:00",
            "IsDeleted": false,
            "MgrNotes": "",
            "StartDateTime": "/Date(1463407200000+0000)/",
            "StartDateTimeSchema": "2016-05-16T07:00:00",
            "StatusChangedBy": 0,
            "StatusChangedOn": "/Date(-2208963600000+0000)/",
            "StatusType": 0
         },
         {
            "ID": 191601,
            "EndDateTime": "/Date(1463522400000+0000)/",
            "EndDateTimeSchema": "2016-05-17T15:00:00",
            "IsDeleted": false,
            "MgrNotes": "",
            "StartDateTime": "/Date(1463493600000+0000)/",
            "StartDateTimeSchema": "2016-05-16T07:00:00",
            "StatusChangedBy": 0,
            "StatusChangedOn": "/Date(-2208963600000+0000)/",
            "StatusType": 0
         }
      ]
   }]
}
SOAP: C# WCF Sample
public void V2_GetUserTimeOffRequest_SOAP_Test()
{
    try
    {
        var actionTestLogic = new Action<SoapServiceV2.ServiceRouterClient>((client) =>
        {
            // ==================================
            //TEST 1: SELECT-ALL
            int countTest_1 = 0;
            SoapServiceV2.GetUserTimeOffRequestRequest request1 = new SoapServiceV2.GetUserTimeOffRequestRequest();
            request1.input = new SoapServiceV2.GetUserTimeOffRequestIn
            {
                AuthToken = AuthToken,
                StartDate = new DateTime(2016, 05, 19),
                EndDate = new DateTime(2016, 05, 31),
                DateTimeSchema = SoapServiceV2.DateTimeSchema.ISO8601Sort, 
                DataAction = new DataAction
                {
                    Name = "SELECT-ALL"
                }
            };
            SoapServiceV2.GetUserTimeOffRequestResponse response1 = client.GetUserTimeOffRequest(request1);
            countTest_1 = (response1.GetUserTimeOffRequestResult.Results != null) ? response1.GetUserTimeOffRequestResult.Results.Count : 0;
            if (countTest_1 > 0)
            {
                // ==================================
                //TEST 2: SELECT-ID
                int countTest_2 = 0;
                SoapServiceV2.GetUserTimeOffRequestRequest request2 = new SoapServiceV2.GetUserTimeOffRequestRequest();
                request2.input = new SoapServiceV2.GetUserTimeOffRequestIn
                {
                    AuthToken = AuthToken,
                    StartDate = new DateTime(2016, 05, 19),
                    EndDate = new DateTime(2016, 05, 31),
                    DateTimeSchema = SoapServiceV2.DateTimeSchema.ISO8601Sort,
                    DataAction = new DataAction
                    {
                        Name = "SELECT-EMPID",
                        // Values =new List<string>{response1.GetUserTimeOffRequestResult.Results[0].EmpIdentifier.ToString()} 
                        Values = new List<string> { "84" }
                    }
                };
                SoapServiceV2.GetUserTimeOffRequestResponse response2 = client.GetUserTimeOffRequest(request2);
                countTest_2 = (response2.GetUserTimeOffRequestResult.Results != null) ? response2.GetUserTimeOffRequestResult.Results.Count : 0;
                Assert.IsTrue(countTest_1 > 0);
            }
            else
            {
                Assert.IsTrue(countTest_1 > 0);
            }

        });

        RunServiceClient(actionTestLogic);
    }
    catch (FaultException<SoapServiceV2.ServiceException> fe)
    {
        Assert.Fail(fe.Detail.Message);
    }
}
See Also