/// <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)); }