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 <bool> CambiarPassword(string contrasena) { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return false; } var idActual = Startup.GetAplicacionUsuariosManager().getUsuarioPortalActual(Request).Id; var usuario = _dbContext.Usuarios.Where(u => u.id == idActual).FirstOrDefault(); if (usuario == null) { return false; } else { usuario.password = AplicacionUsuariosManager.Hash(contrasena); _dbContext.SaveChanges(); } _dbContext.Database.Connection.Close(); return true; } })); }
public async Task <ActionResult> BannersLateralesPartial() { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } List <PaginaBannerCentralViewModel> lista = new List <PaginaBannerCentralViewModel>(); var banners = _dbContext.Banners.Where(b => b.tipo != (int)BannerTipo.Central && b.ruta != null && b.activo == true); foreach (var banner in banners) { lista.Add(new PaginaBannerCentralViewModel(banner.Id, banner.ruta, banner.link)); } _dbContext.Database.Connection.Close(); var model = new PaginaBannersLateralesViewModel(lista); return PartialView("BannersLateralesPartial", model); } })); }
public async Task <ICollection <PaginaSubcategoriaViewModel> > ObtenerSubcategorias(int?idCategoria) { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } var subcategorias = _dbContext.Subcategorias.Where(s => (s.activo == true) && (s.idCategoria == idCategoria)); List <PaginaSubcategoriaViewModel> listaSubcategorias = new List <PaginaSubcategoriaViewModel>(); listaSubcategorias.Add(new PaginaSubcategoriaViewModel("Elige una subcategoría")); foreach (var subcategoria in subcategorias) { listaSubcategorias.Add(new PaginaSubcategoriaViewModel(subcategoria.id, subcategoria.nombre)); } _dbContext.Database.Connection.Close(); return listaSubcategorias; } })); }
public async Task <ICollection <PaginaBeneficioViewModel> > ObtenerBeneficios() { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } List <PaginaBeneficioViewModel> lista = new List <PaginaBeneficioViewModel>(); var beneficios = _dbContext.Beneficios; foreach (var item in beneficios) { lista.Add(new PaginaBeneficioViewModel(item.id, item.descripcion, item.precio, item.tipo, item.numero)); } _dbContext.Database.Connection.Close(); return lista; } })); }
public async Task <ICollection <PaginaPaqueteViewModel> > ObtenerPaquetes() { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } List <PaginaPaqueteViewModel> lista = new List <PaginaPaqueteViewModel>(); var paquetes = _dbContext.Paquetes.Where(p => p.activo == true); foreach (var item in paquetes) { lista.Add(new PaginaPaqueteViewModel(item.id, item.nombre, item.meses, item.precio, item.descripcion, item.porcentajeAhorro)); } _dbContext.Database.Connection.Close(); return lista; } })); }
public async Task <LoginStatus> LoginPortalAsync(string email, string password) { HttpResponse response = HttpContext.Current.Response; return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { var usuario = _dbContext.Usuarios.Where(u => u.email == email).FirstOrDefault(); if (usuario == null) { return LoginStatus.Incorrecto; } if (!usuario.confirmaEmail) { string mailMensaje = "<p>Estimado/a {0} gracias por registrarte en mercampo.mx</p>" + "<p>Para completar tu registro y poder hacer login da click <a href=\'" + Startup.getBaseUrl() + "/Portal/ConfirmarMail?token=" + "{1}\'>AQUÍ</a></p>"; var result = Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, usuario.nombre + " " + usuario.apellidos, usuario.tokenEmail), "Registro Mercampo", usuario.email); return LoginStatus.ConfirmacionMail; } if (usuario.password.CompareTo(password) != 0) { return LoginStatus.Incorrecto; } usuario.tokenSesion = getToken(); setCookie("VendeAgroUser", usuario.tokenSesion, response); _dbContext.SaveChanges(); return LoginStatus.Exitoso; } })); }
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; } })); }
public async Task <ICollection <PagoViewModel> > ObtenerPagos(int id) { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } List <PagoViewModel> lista = new List <PagoViewModel>(); var pagos = _dbContext.Pagoes.Where(p => p.idUsuario == id); foreach (var item in pagos) { lista.Add(new PagoViewModel(item.id, item.total, item.fecha, item.digitosTarjeta, item.Referencia)); } _dbContext.Database.Connection.Close(); return lista; } })); }
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); } }
public async Task <ActionResult> ObtenerDestacadosFiltradosTexto(string query) { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } IQueryable <Anuncio> anuncios = null; if (query == null) { return null; } anuncios = _dbContext.Anuncios.Where(a => a.activo == true && a.estado == (int)EstadoAnuncio.Aprobado && ( a.Subcategoria.nombre.Contains(query) == true || a.Subcategoria.Categoria.nombre.Contains(query) == true || a.Estado1.nombre.Contains(query) == true || a.Estado1.Pai.nombre.Contains(query) == true || a.titulo.Contains(query) == true)).Take(20); _dbContext.Database.Connection.Close(); PortalAnunciosBusquedaViewModel model = new PortalAnunciosBusquedaViewModel(CreaAnuncios(anuncios.ToList()), query); return PartialView("_BusquedaPartial", model); } })); }
public async Task <LoginStatus> LoginPortalAsync(string email, string password) { HttpResponse response = HttpContext.Current.Response; return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { var usuario = _dbContext.Usuarios.Where(u => u.email == email).FirstOrDefault(); if (usuario == null) { return LoginStatus.Incorrecto; } if (!usuario.confirmaEmail) { //TO DO: Reenviar token return LoginStatus.ConfirmacionMail; } if (usuario.password.CompareTo(password) != 0) { return LoginStatus.Incorrecto; } usuario.tokenSesion = getToken(); setCookie("VendeAgroUser", usuario.tokenSesion, response); _dbContext.SaveChanges(); return LoginStatus.Exitoso; } })); }
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 <ActionResult> BannerCentralPartial() { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } var banner = _dbContext.Banners.Where(b => b.tipo == (int)BannerTipo.Central).FirstOrDefault(); if (banner.activo == false) { return PartialView("BannerCentralPartial", null); } var model = new PaginaBannerCentralViewModel(banner.Id, banner.ruta, banner.link); _dbContext.Database.Connection.Close(); return PartialView("BannerCentralPartial", model); } })); }
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; } })); }
public async Task <ICollection <PaginaEstadoViewModel> > ObtenerEstados(int?idPais) { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } List <PaginaEstadoViewModel> lista = new List <PaginaEstadoViewModel>(); lista.Add(new PaginaEstadoViewModel("Elige un estado")); var estados = _dbContext.Estadoes.Where(e => e.idPais == idPais); foreach (var item in estados) { lista.Add(new PaginaEstadoViewModel(item.id, item.nombre)); } _dbContext.Database.Connection.Close(); return lista; } })); }
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 async Task <ICollection <PaginaPaisViewModel> > ObtenerPaises() { return(await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } List <PaginaPaisViewModel> lista = new List <PaginaPaisViewModel>(); lista.Add(new PaginaPaisViewModel("Elige un país")); var paises = _dbContext.Pais; foreach (var item in paises) { lista.Add(new PaginaPaisViewModel(item.id, item.nombre)); } _dbContext.Database.Connection.Close(); return lista; } })); }
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 async Task <ActionResult> AnuncioDetalles(int?id, ConsultarDetalles consulta, string query) { if (id == null) { return(HttpNotFound("Parámetro inválido se espera un id de un anuncio")); } HttpNotFoundResult result = null; PortalDetallesAnuncioViewModel model = null; await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { result = HttpNotFound("Error en la base de datos"); } else { var anuncio = _dbContext.Anuncios.Where(a => a.id == id).FirstOrDefault(); if (anuncio == null) { result = HttpNotFound("No se encontro el anuncio con el id solicitado"); } else { anuncio.clicks += 1; _dbContext.SaveChanges(); var anuncioViewModel = new PortalAnuncioViewModel(anuncio.id, anuncio.titulo, anuncio.precio, anuncio.Subcategoria.Categoria.nombre, anuncio.Subcategoria.nombre, anuncio.Estado1.nombre, anuncio.Fotos_Anuncio.Where(f => f.principal == true).FirstOrDefault()?.ruta); List <PaginaFotoViewModel> fotos = new List <PaginaFotoViewModel>(); var rutaVideo = anuncio.Videos_Anuncio.Where(v => v.idAnuncio == id).FirstOrDefault()?.ruta; string nombre = anuncio.Usuario.nombre + " " + anuncio.Usuario.apellidos; var owner = new PaginaOwnerAnuncioViewModel(anuncio.Usuario.id, nombre, anuncio.Usuario.telefono, anuncio.Usuario.email); foreach (var foto in anuncio.Fotos_Anuncio) { fotos.Add(new PaginaFotoViewModel(foto.principal, foto.ruta)); } model = new PortalDetallesAnuncioViewModel(anuncioViewModel, anuncio.descripcion, fotos, rutaVideo, owner, anuncio.clicks, consulta, query); } } } }); if (result != null) { return(result); } return(View(model)); }
public async Task <ActionResult> DetallesPago(int?id, double total) { if (Startup.GetAplicacionUsuariosManager().VerificarPortalSesion() == LoginStatus.Incorrecto) { return(RedirectToAction("Index", "Home")); } if (id == null) { return(HttpNotFound("Parámetro inválido se espera un id de un pago")); } HttpNotFoundResult result = null; DetallesPagoViewModel model = null; await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { result = HttpNotFound("Error en la base de datos"); } else { var conceptos = _dbContext.Pago_Concepto.Where(p => p.idPago == id); if (conceptos == null) { result = HttpNotFound("No se encontro el pago con el id solicitado"); } else { List <PagoConceptoViewModel> listaConceptos = new List <PagoConceptoViewModel>(); foreach (var concepto in conceptos) { if (concepto.descripcionBeneficio == null) { listaConceptos.Add(new PagoConceptoViewModel(concepto.tipo, concepto.nombrePaquete, concepto.mesesPaquete, concepto.precioPaquete)); continue; } listaConceptos.Add(new PagoConceptoViewModel(concepto.tipo, concepto.nombrePaquete, concepto.mesesPaquete, concepto.precioPaquete, concepto.descripcionBeneficio, concepto.precioBeneficio)); } model = new DetallesPagoViewModel(total, listaConceptos); } } } }); if (result != null) { return(result); } return(View(model)); }
public static void OpenDatabaseConnection(MercampoEntities _dbContext) { try { _dbContext.Database.Connection.Open(); } catch (Exception e) { return; } }
public ActionResult Index(int?abrirLogin) { using (MercampoEntities _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return(View()); } var ultimo = _dbContext.Accesos.Where(a => a.activo == true).FirstOrDefault(); var necesitaActualizarAnuncios = false; if (ultimo == null) { necesitaActualizarAnuncios = true; } else { var result = ultimo.Fecha.Subtract(DateTime.UtcNow); if (result.Days != 0) { necesitaActualizarAnuncios = true; ultimo.activo = false; _dbContext.SaveChanges(); } } if (necesitaActualizarAnuncios) { _dbContext.Accesos.Add(new Acceso { Fecha = DateTime.UtcNow, activo = true }); _dbContext.SaveChanges(); var anunciosQueDebeDesactivar = _dbContext.Anuncios.Where(a => a.fecha_fin != null && a.activo == true && (int)EstadoAnuncio.Aprobado == a.estado); foreach (var anuncio in anunciosQueDebeDesactivar) { if (anuncio.fecha_fin.Value.Subtract(DateTime.UtcNow).Days < 0) { var a = _dbContext.Anuncios.Where(an => an.id == anuncio.id).FirstOrDefault(); a.activo = false; a.estado = (int)EstadoAnuncio.Vencido; } } _dbContext.SaveChanges(); } return(View()); } }
public async Task <List <Anuncio> > ObtenerAnunciosDestacados(MercampoEntities _dbContext) { return(await Task.Run(() => { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } return _dbContext.Anuncios.Where(a => a.activo == true && a.estado == (int)EstadoAnuncio.Aprobado).OrderByDescending(a => a.clicks).ToList(); })); }
public async Task <ActionResult> GaleriaAnuncio(int?id) { if (id == null) { return(HttpNotFound("Parámetro inválido se espera un id de un anuncio")); } HttpNotFoundResult result = null; GaleriaAnuncioViewModel model = null; await Task.Run(() => { using (var _dbContext = new MercampoEntities()) { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { result = HttpNotFound("Error en la base de datos"); } else { var anuncio = _dbContext.Anuncios.Where(a => a.id == id).FirstOrDefault(); if (anuncio == null) { result = HttpNotFound("No se encontro el anuncio con el id solicitado"); } else { anuncio.clicks += 1; _dbContext.SaveChanges(); List <PaginaFotoViewModel> fotos = new List <PaginaFotoViewModel>(); foreach (var foto in anuncio.Fotos_Anuncio) { fotos.Add(new PaginaFotoViewModel(foto.principal, foto.ruta)); } model = new GaleriaAnuncioViewModel(fotos); } } } }); if (result != null) { return(result); } return(PartialView("GaleriaAnuncio", model)); }
public async Task <ActionResult> OfertasDelDiaPartial(int?index) { if (!index.HasValue) { index = 0; } using (var _dbContext = new MercampoEntities()) { var anuncios = await ObtenerOfertasDelDia(_dbContext); PortalAnunciosViewModel model = new PortalAnunciosViewModel(ObtenerSiguientesAnuncios(index.Value, anuncios), "", "", "", anuncios.Count, index.Value); return(PartialView("_OfertasPartial", model)); } }
public async Task <RegistroStatus> RegistroUsuarioAsync(Models.Portal.RegistroViewModel model) { HttpResponse response = HttpContext.Current.Response; return(await Task.Run(async() => { using (var _dbContext = new MercampoEntities()) { var usuario = _dbContext.Usuarios.Where(u => u.email.Equals(model.Email, StringComparison.InvariantCulture)).FirstOrDefault(); if (usuario != null) { return RegistroStatus.MailOcupado; } usuario = _dbContext.Usuarios.Where(u => u.telefono.Equals(model.Celular, StringComparison.InvariantCulture)).FirstOrDefault(); if (usuario != null) { return RegistroStatus.TelefonoOcupado; } var tokenId = CrearClienteConektaId(model.Nombre, model.Apellidos, model.Email, model.Celular); string tokenSesion = getToken(); string tokenEmail = getToken(); _dbContext.Usuarios.Add(new Usuario { nombre = model.Nombre, apellidos = model.Apellidos, telefono = model.Celular, password = Hash(model.Password), email = model.Email, confirmaEmail = true, tokenSesion = tokenSesion, tokenEmail = tokenEmail, idConekta = tokenId }); _dbContext.SaveChanges(); setCookie("VendeAgroUser", tokenSesion, response); var usuarioRegistrado = _dbContext.Usuarios.Where(u => u.email == model.Email).FirstOrDefault(); string mailMensaje = "<p>Estimado {0} gracias por registrarte en mercampo.mx</p>" + "<p>Para completar tu registro y poder hacer login da click <a href=\'" + Startup.getBaseUrl() + "/Portal/ConfirmarMail?token=" + "{1}\'>AQUÍ</a></p>"; var result = await Startup.GetServicioEmail().SendAsync(string.Format(mailMensaje, model.Nombre + " " + model.Apellidos, tokenEmail), "Registro Mercampo", model.Email); return RegistroStatus.Exitoso; } })); }
public async Task <List <Anuncio> > ObtenerOfertasDelDia(MercampoEntities _dbContext) { return(await Task.Run(() => { Startup.OpenDatabaseConnection(_dbContext); if (_dbContext.Database.Connection.State != ConnectionState.Open) { return null; } var anuncios = _dbContext.Anuncios.Where(a => a.activo == true && a.estado == (int)EstadoAnuncio.Aprobado && a.Anuncio_Beneficio.Where(ab => ab.idAnuncio == a.id && ab.Beneficio.tipo == (int)BeneficiosExtraTipo.OfertaDelDia).FirstOrDefault() != null); return Shuffle(anuncios.ToList()); })); }