public void Setup() { _weatherDataProviderMock = new Mock <IWeatherDataProvider>(); _backupServiceMock = new Mock <IBackupService>(); _request = GetCityRequest.Create(_fixture.Create <int>()); _subject = new WeatherService(_weatherDataProviderMock.Object, _backupServiceMock.Object); }
public void WhenIdIsZero_ShouldThrowInvalidOperationException() { // arrange // act TestDelegate act = () => GetCityRequest.Create(-100); // assert Assert.Throws <InvalidOperationException>(act); }
public void WhenCreated_ShouldProvideCorrectId() { // arrange var id = new Fixture().Create <int>(); // act var request = GetCityRequest.Create(id); // assert Assert.That(request.Id, Is.EqualTo(id)); }
private async Task <City> GetOrPullCityAsync(GetCityRequest request) { var date = DateTime.Now.ToString("yyyy-MM-dd"); var id = $"city_{request.Id}_{date}.json"; // get cached var city = await _backupService.ReadAsync <City>(id); if (city != null) { return(city); } city = await _weatherDataProvider.GetCityForecastAsync(request.Id); // save cache await _backupService.SaveAsync(id, city); return(city); }
/// <summary> /// 获取全部城市信息 /// </summary> /// <param name="request">The request.</param> /// <returns>Task<Response<GetCityResponse[]>>.</returns> /// <exception cref="NotImplementedException"></exception> public async Task <Response <GetCityResponse[]> > GetCityInfo(GetCityRequest request) { var cityInfo = await(this.strokeContext.Cities.WhereIf(request.IsHot.HasValue, x => x.IsHot == request.IsHot) .WhereIf(!string.IsNullOrEmpty(request.SearchKey), x => x.Name.Contains(request.SearchKey) || x.FullSpell.Contains(request.SearchKey) || x.SimpleSpell.Contains(request.SearchKey)) .Where(x => x.IsOpen) .Where(x => x.ParentId != 0) .OrderBy(x => x.SimpleSpell) .Select(x => new GetCityResponse { Id = x.Id, Name = x.Name, IsOpen = x.IsOpen, IsHot = x.IsHot, SimpleSpell = x.SimpleSpell, FullSpell = x.FullSpell })).ToArrayAsync(); return(new Response <GetCityResponse[]> { Data = cityInfo }); }
public async Task <ResponseBase> GetCity([FromBody] GetCityRequest request) { try { var areas = await _areaBll.GetCity(request.Province); return(ResponseBase.Success(areas.Select(p => new GetAreaView() { AreaId = p.AreaId, AreaName = p.AreaName, ParentId = p.ParentId, Level = p.Level } ))); } catch (Exception ex) { Log.Error(ex.Message, ex, this.GetType()); return(ResponseBase.CodeError()); } }
public Task <Response <GetCityResponse[]> > GetCityInfo([FromBody] GetCityRequest request) { return(this.strokeService.GetCityInfo(request)); }
public async Task <IActionResult> Get(string cities) { if (string.IsNullOrWhiteSpace(cities)) { return(BadRequest()); } var requests = cities.Split(new[] { "," }, StringSplitOptions.RemoveEmptyEntries).Select(x => GetCityRequest.Create(int.Parse(x))); var result = await _weatherService.GetAsync(requests); return(Ok(result)); }