/// <summary>
            /// Gets required tender declaration amounts of a shift per tender type.
            /// </summary>
            /// <param name="context">The request context.</param>
            /// <param name="shiftTerminalId">The shift terminal identifier.</param>
            /// <param name="shiftId">The shift identifier.</param>
            /// <returns>The dictionary of shift tender lines where key is tender type identifier, and value is shift tender line object.</returns>
            private static Dictionary <string, ShiftTenderLine> GetShiftRequiredAmountsPerTender(RequestContext context, string shiftTerminalId, string shiftId)
            {
                var dataServiceRequest = new GetShiftRequiredAmountsPerTenderDataRequest(shiftTerminalId, shiftId);
                EntityDataServiceResponse <ShiftTenderLine> dataServiceResponse = context.Runtime.Execute <EntityDataServiceResponse <ShiftTenderLine> >(dataServiceRequest, context);
                ReadOnlyCollection <ShiftTenderLine>        shiftTenderLines    = dataServiceResponse.PagedEntityCollection.Results;

                if (shiftTenderLines == null)
                {
                    throw new DataValidationException(
                              DataValidationErrors.Microsoft_Dynamics_Commerce_Runtime_ObjectNotFound,
                              string.Format("No tender line was found on the terminal {0} for shift {1}.", shiftTerminalId, shiftId));
                }

                var shiftTenderLineDict = shiftTenderLines.ToDictionary(s => s.TenderTypeId, s => s);

                return(shiftTenderLineDict);
            }
            /// <summary>
            /// The data service method to retrieve the required tender declaration amounts of a shift per tender type.
            /// </summary>
            /// <param name="request">The data service request.</param>
            /// <returns>The entity data service response.</returns>
            private EntityDataServiceResponse <ShiftTenderLine> GetShiftRequiredAmountsPerTender(GetShiftRequiredAmountsPerTenderDataRequest request)
            {
                ThrowIf.Null(request, "request");
                ThrowIf.NullOrWhiteSpace(request.TerminalId, "request.TerminalId");

                ParameterSet parameters = new ParameterSet();

                parameters[DatabaseAccessor.ChannelIdVariableName] = request.RequestContext.GetPrincipal().ChannelId;
                parameters[TerminalIdVariableName] = request.TerminalId;
                parameters[ShiftIdVariableName]    = request.ShiftId;
                parameters[DataAreaIdVariableName] = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId;

                PagedResult <ShiftTenderLine> pagedResults;

                using (SqlServerDatabaseContext sqlServerDatabaseContext = new SqlServerDatabaseContext(request))
                {
                    pagedResults = sqlServerDatabaseContext.ExecuteStoredProcedure <ShiftTenderLine>(GetShiftRequiredAmountsPerTenderSprocName, parameters);
                }

                return(new EntityDataServiceResponse <ShiftTenderLine>(pagedResults));
            }