コード例 #1
0
        public ActionResult AddUser(IFormCollection collection)
        {
            //VARIABLES PARA TABLA HASH
            int    team = 0;
            string Text = "";

            //VARIABLES QUE AYUDAN A VERIFICAR EL GRUPO
            string sickness = collection["Enfermedad"];
            string job      = collection["Trabajo"];

            //REVISAR SI PUEDE RECIBIR LA VACUNA
            int    age      = Convert.ToInt32(collection["Edad"]);
            string Pregnant = collection["SiEsApto"];
            int    VerDPI   = Convert.ToString(collection["DPI"]).Length;
            bool   Correct  = true;

            if (Pregnant == null)
            {
                Pregnant = "No";
            }

            if (VerDPI != 13)
            {
                Correct = false;
            }

            //VERIFICAR SI ES APTO
            if (age >= 18 && Pregnant == "No" && Correct == true)
            {
                //VERIFICAR A QUE GRUPO PERTENECEN
                //Grupo 1 -     Sistema de salud
                if (job == "Trabajador de salud primera línea")
                {
                    team = 1;
                }
                else if (job == "Trabajador de salud no de primera línea" || job == "Comadrona" || job == "Promotor voluntario" || job == "Terapeuta maya")
                {
                    team = 2;
                }
                else if (job == "Estudiante de ciencias de la salud")
                {
                    team = 3;
                }
                else if (job == "Trabajador como cuerpos de socorro" || job == "Trabajador de una funeraria" || job == "Trabajador en instituciones de adultos mayores")
                {
                    team = 4;
                }
                else if (job == "Personas internadas en hogares o en asilos")
                {
                    team = 5;
                }
                else if (job == "Trabajador administrativo del sector salud")
                {
                    team = 6;
                }

                //Grupo 2 y 4 - Clasificar por edad
                if (team == 0)
                {
                    if (age >= 70 && sickness != " ")
                    {
                        team = 7;
                    }
                    else if (age >= 70)
                    {
                        team = 8;
                    }
                    else if (age >= 50)
                    {
                        team = 9;
                    }

                    //Grupo 3 - Clasificar por trabajo
                    if (job == "Trabajador del sector de seguridad nacional" && team == 0)
                    {
                        team = 10;
                    }
                    else if ((job == "Trabajador de la municipalidad" || job == "Trabajador de entidades que prestan servicios esenciales") && team == 0)
                    {
                        team = 11;
                    }
                    else if (job == "Trabajador del sector de educación" && team == 0)
                    {
                        team = 12;
                    }
                    else if (job == "Trabajador del sector de justicia" && team == 0)
                    {
                        team = 13;
                    }

                    if (age >= 40 && job == "Otro")
                    {
                        team = 14;
                    }
                    else if (age >= 18 && job == "Otro")
                    {
                        team = 15;
                    }
                }

                //INFORMACIÓN DEL USUARIO
                var NewUser = new Models.UserInformation
                {
                    Nombre       = collection["Nombre"],
                    Apellido     = collection["Apellido"],
                    DPI          = Convert.ToInt64(collection["DPI"]),
                    Edad         = age,
                    Departamento = Singleton.Instance.LocationData.ElementAt(0).Departamento,
                    Municipio    = Singleton.Instance.LocationData.ElementAt(0).Municipio,
                    Dirección    = collection["Dirección"],
                    Teléfono     = Convert.ToInt32(collection["Teléfono"]),
                    Email        = collection["Email"],
                    Trabajo      = job,
                    Enfermedad   = sickness,
                    SiEsApto     = "Si",
                    Grupo        = team,
                    N_Registro   = Singleton.Instance.Order.Count()
                };

                //REVISAR QUE NO SEA UN DATO REPETIDO
                if (Singleton.Instance.HashTableUserInformation.ValueRepeat(NewUser) == false)
                {
                    //INGRESAR A LA TABLA HASH
                    Singleton.Instance.HashTableUserInformation.AddHashTable(NewUser);

                    //INGRESAR A LA LISTA DE PRIORIDAD
                    var NewPriority = new Models.PriorityInformation
                    {
                        Priority = team,
                        DPI      = Convert.ToInt64(collection["DPI"]),
                        N_order  = Singleton.Instance.Order.Count()
                    };
                    Singleton.Instance.PriorityUsers.HeapInsert(NewPriority, NewPriority);

                    //INGRESAR AL ÁRBOL AVL POR NOMBRE
                    var NewUserName = new Models.Data.NameUser
                    {
                        Name    = collection["Nombre"],
                        DPI_AVL = Convert.ToInt64(collection["DPI"])
                    };
                    Singleton.Instance.IndexName.Insert(NewUserName);

                    //INGRESAR AL ÁRBOL AVL POR APELLIDO
                    var NewUserLastName = new Models.Data.LastNameUser
                    {
                        LastName = collection["Apellido"],
                        DPI_AVL  = Convert.ToInt64(collection["DPI"])
                    };
                    Singleton.Instance.IndexLastName.Insert(NewUserLastName);

                    //INGRESAR AL ÁRBOL AVL POR DPI
                    var NewDPI = new Models.Data.DPIUser
                    {
                        DPI = Convert.ToInt64(collection["DPI"])
                    };
                    Singleton.Instance.IndexDPI.Insert(NewDPI);

                    if (Singleton.Instance.Order.Count() == 0)
                    {
                        Singleton.Instance.Order.InsertAtStart(0);
                    }
                    else
                    {
                        Singleton.Instance.Order.InsertAtEnd(0);
                    }

                    var NewUserExtra = new Models.UserInformation
                    {
                        Nombre   = collection["Nombre"],
                        Apellido = collection["Apellido"],
                        DPI      = Convert.ToInt64(collection["DPI"])
                    };

                    if (Singleton.Instance.OrderNum.Count() == 0)
                    {
                        Singleton.Instance.OrderNum.InsertAtStart(NewUserExtra);
                    }
                    else
                    {
                        Singleton.Instance.OrderNum.InsertAtEnd(NewUserExtra);
                    }

                    //GUARDAR EN UN ARCHIVO DE TEXTO
                    if (Singleton.Instance.Order.Count() == 1)
                    {
                        Text = collection["Nombre"] + "," + collection["Apellido"] + "," + Convert.ToInt64(collection["DPI"]) + "," + age + "," + Singleton.Instance.LocationData.ElementAt(0).Departamento + "," + Singleton.Instance.LocationData.ElementAt(0).Municipio + "," + collection["Dirección"] + "," + Convert.ToInt32(collection["Teléfono"]) + "," + collection["Email"] + "," + job + "," + sickness + "," + team + "," + Singleton.Instance.Order.Count();
                    }
                    else
                    {
                        Text = "\n" + collection["Nombre"] + "," + collection["Apellido"] + "," + Convert.ToInt64(collection["DPI"]) + "," + age + "," + Singleton.Instance.LocationData.ElementAt(0).Departamento + "," + Singleton.Instance.LocationData.ElementAt(0).Municipio + "," + collection["Dirección"] + "," + Convert.ToInt32(collection["Teléfono"]) + "," + collection["Email"] + "," + job + "," + sickness + "," + team + "," + Singleton.Instance.Order.Count();
                    }

                    //ESCRIBIR EN UN TEXTO
                    StreamWriter writer = new StreamWriter("Datos Ingresados.txt", true);
                    writer.Write(Text);
                    writer.Close();

                    //MOSTRAR EL MENU
                    return(RedirectToAction(nameof(Index)));
                }
                else
                {
                    //MOSTRAR QUE EL DATO YA EXISTE
                    return(RedirectToAction(nameof(Exist)));
                }
            }
            else
            {
                if (Correct == false)
                {
                    return(RedirectToAction(nameof(DPI_ERROR)));
                }
                else
                {
                    //MOSTRAR VISTA DE QUE EL CIUDADANO NO ES APTO PARA RECIBIR LA VACUNA
                    return(RedirectToAction(nameof(CanNot)));
                }
            }
        }
