Exemplo n.º 1
0
        public void Update(DhlRateCodePriceDTO rate)
        {
            var existEntry = Get(rate.Id);

            if (existEntry != null)
            {
                existEntry.Price = rate.Price;
            }
            unitOfWork.Commit();
        }
Exemplo n.º 2
0
        public long Store(DhlRateCodePriceDTO rate)
        {
            var entity = new DhlRateCodePrice()
            {
                ProductCode = rate.ProductCode,
                Package     = rate.Package,
                RateCode    = rate.RateCode,
                Weight      = rate.Weight,
                Price       = rate.Price,
            };

            Add(entity);
            unitOfWork.Commit();

            return(entity.Id);
        }
Exemplo n.º 3
0
        public IList <DhlRateCodePriceDTO> GetRatesFromFile(string filePath)
        {
            StreamReader streamReader = new StreamReader(filePath);
            CsvReader    reader       = new CsvReader(streamReader, new CsvConfiguration
            {
                HasHeaderRecord = true,
                Delimiter       = ",",
                TrimFields      = true,
            });
            //Weight,A,B,C,D,E,F,G,H1,H2,I,L,M,J,K,N,P
            //Product, Package, Weight, A, B, ...
            var filename = Path.GetFileName(filePath);

            var results = new List <DhlRateCodePriceDTO>();

            while (reader.Read())
            {
                var productCode = reader.GetField <string>("Product");
                if (String.IsNullOrEmpty(productCode))
                {
                    continue;
                }

                var package = reader.GetField <string>("Package");
                var weight  = double.Parse(reader.GetField <string>("Weight").Replace("lb", "").Trim());

                for (int i = 3; i < reader.CurrentRecord.Length; i++)
                {
                    var rate = new DhlRateCodePriceDTO();

                    rate.ProductCode = productCode;
                    rate.Package     = package;
                    rate.Price       = decimal.Parse(reader.GetField <string>(i).Replace("$", "").Trim());
                    rate.RateCode    = reader.FieldHeaders[i];
                    rate.Weight      = weight;

                    results.Add(rate);
                }
            }

            _log.Info("File was processed, file: " + filename + ", records: " + results.Count);

            return(results);
        }