示例#1
0
        public IList <Asistente> GetAllAsistentes()
        {
            IList <Asistente> asistentes = new List <Asistente>();

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

                SqliteCommand selectCommand = new SqliteCommand("SELECT a.Id, a.Entrada,i.Codigo, i.Nombre, i.Evento, i.EventoLocal, i.Extra, i.DNI, i.Email, i.Oficina, i.Asistencia, i.Id, i.Notas from Asistencia a inner join Invitados i on i.Id = a.InvitadoId ", db);

                SqliteDataReader query = selectCommand.ExecuteReader();

                while (query.Read())
                {
                    Asistente asistente = new Asistente
                    {
                        Id         = query.GetInt32(0),
                        InvitadoId = query.GetInt32(11),
                        Entrada    = query.GetDateTime(1),
                        Evento     = query.GetString(5),
                        Nombre     = query.GetString(3),
                        Email      = query.GetString(8),
                        DNI        = query.GetString(7),
                        Notas      = query.GetString(12)
                    };
                    asistentes.Add(asistente);
                }
                db.Close();
            }
            return(asistentes);
        }
示例#2
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);
        }
示例#3
0
        public Asistente GetAsistenteByIdInvitado(int id)
        {
            Asistente asistente = null;

            using (SqliteConnection db = CreateConnection())
            {
                db.Open();
                SqliteCommand selectCommand = new SqliteCommand("SELECT a.Id, a.Entrada,i.Codigo, i.Nombre, i.Evento, i.EventoLocal, i.Extra, i.DNI, i.Email, i.Oficina, i.Asistencia, i.Id from Asistencia a inner join Invitados i on i.Id = a.InvitadoId where InvitadoId=@Id", db);
                selectCommand.Parameters.AddWithValue("@Id", id);

                SqliteDataReader query = selectCommand.ExecuteReader();

                while (query.Read())
                {
                    asistente = new Asistente
                    {
                        Id         = query.GetInt32(0),
                        InvitadoId = query.GetInt32(11),
                        Entrada    = query.GetDateTime(1),
                        Evento     = query.GetString(5),
                        Nombre     = query.GetString(3),
                        Email      = query.GetString(8),
                        DNI        = query.GetString(7)
                    };
                }
                db.Close();
            }
            return(asistente);
        }
示例#4
0
        internal void AceptarInvitado(Invitado invitado)
        {
            Asistente asistente = new Asistente {
                InvitadoId = invitado.Id, QRLeido = invitado.QRLeido, Entrada = DateTime.Now
            };

            dataService.InsertAsistente(asistente);
        }
示例#5
0
        private Asistente asistenteSeleccionado()
        {
            Asistente asistente = null;

            if (gridAsistentes?.SelectedRows.Count > 0)
            {
                asistente = (Asistente)gridAsistentes.SelectedRows[0].DataBoundItem;
            }
            return(asistente);
        }
示例#6
0
        private void gridInvitados_RowEnter(object sender, DataGridViewCellEventArgs e)
        {
            Asistente asistente = asistenteSeleccionado();

            if (asistente == null)
            {
                contextMenuGrid.Items[0].Enabled = false;
            }
            else
            {
                contextMenuGrid.Items[0].Enabled = true;
            }
        }
示例#7
0
        private void retirarAsistencia_Click(object sender, EventArgs e)
        {
            Asistente asistente = asistenteSeleccionado();

            if (asistente != null)
            {
                string       mensaje      = $"El invitado {asistente.Nombre} con DNI {asistente.DNI}, ¿se cancela la asistencia?";
                DialogResult dialogResult = MessageBox.Show(mensaje, "Confirmación de borrado de asistencia manual", MessageBoxButtons.YesNo);
                if (dialogResult == DialogResult.Yes)
                {
                    borrarAsistente(asistente);
                }
            }
        }
示例#8
0
        public void InsertAsistente(Asistente asistente)
        {
            using (SqliteConnection db = CreateConnection())
            {
                db.Open();

                SqliteCommand insertCommand = new SqliteCommand();
                insertCommand.Connection = db;

                // Use parameterized query to prevent SQL injection attacks
                insertCommand.CommandText = "INSERT INTO Asistencia VALUES (null,@QRLeido,@InvitadoId,@Entrada);";
                insertCommand.Parameters.AddWithValue("@QRLeido", asistente.QRLeido);
                insertCommand.Parameters.AddWithValue("@InvitadoId", asistente.InvitadoId);
                insertCommand.Parameters.AddWithValue("@Entrada", asistente.Entrada);
                insertCommand.ExecuteNonQuery();
                db.Close();
            }
        }
示例#9
0
 internal void BorrarAsistente(Asistente asistente)
 {
     dataService.BorrarAsistente(asistente.Id);
 }
示例#10
0
 private bool verificarAsistente(Asistente asistente)
 {
     return(asistente == null);
 }
示例#11
0
 private void borrarAsistente(Asistente asistente)
 {
     proceso.BorrarAsistente(asistente);
     FillGrid();
 }