public int Login(string userName, string fullName, int id) { if (_connectedClients.ContainsKey(id)) { return(1); } var establishedUserConnection = OperationContext.Current.GetCallbackChannel <IClient>(); ConnectedClient newClient = new ConnectedClient(); newClient.connection = establishedUserConnection; newClient.UserName = userName; newClient.FullName = fullName; newClient.Id = id; _connectedClients.TryAdd(id, newClient); Console.BackgroundColor = ConsoleColor.DarkGreen; Console.WriteLine("Client login: {0} at {1}", newClient.UserName, System.DateTime.Now); Console.ResetColor(); OpMessageSelect oms = new OpMessageSelect(); OperationResult obj = OperationManager.Singleton.executeOperation(oms); OpResCollection orc = obj as OpResCollection; if ((orc == null) || (!orc.Status)) { Console.WriteLine("No new messages.{0}", newClient.UserName); } else { BMessageInfo[] messages = orc.BaseObjectArray.Cast <BMessageInfo>().ToArray(); BMessageInfo[] connected = messages.Where(w => w.ToId == id).ToArray(); foreach (var message in connected) { messagesToSent.TryAdd(message.IdMessage, message); } } return(0); }
public int Login(string userName, string fullName, int id) { //Checking if someone is already loged in //foreach(var client in _connectedClients) //{ // if (client.Key == id) // return 1; //} if (_connectedClients.ContainsKey(id)) { return(1); } var establishedUserConnection = OperationContext.Current.GetCallbackChannel <IClient>(); ConnectedClient newClient = new ConnectedClient(); newClient.connection = establishedUserConnection; newClient.UserName = userName; newClient.FullName = fullName; newClient.Id = id; //_connectedClients.TryAdd(userName, newClient); //_connectedClients.TryAdd(fullName, newClient); //_connectedClients.TryAdd(id.ToString(), newClient); _connectedClients.TryAdd(id, newClient); Console.BackgroundColor = ConsoleColor.DarkGreen; Console.WriteLine("Client login: {0} at {1}", newClient.UserName, System.DateTime.Now); Console.ResetColor(); OpMessageSelect oms = new OpMessageSelect(); OperationResult obj = OperationManager.Singleton.executeOperation(oms); OpResCollection orc = obj as OpResCollection; if ((orc == null) || (!orc.Status)) { Console.WriteLine("No new messages.{0}", newClient.UserName); } else { BMessageInfo[] messages = orc.BaseObjectArray.Cast <BMessageInfo>().ToArray(); BMessageInfo[] connected = messages.Where(w => w.ToId == id).ToArray(); foreach (var message in connected) { //foreach (var client in _connectedClients) //{ // //if ((client.Key.ToLower() != newClient.FullName.ToLower()) && (client.Key.ToLower() == message.To.ToLower())) // if ((client.Key != newClient.Id) && (client.Key == message.ToId)) // { // client.Value.connection.GetMessage(message.Message, message.From, message.FromId, message.FromImage, message.To, message.ToId); // } //} //bool postoji = _connectedClients.ContainsKey(message.ToId); //if (postoji) //{ //ConnectedClient conClient; //bool dohvacen = _connectedClients.TryGetValue(message.ToId, out conClient); //if (dohvacen) // conClient.connection.GetMessage(message.Message, message.From, message.FromId, message.FromImage, message.To, message.ToId); //} //newClient.connection.GetMessage(message.Message, message.From, message.FromId, message.FromImage, message.To, message.ToId); //OpMessageDelete omd = new OpMessageDelete(); //omd.IdMessage = message.IdMessage; //OperationResult result = OperationManager.Singleton.executeOperation(omd); messagesToSent.TryAdd(message.IdMessage, message); } } return(0); }