/// <summary> /// Gets the employee log book details. /// </summary> /// <param name="context">The request context.</param> /// <param name="storeNumber">The store number.</param> /// <param name="fromDateTimeOffset">The employee activity date and time offset lower bound.</param> /// <param name="toDateTimeOffset">The employee activity date and time offset upper bound.</param> /// <param name="pagingInfo">The paging information.</param> /// <param name="sortingInfo">The sorting information.</param> /// <returns>The results collection of employee activities.</returns> public static ReadOnlyCollection <EmployeeActivity> GetEmployeeLogbookDetails( RequestContext context, string storeNumber, DateTimeOffset?fromDateTimeOffset, DateTimeOffset?toDateTimeOffset, PagingInfo pagingInfo, SortingInfo sortingInfo) { ThrowIf.Null(context, "context"); // Get the UTC date and time from the channel date and time offset var fromUtcDateTime = fromDateTimeOffset.GetUtcDateTime(); var toUtcDateTime = toDateTimeOffset.GetUtcDateTime(); // Get the store numbers the user is working at var storeIds = GetEmployeeStoreIds(context); bool storeNumberUndefined = string.IsNullOrWhiteSpace(storeNumber); if ((storeIds == null) || (!storeNumberUndefined && !storeIds.Contains(storeNumber))) { // if no store the user is assigned to, nor the input storeNumber is among the store(s) the user is assigned to return(null); } else if (storeNumberUndefined) { // if store number is undefined, use the one in the context storeNumber = context.GetOrgUnit().OrgUnitNumber; } var request = new GetEmployeeActivityHistoryRealtimeRequest( context.GetPrincipal().UserId, storeNumber, fromUtcDateTime, toUtcDateTime, pagingInfo, sortingInfo); return(context.Execute <EntityDataServiceResponse <EmployeeActivity> >(request).PagedEntityCollection.Results); }
/// <summary> /// Executes get employee activity history requests. /// </summary> /// <param name="request">The service request.</param> /// <returns>The activity response.</returns> private static EntityDataServiceResponse <EmployeeActivity> GetEmployeeActivityHistory(GetEmployeeActivityHistoryRealtimeRequest request) { var transactionService = new TransactionServiceClient(request.RequestContext); var activities = transactionService.GetEmployeeActivityHistory( request.UserId, request.StoreNumber, request.FromUtcDateTime, request.ToUtcDateTime, request.PagingInfo, request.SortingInfo); // Convert the UTC date time offset field of each employee activity to channel time zone foreach (EmployeeActivity activity in activities.Results.Where(activity => activity.ActivityDateTimeOffset.HasValue)) { activity.ActivityDateTimeOffset = request.RequestContext.ConvertDateTimeToChannelDate(activity.ActivityDateTimeOffset.Value); } return(new EntityDataServiceResponse <EmployeeActivity>(activities)); }