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++;
                    }
                }
            }
        }