public async Task <UsuariosDTO> VerificarUsuarioConEmailUsuarioYDeviceId(Usuarios usuarioParaVerificar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                AuthenticateRepository authenticateRepo = new AuthenticateRepository(context);
                UsuariosDTO            usuarioExistente = await authenticateRepo.VerificarUsuarioConEmailUsuarioYDeviceId(usuarioParaVerificar);

                if (usuarioExistente != null)
                {
                    Usuarios usuarioModificado = await authenticateRepo.ActualizarFechaUltimoAcceso(usuarioExistente.Consecutivo);

                    await context.SaveChangesAsync();
                }

                return(usuarioExistente);
            }
        }
        public async Task AuthenticateRepository_ActualizarFechaAcceso_ShouldUpdate()
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                AuthenticateRepository authenticateRepo = new AuthenticateRepository(context);
                Usuarios usuarioParaVerificar           = new Usuarios
                {
                    Usuario = "Sergio",
                    Clave   = "Sergio"
                };

                UsuariosDTO usuarioVerificado = await authenticateRepo.VerificarUsuario(usuarioParaVerificar);

                Usuarios usuarioExistente = await authenticateRepo.ActualizarFechaUltimoAcceso(usuarioParaVerificar.Consecutivo);

                Assert.IsNotNull(usuarioVerificado);
                Assert.AreNotEqual(usuarioVerificado.Consecutivo, 0);
                Assert.AreEqual(usuarioVerificado.UltimoAcceso.Value.Date, DateTime.Today);
            }
        }
        public async Task <UsuariosDTO> VerificarUsuario(Usuarios usuarioParaVerificar)
        {
            using (SportsGoEntities context = new SportsGoEntities(false))
            {
                AuthenticateRepository authenticateRepo  = new AuthenticateRepository(context);
                UsuariosDTO            usuarioVerificado = await authenticateRepo.VerificarUsuario(usuarioParaVerificar);

                if (usuarioVerificado != null)
                {
                    Usuarios usuarioExistente = await authenticateRepo.ActualizarFechaUltimoAcceso(usuarioVerificado.Consecutivo);

                    // Se vencio el plan
                    if (usuarioVerificado.PlanesUsuarios.Vencimiento < DateTime.Now && usuarioVerificado.TipoPerfil != TipoPerfil.Administrador)
                    {
                        PlanesBusiness        planBusiness       = new PlanesBusiness();
                        WrapperSimpleTypesDTO wrapperCambiarPlan = await planBusiness.CambiarPlanUsuarioADefaultPerfilPorVencimiento(usuarioVerificado.PlanesUsuarios);

                        usuarioVerificado = await authenticateRepo.VerificarUsuario(usuarioParaVerificar);
                    }

                    await context.SaveChangesAsync();

                    if (usuarioVerificado.TipoPerfil == TipoPerfil.Administrador)
                    {
                        AdministracionRepository adminRepo = new AdministracionRepository(context);

                        ImagenesPerfilAdministradores imagenPerfilBuscada = await adminRepo.BuscarImagenPerfilAdministrador(usuarioVerificado.Consecutivo);

                        if (imagenPerfilBuscada != null)
                        {
                            usuarioVerificado.CodigoImagenPerfilAdmin = imagenPerfilBuscada.CodigoArchivo;
                        }
                    }
                }

                return(usuarioVerificado);
            }
        }