예제 #1
0
        public void WriteRenta(int rentaId, string qrEncoded)
        {
            var qr    = EreminQrService.GetPayload(qrEncoded);
            var renta = Get <Renta>(p => p.Id == rentaId && p.HasQRWrite && string.IsNullOrEmpty(p.QRRecorded), r => r.Sku.Nomenklatura.Specialisation.ProductType);

            if (renta == null)
            {
                throw new BillingNotFoundException($"offer {rentaId} записать на qr невозможно");
            }
            WriteRenta(renta, qr);
            SaveContext();
        }
예제 #2
0
        private QRDto CreateQRDto(int shop, SkuDto sku)
        {
            var qr = new QRDto();

            qr.Shop = shop;
            qr.Sku  = sku;
            qr.QRID = QRHelper.Concatenate(sku.SkuId, shop);
            var cache = Get <CacheQRContent>(q => q.QRID == qr.QRID);

            if (cache == null)
            {
                cache = new CacheQRContent
                {
                    QRID    = qr.QRID,
                    Encoded = EreminQrService.GetQRUrl(qr.QRID)
                };
                Add(cache);
                SaveContext();
            }
            qr.QR = cache.Encoded;
            return(qr);
        }