public void CreateOrUpdate(ListingFBAInvDTO listing, DateTime?when)
        {
            var dbListing = GetFiltered(l => l.SellerSKU == listing.SellerSKU).FirstOrDefault();

            if (dbListing != null)
            {
                dbListing.SellerSKU             = listing.SellerSKU;
                dbListing.FulfillmentChannelSKU = listing.FulfillmentChannelSKU;
                dbListing.ASIN = listing.ASIN;
                dbListing.WarehouseConditionCode = listing.WarehouseConditionCode;
                dbListing.QuantityAvailable      = listing.QuantityAvailable;

                dbListing.UpdateDate = when;
            }
            else
            {
                dbListing = new ListingFBAInv();

                dbListing.SellerSKU             = listing.SellerSKU;
                dbListing.FulfillmentChannelSKU = listing.FulfillmentChannelSKU;
                dbListing.ASIN = listing.ASIN;
                dbListing.WarehouseConditionCode = listing.WarehouseConditionCode;
                dbListing.QuantityAvailable      = listing.QuantityAvailable;

                dbListing.CreateDate = when;

                unitOfWork.ListingFBAInvs.Add(dbListing);
            }

            unitOfWork.Commit();
        }
        public IReportItemDTO Parse(string[] fields, string[] headers)
        {
            //string[] fields = line.Split('	');
            if (fields.Length < Length)
            {
                return(null);
            }
            var item = new ListingFBAInvDTO();

            for (var i = 0; i < fields.Length; i++)
            {
                try
                {
                    var val = fields[i];
                    switch (i)
                    {
                    case SellerSKU:
                        item.SellerSKU = val;
                        break;

                    case ASIN:
                        item.ASIN = val;
                        break;

                    case FulfillmentChannelSKU:
                        item.FulfillmentChannelSKU = val;
                        break;

                    case WarehouseConditionCode:
                        item.WarehouseConditionCode = val;
                        break;

                    case QuantityAvailable:
                        item.QuantityAvailable = LineParserHelper.GetAmount(val);
                        break;
                    }
                }
                catch (Exception ex)
                {
                    _log.Error(string.Format("Unable to parse field: {0}", fields[i]), ex);
                }
            }
            return(item);
        }