package br.com.webbudget.application.controller;
import br.com.webbudget.domain.model.entity.tools.UserMessage;
import br.com.webbudget.domain.model.service.MessagingService;
import java.util.List;
import javax.enterprise.context.SessionScoped;
import javax.inject.Inject;
import javax.inject.Named;
import lombok.Getter;
/**
*
* @author Arthur Gregorio
*
* @version 1.0.0
* @since 2.0.0, 13/04/2016
*/
@Named
@SessionScoped
public class MessagingBean extends AbstractBean {
@Getter
private int newMessages;
@Getter
private List<UserMessage> unreadMessages;
@Inject
private MessagingService messagingService;
/**
* Atualiza o status das mensagens
*/
public void updateMessageStatus() {
// lista as mensagens
this.unreadMessages = this.listUnreadMessages();
// conta as mensagens
this.newMessages = this.unreadMessages.size();
}
/**
* @return as mensagens nao lidas
*/
private List<UserMessage> listUnreadMessages() {
final List<UserMessage> messages
= this.messagingService.listUnreadMessages();
messages.stream().forEach(message -> {
message.calculateElapsedTime();
});
return messages;
}
/**
* Redireciona para pagina de detalhes do vendedor
*
* @param userMessageId o id da mensagem a ser visualizada
*/
public void changeToDetail(long userMessageId) {
this.redirectTo("detailReceivedMessage.xhtml?faces-redirect=true&id="
+ userMessageId + "&viewState=" + ViewState.DETAILING);
}
}