MarketWithInfo RecordMarket(IMarketReader reader, string marketName, string baseSymbol, string altSymbol)
 {
     var pathResolver = new PathResolverWeb(baseSymbol, altSymbol, marketName, System.Web.HttpContext.Current);
     var settings = new MarketDataSettings
     {
         MarketReader = reader,
         SymbolBase = baseSymbol,
         SymbolAlt = altSymbol,
         MarketRecordProcessor = new TsvFileWriter(pathResolver)
     };
     return new MarketInfoRecorder(settings).Process(marketName);
 }
        private void ProcessMarket(List<MarketWithInfo> list, string @base, string alt, double thesholdPercent = 10)
        {
            var pathResolver = new PathResolverWeb(@base, alt, "diff", System.Web.HttpContext.Current);
            var cho = new Chochoo(list, new TsvFileWriter(pathResolver));
            var diff = cho.Process();

            if (diff != null)
            {
                var diferencePercent = (diff.Bid - diff.Ask) / diff.Ask * 100;
                if (diferencePercent >= thesholdPercent)
                {
                    var body = new StringBuilder(diff.ToTsvLineReadable());
                    body.Append(" ");
                    body.Append(diferencePercent + "%\n");
                    body.Append("BUY: " + diff.BuyMarket.TradeUrlGui + "\n");
                    body.Append("SELL: " + diff.SellMarket.TradeUrlGui + "\n");

                    SendEmail(@base, alt, body.ToString());
                }
            }
        }