예제 #1
0
        public IList <Invitado> GetAllInvitados()
        {
            IList <Invitado> invitados = new List <Invitado>();

            using (SqliteConnection db = CreateConnection())
            {
                db.Open();
                SqliteCommand selectCommand = new SqliteCommand("SELECT Id," +
                                                                "Codigo, Nombre, Evento, EventoLocal, Extra, DNI, Email, Oficina, Asistencia, Notas FROM Invitados order by Email", db);

                SqliteDataReader query = selectCommand.ExecuteReader();

                while (query.Read())
                {
                    Invitado invitado = new Invitado
                    {
                        Id          = query.GetInt32(0),
                        Codigo      = query.GetInt32(1),
                        Nombre      = query.GetString(2),
                        Evento      = query.GetString(3),
                        EventoLocal = query.GetString(4),
                        Extra       = query.GetString(5),
                        DNI         = query.GetString(6),
                        Email       = query.GetString(7),
                        Oficina     = query.GetString(8),
                        Asistencia  = query.GetString(9),
                        Notas       = query.GetString(10)
                    };
                    invitados.Add(invitado);
                }
                db.Close();
            }
            return(invitados);
        }
예제 #2
0
        public Invitado GetInvitadoByEmail(string email)
        {
            Invitado invitado = null;

            using (SqliteConnection db = CreateConnection())
            {
                db.Open();

                SqliteCommand selectCommand = new SqliteCommand("SELECT Id," +
                                                                "Codigo, Nombre, Evento, EventoLocal, Extra, DNI, Email, Oficina, Asistencia, Notas FROM Invitados where Email=@EmailParam", db);
                selectCommand.Parameters.AddWithValue("@EmailParam", email);

                SqliteDataReader query = selectCommand.ExecuteReader();

                while (query.Read())
                {
                    invitado = new Invitado
                    {
                        Id          = query.GetInt32(0),
                        Codigo      = query.GetInt32(1),
                        Nombre      = query.GetString(2),
                        Evento      = query.GetString(3),
                        EventoLocal = query.GetString(4),
                        Extra       = query.GetString(5),
                        DNI         = query.GetString(6),
                        Email       = query.GetString(7),
                        Oficina     = query.GetString(8),
                        Asistencia  = query.GetString(9),
                        Notas       = query.GetString(10)
                    };
                }
                db.Close();
            }
            return(invitado);
        }
예제 #3
0
        public (ResultadoCheck, Invitado, Asistente) CheckQR(string qr)
        {
            Asistente      asistente = null;
            Invitado       invitado  = null;
            ResultadoCheck result    = ResultadoCheck.NoValue;

            if (!string.IsNullOrWhiteSpace(qr))
            {
                result = ResultadoCheck.NoExiste;
                string emailInvitado = desglosaQRGetEmail(qr);
                invitado = dataService.GetInvitadoByEmail(emailInvitado);
                if (invitado != null)
                {
                    result = ResultadoCheck.DatosIncorrectos;
                    if (verificarInvitado(invitado))
                    {
                        asistente = dataService.GetAsistenteByIdInvitado(invitado.Id);
                        if (verificarAsistente(asistente))
                        {
                            result = ResultadoCheck.PuedeEntrar;
                        }
                        else
                        {
                            result = ResultadoCheck.Registrado;
                        }
                    }
                }
            }
            (ResultadoCheck, Invitado, Asistente)resultComplete = ((ResultadoCheck)result, invitado, asistente);
            return(resultComplete);
        }
예제 #4
0
 private void clearPanels()
 {
     panelNoExiste.Visible             = false;
     panelConfirmacionEntrada.Visible  = false;
     this.InvitadoTemporal             = null;
     panelAsistenciaRegistrada.Visible = false;
 }
예제 #5
0
        internal void AceptarInvitado(Invitado invitado)
        {
            Asistente asistente = new Asistente {
                InvitadoId = invitado.Id, QRLeido = invitado.QRLeido, Entrada = DateTime.Now
            };

            dataService.InsertAsistente(asistente);
        }
