Example #1
0
        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
        }
Example #2
0
        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);
        }