private static GetBarcodeTypeServiceResponse GetBarcodeType(GetBarcodeTypeServiceRequest serviceRequest) { if (string.IsNullOrEmpty(serviceRequest.BarcodeId)) { throw new ArgumentNullException(serviceRequest.BarcodeId); } string barcodePrefix = serviceRequest.BarcodeId.Substring(0, 1); GetBarcodeMaskDataRequest getBarcodeMaskDataRequest = new GetBarcodeMaskDataRequest(barcodePrefix, QueryResultSettings.AllRecords); IEnumerable <BarcodeMask> barcodeMasks = serviceRequest.RequestContext.Runtime.Execute <EntityDataServiceResponse <BarcodeMask> >(getBarcodeMaskDataRequest, serviceRequest.RequestContext).PagedEntityCollection.Results; BarcodeMask barcodeMask = null; bool found = false; foreach (var bcmask in barcodeMasks.Where(mask => !string.IsNullOrEmpty(mask.Prefix) && serviceRequest.BarcodeId.Length >= mask.Prefix.Length)) { barcodeMask = bcmask; barcodePrefix = serviceRequest.BarcodeId.Substring(0, bcmask.Prefix.Length); if (bcmask.Prefix == barcodePrefix) { if (serviceRequest.BarcodeId.Length == bcmask.Mask.Length) { found = true; break; } } } if (found == false) { barcodeMask = null; } return(new GetBarcodeTypeServiceResponse(barcodeMask)); }
/// <summary> /// Gets the barcode mask segment using the specified mask identifier. /// </summary> /// <param name="request">The get barcode mask segment data request.</param> /// <returns> /// A entity data service response. /// </returns> private EntityDataServiceResponse <BarcodeMask> GetBarcodeMask(GetBarcodeMaskDataRequest request) { ThrowIf.Null(request, "request"); ThrowIf.Null(request.Prefix, "request.Prefix"); PagedResult <BarcodeMask> results; var query = new SqlPagedQuery(request.QueryResultSettings) { From = BarcodeMasksView, OrderBy = "LENGTH DESC, MASK", Where = "PREFIX LIKE @Prefix AND DATAAREAID = @DataAreaId", }; query.Parameters["@Prefix"] = string.Format("{0}%", request.Prefix); query.Parameters["@DataAreaId"] = request.RequestContext.GetChannelConfiguration().InventLocationDataAreaId; using (var databaseContext = new DatabaseContext(request.RequestContext)) { results = databaseContext.ReadEntity <BarcodeMask>(query); } return(new EntityDataServiceResponse <BarcodeMask>(results)); }