Enviar correo si se cumple la condición

Tengo una base de datos que recibe valores de unos sensores (Ej. temperatura), esta base de datos recibe dicho datos cada 20 segundos, mi objetivo es enviar un correo electrónico cada que el valor del sensor de temperatura pase lo 26 °C, después de que sea enviado el programa debe se detenido por 10 minutos, ya que si no se detiene enviara el correo mientras el valor del sensor de temperatura se mantenga arriba de 26 °C. El correo es enviado correctamente pero los dos siguiente problemas:

1° El programa no se detiene, cuando empieza la ejecución del programa, se empiezan a enviar correos sin limite mientras el valor se mantiene arriba de 26°C.

2° Aunque el valor sea menor o mayor de 26 se envia.

Código para enviar el correo:

def func1(x):     dataSQL = []      sql_conn = MySQLdb.connect('localhost', 'root', 'pass', 'DB')     cursor = sql_conn.cursor()     cursor.execute("SELECT value FROM sensorParser where sensor='TC'")     rows = cursor.fetchall()     for row in rows:         dataSQL.append(list(row))         labels = ['value']         df = pd.DataFrame.from_records(dataSQL, columns=labels)         Y = df['value'].astype(float)           if ((Y) > 26.00).any():             email = 'correo@gmail.com'             password = 'pass'             send_to_email = 'correo2@gmail.com'             subject = 'ALERTA!!!!'             message = 'Los valores de las variables criticas han superado el limite'             file_location = 'C:\Users\User\Desktop\prograpython\image.jpg'              msg = MIMEMultipart()             msg['From'] = email             msg['To'] = send_to_email             msg['Subject'] = subject              msg.attach(MIMEText(message, 'plain'))              filename = os.path.basename(file_location)             attachment = open(file_location, "rb")             part = MIMEBase('application', 'octet-stream')             part.set_payload((attachment).read())             encoders.encode_base64(part)             part.add_header('Content-Disposition', "attachment; filename= %s" % filename)              msg.attach(part)             server = smtplib.SMTP('smtp.gmail.com', 587)            server.starttls()            server.login(email, password)            text = msg.as_string()            server.sendmail(email, send_to_email, text)            server.quit()     reactor.callLater(20, func1, "hello")  reactor.callLater(20, func1, "hello") reactor.run() 

Saludos.

Borrar registro datagrid, segun condicion, y con mensaje de confirmacion. vb .net SQLite

El tema es el siguiente, tengo por un lado un datagrid con clientes, y otro datagrid con pedidos (pedidos que pueden hacer estos clientes). Estos pedidos se completan con un formulario, que incluye un textbox para seña (por si deja alguna seña el cliente para realizar el trabajo), y a su vez un estado (pendiente, entregado)

Como podria hacer para que al momento de eliminar un registro del datagrid cliente, si tiene algun pedido con estado “pendiente”, no me deje eliminarlo. Mas alla de la confirmacion tipica de “desea eliminar : aceptar cancelar”, que me genere de la misma forma otra ventana que me avise que el pedido aun esta pendiente Mismo caso quisiera hacer para poder eliminar un pedido (ya sea por entregado o por que lo cancelo el cliente) que me advierta la situacion de seña, si es que existe seña, no me deje borrar el pedido, o me advierta que el pedido presenta seña

(imaginen el caso que vos señaste algo, vas a la semana y te borraron de la base, por ende tu seña y demas no existe mas, seria para que el programa evite una situacion asi)

Condición IF no valida variables

Comunidad, recurro a ustedes porque necesito ayuda con un PHP que tengo para validar e ingresar datos de inscripción a un curso,

$  usuario_id = mysqli_query($  con, "SELECT id_usuario, id_curso FROM inscripciones WHERE id_usuario='$  user_id' and id_curso <>'$  id_curso'");          $  id_usuario = 0;          $  curso_id = 0;           if($  usuario_id)           {               while ($  registro_usuario = mysqli_fetch_array($  usuario_id))                 {                    $  id_usuario = $  registro_usuario['id_usuario'];                    $  curso_id = $  registro_usuario['id_curso'];                  }           }

En esta parte del código capturo el id del usuario y el id del curso y los guardo en las variables $ id_usuario y $ curso_id respectivamente,