コード例 #2
0
        public ActionResult SearchPatient(IFormCollection collection)
        {
            string searchby = collection["SearchBy"];

            if (searchby == "Nombre")//Búsqueda por nombre
            {
                var SearchedUser = new Models.Data.NameUser
                {
                    Name = collection["Buscar"],
                };

                TreeNode <NameUser> found_element = Singleton.Instance.IndexName.Search(SearchedUser, Singleton.Instance.IndexName.ReturnRoot());

                if (found_element != null)
                {
                    //Por lo menos encuentra un elemento
                    var SearchInformation = new Models.UserInformation
                    {
                        DPI = found_element.value.DPI_AVL
                    };
                    //Busca el elemento en la Tabla Hash para agregarlo a la lista de resultados
                    var Result = new Models.UserInformation
                    {
                        Nombre       = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Nombre,
                        Apellido     = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Apellido,
                        DPI          = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.DPI,
                        Edad         = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Edad,
                        Departamento = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Departamento,
                        Trabajo      = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Trabajo,
                        Grupo        = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Grupo,
                    };
                    Singleton.Instance.SearchResults.InsertAtStart(Result);
                    return(RedirectToAction(nameof(ShowSearchResults)));
                }
                else
                {
                    return(RedirectToAction(nameof(ElementNotFound)));
                }
            }
            else if (searchby == "Apellido")
            {
                var SearchedUser = new Models.Data.LastNameUser
                {
                    LastName = collection["Buscar"],
                };
                TreeNode <LastNameUser> found_element = Singleton.Instance.IndexLastName.Search(SearchedUser, Singleton.Instance.IndexLastName.ReturnRoot());

                if (found_element != null)
                {
                    var SearchInformation = new Models.UserInformation
                    {
                        DPI = found_element.value.DPI_AVL
                    };

                    var Result = new Models.UserInformation
                    {
                        Nombre       = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Nombre,
                        Apellido     = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Apellido,
                        DPI          = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.DPI,
                        Edad         = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Edad,
                        Departamento = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Departamento,
                        Trabajo      = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Trabajo,
                        Grupo        = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Grupo,
                    };
                    Singleton.Instance.SearchResults.InsertAtStart(Result);
                    return(RedirectToAction(nameof(ShowSearchResults)));
                }
                else
                {
                    return(RedirectToAction(nameof(ElementNotFound)));
                }
            }
            else
            {
                var SearchedUser = new Models.Data.DPIUser
                {
                    DPI = Convert.ToInt64(collection["Buscar"]),
                };
                TreeNode <DPIUser> found_element = Singleton.Instance.IndexDPI.Search(SearchedUser, Singleton.Instance.IndexDPI.ReturnRoot());
                if (found_element != null)
                {
                    var SearchInformation = new Models.UserInformation
                    {
                        DPI = found_element.value.DPI
                    };

                    var Result = new Models.UserInformation
                    {
                        Nombre       = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Nombre,
                        Apellido     = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Apellido,
                        DPI          = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.DPI,
                        Edad         = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Edad,
                        Departamento = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Departamento,
                        Trabajo      = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Trabajo,
                        Grupo        = Singleton.Instance.HashTableUserInformation.ReturnHash(SearchInformation).value.Grupo,
                    };
                    Singleton.Instance.SearchResults.InsertAtStart(Result);
                    return(RedirectToAction(nameof(ShowSearchResults)));
                }
                else
                {
                    return(RedirectToAction(nameof(ElementNotFound)));
                }
            }
        }
