/// <summary> /// Проверка акктуальности данных курсов обмена в БД /// </summary> /// <param name="forcedUpdate">Принудительно обновить данные</param> /// <returns>Отчет о успешности и времени последнего обновления для каждого банка</returns> public async Task <List <string> > CheckDataRelevanceAsync(bool forcedUpdate = false) { var result = new List <string>(); var banksFromDB = dataBaseService.GetBanks(); foreach (var bankInformer in bankInformers) { var bankFromDB = banksFromDB.SingleOrDefault(b => b.Name == bankInformer.Name); if (bankFromDB == null) { bankFromDB = new Bank { Name = bankInformer.Name, Url = bankInformer.Url, LastUpdate = DateTime.MinValue }; await dataBaseService.AddBankAsync(bankFromDB); } if (forcedUpdate || bankFromDB.LastUpdate < DateTime.Now - TimeSpan.FromHours(DataRelevanceDeltaHours)) { try { await UpdateDataAsync(bankFromDB, bankInformer); } catch (Exception ex) { result.Add(ex.Message); } } result.Add($"Последнее обновление курса банка {bankFromDB.Name} - {bankFromDB.LastUpdate}."); } return(result); }