예제 #6
0
 public void InsertInvitadoManual(Invitado invitado)
 {
     using (SqliteConnection db = CreateConnection())
     {
         db.Open();
         insertInvitado(db, invitado);
         db.Close();
     }
 }
예제 #7
0
        private Invitado invitadoSeleccionado()
        {
            Invitado invitado = null;

            if (gridInvitados?.SelectedRows.Count > 0)
            {
                invitado = (Invitado)gridInvitados.SelectedRows[0].DataBoundItem;
            }
            return(invitado);
        }
예제 #8
0
        private bool verificarInvitado(Invitado invitado)
        {
            bool verificado = false;

            if (invitado != null)
            {
                if (invitado.EventoLocal == configuracion.Evento && invitado.IsConfirmado)
                {
                    verificado = true;
                }
            }
            return(verificado);
        }
예제 #9
0
        private void gridInvitados_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            Invitado invitado = invitadoSeleccionado();

            if (invitado != null && invitado.IsRegistrado)
            {
                contextMenuGrid.Items[0].Enabled = false;
            }
            else
            {
                contextMenuGrid.Items[0].Enabled = true;
            }
        }
예제 #10
0
        private void marcarAsistencia_Click(object sender, EventArgs e)
        {
            Invitado invitado = invitadoSeleccionado();

            if (invitado != null)
            {
                string       mensaje      = $"El invitado {invitado.Nombre} con DNI {invitado.DNI}, ¿se le concede acceso?";
                DialogResult dialogResult = MessageBox.Show(mensaje, "Confirmación de asistencia manual", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    marcarAsistente(invitado);
                }
            }
        }
예제 #11
0
        public IList <Invitado> ReadFileInvitados(string filename, System.Windows.Forms.ToolStripProgressBar updateProgress)
        {
            string[] lineas = File.ReadAllLines(filename, Encoding.GetEncoding("iso-8859-15"));
            updateProgress.Value = 0;
            IList <Invitado> invitados = new List <Invitado>();

            for (int lineaId = 1; lineaId < lineas.Count(); lineaId++)
            {
                Invitado invitado = ConvertLineToInvitado(lineas[lineaId]);
                invitados.Add(invitado);
                updateProgress.Value = (100 * lineaId) / lineas.Count();
            }
            updateProgress.Value = 100;
            return(invitados);
        }
예제 #12
0
        private void addNotasToolStripMenuItem_Click(object sender, EventArgs e)
        {
            Invitado invitado = invitadoSeleccionado();

            if (invitado != null)
            {
                string notasActualizadas = Prompt.ShowDialog("Notas", $"Actualizar invitado {invitado.Nombre} {invitado.DNI}", invitado.Notas);
                if (!notasActualizadas.Equals(invitado.Notas))
                {
                    invitado.Notas = notasActualizadas;
                    dataService.ActualizarNotasInvitado(invitado);
                    FillGrid();
                }
            }
        }
예제 #13
0
 private void marcarAsistente(Invitado invitado)
 {
     invitado.QRLeido = "Proceso Manual";
     if (!invitado.IsRegistrado)
     {
         proceso.AceptarInvitado(invitado);
         int?indexSelecte = gridInvitados.SelectedRows[0]?.Index;
         FillGrid();
         gridInvitados.Rows[indexSelecte.GetValueOrDefault()].Selected = true;
         gridInvitados.FirstDisplayedScrollingRowIndex = indexSelecte.GetValueOrDefault();
     }
     else
     {
         MessageBox.Show("El invitado ya se había registrado antes");
     }
 }
예제 #14
0
        public void ActualizarNotasInvitado(Invitado invitado)
        {
            using (SqliteConnection db = CreateConnection())
            {
                db.Open();
                SqliteCommand updateCommand = new SqliteCommand();
                updateCommand.Connection = db;

                // Use parameterized query to prevent SQL injection attacks
                updateCommand.CommandText = "UPDATE Invitados SET Notas= @Notas WHERE Id = @Id;";

                updateCommand.Parameters.AddWithValue("@Id", invitado.Id);
                updateCommand.Parameters.AddWithValue("@Notas", invitado.Notas);
                updateCommand.ExecuteNonQuery();
                db.Close();
            }
        }
