/// <summary> /// Construtor de uma Response /// </summary> /// <param name="operacao">Operação</param> /// <param name="utilizador">Utilizador que a cria</param> /// <param name="mensagem">Mensagem da Response</param> /// <param name="historicoChat"> /// Lista com todas as mensagens de um chat (utilizado só quando um Utilizador abre um separador de chat) /// </param> public Response(Operation operacao, Utilizador utilizador, Mensagem mensagem = null, List <Mensagem> historicoChat = null) { Operacao = operacao; Utilizador = utilizador; Mensagem = mensagem; HistoricoChat = historicoChat; }
/// <summary> /// Guarda um Utilizador no ficheiro (registo) /// </summary> /// <param name="utilizador">Utilizador a guardar</param> /// <returns>Utilizador acabado de guardar</returns> public static Utilizador SaveUserInFile(Utilizador utilizador) { // Atribuir Id (+1 do que o último atribuído) utilizador.Id = File.ReadLines(UsersFilePath).Count() + 1; // Cria/Abre ficheiro para escrever using (StreamWriter sw = !File.Exists(UsersFilePath) ? File.CreateText(UsersFilePath) : File.AppendText(UsersFilePath)) { sw.WriteLine(JsonConvert.SerializeObject(utilizador)); } return(utilizador); }
/// <summary> /// Verifica se um Utilizador está registado /// </summary> /// <param name="utilizador">Utilizador a verificar</param> /// <returns> /// null -> Utilizador não está registado; /// Utilizador -> Utilizador está registado. /// </returns> public static Utilizador GetRegisteredUser(Utilizador utilizador) { using (StreamReader streamReader = new StreamReader(UsersFilePath)) { string line; while ((line = streamReader.ReadLine()) != null) { if (!line.Contains(utilizador.Email)) { continue; } return(JsonConvert.DeserializeObject <Utilizador>(line)); } } return(null); }
/// <summary> /// Verifica se um determinado Utilizador está online /// </summary> /// <param name="clientesConectados">Lista de Utilizadores conectados</param> /// <param name="utilizadorVerificar">Utilizador a verificar</param> /// <returns> /// null -> Utilizador não está online; /// Utilizador -> Utilizador está online. /// </returns> public static Utilizador GetUserConnected(List <Cliente> clientesConectados, Utilizador utilizadorVerificar) { Utilizador utilizadorEncontrado = null; clientesConectados.ForEach(clienteConectado => { if (clienteConectado.User == null) { return; } if (clienteConectado.User.Email != utilizadorVerificar.Email) { return; } if (clienteConectado.User.IsOnline) { utilizadorEncontrado = clienteConectado.User; } }); return(utilizadorEncontrado); }
/// <summary> /// Construtor de um Cliente /// </summary> /// <param name="user">Utilizador</param> /// <param name="tcpClient">Conexão TCP</param> public Cliente(Utilizador user, TcpClient tcpClient) { User = user; TcpClient = tcpClient; }