Esempio n. 1
0
        public ActionResult MeusRepositoriosFavoritos()
        {
            // Inviavel filtro de favoritos, muitas requisições na API do GitHub bloqueia acesso momentaneamente

            HistoricoFavoritos historicoFavoritos = fileService.retornaHistoricoCompleto();

            List <Repositorio> repositorios = new List <Repositorio>();

            foreach (UsuarioHistoricoFavorito usuario in historicoFavoritos.listaUsuarios)
            {
                foreach (string repositorio in usuario.listRepositorios)
                {
                    IRestResponse respostaRepositorio = apiGitHubService.getRepositorio(usuario.loginUsuario, repositorio);
                    if ((int)respostaRepositorio.StatusCode == 200)
                    {
                        Repositorio repositorioDoHistorico = JsonConvert.DeserializeObject <Repositorio>(respostaRepositorio.Content);
                        repositorios.Add(repositorioDoHistorico);
                    }
                }
            }

            ViewBag.repositorios = repositorios;

            return(View());
        }
Esempio n. 2
0
 public void criaArquivoJsonHistorico(HistoricoFavoritos conteudo)
 {
     using (StreamWriter file = System.IO.File.CreateText(filePath))
     {
         JsonSerializer serializer = new JsonSerializer();
         serializer.Serialize(file, conteudo);
     }
 }
Esempio n. 3
0
        public UsuarioHistoricoFavorito[] retornaHistoricoUsuario(string loginUsuario)
        {
            HistoricoFavoritos historicoFavoritos = retornaHistoricoCompleto();

            if (historicoFavoritos.listaUsuarios == null)
            {
                return(null);
            }

            return(historicoFavoritos.listaUsuarios.Where(usuario => usuario.loginUsuario == loginUsuario).ToArray());
        }
Esempio n. 4
0
        public FileService(string serverPath)
        {
            filePath = serverPath + "/historico.json";
            if (!System.IO.File.Exists(filePath))
            {
                HistoricoFavoritos conteudo = new HistoricoFavoritos()
                {
                    listaUsuarios = new List <UsuarioHistoricoFavorito>()
                };

                criaArquivoJsonHistorico(conteudo);
            }
        }
Esempio n. 5
0
        public void incluiUsuarioRepositorioFavorito(string loginUsuario, string repositorioFavorito)
        {
            HistoricoFavoritos novoConteudo = retornaHistoricoCompleto();

            if (novoConteudo != null && novoConteudo.listaUsuarios != null)
            {
                UsuarioHistoricoFavorito usarioHistoricoExistente = novoConteudo.listaUsuarios.Where(usuario => usuario.loginUsuario == loginUsuario).FirstOrDefault <UsuarioHistoricoFavorito>();

                if (usarioHistoricoExistente != null)
                {
                    // já existe histórico do usuário no json, só altera lista de repositorios
                    if (!usarioHistoricoExistente.listRepositorios.Contains(repositorioFavorito))
                    {
                        usarioHistoricoExistente.listRepositorios.Add(repositorioFavorito);
                    }
                }
                else
                {
                    // não existe histórico do usuário no json, cria novo usuário
                    UsuarioHistoricoFavorito novoUsuario = new UsuarioHistoricoFavorito()
                    {
                        loginUsuario     = loginUsuario,
                        listRepositorios = new List <string>()
                        {
                            { repositorioFavorito }
                        }
                    };

                    novoConteudo.listaUsuarios.Add(novoUsuario);
                }
            }
            else
            {
                novoConteudo = new HistoricoFavoritos();
                novoConteudo.listaUsuarios = new List <UsuarioHistoricoFavorito>();
                // não existe arquivo json
                UsuarioHistoricoFavorito novoUsuario = new UsuarioHistoricoFavorito()
                {
                    loginUsuario     = loginUsuario,
                    listRepositorios = new List <string>()
                    {
                        { repositorioFavorito }
                    }
                };

                novoConteudo.listaUsuarios.Add(novoUsuario);
            }

            criaArquivoJsonHistorico(novoConteudo);
        }
Esempio n. 6
0
        public void excluiUsuarioRepositorioFavorito(string loginUsuario, string repositorioFavorito)
        {
            HistoricoFavoritos novoConteudo = retornaHistoricoCompleto();

            if (novoConteudo != null)
            {
                UsuarioHistoricoFavorito usuarioHistoricoExistente = novoConteudo.listaUsuarios.Where(usuario => usuario.loginUsuario == loginUsuario).FirstOrDefault <UsuarioHistoricoFavorito>();

                if (usuarioHistoricoExistente != null)
                {
                    // já existe histórico do usuário no json, só altera lista de repositorios
                    usuarioHistoricoExistente.listRepositorios.Remove(repositorioFavorito);
                }
            }

            criaArquivoJsonHistorico(novoConteudo);
        }
Esempio n. 7
0
        public HistoricoFavoritos retornaHistoricoCompleto()
        {
            HistoricoFavoritos historicoFavoritos = new HistoricoFavoritos();

            using (StreamReader r = new StreamReader(filePath))
            {
                string json = r.ReadToEnd();
                historicoFavoritos = JsonConvert.DeserializeObject <HistoricoFavoritos>(json);
            }

            if (historicoFavoritos == null)
            {
                historicoFavoritos = new HistoricoFavoritos();
                historicoFavoritos.listaUsuarios = new List <UsuarioHistoricoFavorito>();
            }

            return(historicoFavoritos);
        }