public CustomBarcodeViewModel(CustomBarcodeDTO barcode)
 {
     Id               = barcode.Id;
     SKU              = barcode.SKU;
     Barcode          = barcode.Barcode;
     AttachSKUDate    = barcode.AttachSKUDate;
     IsNewAssociation = barcode.IsNewAssociation;
 }
예제 #2
0
        public CustomBarcodeDTO AssociateBarcodes(string sku,
                                                  DateTime when,
                                                  long?by)
        {
            using (var db = _dbFactory.GetRWDb())
            {
                var formattedSku = sku.Trim();
                if (String.IsNullOrEmpty(formattedSku))
                {
                    return(null);
                }

                var barcode = new CustomBarcodeDTO()
                {
                    SKU = formattedSku
                };
                var existSku = db.CustomBarcodes.GetAllAsDto().FirstOrDefault(b => b.SKU == formattedSku);
                if (existSku != null)
                {
                    barcode.Barcode       = existSku.Barcode;
                    barcode.AttachSKUDate = existSku.AttachSKUDate;
                }
                else
                {
                    var emptyBarcode = db.CustomBarcodes.GetAll()
                                       .OrderBy(b => b.Id)
                                       .FirstOrDefault(b => String.IsNullOrEmpty(b.SKU));
                    if (emptyBarcode != null)
                    {
                        emptyBarcode.SKU           = formattedSku;
                        emptyBarcode.AttachSKUDate = when;
                        emptyBarcode.AttachSKUBy   = by;
                        db.Commit();

                        barcode.Barcode          = emptyBarcode.Barcode;
                        barcode.AttachSKUDate    = when;
                        barcode.IsNewAssociation = true;
                    }
                }

                return(barcode);
            }
        }