コード例 #3
0
        //RECUPERANDO DATOS ANTERIORES
        public void ReadFileC()
        {
            //RECOPILAR INFORMACIÓN ANTERIOR
            string       filePath     = bingPathToAppDir();
            StreamReader streamReader = new StreamReader(filePath);
            string       CurrentLine;

            while (!streamReader.EndOfStream)
            {
                CurrentLine = streamReader.ReadLine();

                if (CurrentLine != "")
                {
                    string[] FileInformationList = CurrentLine.Split(',');
                    int      pos     = 0;
                    string   NombreF = FileInformationList[pos];
                    pos++;
                    string ApellidoF = FileInformationList[pos];
                    pos++;
                    long DPIF = Convert.ToInt64(FileInformationList[pos]);
                    pos++;
                    int EdadF = Convert.ToInt16(FileInformationList[pos]);
                    pos++;
                    string DepartamentoF = FileInformationList[pos];
                    pos++;
                    string MunicipioF = FileInformationList[pos];
                    pos++;
                    string DirecciónF = FileInformationList[pos];
                    pos++;
                    int TelefonoF = Convert.ToInt32(FileInformationList[pos]);
                    pos++;
                    string EmailF = FileInformationList[pos];
                    pos++;
                    string TrabajoF = FileInformationList[pos];
                    pos++;
                    string EnfermedadF = FileInformationList[pos];
                    pos++;
                    int GrupoF = Convert.ToInt32(FileInformationList[pos]);
                    pos++;
                    int NRF = Convert.ToInt32(FileInformationList[pos]);

                    if (MunicipioF == Singleton.Instance.LocationData.ElementAt(0).Municipio)
                    {
                        var NewUser = new Models.UserInformation
                        {
                            Nombre       = NombreF,
                            Apellido     = ApellidoF,
                            DPI          = DPIF,
                            Edad         = EdadF,
                            Departamento = DepartamentoF,
                            Municipio    = MunicipioF,
                            Dirección    = DirecciónF,
                            Teléfono     = TelefonoF,
                            Email        = EmailF,
                            Trabajo      = TrabajoF,
                            Enfermedad   = EnfermedadF,
                            Grupo        = GrupoF,
                            N_Registro   = NRF
                        };

                        //REVISAR QUE NO SEA UN DATO REPETIDO
                        if (Singleton.Instance.HashTableUserInformation.ValueRepeat(NewUser) == false)
                        {
                            //INGRESAR A LA TABLA HASH
                            Singleton.Instance.HashTableUserInformation.AddHashTable(NewUser);

                            //INGRESAR A LA LISTA DE PRIORIDAD
                            var NewPriority = new Models.PriorityInformation
                            {
                                Priority = GrupoF,
                                DPI      = DPIF,
                                N_order  = NRF
                            };
                            Singleton.Instance.PriorityUsers.HeapInsert(NewPriority, NewPriority);

                            //INGRESAR AL ÁRBOL AVL POR NOMBRE
                            var NewUserName = new Models.Data.NameUser
                            {
                                Name    = NombreF,
                                DPI_AVL = DPIF
                            };
                            Singleton.Instance.IndexName.Insert(NewUserName);

                            //INGRESAR AL ÁRBOL AVL POR APELLIDO
                            var NewUserLastName = new Models.Data.LastNameUser
                            {
                                LastName = ApellidoF,
                                DPI_AVL  = DPIF
                            };
                            Singleton.Instance.IndexLastName.Insert(NewUserLastName);

                            //INGRESAR AL ÁRBOL AVL POR DPI
                            var NewDPI = new Models.Data.DPIUser
                            {
                                DPI = DPIF
                            };
                            Singleton.Instance.IndexDPI.Insert(NewDPI);

                            var NewUserExtra = new Models.UserInformation
                            {
                                Nombre   = NombreF,
                                Apellido = ApellidoF,
                                DPI      = DPIF
                            };

                            //ORDEN DE LLEGADA
                            if (Singleton.Instance.Order.Count() == 0)
                            {
                                Singleton.Instance.Order.InsertAtStart(1);
                            }
                            else
                            {
                                Singleton.Instance.Order.InsertAtEnd(1);
                            }

                            if (Singleton.Instance.OrderNum.Count() == 0)
                            {
                                Singleton.Instance.OrderNum.InsertAtStart(NewUserExtra);
                            }
                            else
                            {
                                Singleton.Instance.OrderNum.InsertAtEnd(NewUserExtra);
                            }
                        }
                    }
                    else
                    {
                        if (Singleton.Instance.Order.Count() == 0)
                        {
                            Singleton.Instance.Order.InsertAtStart(1);
                        }
                    }
                }
            }
            //CERRAR LA LECTURA DEL ARCHIVO
            streamReader.Close();
        }