Cochrane+ App API

<back to all web services

AttendanceSessionStatusChangeRequest

Requires Authentication
The following routes are available for this service:
POST/attendance/sessionstatus
using System;
using System.Collections;
using System.Collections.Generic;
using System.Runtime.Serialization;
using ServiceStack;
using ServiceStack.DataAnnotations;
using WebService.ServiceModel;
using WebService.ServiceModel.Base;
using BusinessLogic.Entities;
using CommonService.Api.Models.Base;

namespace BusinessLogic.Entities
{
    public enum AttendanceEventType
    {
        ClockOut = 0,
        ClockIn = 1,
        StartLunch = 2,
        EndLunch = 3,
        StartBreak = 4,
        EndBreak = 5,
    }

}

namespace CommonService.Api.Models.Base
{
    public partial class ApiServiceResponse
        : IServiceResponse
    {
        public virtual string Description { get; set; }
        public virtual string Heading { get; set; }
        public virtual bool WasSuccessful { get; set; }
        public virtual Object ModelState { get; set; }
    }

}

namespace WebService.ServiceModel
{
    public partial class AttendanceEventData
    {
        public virtual AttendanceEventType Type { get; set; }
        public virtual string Time { get; set; }
        public virtual string Location { get; set; }
    }

    public partial class AttendanceSessionInfo
    {
        public AttendanceSessionInfo()
        {
            AttendanceEvents = new List<AttendanceEventData>{};
        }

        public virtual int AttendanceSessionId { get; set; }
        public virtual double AttendanceGoalTime { get; set; }
        public virtual string AttendanceGoalTimeValue { get; set; }
        public virtual List<AttendanceEventData> AttendanceEvents { get; set; }
        public virtual string StartDate { get; set; }
        public virtual string EndDate { get; set; }
        public virtual bool IsClockedIn { get; set; }
        public virtual double TimeElapsed { get; set; }
        public virtual AttendanceEventType LatestEventType { get; set; }
        public virtual double TotalBreakTime { get; set; }
        public virtual double TotalLunchTime { get; set; }
        public virtual bool IsNew { get; set; }
    }

    public partial class AttendanceSessionStatusChangeRequest
        : ApiServiceRequest
    {
        public virtual int AttendanceSessionId { get; set; }
        public virtual AttendanceEventType EventType { get; set; }
        public virtual string TimeZoneName { get; set; }
    }

    public partial class GetAttendanceSessionInfoResponse
        : ApiServiceResponse
    {
        public virtual AttendanceSessionInfo SessionInfo { get; set; }
    }

}

namespace WebService.ServiceModel.Base
{
    public partial class ApiServiceRequest
        : IServiceRequest, IHasApiKey, IHasDeviceInfo
    {
        ///<summary>
        ///The API Key required for authentication
        ///</summary>
        [ApiMember(DataType="string", Description="The API Key required for authentication", IsRequired=true)]
        public virtual string ApiKey { get; set; }

        ///<summary>
        ///Latitude of the user making this request
        ///</summary>
        [ApiMember(DataType="double", Description="Latitude of the user making this request")]
        public virtual double Latitude { get; set; }

        ///<summary>
        ///Longitude of the user making this request
        ///</summary>
        [ApiMember(DataType="double", Description="Longitude of the user making this request")]
        public virtual double Longitude { get; set; }
    }

}

C# AttendanceSessionStatusChangeRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=jsv

HTTP + JSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /attendance/sessionstatus HTTP/1.1 
Host: cochraneplus-api-dev.happen.zone 
Accept: text/jsv
Content-Type: text/jsv
Content-Length: length

{
	attendanceSessionId: 0,
	eventType: 0,
	timeZoneName: String,
	apiKey: String,
	latitude: 0,
	longitude: 0
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

{
	sessionInfo: 
	{
		attendanceSessionId: 0,
		attendanceGoalTime: 0,
		attendanceGoalTimeValue: "00:00:00",
		attendanceEvents: 
		[
			{
				
			}
		],
		startDate: String,
		endDate: String,
		isClockedIn: False,
		timeElapsed: 0,
		latestEventType: 0,
		totalBreakTime: 0,
		totalLunchTime: 0,
		isNew: False
	},
	description: String,
	heading: String,
	wasSuccessful: False,
	modelState: {}
}