Пример #1
0
        // 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);
                }
            }
        }
Пример #2
0
        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);
        }
Пример #3
0
        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 List <string> GetAnswers(string categoria)
        {
            FAQsModel     fAQsModel   = new FAQsModel();
            FAQsHandler   fAQsHandler = new FAQsHandler();
            List <string> answers     = fAQsHandler.GetAnswers(fAQsModel, fAQsHandler, categoria);

            return(answers);
        }
        public List <string> GetQuestions(string categoria)
        {
            FAQsModel     fAQsModel   = new FAQsModel();
            FAQsHandler   fAQsHandler = new FAQsHandler();
            List <string> questions   = fAQsHandler.GetQuestions(fAQsModel, fAQsHandler, categoria);

            return(questions);
        }
        public List <string> GetCategories()
        {
            FAQsModel     fAQsModel   = new FAQsModel();
            FAQsHandler   fAQsHandler = new FAQsHandler();
            List <string> categories  = fAQsHandler.GetCategories(fAQsModel, fAQsHandler);

            return(categories);
        }
Пример #7
0
        public async Task <IActionResult> List()
        {
            FAQsModel model = new FAQsModel();

            model.FAQs = await _faqService.GetFAQs();

            return(View(model));
        }
        public int Agregar(string categoria, string pregunta, string respuesta)
        {
            int         error       = 0;
            FAQsModel   fAQsModel   = new FAQsModel();
            FAQsHandler fAQsHandler = new FAQsHandler();

            error = fAQsHandler.Agregar(fAQsModel, fAQsHandler, categoria, pregunta, respuesta);
            return(error);
        }
Пример #9
0
 // Este método escribe una nueva línea en el archivo
 public void WriteLastLine(int option, string newLine, FAQsModel faqsModel)
 {
     if (option == 1)
     {
         File.AppendAllText(faqsModel.filePathFaqs, newLine);
     }
     else
     {
         File.AppendAllText(faqsModel.filePathNumCat, newLine);
     }
 }
Пример #10
0
 // Este método devuelve un vector de string para manipular los datos de un archivo
 public string[] FileInformation(int option, FAQsModel faqsModel)
 {
     if (option == 1)
     {
         return(faqsModel.linesFaqs);
     }
     else
     {
         return(faqsModel.linesNumCat);
     }
 }
Пример #11
0
        public async Task <IActionResult> FAQs(FAQCategory category = FAQCategory.All, string key = "")
        {
            try
            {
                FAQsModel model = new FAQsModel();
                model.FAQs = await _faqService.GetFAQsByCategory(category, key);

                ViewBag.SetActive   = category.ToString();
                ViewBag.ValueSearch = key;
                return(View(model));
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Пример #12
0
        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);
        }
Пример #13
0
        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);
        }
Пример #14
0
        // Este método rescribe todo el archivo según un vector de strings
        public void WriteAllLines(int option, string[] newLines, FAQsModel faqsModel)
        {
            string path;

            if (option == 1)
            {
                path = faqsModel.filePathFaqs;
            }
            else
            {
                path = faqsModel.filePathNumCat;
            }


            if (newLines[0] == "" || newLines[0] == null)
            {
                File.Create(path).Close();
            }

            else
            {
                int i = 0;
                using (StreamWriter writer = new StreamWriter(path))
                {
                    while (i < newLines.Count())
                    {
                        if (newLines[i] != "" && newLines[i] != null)
                        {
                            writer.WriteLine(newLines[i]);
                        }

                        i++;
                    }
                }
            }
        }
Пример #15
0
        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++;
                    }
                }
            }
        }