Exemplo n.º 1
0
        /// <summary>
        /// Permite agregar un nuevo historial
        /// </summary>
        /// <param name="usuarioId">Id del usuario</param>
        /// <param name="actividad">Tipo de actividad que realiza el usuario</param>
        /// <param name="nombreTabla">Tabla en la que se realiza el cambio</param>
        /// <param name="origenId">Id del registro modificado</param>
        /// <param name="observaciones">Observaciones de la modificación</param>
        /// <returns></returns>
        public async Task <bool> AgregarAsync(int usuarioId, int actividad,
                                              string nombreTabla, int origenId,
                                              string observaciones)
        {
            var tablaId = await ObtenerIdTablaAsync(nombreTabla);

            Historial historial = new Historial
            {
                Actividad = actividad,
                FechaHora = DateTime.Now,
                Observa   = observaciones,
                OrigenId  = origenId,
                TablaId   = tablaId,
                UsuarioId = usuarioId
            };

            contexto.Historial.Add(historial);
            contexto.SaveChanges();
            return(true);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Indica si el password es correcto, si no esta bloqueado el acceso
 /// por intentos incorrectos
 /// </summary>
 /// <param name="usuario">Datos del usuario</param>
 /// <param name="password">Password</param>
 /// <param name="codigo">Código para desbloquear el usuario</param>
 /// <returns></returns>
 public bool EsPasswordValido(Usuario usuario, string password, int codigo)
 {
     if (EsUsuarioBloqueado(usuario))
     {
         if (EsPasswordCorrecto(usuario, password) && usuario.Codigo == codigo)
         {
             //Reiniciamos el número de intentos y el código para iniciar sesión
             usuario.Intentos = 0;
             usuario.Codigo   = 0;
             contexto.SaveChanges();
             return(true);
         }
         else
         {
             customError = new CustomError(423,
                                           this.localizacion.GetLocalizedHtmlString("PasswordLocked"));
             return(false);
         }
     }
     else
     {
         if (!EsPasswordCorrecto(usuario, password))
         {
             usuario.Intentos = usuario.Intentos + 1;
             if (usuario.Intentos > MAXIMOS_INTENTOS)
             {
                 Random r = new Random();
                 codigo         = r.Next(0, 999999);
                 usuario.Codigo = codigo;
                 customError    = new CustomError(423,
                                                  this.localizacion.GetLocalizedHtmlString("PasswordLocked"));
                 EnviaCorreoIntentosIncorrectos(_path, usuario.Clave, usuario.Email, codigo);
             }
             else
             {
                 customError = new CustomError(400,
                                               this.localizacion.GetLocalizedHtmlString("PasswordIncorrecto"));
             }
             return(false);
         }
     }
     return(true);
 }
Exemplo n.º 3
0
        /// <summary>
        /// Guarda los datos del acceso del usuario
        /// </summary>
        /// <param name="token">Datos del token</param>
        /// <param name="usuarioId">Id del usuario</param>
        /// <param name="ip">Ip de la cual se conecta el usuario</param>
        /// <param name="navegador">Navegador del cual se conecta el usuario</param>
        /// <returns></returns>
        public async Task <bool> GuardarAccesoAsync(TokenDTO token, int usuarioId, string ip, string navegador)
        {
            IPGeoLocation ipGeoLocation = new IPGeoLocation();

            if (datosIP == null)
            {
                datosIP = await ObtenerDatosIPAsync(ip, ipGeoLocation);
            }
            var usuarioAcceso = new UsuarioAcceso();

            usuarioAcceso.Ciudad           = datosIP.city;
            usuarioAcceso.Estado           = datosIP.subdivision;
            usuarioAcceso.Navegador        = navegador;
            usuarioAcceso.UsuarioId        = usuarioId;
            usuarioAcceso.Fecha            = DateTime.Now;
            usuarioAcceso.Token            = token.Token.Split(".")[2];
            usuarioAcceso.Activo           = true;
            usuarioAcceso.SistemaOperativo = "Default";
            usuarioAcceso.RefreshToken     = token.RefreshToken;
            usuarioAcceso.Navegador        = "Default";
            contexto.UsuarioAcceso.Add(usuarioAcceso);
            contexto.SaveChanges();
            return(true);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Constructro de la clase
        /// </summary>
        /// <param name="contexto"></param>
        public static void Inicializar(CaducaContext contexto)
        {
            //Si no es base de datos en memoria no se agrega nada
            if (contexto.Database.ProviderName != "Microsoft.EntityFrameworkCore.InMemory" &&
                contexto.Database.ProviderName != "Microsoft.EntityFrameworkCore.Sqlite")
            {
                return;
            }
            //Te aseguras que la base de datos haya sido creada
            contexto.Database.EnsureCreated();

            var categorias = new Categoria[]
            {
                /*01*/ new Categoria {
                    Clave = 1, Nombre = "Análgesicos"
                },
            };

            foreach (Categoria registro in categorias)
            {
                contexto.Categoria.Add(registro);
            }

            var productos = new Producto[]
            {
                /*01*/ new Producto {
                    Clave = 1, Nombre = "Producto 1"
                },
            };

            foreach (Producto registro in productos)
            {
                contexto.Producto.Add(registro);
            }

            var clientes = new Cliente[]
            {
                /*01*/ new Cliente {
                    Clave = 1, NombreComercial = "Cliente 1", Activo = true, RazonSocial = "Cliente 1", Direccion = "Calle #1"
                },
            };

            foreach (Cliente registro in clientes)
            {
                contexto.Cliente.Add(registro);
            }

            contexto.SaveChanges();

            var caducidades = new Caducidad[]
            {
                /*01*/ new Caducidad {
                    ClienteId = 1, ProductoId = 1, Cantidad = 5, Fecha = DateTime.Now
                },
            };

            foreach (Caducidad registro in caducidades)
            {
                contexto.Caducidad.Add(registro);
            }

            contexto.SaveChanges();
        }