コード例 #1
0
ファイル: Usuario.cs プロジェクト: jflores1441/PortafolioMVC
        public ResponseModel Acceder(string Email, string Password)
        {
            var rm = new ResponseModel();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    Password = HashHelper.MD5(Password);
                    //Validar que el usuario y la contraseña se hayan escrito correctamente
                    var usuario = ctx.Usuario.Where(x => x.Email == Email)
                                  .Where(x => x.Password == Password)
                                  .SingleOrDefault();

                    if (usuario != null)
                    {
                        SessionHelper.AddUserToSession(usuario.id.ToString());
                        rm.SetResponse(true);
                    }
                    else
                    {
                        rm.SetResponse(false, "Usuario o contraseña incorrecta");
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(rm);
        }
コード例 #2
0
ファイル: Usuario.cs プロジェクト: jflores1441/PortafolioMVC
        public Usuario ObtenerUsuario(int id, bool includes = false)
        {
            var usuario = new Usuario();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    if (!includes)
                    {
                        usuario = ctx.Usuario.Where(x => x.id == id).SingleOrDefault();
                    }
                    else
                    {
                        //el nombre dentro del Include debe ser el mismo que el de la relacion con la tabla Usuario
                        usuario = ctx.Usuario.Include("Experiencia")
                                  .Include("Habilidad")
                                  .Include("Testimonio")
                                  .Where(x => x.id == id)
                                  .SingleOrDefault();
                    }

                    //Trayendo un dato de manera manual sin usar relacion include
                    usuario.Pais = new TablaDato().Obtener("pais", usuario.Pais_id.ToString());
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(usuario);
        }
コード例 #3
0
        public ResponseModel Guardar()
        {
            var rm = new ResponseModel();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    if (this.id > 0)
                    {
                        ctx.Entry(this).State = EntityState.Modified;
                    }
                    else
                    {
                        ctx.Entry(this).State = EntityState.Added;
                    }

                    ctx.SaveChanges();
                    rm.SetResponse(true);
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(rm);
        }
コード例 #4
0
        public AnexGRIDResponde Listar(AnexGRID grid, int usuario_id)
        {
            try
            {
                using (var ctx = new proyectoContext())
                {
                    ctx.Configuration.LazyLoadingEnabled = false;//para evitar que haga validaciones mientras guarda el contexto

                    grid.Inicializar();

                    var query = ctx.Testimonio.Where(x => x.Usuario_id == usuario_id);

                    //Ordenamiento

                    if (grid.columna == "id")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.id)
                                                             : query.OrderBy(x => x.id);
                    }

                    if (grid.columna == "Nombre")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.Nombre)
                                                             : query.OrderBy(x => x.Nombre);
                    }

                    if (grid.columna == "IP")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.IP)
                                                             : query.OrderBy(x => x.IP);
                    }

                    if (grid.columna == "Fecha")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.Fecha)
                                                             : query.OrderBy(x => x.Fecha);
                    }

                    var testimonios = query.Skip(grid.pagina)
                                      .Take(grid.limite)
                                      .ToList();

                    var total = query.Count();

                    grid.SetData(testimonios, total);
                }
            }
            catch (Exception e)
            {
                throw;
            }

            return(grid.responde());
        }
