public async Task <TemperaturaModel> GetTemperaturaAtualByCidade([FromUri] string cidade) { TemperaturaModel temperaturaModel = new TemperaturaModel(); try { string urlFinal = URL_API_TEMPERATURA.AbsoluteUri + "weather?q=" + cidade.Trim() + "&units=metric&APPID=ffb5a59fa46d5dadaad146262b19e400"; using (var http = new HttpClient()) { var response = await http.GetAsync(urlFinal); if (response.IsSuccessStatusCode) { string stringJson = await response.Content.ReadAsStringAsync(); temperaturaModel = JsonConvert.DeserializeObject <TemperaturaModel>(stringJson); temperaturaModel.Temperatura = (int)Math.Round(Convert.ToDouble(temperaturaModel.main["temp"])); } } } catch (Exception ex) { throw ex; } return(temperaturaModel); }
public void Gravar(TemperaturaModel model) { var listaTemperatura = ListarTodos(); listaTemperatura.Add(model); _cache.GravarCache(CacheConstant.LISTA_TEMPERATURA, listaTemperatura, TimeSpan.FromHours(1)); }
public void PreencherTemperaturaMaiorQueTemperaturaMaxima_DeveRetornarException() { // Arrange var temperatura = new TemperaturaModel("Cidade", _descricoes, 0, 0, 35, 10, 30); // Act & Assert Assert.Throws <OpenWeatherException>(() => temperatura.Validar()); }
public void PreencherCidadeVazia_DeveRetornarException() { // Arrange var temperatura = new TemperaturaModel(string.Empty, _descricoes, 0, 0, 0, 0, 0); // Act & Assert Assert.Throws <OpenWeatherException>(() => temperatura.Validar()); }
public void PreencherDescrcaioNula_DeveRetornarException() { // Arrange var temperatura = new TemperaturaModel("Cidade", null, 0, 0, 0, 0, 0); // Act & Assert Assert.Throws <OpenWeatherException>(() => temperatura.Validar()); }
public TemperaturaViewModel(TemperaturaModel model) { Descricoes = model.Descricoes; SensacaoTermica = model.SensacaoTermica; Humidade = model.Humidade; Temperatua = model.Temperatua; TemperatuaMaxima = model.TemperatuaMaxima; TemperatuaMinima = model.TemperatuaMinima; DataHora = model.DataHora; }
public bool Insert(TemperaturaModel modelo) { var collection = _database.GetCollection <TemperaturaModel>(_collectionName); modelo.DataHora = DateTime.Now; collection.InsertOne(modelo); return(true); }
public void PreencherDescrcaioSemRegistros_DeveRetornarException() { // Arrange var descricoes = new string[0]; var temperatura = new TemperaturaModel("Cidade", descricoes, 0, 0, 0, 0, 0); // Act & Assert Assert.Throws <OpenWeatherException>(() => temperatura.Validar()); }
public void Gravar(TemperaturaModel model) { if (model == null) { throw new OpenWeatherException("Objeto de temperatura está nulo para gravação"); } model.Validar(); _temperaturaRepository.Gravar(model); }
public void ConversaoDTO_ParaModel_DeveConverterIgual() { // Arrange var dto = new OpenWeatherRegistroDTO() { Clouds = new OpenWeatherCloudsDTO { All = 79, }, Coord = new OpenWeatherCoordDTO { Lat = -22, Lon = -49, }, Dt = 1608509269, Id = 3448433, Main = new OpenWeatherMainDTO { Temp = 26.11f, FeelsLike = 29.2f, GrndLevel = null, Humidity = 79, Pressure = 1013, SeaLevel = null, TempMax = 26.11f, TempMin = 26.11f, }, Name = "São Paulo", Sys = new OpenWeatherSysDTO { Country = "BR", Sunrise = 1608452970, Sunset = 1608501488, Timezone = -10800, }, Visibility = 10000, Weather = new OpenWeatherWeatherDTO[] { new OpenWeatherWeatherDTO { Id = 803, Main = "Clouds", Description = "nublado", Icon = "04n", } }, Wind = new OpenWeatherWindDTO { Speed = 2.44f, Deg = 202, } }; var temperatura = new TemperaturaModel( dto.Name, dto.Weather?.Select(x => x.Description).ToArray(), dto.Main.FeelsLike, dto.Main.Humidity, dto.Main.Temp, dto.Main.TempMin, dto.Main.TempMax); // Act var dtoConvertido = dto.ToModel(); temperatura.DataHora = dtoConvertido.DataHora; // Assert Assert.Equal(temperatura, dtoConvertido); }
public async Task <PlaylistCustomModel> GetPlayListByCidade([FromUri] string cidade) { //Inicializa Models Globais PlaylistCustomModel playlistCustomModel = new PlaylistCustomModel(); TokenAcessoModel tokenAcessoModel = new TokenAcessoModel(); try { // Monta URL API string urlFinal = URL_API_PLAYLIST.AbsoluteUri; // Get Temperatura atual da cidade TemperaturaController temperaturaController = new TemperaturaController(); TemperaturaModel temperaturaModel = await temperaturaController.GetTemperaturaAtualByCidade(cidade); // Set Temperatura atual e Cidade playlistCustomModel.NomeCidade = cidade; playlistCustomModel.Temperatura = temperaturaModel.Temperatura; // Playlist de musicas Pop if (temperaturaModel.Temperatura >= 25) { urlFinal += "playlists/37i9dQZF1DWVLcZxJO5zyf"; playlistCustomModel.GeneroMusicalSugerido = "Pop"; } // Playlist de musicas Rock else if (temperaturaModel.Temperatura >= 10 && temperaturaModel.Temperatura < 25) { urlFinal += "playlists/37i9dQZF1DXcmaoFmN75bi"; playlistCustomModel.GeneroMusicalSugerido = "Rock"; } // Playlist de musicas Classicas else if (temperaturaModel.Temperatura < 10) { urlFinal += "playlists/37i9dQZF1DWWEJlAGA9gs0"; playlistCustomModel.GeneroMusicalSugerido = "Musica Clássica"; } #region Get Token Authorization API using (var http = new HttpClient()) { //Tranforma Client_ID e Client_Secret em Base 64 byte[] bytes = Encoding.ASCII.GetBytes("ce4d41cc1cb14568be5247b1716f57f2:cab9bb46f92d424f89a97d793273906a"); string codeToken = Convert.ToBase64String(bytes); // Define Header http.DefaultRequestHeaders.Add("Authorization", "Basic " + codeToken); // Define parameters Body var content = new FormUrlEncodedContent(new[] { new KeyValuePair <string, string>("grant_type", "client_credentials"), }); var tokenResponse = await http.PostAsync("https://accounts.spotify.com/api/token", content); if (tokenResponse.IsSuccessStatusCode) { string tokenAcessoString = await tokenResponse.Content.ReadAsStringAsync(); tokenAcessoModel = JsonConvert.DeserializeObject <TokenAcessoModel>(tokenAcessoString); } } #endregion #region Retonar Playlist pelo gênero using (var http = new HttpClient()) { // define headers http.DefaultRequestHeaders.Add("Authorization", "Bearer " + tokenAcessoModel.access_token); http.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); // get response API var response = await http.GetAsync(urlFinal); if (response.IsSuccessStatusCode) { string stringJson = await response.Content.ReadAsStringAsync(); List <string> playList = PlayListTemperaturaModel.FromJson(stringJson) .Tracks.Items.Select(a => a.Track.Name).ToList(); playlistCustomModel.PlayList = playList; } } #endregion playlistCustomModel.Data = DateTime.Now; return(playlistCustomModel); } catch (Exception ex) { return(new PlaylistCustomModel()); } }