private void ImportDataRaven() { Console.Clear(); Console.WriteLine("Importando. Aguarde..."); List <TwitterModel> listaDados = twitterDao.GetList(); if (listaDados != null && listaDados.Count > 0) { foreach (TwitterModel tm in listaDados) { twitterDao.Delete(tm); } } Criptografia cript = new Criptografia(); cript.Key = "Teste"; using (FileStream readStream = new FileStream(strNameFile, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } long posicao = readStream.Position; BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFile oReturn = bsa.GetFileValue <StrFile>(readStream); TwitterModel twModel = new TwitterModel(); twModel.Id = oReturn.Id.ToString(); twModel.Usuario = oReturn.Usuario; twModel.Mensagem = oReturn.Mensagem; twModel.Data = oReturn.Data.Trim() + "9"; twModel.Pais = oReturn.Pais; List <string> listaHash = new List <string>(); string[] hashTagsArray = oReturn.HashTags.Split("#"); if (hashTagsArray != null && hashTagsArray.Length > 0) { for (int k = 0; k < hashTagsArray.Length; k++) { if (k != 0) { string hashStr = "#" + hashTagsArray[k].Trim(); listaHash.Add(cript.Encrypt(hashStr)); } } } twModel.HashTags = listaHash; twitterDao.Store(twModel); } } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); }
private void GetAllIndiceStructureValue() { try { using (FileStream readStream = new FileStream(strNameFileIndice, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFileIndice oReturn = bsa.GetFileValue <StrFileIndice>(readStream); Console.WriteLine(string.Format("ID: {0}|Posição: {1}", oReturn.Id, oReturn.Posicao)); } } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private void GetHipotese() { Console.Clear(); Console.WriteLine("Carregando. Aguarde..."); try { DateTime begin = DateTime.UtcNow; List <Banda> listaBandas = Bandas.getBandas(); using (FileStream readStream = new FileStream(strNameFile, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } long posicao = readStream.Position; BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFile oReturn = bsa.GetFileValue <StrFile>(readStream); foreach (Banda b in listaBandas) { if (oReturn.Mensagem.ToLower().Contains(" " + b.Nome.ToLower() + " ") || oReturn.HashTags.ToLower().Contains(b.Nome.ToLower())) { b.Quantidade += 1; } } } } listaBandas = listaBandas.OrderByDescending(x => x.Quantidade).ToList(); Console.WriteLine("Qual a banda de rock mais popular do twitter?"); Console.WriteLine("Resposta: " + listaBandas[0].Nome); double total = (DateTime.UtcNow - begin).TotalMilliseconds; DesempenhoModel dm = new DesempenhoModel(); dm.NomeTeste = "Tempo hipótese(Arquivo)"; dm.TempoExecucao = total; dm.Data = DateTime.Now; desempenhoDao.Store(dm); Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private void GetPositionIndexData() { Console.Clear(); try { Console.WriteLine("Informe o ID"); long idBusca = long.Parse(Console.ReadLine()); DateTime begin = DateTime.UtcNow; StrFileIndice sfi = new StrFileIndice(); BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); if (bsa.BinarySearchById(idBusca, strNameFileIndice, ref sfi)) { FileStream fsDados = new FileStream(strNameFile, FileMode.Open); fsDados.Seek(sfi.Posicao, SeekOrigin.Begin); StrFile oReturn = bsa.GetFileValue <StrFile>(fsDados); Console.WriteLine(string.Format("Id: {0}", oReturn.Id)); Console.WriteLine(string.Format("Usuário: {0}", oReturn.Usuario)); Console.WriteLine(string.Format("Mensagem: {0}", oReturn.Mensagem)); Console.WriteLine(string.Format("Data: {0}", oReturn.Data.Trim() + "9")); Console.WriteLine(string.Format("País: {0}", oReturn.Pais)); Console.WriteLine(string.Format("Hashtags: {0}", oReturn.HashTags)); Console.WriteLine(""); fsDados.Close(); fsDados.Dispose(); double total = (DateTime.UtcNow - begin).TotalMilliseconds; DesempenhoModel dm = new DesempenhoModel(); dm.NomeTeste = "Tempo dado índice(Arquivo)"; dm.TempoExecucao = total; dm.Data = DateTime.Now; desempenhoDao.Store(dm); } else { Console.WriteLine("Índice ñ encontrado."); } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception) { Console.WriteLine("Dados inválidos."); Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } }
private void CarregarIndiceHashData() { Console.Clear(); Console.WriteLine("Carregando. Aguarde..."); listaHashData.Clear(); for (int i = 0; i < 1000; i++) { IndiceHashData ihd = new IndiceHashData(); ihd.hash = i; ihd.enderecos = new List <long>(); listaHashData.Add(ihd); } try { using (FileStream readStream = new FileStream(strNameFile, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } long posicao = readStream.Position; BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFile oReturn = bsa.GetFileValue <StrFile>(readStream); string data = oReturn.Data.Trim() + "9"; data = data.Substring(0, 2) + data.Substring(3, 2); int hashResult = int.Parse(data) % 1000; var ihd = listaHashData.Where(x => x.hash == hashResult).FirstOrDefault(); ihd.enderecos.Add(posicao); } } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private void GetAllIndiceHashStructureValue() { try { using (FileStream readStream = new FileStream(strNameIndiceHashtags, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFileIndiceHashtags oReturn = bsa.GetFileValue <StrFileIndiceHashtags>(readStream); StringBuilder ids = new StringBuilder(); for (int i = 0; i < 1000; i++) { if (oReturn.Ids[i] != 0) { if (i == 0) { ids.Append(oReturn.Ids[i]); } else { ids.Append("," + oReturn.Ids[i]); } } } Console.WriteLine(string.Format("HashTag: {0}|Ids: [{1}]", oReturn.Hashtag, ids.ToString().Trim())); } } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private void CarregarIndiceHashtaTrie() { Console.Clear(); Console.WriteLine("Carregando. Aguarde..."); root = new TrieNode(); try { using (FileStream readStream = new FileStream(strNameFile, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } long posicao = readStream.Position; BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFile oReturn = bsa.GetFileValue <StrFile>(readStream); string[] hashtags = oReturn.HashTags.Split("#"); foreach (string hashtag in hashtags) { if (hashtag.Trim() != "") { string hashtagAux = Regex.Replace(hashtag, "[^a-zA-Z]+", ""); Trie.Add(hashtagAux.ToLower(), posicao, root); } } } } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private void GetAllStructureValue() { DateTime begin = DateTime.UtcNow; try { using (FileStream readStream = new FileStream(strNameFile, FileMode.Open)) { while (readStream.Position < readStream.Length) { if (readStream.Position > 0) { readStream.Position += 1; } BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFile oReturn = bsa.GetFileValue <StrFile>(readStream); Console.WriteLine(string.Format("ID: {0}|Usuário: {1}|Data: {2}|HashTags: {3}", oReturn.Id, oReturn.Usuario, oReturn.Data.Trim() + "9", oReturn.HashTags)); } } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } double total = (DateTime.UtcNow - begin).TotalMilliseconds; DesempenhoModel dm = new DesempenhoModel(); dm.NomeTeste = "Tempo todos dados(Arquivo)"; dm.TempoExecucao = total; dm.Data = DateTime.Now; desempenhoDao.Store(dm); }
public void WriteStructureIndex <T>(T oStruct, string filename) { FileStream writeStream = new FileStream(filename, FileMode.Open); try { writeStream.Seek(0, SeekOrigin.Begin); if (writeStream.Length <= 0) { byte[] buf = GetBytes(oStruct); writeStream.Write(buf); } else { bool achou = false; while (writeStream.Position < writeStream.Length) { if (writeStream.Position > 0) { writeStream.Position += 1; } long idStruct = 0; foreach (var field in oStruct.GetType().GetFields()) { if (field.Name.ToLower() == "id") { idStruct = (long)field.GetValue(oStruct); } } long idObject = 0; BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); T oReturn = bsa.GetFileValue <T>(writeStream); foreach (var field in oReturn.GetType().GetFields()) { if (field.Name.ToLower() == "id") { idObject = (long)field.GetValue(oReturn); } } if (idStruct < idObject) { achou = true; writeStream.Position -= 24; byte[] buf = GetBytes(oStruct); writeStream.Write(buf); writeStream.Close(); writeStream.Dispose(); RuntimeHelpers.EnsureSufficientExecutionStack(); WriteStructureIndex(oReturn, filename); return; } else if (idStruct == idObject) { achou = true; writeStream.Close(); writeStream.Dispose(); return; } } if (!achou) { byte[] buf = GetBytes(oStruct); writeStream.Position = writeStream.Length + 1; writeStream.Write(buf); } } writeStream.Close(); writeStream.Dispose(); } catch (Exception ex) { writeStream.Close(); writeStream.Dispose(); throw ex; } }
private void GetdataIndexTrie() { Console.Clear(); Console.WriteLine("Informe a hashtag"); string tagInput = Console.ReadLine(); try { DateTime begin = DateTime.UtcNow; tagInput = Regex.Replace(tagInput, "[^a-zA-Z]+", ""); tagInput = tagInput.ToLower(); List <long> enderecos; if (Trie.Search(tagInput, root, out enderecos)) { if (enderecos.Count == 0) { Console.WriteLine("Nenhum dado encontrado para a hashtag informada."); } else { List <FileStream> listaStream = new List <FileStream>(); listaStream.Add(new FileStream(strNameFile, FileMode.Open)); BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); foreach (long endereco in enderecos) { listaStream[0].Seek(endereco, SeekOrigin.Begin); StrFile oReturnData = bsa.GetFileValue <StrFile>(listaStream[0]); Console.WriteLine(string.Format("Id: {0}", oReturnData.Id)); Console.WriteLine(string.Format("Usuário: {0}", oReturnData.Usuario)); Console.WriteLine(string.Format("Mensagem: {0}", oReturnData.Mensagem)); Console.WriteLine(string.Format("Data: {0}", oReturnData.Data.Trim() + "9")); Console.WriteLine(string.Format("País: {0}", oReturnData.Pais)); Console.WriteLine(string.Format("Hashtags: {0}", oReturnData.HashTags)); Console.WriteLine("---------------------------------------------------------------------"); } listaStream[0].Close(); listaStream[0].Dispose(); } double total = (DateTime.UtcNow - begin).TotalMilliseconds; DesempenhoModel dm = new DesempenhoModel(); dm.NomeTeste = "Tempo dado trie(Arquivo)"; dm.TempoExecucao = total; dm.Data = DateTime.Now; desempenhoDao.Store(dm); } else { Console.WriteLine("Hashta não encontrada."); } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private void GetdataIndexHash() { Console.Clear(); if (listaHashData.Count == 0) { Console.WriteLine("Lista de índices vazia"); Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } else { Console.WriteLine("Informe a Data"); string dataInput = Console.ReadLine(); try { DateTime dataBusca; if (DateTime.TryParse(dataInput, out dataBusca)) { DateTime begin = DateTime.UtcNow; string data = dataBusca.ToString("ddMM"); int hashResult = int.Parse(data) % 1000; var ihd = listaHashData.Where(x => x.hash == hashResult).FirstOrDefault(); if (ihd.enderecos.Count == 0) { Console.WriteLine("Nenhum dado encontrado para a data informada."); } else { List <FileStream> listaStream = new List <FileStream>(); listaStream.Add(new FileStream(strNameFile, FileMode.Open)); BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); foreach (long endereco in ihd.enderecos) { listaStream[0].Seek(endereco, SeekOrigin.Begin); StrFile oReturnData = bsa.GetFileValue <StrFile>(listaStream[0]); string dataP = dataBusca.ToString("dd/MM/yyyy"); if (dataP == oReturnData.Data.Trim() + "9") { Console.WriteLine(string.Format("Id: {0}", oReturnData.Id)); Console.WriteLine(string.Format("Usuário: {0}", oReturnData.Usuario)); Console.WriteLine(string.Format("Mensagem: {0}", oReturnData.Mensagem)); Console.WriteLine(string.Format("Data: {0}", oReturnData.Data.Trim() + "9")); Console.WriteLine(string.Format("País: {0}", oReturnData.Pais)); Console.WriteLine(string.Format("Hashtags: {0}", oReturnData.HashTags)); Console.WriteLine("---------------------------------------------------------------------"); } } listaStream[0].Close(); listaStream[0].Dispose(); } double total = (DateTime.UtcNow - begin).TotalMilliseconds; DesempenhoModel dm = new DesempenhoModel(); dm.NomeTeste = "Tempo dado data(Arquivo)"; dm.TempoExecucao = total; dm.Data = DateTime.Now; desempenhoDao.Store(dm); } else { Console.WriteLine("Data inválida."); } Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } } }
private void GetPositionIndexDataByHashTag() { Console.Clear(); try { Console.WriteLine("Informe a HashTag"); string hashTagBusca = Console.ReadLine(); if (hashTagBusca.Trim() == "") { throw new Exception("Erro"); } DateTime begin = DateTime.UtcNow; List <FileStream> listaStream = new List <FileStream>(); listaStream.Add(new FileStream(strNameFile, FileMode.Open)); listaStream.Add(new FileStream(strNameIndiceHashtags, FileMode.Open)); while (listaStream[1].Position < listaStream[1].Length) { if (listaStream[1].Position > 0) { listaStream[1].Position += 1; } BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFileIndiceHashtags oReturn = bsa.GetFileValue <StrFileIndiceHashtags>(listaStream[1]); if (oReturn.Hashtag.Contains(hashTagBusca.Trim())) { for (int i = 0; i < 1000; i++) { if (oReturn.Ids[i] == 0) { break; } StrFileIndice sfi = new StrFileIndice(); if (bsa.BinarySearchById(oReturn.Ids[i], strNameFileIndice, ref sfi)) { listaStream[0].Seek(sfi.Posicao, SeekOrigin.Begin); StrFile oReturnData = bsa.GetFileValue <StrFile>(listaStream[0]); Console.WriteLine(string.Format("Id: {0}", oReturnData.Id)); Console.WriteLine(string.Format("Usuário: {0}", oReturnData.Usuario)); Console.WriteLine(string.Format("Mensagem: {0}", oReturnData.Mensagem)); Console.WriteLine(string.Format("Data: {0}", oReturnData.Data.Trim() + "9")); Console.WriteLine(string.Format("País: {0}", oReturnData.Pais)); Console.WriteLine(string.Format("Hashtags: {0}", oReturnData.HashTags)); Console.WriteLine("---------------------------------------------------------------------"); } } } } listaStream[0].Close(); listaStream[1].Close(); listaStream[0].Dispose(); listaStream[1].Dispose(); double total = (DateTime.UtcNow - begin).TotalMilliseconds; DesempenhoModel dm = new DesempenhoModel(); dm.NomeTeste = "Tempo dado hashtag(Arquivo)"; dm.TempoExecucao = total; dm.Data = DateTime.Now; desempenhoDao.Store(dm); Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception) { Console.WriteLine("Dados inválidos."); Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } }
private void GenerateAllIndiceHashtags() { Console.Clear(); try { Console.WriteLine("Aguarde. Gerando índice."); List <FileStream> listaStream = new List <FileStream>(); listaStream.Add(new FileStream(strNameFile, FileMode.Open)); listaStream.Add(new FileStream(strNameIndiceHashtags, FileMode.Open)); listaStream[0].Seek(0, SeekOrigin.Begin); while (listaStream[0].Position < listaStream[0].Length) { if (listaStream[0].Position > 0) { listaStream[0].Position += 1; } BinarySearchAlgorithm bsa = new BinarySearchAlgorithm(); StrFile oReturn = bsa.GetFileValue <StrFile>(listaStream[0]); string[] hashtagsarray = oReturn.HashTags.Split("#"); foreach (string hashtag in hashtagsarray) { if (hashtag.Trim() != "" && (hashtag.ToLower().Contains("rock") || hashtag.ToLower().Contains("metal") || hashtag.ToLower().Contains("punk") || hashtag.ToLower().Contains("hard"))) { FileWrite fw = new FileWrite(); bool achou = false; string hashtagAux = "#" + hashtag.Trim(); listaStream[1].Seek(0, SeekOrigin.Begin); while (listaStream[1].Position < listaStream[1].Length) { if (listaStream[1].Position > 0) { listaStream[1].Position += 1; } StrFileIndiceHashtags oReturnInd = bsa.GetFileValue <StrFileIndiceHashtags>(listaStream[1]); if (oReturnInd.Hashtag.Trim() == hashtagAux.Trim()) { achou = true; for (int i = 1; i < 1000; i++) { if (oReturnInd.Ids[i] == 0) { oReturnInd.Ids[i] = oReturn.Id; break; } } long tamanhoBytes = Marshal.SizeOf(typeof(StrFileIndiceHashtags)); if (listaStream[1].Position > 0) { listaStream[1].Position -= tamanhoBytes; } byte[] buf = fw.GetBytes(oReturnInd); listaStream[1].Write(buf); } } if (!achou) { StrFileIndiceHashtags sfih = new StrFileIndiceHashtags(); sfih.Hashtag = hashtagAux; sfih.Ids = new long[1000]; sfih.Ids[0] = oReturn.Id; sfih.NewLine = '\n'; long position = 0; if (listaStream[1].Length > 0) { position = listaStream[1].Length + 1; listaStream[1].Position = position; } byte[] buf = fw.GetBytes(sfih); listaStream[1].Write(buf); } } } } listaStream[0].Close(); listaStream[1].Close(); listaStream[0].Dispose(); listaStream[1].Dispose(); Console.WriteLine("Pressione uma tecla para continuar."); Console.ReadKey(); } catch (Exception ex) { throw ex; } }