Kenmegne
7 days ago 23a46b4be35277e06ec89f48730eeb694e686be8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/*
 * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
 * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
 */
package com.megatim.fdxconsultation.service.impl.sockets;
 
/**
 *
 * @author Lenovo P53
 */
import com.megatim.fdxconsultation.core.ifaces.administration.UserManager;
import com.megatim.fdxconsultation.core.ifaces.message.systeme.MessageSystemeManager;
import com.megatim.fdxconsultation.model.administration.User;
import com.megatim.fdxconsultation.model.dto.MessageSystemeDto;
import com.megatim.fdxconsultation.model.message.systeme.ApplicationData;
import com.megatim.fdxconsultation.model.message.systeme.UserSesionApplication;
import com.megatim.fdxconsultation.tools.context.AppCommonContext;
import java.util.Iterator;
import javax.annotation.PostConstruct;
import javax.ejb.LocalBean;
import javax.ejb.Schedule;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import javax.inject.Inject;
import javax.websocket.Session;
 
@Singleton
@Startup
@LocalBean
public class MessagesSystemeCronBean {
    
    @Inject
    private MessageSystemeManager messageSystemeManager;
    
    @Inject
    private UserManager userManager;
    
    @PostConstruct
    public void init() {
        
    }
 
    @Schedule(second = "*/3", minute = "*", hour = "*", persistent = false)
    public void refreshDatas() {
        
        //Variables
        ApplicationData message = new ApplicationData();
        MessageSystemeDto messageSystemeDto = null;
        Iterator<String> iterateur = null;
        String idSession = null;
        Session session = null;
        User utilisateur = null;
        
        try {
        
            //On crée une instance de l'iterateur
            iterateur = UserSesionApplication.getInstance().getUsers().keySet().iterator();   
 
            //On parcourt la liste des sessions
            while(iterateur.hasNext()){  
 
                //On recupère l'id de la session
                idSession = iterateur.next();
                
                //On filtre par type
                if(UserSesionApplication.getInstance().getUsers() != null && UserSesionApplication.getInstance().getUsers().get(idSession) != null
                        && (UserSesionApplication.getInstance().getUsers().get(idSession).getType() != null
                        && UserSesionApplication.getInstance().getUsers().get(idSession).getType().equalsIgnoreCase(AppCommonContext.CODE_WEB_SOCKET_PATH_SYSTEME_MESSAGE))){
                
                    //On recupère la session
                    session = UserSesionApplication.getInstance().getUsers().get(idSession).getSession();
 
                    //On recupère l'utilisateur associé à cette session
                    utilisateur = UserSesionApplication.getInstance().getUsers().get(idSession).getUtilisateur();
 
                    //On recupère le message système
                    messageSystemeDto = messageSystemeManager.recupererUnMessageSystemeDto(utilisateur);
 
                    //Si non null
                    if(messageSystemeDto != null){
                    
                        //On hydrate le message
                        message.setMessageSystemeDto(messageSystemeDto);
 
                        //On envoie le message
                        UserSesionApplication.getInstance().send(session, message);
                    
                    }
                    
                }
 
            }
            
        } catch (Exception ex) {
                
            //On affiche les erreurs
            ex.printStackTrace();
 
        }
        
    }
    
}