예제 #1
0
파일: EtfService.cs 프로젝트: luca-pa/rsi
        public int AggiornaQuoteSelezione()
        {
            var etfs = _etfRepository.GetSelezione().ToList();

            int recordsUpdated = 0;

            var quote = _traderLinkService.GetCurrentQuotes(etfs);

            foreach (var etf in etfs)
            {
                var quota = quote.FirstOrDefault(q => q.Ticker == etf.Ticker);

                if (quota != null)
                {
                    var changes        = 0;
                    var quotaEsistente = etf.Quote.SingleOrDefault(q => q.Data.ToString("MMyyyy") == quota.Data.ToString("MMyyyy"));
                    if (quotaEsistente == null)
                    {
                        changes = _etfRepository.Add(quota);
                    }
                    else if (quota.Chiusura > 0 && quota.Chiusura != quotaEsistente.Chiusura)
                    {
                        quotaEsistente.Chiusura = quota.Chiusura;
                        if (quota.Volumi != -1)
                        {
                            quotaEsistente.Volumi = quota.Volumi;
                        }
                        changes = _etfRepository.Update(quotaEsistente);
                    }
                    recordsUpdated += changes;
                }
            }
            return(recordsUpdated);
        }
예제 #2
0
        public Portafoglio GetPortafoglio()
        {
            var portafoglio = _portfolioRepository.GetPortafoglio();
            var quote       = _traderLinkService.GetCurrentQuotes(portafoglio.Items.Select(i => i.Etf).ToList());

            portafoglio.Items.ForEach(item =>
                                      item.SetCurrentPrice(
                                          quote.SingleOrDefault(q => q.Ticker == item.Ticker)
                                          )
                                      );

            return(portafoglio);
        }