示例#1
0
        /// <summary>
        /// Initialise une nouvelle instance de la classe <see cref="VueModeleMain"/>. Initialise les
        /// vues-modèles de l'application et spécifie le premier vue-modèle à afficher
        /// </summary>
        public VueModeleMain()
        {
            _etatApplication           = new EtatApplication();
            _vueModeleConnexion        = new VueModeleConnexion(_etatApplication);
            _vueModeleConnexionEnCours = new VueModeleConnexionEnCours();
            _vueModeleChat             = new VueModeleChat(_etatApplication);

            VueModeleCourant = _vueModeleConnexion;

            _etatApplication.PropertyChanged += EtatApplicationOnPropertyChanged;
            _etatApplication.UtilisateurLocal.PropertyChanged += UtilisateurLocalOnPropertyChanged;
        }
示例#2
0
        /// <summary>
        /// Permet de vérifier si le nom d'utilisateur est déjà utilisé sur le réseau et de démarrer
        /// l'écoute sur le port 50000 UDP pour répondre au demande des autres utilisateurs. Durant
        /// le processus de connexion, etatApplication.ConnexionEnCours est égal à vrai. Si le nom
        /// d'utilisateur est utilisé, on ferme l'écoute sur le port 50000 UDP. Sinon,
        /// etatApplication.Connecte est égal à vrai.
        /// </summary>
        /// <param name="etatApplication">
        /// Représente l'état de l'application, contient: la liste des utilisateurs, la liste des
        /// conversations, le nom de l'utilisateur
        /// </param>
        public static async void Connexion(EtatApplication etatApplication)
        {
            _etatApplication = etatApplication;

            //jai ajouter ces 3 trucs la car cest comme ca que stephane le fait dans son exemple
            var socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            socket.EnableBroadcast = true;
            socket.Bind(new IPEndPoint(IPAddress.Any, 50000));

            await Task.Delay(1);

            _etatApplication.UtilisateurLocal.ErreursValidationDictionary[nameof(_etatApplication.UtilisateurLocal.Nom)] = new List <string> {
                "Connexion non implémentée."
            };
            _etatApplication.UtilisateurLocal.NotifierErreursChangees(nameof(_etatApplication.UtilisateurLocal.Nom));
        }
示例#3
0
        /// <summary>
        /// Initialise une nouvelle instance de la classe <see cref="VueModeleChat"/>
        /// </summary>
        /// <param name="etatApplication">
        /// État de l'application à faire suivre à travers les vues-modèles de l'application
        /// </param>
        public VueModeleChat(EtatApplication etatApplication)
        {
            _etatApplication = etatApplication;

            _etatApplication.PropertyChanged += EtatApplicationOnPropertyChanged;
        }
        /// <summary>
        /// Initialise une nouvelle instance de la classe <see cref="VueModeleConnexion"/>
        /// </summary>
        /// <param name="etatApplication">
        /// État de l'application à faire suivre à travers les vues-modèles de l'application
        /// </param>
        public VueModeleConnexion(EtatApplication etatApplication)
        {
            _etatApplication = etatApplication;

            _etatApplication.UtilisateurLocal.ErrorsChanged += UtilisateurLocalOnErrorsChanged;
        }