Exemplo n.º 1
0
            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));
            }
Exemplo n.º 2
0
            /// <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));
            }