public async Task TestGetWaterCounters() { var authToken = await _client.LogInAsync(_ct); var houses = await _client.GetHousesAsync(authToken, _ct); var house = houses.First(); var houseName = house.Name; var countersInfo = await _client.GetHouseWaterCountersAsync(houseName, authToken, _ct); countersInfo.Should().NotBeNullOrEmpty(); countersInfo.Count.Should().Be(2); countersInfo.First().Value.Should().BeGreaterThan(0); countersInfo.Last().Value.Should().BeGreaterThan(0); }
public async Task <string> ExecuteCore() { await _mutex.WaitAsync(); try { var sent = await _retryPolicy.ExecuteAsync( async() => { var authToken = await _client.LogInAsync(_shutdownSwitch.Token); var results = await _client.GetHouseWaterCountersAsync( _appSetings.Application.SstCloud.HouseName, authToken, _shutdownSwitch.Token); var sentLetter = await _emailSender.SendStatisticsAsync( results.First(i => i.IsHotWaterCounter), results.First(i => !i.IsHotWaterCounter)); return(sentLetter); }); return(sent); } catch (Exception ex) { var sent = await _retryPolicy.ExecuteAsync( async() => { _logger.Error(ex, "Exception happened during Jarvis operations."); var sentLetter = await _emailSender.NotifyAboutJarvisException(ex.ToString()); return(sentLetter); }); return(sent); } finally { _mutex.Release(); } }