public async Task <OlvidoContrasenaStatus> OlvidoContrasenaPortalAsync(string email) { return(await Task.Run(async() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return OlvidoContrasenaStatus.Error; } var usuario = _dbContext.Usuarios.Where(u => u.email == email).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return OlvidoContrasenaStatus.MailInexistente; } string mailMensaje = "<p>Estimado {0},</p>" + "<p>Para cambiar tu contraseña da click <a href=\'" + Startup.getBaseUrl() + "/Portal/CambiarContrasena?token=" + "{1}\'>AQUÍ</a></p>"; var result = await Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, usuario.nombre, usuario.password), "Recuperar Contraseña Mercampo", usuario.email); _dbContext.Database.Connection.Close(); return OlvidoContrasenaStatus.MailEnviado; } })); }
private bool AgregarAnuncios(CarritoDeCompra carrito, int idUsuario) { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return(false); } var paquetes = carrito.Paquetes; foreach (var paquete in paquetes) { if (paquete.EsRenovacion()) { Anuncio anuncio = _dbContext.Anuncios.Where(a => a.id == paquete.IdAnuncio).FirstOrDefault(); anuncio.fecha_fin = anuncio.fecha_fin.Value.AddMonths(paquete.Meses); anuncio.idPaquete = paquete.Id; anuncio.estado = (int)EstadoAnuncio.Aprobado; anuncio.activo = true; _dbContext.Anuncio_Beneficio.RemoveRange(_dbContext.Anuncio_Beneficio.Where(b => b.idAnuncio == anuncio.id)); _dbContext.SaveChanges(); var beneficios = paquete.Beneficios; foreach (var beneficio in beneficios) { _dbContext.Anuncio_Beneficio.Add(new Anuncio_Beneficio { idAnuncio = anuncio.id, idBeneficio = beneficio.Id }); _dbContext.SaveChanges(); } } else { var nuevoAnuncio = _dbContext.Anuncios.Add(new Anuncio { activo = false, idUsuario = idUsuario, estado = (int)EstadoAnuncio.Vacio, idPaquete = paquete.Id }); _dbContext.SaveChanges(); var beneficios = paquete.Beneficios; foreach (var beneficio in beneficios) { _dbContext.Anuncio_Beneficio.Add(new Anuncio_Beneficio { idAnuncio = nuevoAnuncio.id, idBeneficio = beneficio.Id }); _dbContext.SaveChanges(); } } } _dbContext.Database.Connection.Close(); return(true); } }
private PortalUsuario getUsuarioPortalActual(HttpCookieCollection Cookies) { if (Cookies["VendeAgroUser"] != null) { var token = Cookies["VendeAgroUser"]["token"]; if (token != null) { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return(null); } var usuario = _dbContext.Usuarios.Where(u => u.tokenSesion == token).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return(null); } var resultado = new PortalUsuario(usuario.id, usuario.email, usuario.nombre, usuario.apellidos, usuario.telefono, usuario.idConekta); _dbContext.Database.Connection.Close(); return(resultado); } } } return(null); }
public void LogoutPortal() { HttpRequest request = HttpContext.Current.Request; if (request.Cookies["VendeAgroUser"] != null) { var token = request.Cookies["VendeAgroUser"]["token"]; if (token != null) { borrarCookie(HttpContext.Current.Response, "VendeAgroUser"); using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return; } var usuario = _dbContext.Usuarios.Where(u => u.tokenSesion == token).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return; } usuario.tokenSesion = ""; _dbContext.SaveChanges(); _dbContext.Database.Connection.Close(); } } } }
public async Task <AproboAnuncioStatus> AproboAnuncioAdminAsync(string email, int idAnuncio, string tituloAnuncio) { return(await Task.Run(async() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return AproboAnuncioStatus.Error; } var usuario = _dbContext.Usuarios.Where(u => u.email == email).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return AproboAnuncioStatus.MailInexistente; } string mailMensaje = "<p>Estimado {0},</p>" + "<p>Tu anuncio " + tituloAnuncio + " ha sido aprobado y publicado. Para consultarlo, da click <a href=\'" + Startup.getBaseUrl() + "/Home/AnuncioDetalles?id=" + idAnuncio + "{1}\'>AQUÍ</a></p>"; var result = await Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, usuario.nombre, usuario.password), "Tu Anuncio ha sido Aprobado en Mercampo", usuario.email); _dbContext.Database.Connection.Close(); return AproboAnuncioStatus.MailEnviado; } })); }
public async Task <CambiarContrasenaStatus> CambiarContrasenaAdminAsync(string password, string token) { return(await Task.Run(() => { if (token == null) { return CambiarContrasenaStatus.TokenInvalido; } using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return CambiarContrasenaStatus.Error; } var usuario = _dbContext.Usuario_Administrador.Where(u => u.password == token).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return CambiarContrasenaStatus.TokenInvalido; } usuario.password = password; _dbContext.SaveChanges(); _dbContext.Database.Connection.Close(); return CambiarContrasenaStatus.ContrasenaActualizada; } })); }
internal async Task <ConfirmacionMailStatus> ConfirmarMailPortalAsync(string token) { return(await Task <ConfirmacionMailStatus> .Run(() => { using (MercampoEntities _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return ConfirmacionMailStatus.Error; } var usuario = _dbContext.Usuarios.Where(u => u.tokenEmail == token).FirstOrDefault(); if (usuario == null) { return ConfirmacionMailStatus.TokenInvalido; } usuario.confirmaEmail = true; usuario.tokenEmail = getToken(); _dbContext.SaveChanges(); } return ConfirmacionMailStatus.MailConfirmado; })); }
public async Task <CambiarContrasenaStatus> VerificarTokenCambiarContrasenaPortalAsync(string token) { return(await Task.Run(() => { if (token == null) { return CambiarContrasenaStatus.TokenInvalido; } using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return CambiarContrasenaStatus.Error; } var usuario = _dbContext.Usuarios.Where(u => u.password == token).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return CambiarContrasenaStatus.TokenInvalido; } _dbContext.Database.Connection.Close(); return CambiarContrasenaStatus.UrlValido; } })); }
private bool AgregarPago(int idUsuario, Usuario_Tarjeta tarjeta, double total, string referencia, CarritoDeCompra carrito) { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return(false); } Pago newPago = _dbContext.Pagoes.Add(new Pago { idUsuario = idUsuario, tipoTarjeta = tarjeta.tipoTarjeta, digitosTarjeta = tarjeta.digitosTarjeta, total = total, fecha = DateTime.Now, Referencia = referencia }); _dbContext.SaveChanges(); foreach (var paquete in carrito.Paquetes) { if (paquete.Beneficios.Count() < 1) { Pago_Concepto pagoConcepto = _dbContext.Pago_Concepto.Add(new Pago_Concepto { idPago = newPago.id, tipo = paquete.EsRenovacion(), nombrePaquete = paquete.Nombre, mesesPaquete = paquete.Meses, precioPaquete = paquete.Precio, descripcionPaquete = string.Empty }); continue; } foreach (var beneficio in paquete.Beneficios) { Pago_Concepto pagoConcepto = _dbContext.Pago_Concepto.Add(new Pago_Concepto { idPago = newPago.id, tipo = paquete.EsRenovacion(), nombrePaquete = paquete.Nombre, mesesPaquete = paquete.Meses, precioPaquete = paquete.Precio, descripcionPaquete = string.Empty, descripcionBeneficio = beneficio.Descripcion, precioBeneficio = beneficio.Precio, tipoBeneficio = beneficio.Tipo }); } } _dbContext.SaveChanges(); _dbContext.Database.Connection.Close(); return(true); } }
public string AgregarTarjetaAsync(int id, string tokenTarjeta, string sessionId) { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return(new ResultadoAgregarTarjeta(false, "Error en el servidor, vuelva a intentarlo de nuevo en unos minutos").AsJson()); } var usuario = _dbContext.Usuarios.Where(u => u.id == id).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return(new ResultadoAgregarTarjeta(false, "Error, el id del usuario al que se le quiere agregar la tarjeta, no existe").AsJson()); } Card request = new Card(); request.TokenId = tokenTarjeta; request.DeviceSessionId = sessionId; try { request = Startup.OpenPayLib.CardService.Create(usuario.idConekta, request); } catch (OpenpayException e) { _dbContext.Database.Connection.Close(); return(new ResultadoAgregarTarjeta(false, TarjetaResultadoHelpers.ObtenerMensajeError((OpenPayErrorCodes)e.ErrorCode)).AsJson()); } string last4 = request.CardNumber.Substring(request.CardNumber.Length - 4, 4); _dbContext.Usuario_Tarjeta.Add(new Usuario_Tarjeta { tipoTarjeta = TarjetaResultadoHelpers.GetTipoTarjeta(request.Brand), digitosTarjeta = last4, tokenTarjeta = request.Id, idUsuario = id, activo = true }); _dbContext.SaveChanges(); return(new ResultadoAgregarTarjeta(true, "La tarjeta se agregó correctamente.").AsJson()); } }
private AdministradorUsuario getUsuarioAdministradorActual(HttpCookieCollection Cookies) { if (Cookies["AdminVendeAgro"] != null) { var token = Cookies["AdminVendeAgro"]["token"]; if (token != null) { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != System.Data.ConnectionState.Open) { return(null); } var usuario = _dbContext.Usuario_Administrador.Where(u => u.tokenSesion == token).FirstOrDefault(); if (usuario == null) { _dbContext.Database.Connection.Close(); return(null); } if (!usuario.activo) { _dbContext.Database.Connection.Close(); return(null); } var resultado = new AdministradorUsuario(usuario.id, usuario.email, usuario.nombre); _dbContext.Database.Connection.Close(); return(resultado); } } } return(null); }
public bool RealizarCargoTarjeta(int id, string tarjetaToken, string sessionId, CarritoDeCompra carrito, out string resultadoJson) { if (carrito == null || carrito.TotalCarrito <= 0.0) { resultadoJson = new ResultadoCargo(false, ResultadoCargoTarjeta.ErrorInterno, mensaje: "El carrito de compras esta vacio").AsJson(); return(false); } HttpRequest request = HttpContext.Current.Request; var usuario = getUsuarioPortalActual(request); if (usuario.Id != id) { resultadoJson = new ResultadoCargo(false, ResultadoCargoTarjeta.ErrorInterno, mensaje: "Error favor de hacer login").AsJson(); return(false); } using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { resultadoJson = new ResultadoCargo(false, ResultadoCargoTarjeta.ErrorInterno, mensaje: "Error en el servidor, vuelva a intentarlo de nuevo en unos minutos").AsJson(); return(false); } try { Customer cliente = Startup.OpenPayLib.CustomerService.Get(usuario.IdConekta); if (cliente == null) { resultadoJson = new ResultadoCargo(false, ResultadoCargoTarjeta.ErrorInterno, mensaje: "Error en el servidor, vuelva a intentarlo de nuevo en unos minutos").AsJson(); return(false); } ChargeRequest chargeRequest = new ChargeRequest(); chargeRequest.Method = "card"; chargeRequest.SourceId = tarjetaToken; chargeRequest.Amount = new decimal(carrito.TotalCarrito); chargeRequest.Currency = "MXN"; chargeRequest.Description = "Servicio de anuncios Mercampo.mx"; chargeRequest.OrderId = getToken(); chargeRequest.DeviceSessionId = sessionId; chargeRequest.SendEmail = true; Charge cargo = Startup.OpenPayLib.ChargeService.Create(usuario.IdConekta, chargeRequest); ResultadoCargo resultado = new ResultadoCargo(true, ResultadoCargoTarjeta.Aprobado, cargo.OrderId, cargo.Authorization, "El cargo ha sido exitoso", (double)cargo.Amount); AgregarAnuncios(carrito, usuario.Id); resultadoJson = resultado.AsJson(); return(true); } catch (OpenpayException e) { ResultadoCargoTarjeta res = ResultadoCargoTarjeta.ErrorInterno; if ((int)ResultadoCargoTarjeta.Rechazado == e.ErrorCode) { res = ResultadoCargoTarjeta.Rechazado; } resultadoJson = new ResultadoCargo(false, res, mensaje: TarjetaResultadoHelpers.ObtenerMensajeError((OpenPayErrorCodes)e.ErrorCode)).AsJson(); return(false); } } }