public List <string> GetAnswers(FAQsModel fAQsModel, FAQsHandler faqsHandler, string categoria) { linesFaqs = faqsHandler.FileInformation(1, fAQsModel); linesNumCat = faqsHandler.FileInformation(2, fAQsModel); List <string> answers = new List <string>(); int i = 0; int iNumCat = 0; if (linesFaqs.Count() > 0) { while (i < linesFaqs.Count() && iNumCat < linesNumCat.Count() && iNumCat < linesNumCat.Count()) { if (i >= Int32.Parse(linesNumCat[iNumCat])) { iNumCat++; } if (linesFaqs[i] == categoria && iNumCat < linesNumCat.Count()) { i = i + 2; while (i < Int32.Parse(linesNumCat[iNumCat])) { answers.Add(linesFaqs[i]); i = i + 2; } } else { i++; } } } return(answers); }
public List <string> GetCategories(FAQsModel fAQsModel, FAQsHandler faqsHandler) { linesFaqs = faqsHandler.FileInformation(1, fAQsModel); linesNumCat = faqsHandler.FileInformation(2, fAQsModel); List <string> categories = new List <string>(); int i = 0; int iCat = 0; foreach (string line in linesFaqs) { if (i == 0) { categories.Add(line); } else { if (i == Int32.Parse(linesNumCat[iCat])) { categories.Add(line); iCat++; } else { } } i++; } return(categories); }
public int Agregar(FAQsModel faqsModel, FAQsHandler faqsHandler, string categoria, string pregunta, string respuesta) { int error = 0; linesFaqs = faqsHandler.FileInformation(1, faqsModel); linesNumCat = faqsHandler.FileInformation(2, faqsModel); //El miembro debe de haber llenado todos los campos para modificar FAQs if ((categoria != "" && pregunta != "" && respuesta != "") && (categoria != null && pregunta != null && respuesta != null)) { error = RevisarPreguntaRepetida(categoria, pregunta, respuesta); if (error != 2) { //Se busca si la categoria existía previamente(1) int categoryFound = SearchCategory(linesFaqs, categoria); allLines = linesFaqs.Count(); //Se le da a newLinesFaqs un tamaño adecuado para poder aguantar la introducción de las nuevas líneas newLinesFaqs = new String[allLines + 3]; // contador de la catidad de nuevas líneas que va a tener el archivo Faqs.txt actualizado int totNewLines = 0; totNewLines = UpdateNewLines(categoryFound, totNewLines, pregunta, respuesta); //Se actualiza NumCat.txt if (linesNumCat.Count() != 0) { faqsHandler.WriteAllLines(2, linesNumCat, faqsModel); } //Se revisa si hay que agregar una nueva categoría junto con la pregunta y respuesta AddNewCategory(totNewLines, categoryFound, faqsModel, faqsHandler, categoria, pregunta, respuesta); if (linesNumCat.Count() != 0) { //Se actualiza FAQs.txt faqsHandler.WriteAllLines(1, newLinesFaqs, faqsModel); } } } else { error = 1; } return(error); }
public int Borrar(FAQsModel faqsModel, FAQsHandler faqsHandler, string categoria, string pregunta, string respuesta) { int error = 0; linesFaqs = faqsHandler.FileInformation(1, faqsModel); linesNumCat = faqsHandler.FileInformation(2, faqsModel); //El miembro debe de haber llenado todos los campos para modificar FAQs if ((categoria != "" && pregunta != "" && respuesta != "") && (categoria != null && pregunta != null && respuesta != null)) { if (RevisarPreguntaRepetida(categoria, pregunta, respuesta) == 0) { error = 3; } if (error != 3) { //Se busca si la categoria existía previamente(1) //int categoryFound = SearchCategory(linesFaqs,categoria); allLines = linesFaqs.Count(); //Se le da a newLinesFaqs un tamaño adecuado para poder aguantar la introducción de las nuevas líneas newLinesFaqs = new String[allLines]; newLinesNumCat = new String[linesNumCat.Count()]; newLinesNumCat[0] = ""; // contador de la catidad de nuevas líneas que va a tener el archivo Faqs.txt actualizado BorrarQYA(faqsModel, faqsHandler, categoria, pregunta, respuesta); //Se actualiza NumCat.txt faqsHandler.WriteAllLines(2, newLinesNumCat, faqsModel); //Se actualiza FAQs.txt faqsHandler.WriteAllLines(1, newLinesFaqs, faqsModel); } } else { error = 1; } return(error); }
// Este método revisa si hay que agregar una nueva categoría, y si es así se agrega con las nuevas preguntas y respuestas public void AddNewCategory(int totNewLines, int categoryFound, FAQsModel faqsModel, FAQsHandler faqsHandler, string categoria, string pregunta, string respuesta) { if (categoryFound == 0) { newLinesFaqs[totNewLines] = categoria; totNewLines = totNewLines + 1; newLinesFaqs[totNewLines] = pregunta; totNewLines = totNewLines + 1; newLinesFaqs[totNewLines] = respuesta; totNewLines = totNewLines + 1; //Se agrega un nuevo número de línea a NumCat.txt ya que hay una nueva categoria if (linesFaqs.Count() == 0) { File.WriteAllLines(faqsModel.filePathFaqs, newLinesFaqs); string[] newNumCat = new string[1]; newNumCat[0] = "3"; File.WriteAllLines(faqsModel.filePathNumCat, newNumCat); } else { faqsHandler.WriteLastLine(2, Convert.ToString(totNewLines), faqsModel); } } }
void BorrarQYA(FAQsModel faqsModel, FAQsHandler faqsHandler, string categoria, string pregunta, string respuesta) { int i = 0; int iNumCat = 0; if (linesFaqs.Count() > 0) { newLinesNumCat[0] = linesNumCat[0]; while (i < linesFaqs.Count() && iNumCat < linesNumCat.Count()) { if (i >= Int32.Parse(linesNumCat[iNumCat]) && iNumCat < linesNumCat.Count()) { iNumCat++; newLinesNumCat[iNumCat] = linesNumCat[iNumCat]; } if (linesFaqs[i] == categoria && iNumCat < linesNumCat.Count()) { newLinesFaqs[i] = linesFaqs[i]; i = i + 1; while (i < Int32.Parse(linesNumCat[iNumCat])) { if (linesFaqs[i] == pregunta) { if (linesFaqs.Count() == 3) { ReajustarCasoBase(i - 1, iNumCat, 1); i = linesFaqs.Count(); } else { if (i + 2 >= linesFaqs.Count()) { if (linesFaqs[i - 1] == categoria) { ReajustarCasoBase(i - 1, iNumCat, 1); } else { ReajustarCasoBase(i, iNumCat, 2); } i = linesFaqs.Count(); } else { int posicionesMenos = DeterminarPosicionesMenos(i, categoria, iNumCat); int iNicial = i; i = DeterminarPosActual(posicionesMenos, i); ReajustarLinesNumCat(iNumCat, posicionesMenos); ReajustarLinesFaqs(i, posicionesMenos); MoverINumCat(iNumCat, posicionesMenos, iNicial, categoria); i = linesFaqs.Count(); } } } if (i < linesFaqs.Count()) { newLinesFaqs[i] = linesFaqs[i]; newLinesFaqs[i + 1] = linesFaqs[i + 1]; } i = i + 2; } } else { newLinesFaqs[i] = linesFaqs[i]; i++; } } } }