コード例 #5
0
ファイル: Usuario.cs プロジェクト: jflores1441/PortafolioMVC
        public ResponseModel Guardar(HttpPostedFileBase Foto)
        {
            var rm = new ResponseModel();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    ctx.Configuration.ValidateOnSaveEnabled = false;//Indicarle al contexto que las validaciones cuando se guarde, esten desabilitadas, debido a que queremos que ignore la propiedad Password

                    var eUsuario = ctx.Entry(this);
                    eUsuario.State = EntityState.Modified;

                    if (this.Password == null)
                    {
                        eUsuario.Property(x => x.Password).IsModified = false;//Le indicamos que queremos que ignore la propiedad Password, y que no la valide
                    }
                    if (Foto != null)
                    {
                        //System.IO para usar Path
                        string archivo = DateTime.Now.ToString("yyyyMMddHHmmss") + Path.GetExtension(Foto.FileName);

                        Foto.SaveAs(HttpContext.Current.Server.MapPath("~/Uploads/" + archivo));

                        this.Foto = archivo;
                    }
                    else
                    {
                        eUsuario.Property(x => x.Foto).IsModified = false;
                    }

                    ctx.SaveChanges();
                    rm.SetResponse(true);
                }
            }

            //Referencia using System.Data.Entity.Validation;
            //Podemos ver más a detalle la excepcion del EF
            //catch (DbEntityValidationException e)
            //{
            //    throw;
            //}

            catch (Exception)
            {
                throw;
            }

            return(rm);
        }
コード例 #6
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="grid"></param>
        /// <param name="tipo">Indica si es para la tabla de TrabajosRealizados=1, EstudiosPrevios=2</param>
        /// <param name="usuario_id">Para Filtrar por el usuario que ha ingresado</param>
        /// <returns></returns>
        public AnexGRIDResponde Listar(AnexGRID grid, int usuario_id)
        {
            try
            {
                using (var ctx = new proyectoContext())
                {
                    ctx.Configuration.LazyLoadingEnabled = false;

                    grid.Inicializar();

                    var query = ctx.Habilidad.Where(x => x.Usuario_id == usuario_id);

                    //Ordenamiento

                    if (grid.columna == "id")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.id)
                                                             : query.OrderBy(x => x.id);
                    }

                    if (grid.columna == "Nombre")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.Nombre)
                                                             : query.OrderBy(x => x.Nombre);
                    }

                    if (grid.columna == "Dominio")
                    {
                        query = grid.columna_orden == "DESC" ? query.OrderByDescending(x => x.Dominio)
                                                             : query.OrderBy(x => x.Dominio);
                    }



                    var Habilidades = query.Skip(grid.pagina)
                                      .Take(grid.limite)
                                      .ToList();

                    var total = query.Count();

                    grid.SetData(Habilidades, total);
                }
            }
            catch (Exception e)
            {
                throw;
            }

            return(grid.responde());
        }
コード例 #7
0
        public Testimonio Obtener(int id)
        {
            var testimonio = new Testimonio();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    testimonio = ctx.Testimonio.Where(x => x.id == id)
                                 .SingleOrDefault();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(testimonio);
        }
コード例 #8
0
        public Experiencia Obtener(int id)
        {
            var experiencia = new Experiencia();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    experiencia = ctx.Experiencia.Where(x => x.id == id)
                                  .SingleOrDefault();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(experiencia);
        }
コード例 #9
0
        public Habilidad Obtener(int id)
        {
            var Habilidad = new Habilidad();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    Habilidad = ctx.Habilidad.Where(x => x.id == id)
                                .SingleOrDefault();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(Habilidad);
        }
コード例 #10
0
        public TablaDato Obtener(string relacion, string valor)
        {
            var dato = new TablaDato();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    dato = ctx.TablaDato.Where(x => x.Relacion == relacion)
                           .Where(x => x.Valor == valor)
                           .SingleOrDefault();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(dato);
        }
コード例 #11
0
        public List <TablaDato> Listar(string relacion)
        {
            var datos = new List <TablaDato>();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    datos = ctx.TablaDato.OrderBy(x => x.Orden)
                            .Where(x => x.Relacion == relacion)
                            .ToList();
                }
            }
            catch (Exception)
            {
                throw;
            }

            return(datos);
        }
コード例 #12
0
        public ResponseModel Eliminar(int id)
        {
            var rm = new ResponseModel();

            try
            {
                using (var ctx = new proyectoContext())
                {
                    this.id = id;
                    ctx.Entry(this).State = EntityState.Deleted;
                    ctx.SaveChanges();
                    rm.SetResponse(true);
                }
            }
            catch (Exception)
            {
                throw;
            }
            return(rm);
        }