public void Import(IStorageReader <string> reader, IParser <string, TradeRecord> parser, IDataSaver <TradeRecord> saver,
                           ILogger logger)
        {
            ValidateOnNull(reader, nameof(reader));
            ValidateOnNull(parser, nameof(parser));
            ValidateOnNull(saver, nameof(saver));

            var data = reader.Read().ToList();

            List <TradeRecord> records = new List <TradeRecord>();

            for (int i = 0; i < data.Count; i++)
            {
                try
                {
                    records.Add(parser.Parse(data[i]));
                }
                catch (Exception e) //TODO: ValidationException (custom)
                {
                    logger?.Warn($"{e.Message} {{line #{i}}}");
                }
            }

            saver.Save(records);

            logger?.Info("Success");
        }