/// <summary> /// Gets the hardware station profiles from the data service. /// </summary> /// <param name="request">The request.</param> /// <returns>The response.</returns> /// <exception cref="Microsoft.Dynamics.Commerce.Runtime.ConfigurationException">Required Service missing.</exception> protected override GetHardwareStationProfileResponse Process(GetHardwareStationProfileRequest request) { ThrowIf.Null(request, "request"); var getHardwareStationProfileDataRequest = new GetHardwareStationDataRequest(QueryResultSettings.AllRecords); var hardwareStationProfiles = request.RequestContext.Runtime.Execute <EntityDataServiceResponse <HardwareStationProfile> >( getHardwareStationProfileDataRequest, request.RequestContext).PagedEntityCollection; return(new GetHardwareStationProfileResponse(hardwareStationProfiles)); }
private EntityDataServiceResponse <HardwareStationProfile> GetHardwareStationProfile(GetHardwareStationDataRequest request) { ThrowIf.Null(request, "request"); ThrowIf.Null(request.RequestContext, "request.RequestContext"); ThrowIf.Null(request.QueryResultSettings, "request.QueryResultSettings"); ParameterSet parameters = new ParameterSet(); Tuple <PagedResult <HardwareStationProfile>, ReadOnlyCollection <HardwareConfiguration>, ReadOnlyCollection <HardwareConfiguration>, ReadOnlyCollection <HardwareConfiguration> > dataSets = null; parameters[DatabaseAccessor.ChannelIdVariableName] = request.RequestContext.GetPrincipal().ChannelId; using (SqlServerDatabaseContext databaseContext = new SqlServerDatabaseContext(request.RequestContext, request.QueryResultSettings)) { dataSets = databaseContext.ExecuteStoredProcedure <HardwareStationProfile, HardwareConfiguration, HardwareConfiguration, HardwareConfiguration>(GetHardwareStationsSprocName, parameters); } PagedResult <HardwareStationProfile> hardwareStationProfiles = dataSets.Item1; ReadOnlyCollection <HardwareConfiguration> drawers = dataSets.Item2; ReadOnlyCollection <HardwareConfiguration> printers = dataSets.Item3; ReadOnlyCollection <HardwareConfiguration> pinpads = dataSets.Item4; foreach (var hardwareStationProfile in hardwareStationProfiles.Results) { if (hardwareStationProfile != null) { hardwareStationProfile.HardwareConfigurations = new HardwareConfigurations(); if (drawers != null) { hardwareStationProfile.HardwareConfigurations.CashDrawerConfigurations.AddRange( from d in drawers where d.HardwareStationRecordId == hardwareStationProfile.RecordId && !string.IsNullOrEmpty(d.DeviceName) select d); } if (printers != null) { hardwareStationProfile.HardwareConfigurations.PrinterConfigurations.AddRange( from p in printers where p.HardwareStationRecordId == hardwareStationProfile.RecordId && !string.IsNullOrEmpty(p.DeviceName) select p); } if (pinpads != null) { hardwareStationProfile.HardwareConfigurations.PinPadConfiguration = (from p in pinpads where p.HardwareStationRecordId == hardwareStationProfile.RecordId && !string.IsNullOrEmpty(p.DeviceName) select p).SingleOrDefault(); } } } return(new EntityDataServiceResponse <HardwareStationProfile>(hardwareStationProfiles)); }