private void LoadData() { ClearForm(); #region obtendo informacoes das Musicas TemperatureAndMusicList info = null; try { info = new WebApiClient.MusicApi().GetInformationByCity(txtCidade.Text); } catch (Exception ex) { MessageBox.Show($"Erro: {ex.Message}."); return; } if (info != null && info.musicList != null && info.musicList.Count > 0) { dgMusicas.DataSource = info.musicList; } else { MessageBox.Show($"Não foram encontradas Músicas para a cidade de {txtCidade.Text}."); } tStripStatusInfo.Text = $"A temperatura agora em {txtCidade.Text} é de {info.temperature.ToString("N0")}º. Ouça músicas da categoria {info.musicCategory}."; #endregion #region obtendo estatisticas TemperatureStatistics stat = null; try { stat = new WebApiClient.MusicApi().GetStatisticsByCity(txtCidade.Text); } catch (Exception ex) { MessageBox.Show($"Erro: {ex.Message}."); return; } if (stat != null) { lstboxEstatisticas.Items.Add($"Primeira Consulta: {stat.firstDate.ToString("dd/MM/yyyy")}"); lstboxEstatisticas.Items.Add($"Última Consulta: {stat.lastDate.ToString("dd/MM/yyyy")}"); lstboxEstatisticas.Items.Add($"Temperatura mais baixa registrada: {stat.minTemp.ToString("N0")}"); lstboxEstatisticas.Items.Add($"Temperatura mais alta registrada: {stat.maxTemp.ToString("N0")}"); lstboxEstatisticas.Items.Add($"Média de Temperatura: {stat.avgTemp.ToString("N0")}"); lstboxEstatisticas.Items.Add($"Total de Consultas: {stat.total.ToString("N0")}"); } else { lstboxEstatisticas.Items.Add("Sem Estatísticas para esta cidade."); } #endregion }
public TemperatureAndMusicList Get([FromUri] string cityname) { string key = (Request.Headers.Contains("Authorization") ? Request.Headers.GetValues("Authorization").FirstOrDefault() : string.Empty); if (!key.Equals(Constants.ConstValues.SECURITY_KEY)) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.Unauthorized, "Chave inválida.")); } TemperatureAndMusicList info = null; Enumerators.MusicCategory categ = Enumerators.MusicCategory.Nenhuma; double temp = 0; #region validacao if (cityname.Length <= 2) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.BadRequest, "É obrigatório informar a cidade ou a cidade tem menos de 3 letras. Verifique a documentação.")); } #endregion #region obtem a temperatura try { temp = new WebApiClient.OpenWeatherMap().GetTemperatureInCelsiusByCity(cityname); } catch (Exception ex) { throw new HttpResponseException(Request.CreateErrorResponse(HttpStatusCode.NotFound, ex.Message)); } #endregion #region obtem a categoria de musicas correta if (temp > 25.0) { categ = Enumerators.MusicCategory.Pop; } else if (temp >= 10.0 && temp <= 25.0) { categ = Enumerators.MusicCategory.Rock; } else { categ = Enumerators.MusicCategory.Classica; } #endregion #region obtem a lista de musicas //TODO: IMPLEMENTAR SPOTIFY AQUI //try //{ // string strcode = new Utils.SqlServer().GetSpotifyCode(); // if (strcode.Length <= 0) // { // new Utils.WebRequest().SpotifyAuth(); // strcode = new Utils.SqlServer().GetSpotifyCode(); // } //} //catch (Exception ex) //{ // //throw ex; //} IList <Music> lst = new List <Music>(); lst.Add(new Music { MusicName = $"Musica {categ.ToString()} 1" }); lst.Add(new Music { MusicName = $"Musica {categ.ToString()} 2" }); lst.Add(new Music { MusicName = $"Musica {categ.ToString()} 3" }); lst.Add(new Music { MusicName = $"Musica {categ.ToString()} 4" }); #endregion info = new TemperatureAndMusicList() { CityName = cityname, MusicList = lst, MusicCategory = categ.ToString(), Temperature = temp, }; new Utils.SqlServer().SaveLogCity(info); return(info); }