Exemplo n.º 1
0
        public decimal GetEuroToRuble(string url)
        {
            ushort counter = 0;

            do
            {
                counter++;
                try
                {
                    return(_courseSource.GetEuroToRuble(url));
                }
                catch (Exception e)
                {
                    if (counter < _attempts)
                    {
                        _log.Warning("Attempt " + counter + " to get course of euro to ruble is failed." + Environment.NewLine + e);
                        Thread.Sleep(_waitPeriod);
                    }
                    else
                    {
                        throw;
                    }
                }
            } while(true);
        }
Exemplo n.º 2
0
        public void Work()
        {
            var data     = _settings.Get(SettingType.Bill);
            var settings = _serializer.Deserialize <BillSettings>(data.Data);

            if (!settings.AutoUpdatePeriod.HasValue || string.IsNullOrWhiteSpace(settings.SourceUrl))
            {
                return;
            }

            var nextRunTime = _previousTime.Get().Add(settings.AutoUpdatePeriod.Value);

            if (nextRunTime > DateTimeProvider.Now)
            {
                return;
            }

            settings.EuroToRuble = _courseSource.GetEuroToRuble(settings.SourceUrl);

            data.Data = _serializer.Serialize(settings);

            Update(data);

            _previousTime.Set(DateTimeProvider.Now);
        }
Exemplo n.º 3
0
        public decimal GetEuroToRuble(string url)
        {
            try
            {
                return(_courseSource.GetEuroToRuble(url));
            }
            catch (Exception e)
            {
                if (!string.IsNullOrWhiteSpace(_supportEmail))
                {
                    var body    = "Не удалось обновить курс евро из " + url + Environment.NewLine + e;
                    var message = new EmailMessage(
                        "Tracker. Ошибка обновления курса",
                        body,
                        _fromEmail,
                        _supportEmail,
                        null);

                    _sender.Send(message);
                }

                throw;
            }
        }