/// <summary>
            /// Register the time for employee break.
            /// </summary>
            /// <param name="context">The request context.</param>
            /// <param name="jobId">The job identifier.</param>
            /// <returns>Returns the activity DateTimeOffset in channel local time zone.</returns>
            public static DateTimeOffset RegisterEmployeeBreak(RequestContext context, string jobId)
            {
                ThrowIf.Null(context, "context");
                ThrowIf.NullOrWhiteSpace(jobId, "jobId");

                var request = new RegisterEmployeeBreakRealtimeRequest(
                    context.GetPrincipal().UserId,
                    context.GetTerminal().TerminalId,
                    jobId);

                return(context.Execute <SingleEntityDataServiceResponse <DateTimeOffset> >(request).Entity);
            }
示例#2
0
            /// <summary>
            /// Executes register employee break requests.
            /// </summary>
            /// <param name="request">The service request.</param>
            /// <returns>The activity response.</returns>
            private static SingleEntityDataServiceResponse <DateTimeOffset> RegisterEmployeeBreak(RegisterEmployeeBreakRealtimeRequest request)
            {
                var transactionService = new TransactionServiceClient(request.RequestContext);

                DateTimeOffset?currentActivityDateTimeOffset = transactionService.RegisterStartBreak(request.UserId, request.TerminalId, request.JobId);

                // Convert the UTC date time offset to channel date time offset
                if (currentActivityDateTimeOffset.HasValue)
                {
                    currentActivityDateTimeOffset = request.RequestContext.ConvertDateTimeToChannelDate(currentActivityDateTimeOffset.Value);
                }

                return(new SingleEntityDataServiceResponse <DateTimeOffset>(currentActivityDateTimeOffset.GetValueOrDefault()));
            }