예제 #15
0
        public Invitado ConvertLineToInvitado(string linea)
        {
            var      campos   = linea.Split(new char[] { Convert.ToChar(CSVSeparationLetter) });
            Invitado invitado = new Invitado
            {
                Codigo      = Convert.ToInt32(campos[0]),
                Evento      = campos[1],
                Asistencia  = campos[2],
                EventoLocal = campos[3],
                Email       = campos[4],
                Nombre      = campos[5],
                Oficina     = campos[6],
                DNI         = campos[7],
                Extra       = campos[8]
            };

            return(invitado);
        }
예제 #16
0
        public IList <Invitado> GetAllInvitadosView()
        {
            IList <Invitado> invitados = new List <Invitado>();

            using (SqliteConnection db = CreateConnection())
            {
                db.Open();
                SqliteCommand selectCommand = new SqliteCommand("SELECT i.Id," +
                                                                "i.Codigo, i.Nombre, i.Evento, i.EventoLocal, i.Extra, i.DNI, i.Email, i.Oficina,i.Asistencia , a.entrada, i.Notas FROM Invitados i LEFT JOIN Asistencia a  on i.Id = a.InvitadoId order by i.Email", db);
                SqliteDataReader query = selectCommand.ExecuteReader();
                while (query.Read())
                {
                    Invitado invitado = new Invitado
                    {
                        Id          = query.GetInt32(0),
                        Codigo      = query.GetInt32(1),
                        Nombre      = query.GetString(2),
                        Evento      = query.GetString(3),
                        EventoLocal = query.GetString(4),
                        Extra       = query.GetString(5),
                        DNI         = query.GetString(6),
                        Email       = query.GetString(7),
                        Oficina     = query.GetString(8),
                        Asistencia  = query.GetString(9),
                        Notas       = query.GetString(11)
                    };
                    if (!query.IsDBNull(10))
                    {
                        invitado.Registrado = "Sí";
                    }
                    else
                    {
                        invitado.Registrado = "No";
                    }
                    invitados.Add(invitado);
                }
                db.Close();
            }
            return(invitados);
        }
예제 #17
0
        private void buttonGuardar_Click(object sender, EventArgs e)
        {
            Invitado invitado = new Invitado
            {
                Nombre      = NombreText.Text,
                DNI         = DniText.Text,
                Notas       = NotasText.Text,
                Evento      = string.Empty,
                EventoLocal = configuracion.Evento
            };

            if (invitado.HasValuesMinimos())
            {
                dataService.InsertInvitadoManual(invitado);
                this.DialogResult = DialogResult.OK;
                this.Close();
            }
            else
            {
                MessageBox.Show("Es necesario cubrir todos los campos");
            }
        }
예제 #18
0
        protected void insertInvitado(SqliteConnection db, Invitado invitado)
        {
            SqliteCommand insertCommand = new SqliteCommand();

            insertCommand.Connection = db;

            // Use parameterized query to prevent SQL injection attacks
            insertCommand.CommandText = "INSERT INTO Invitados VALUES (null,@Codigo, @Nombre, @Evento, @EventoLocal, @Extra, @DNI, @Email, @Oficina, @Asistencia, @Notas);";

            insertCommand.Parameters.AddWithValue("@Codigo", invitado.Codigo);
            insertCommand.Parameters.AddWithValue("@Nombre", invitado.Nombre);
            insertCommand.Parameters.AddWithValue("@Evento", invitado.Evento);
            insertCommand.Parameters.AddWithValue("@EventoLocal", invitado.EventoLocal);
            insertCommand.Parameters.AddWithValue("@Extra", invitado.Extra);
            insertCommand.Parameters.AddWithValue("@DNI", invitado.DNI);
            insertCommand.Parameters.AddWithValue("@Email", invitado.Email);
            insertCommand.Parameters.AddWithValue("@Oficina", invitado.Oficina);
            insertCommand.Parameters.AddWithValue("@Asistencia", invitado.Asistencia);
            insertCommand.Parameters.AddWithValue("@Notas", invitado.Notas);

            insertCommand.ExecuteNonQuery();
        }