public void correoCompraDirecta(String tenant, Subasta sub) { List <Correo> lista = new List <Correo>(); try { log.Info("Entro correoCompraDirecta "); lista = _dal.correoCompraDirecta(tenant, sub); IEnvioCorreo _envio = new EnvioCorreo(); _envio.enviarCorreos(lista); } catch (Exception e) { log.Error("Error", e); throw e; } }
public void correoOferta(String tenant, Oferta oferta) { List <Correo> lista = new List <Correo>(); try { System.Diagnostics.Debug.WriteLine("Entro correoOferta "); lista = _dal.correoNuevaOferta(tenant, oferta); IEnvioCorreo _envio = new EnvioCorreo(); _envio.enviarCorreos(lista); System.Diagnostics.Debug.WriteLine("Salgo correoOferta "); } catch (Exception) { throw; } }
// TAREA FINALIZAR SUBASTAS public void FinalizarSubastasTarea(String tenant) { log.Info("Entro en finalizar SUBASTA POR TAREA"); try { List <Subasta> subastas = ObtenerSubastasActivas(tenant); IBLOferta ioferta = new BLOferta(); _dal = new DALSubastaEF(); if (subastas.Count == 0) { System.Diagnostics.Debug.WriteLine("No hay subastas activas"); } if (subastas.Count > 0) { System.Diagnostics.Debug.WriteLine("Cantidad Subastas = " + subastas.Count.ToString()); } foreach (var item in subastas) { log.Info("Hay subasta activa Id =" + item.id.ToString()); List <Correo> lista = new List <Correo>(); DateTime ahora = DateTime.Now; DateTime fecha_subasta = (DateTime)item.fecha_Cierre; int resultado = DateTime.Compare(fecha_subasta, ahora); log.Info("Paso fechas y resultado = " + resultado.ToString()); log.Info("Estado subasta = " + item.estado.ToString()); String estado = item.estado.ToString(); if (resultado <= 0 && estado.Equals("Activa")) { List <Oferta> ofertas = _dal.ObtenerOfertas(item.id); log.Info("Cantidad ofertas = " + ofertas.Count.ToString()); if (ofertas.Count > 0) { var ofertasOrdenadas = ofertas.OrderByDescending(o => o.fecha); //var oferta = ofertasOrdenadas.First(); IBLUsuario blUsu = new BLUsuario(); Usuario ganador = null; Usuario vendedor = null; foreach (var itemOfertas in ofertasOrdenadas) { if (ganador == null) { var usuario = blUsu.GetUsuario(tenant, itemOfertas.id_Usuario); if (usuario.billetera > item.valor_Actual) { ganador = usuario; ganador.billetera = ganador.billetera - itemOfertas.Monto;//le descuento plata al comprador blUsu.ActualizarUsuario(tenant, ganador); item.valor_Actual = itemOfertas.Monto; item.id_Comprador = ganador.id; vendedor = blUsu.GetUsuario(tenant, item.id_Vendedor);//le asigno plata al vendedor vendedor.billetera = vendedor.billetera + itemOfertas.Monto; blUsu.ActualizarUsuario(tenant, vendedor); } } } item.finalizado = TipoFinalizacion.Subasta; item.estado = EstadoTransaccion.Cerrada; _dal.ActualizarSubasta(tenant, item); try { lista = _dal.correoCompraSubasta(tenant, (Subasta)item); IEnvioCorreo _envio = new EnvioCorreo(); _envio.enviarCorreos(lista); } catch (Exception e) { log.Error("Error", e); throw e; } } else { log.Info("Sin ofertas = " + ofertas.Count.ToString()); try { item.estado = EstadoTransaccion.Cerrada; _dal.ActualizarSubasta(tenant, (Subasta)item); log.Info("Actualizo Subasta sin ofertas " + item.titulo); lista = new List <Correo>(); Correo correo = _dal.correoSinOfertas(tenant, (Subasta)item); log.Info("Correo " + correo.mensaje); lista.Add(_dal.correoSinOfertas(tenant, (Subasta)item)); IEnvioCorreo _envio = new EnvioCorreo(); _envio.enviarCorreos(lista); log.Info("Salgo Finalizar Compra directa sin oferta "); } catch (Exception e) { log.Error("Error", e); throw e; } } } } log.Info("Salgo de finalizar SUBASTA POR TAREA"); } catch (Exception e) { log.Error("Error", e); throw e; } }