if (($  id_usuario==$  user_id) && ($  curso_id==$  id_curso)){           scriptAlertGo('El usuario ya esta inscrito en este curso','#');            }else{                 $  sql = mysqli_query($  con, "INSERT INTO `capacitaciones`.`inscripciones`                    (`id_usuario`, `id_curso`, `estamento`, `email`, `fecha_jornada_curso`, `fecha_inscripcion`, `tipo_jornada`, `mensaje`, `aprobado`, `asistencia`) VALUES                    ('$  user_id', '$  id_curso','$  estamento', '$  mail', '$  fechas_curso', NOW(), '$  tipo_jornada', '$  mensaje', 'pendiente', 'pendiente')");                          $  resta_vacantes = ("UPDATE `capacitaciones`.`cursos` set `vacantes` = `vacantes` - 1 where `cursos`.`id_curso` = '$  id_curso'");                  mysqli_query($  con, $  resta_vacantes);                   scriptAlertGo('El usuario quedo registrado en este curso','index.php');

Y en esta otra parte del código hago el if para validad si $ id_usuario es igual a la variable $ user_id, y lo mismo con $ curso_id (si es igual a $ id_curso), si cumplen esta condición, el sistema entrega una alerta de “El usuario ya esta inscrito en este curso”, y si no la cumplen, registra los datos en la tabla de inscripciones,

El problema esta en que, ahora como esta, registra de todas formas los datos a la tabla de inscripciones, independiente si cumplen la condicion if o no,

¿Donde puede estar el problema?, ¿Tengo mal escrita la condición IF?,

Muchas gracias por cualquier ayuda,

Colorear filas según condición WPF MVVM

estoy trabajando con WPF y MVVM y estoy teniendo un problema al querer usar un enum para determinar el color de las filas de un DataGrid.

Tengo un ViewModel que se ve más o menos así

public class DespieceViewModel : BaseViewModel {     private readonly ObservableCollection<ArticuloItemViewModel> mItemList;         public ICollectionView<ArticuloItemViewModel> Items { get; }      public DespieceViewModel()     {         //Acá iría la lógica con la que lleno mItemList         Items = new MyCollectionViewGeneric<ArticuloItemViewModel>(CollectionViewSource.GetDefaultView(mItemList));                 } } 

Aclaro que la implementación de ICollectionView<T> existe sólo para tener IntelliSense en XAML, no tiene ningún cambio con la original, de todos modos dejo el enlace a la clase en github por las dudas

El ViewModel ArticuloItemViewModel es sencillo, sería algo así

public class ArticuloItemViewModel : BaseViewModel {         public string CodigoPadre { get; set; }     public string CodigoDelfos { get; set; }     public EstadoArticuloDespiece Estado { get; set; }         } 

El enum EstadoArticuloDespiece sería el siguiente:

public enum EstadoArticuloDespiece {     Ok,     Inexistente,     Duplicado } 

Para este enum tengo un pequeño Converter que simplemente usa un switch y devuelve un SolidColorBrush según cual es el valor.

Teniendo en cuenta esto, estoy intentando Bindear el color de fila de un DataGrid basados en EstadoArticuloDespiece

Lo hago de la siguiente manera (basándome en esta respuesta):

<DataGrid ItemsSource="{Binding Items}" >     <DataGrid.RowStyle>         <Style TargetType="DataGridRow">             <Setter Property="Background">                 <Setter.Value>                     <SolidColorBrush Color="{Binding Path=Estado, Converter={StaticResource EstadoToBrushValueConverter}}"/>                 </Setter.Value>             </Setter>         </Style>     </DataGrid.RowStyle>     <DataGrid.Columns>         <DataGridTextColumn Header="Código Padre" Binding="{Binding Path=CodigoPadre}"></DataGridTextColumn>         <DataGridTextColumn Header="Código Delfos" Binding="{Binding Path=CodigoDelfos}"></DataGridTextColumn>     </DataGrid.Columns> </DataGrid> 

Las columnas con su información se muestran sin problemas, pero el color no cambia y ReSharper me marca error en Color="{Binding Path=Estado}" diciéndome:

Cannot resolve property Estado in data context of type..

¿En qué estoy fallando? ¿Cómo debe bindearse esta propiedad?

Aclaro que BaseViewModel implementa PropertyChanged para todas las propiedades.

¿Cómo adaptar URL amigable o una condición que muestra siempre la información de la pagina principal?

Tengo la siguiente regla .htaccess

<IfModule mod_rewrite.c> Options -Multiviews RewriteEngine On RewriteBase /web RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.+)$   index.php?url=$  1 [QSA,L] </IfModule> 

Que solo permite acceder al archivo existente es decir, si yo en el directorio web/ tengo los archivos demo.php, prueba.php, detail.php

Yo puedo acceder a cada información diferente que existe en esos archivos site.com/prueba.php pero si intento acceder aún archivo que no existe en el directorio me invento por ejemplo site.com/archivoquenoexiste.php este me va mostrar la información del archivo index.php y así sucesivamente siempre me va mostrar la información del archivo index.php cuando no existe el archivo que se intenta acceder.

Hasta ahí perfecto todo, pero mi problema es el siguiente necesito poder agregar las URL amigables a los productos, tengo la siguiente condición

RewriteRule ^ - [QSA,L] RewriteRule ^(.*[^/]$  ) $  1/ [R,QSA] RewriteCond %{REQUEST_URI} assets/(css|fonts|js|img)/(.+)$   RewriteRule ^(.*)$   assets/%1/%2 [L,R] RewriteRule ^([a-zA-Z0-9-/]+)$   detail.php?id=$  1 

Pero no me permite acceder al contenido de una URL amigable site.com/producto-con-url-amigable/ al intentarlo me muestra la información del archivo index.php

¿Cómo puedo adaptar las URL amigables a la condición .htaccess existente?