Exemplo n.º 1
0
        /// <summary>
        /// Inserta una Persona a la base de datos
        /// </summary>
        /// <param name="person"></param>
        public static void Insertar(Person person)
        {
            OperationsLogs.WriteLogsDebug("PersonaDal", "Insertar", string.Format("{0} Info: {1}",
                                                                                  DateTime.Now.ToString(), "Empezando a ejecutar el metodo acceso a datos para crear un persona"));

            SqlCommand command = null;

            //Consulta para insertar personas
            string queryString = @"INSERT INTO Persona(idPersona, cedulaDeIdentidad, nombres, primerApellido, segundoApellido, correoElectronico, direccion, telefono, eliminado) 
                                   VALUES(@idPersona, @cedulaDeIdentidad, @nombres, @primerApellido, @segundoApellido, @correoElectronico, @direccion, @telefono, @eliminado)";
            //Declaro e inicio la conexion
            SqlConnection conexion = OperationsSql.ObtenerConexion();

            //Declaro la transaccion
            SqlTransaction transaccion = null;

            try
            {
                //Abro la conexion a la base de datos
                conexion.Open();

                //Inicio la transaccion
                transaccion = conexion.BeginTransaction();

                command = OperationsSql.CreateBasicCommandWithTransaction(queryString, transaccion, conexion);
                if (person.User != null)
                {
                    UserDal.InsertarTransaccion(person.User, transaccion, conexion);
                    command.Parameters.AddWithValue("@idUsuario", person.User.IdUser);
                }
                else
                {
                    command.Parameters.AddWithValue("@idUsuario", null);
                }

                command.Parameters.AddWithValue("@idPersona", person.IdPerson);
                command.Parameters.AddWithValue("@cedulaDeIdentidad", person.IdentityCard);
                command.Parameters.AddWithValue("@nombres", person.Names);
                command.Parameters.AddWithValue("@primerApellido", person.FirstSurname);
                command.Parameters.AddWithValue("@segundoApellido", person.SecondSurname);
                command.Parameters.AddWithValue("@correoElectronico", person.Email);
                command.Parameters.AddWithValue("@direccion", person.Address);
                command.Parameters.AddWithValue("@telefono", person.Phone);
                command.Parameters.AddWithValue("@eliminado", 1);

                OperationsSql.ExecuteBasicCommandWithTransaction(command);

                transaccion.Commit();
            }
            catch (SqlException ex)
            {
                OperationsLogs.WriteLogsRelease("PersonaDal", "Insertar", string.Format("{0} Error: {1}", DateTime.Now.ToString(), DateTime.Now.ToString(), ex.Message));
                throw ex;
            }
            catch (Exception ex)
            {
                OperationsLogs.WriteLogsRelease("PersonaDal", "Insertar", string.Format("{0} Error: {1}", DateTime.Now.ToString(), DateTime.Now.ToString(), ex.Message));
                throw ex;
            }
            finally
            {
                conexion.Close();
            }
            OperationsLogs.WriteLogsDebug("PersonaDal", "Insertar", string.Format("{0} Info: {1}",
                                                                                  DateTime.Now.ToString(), DateTime.Now.ToString(),
                                                                                  "Termino de ejecutar  el metodo acceso a datos para insertar persona"));
        }