private bool GetPermission(SynchronizationContext uiContext, IJsonContainer container) { bool userExists = false; // if (LogInViewModel.FirstTimeLogin) ConnectingToServer(); TcpSocket.tcpSocket.BeginSend(ConverData.ToSend(PersonList.GetPersonInfo()), 0, ConverData.ToSend(PersonList.GetPersonInfo()).Length, 0, new AsyncCallback(SendCallback), TcpSocket.tcpSocket); connectDone.WaitOne(); TextFromServer = ReceivData(uiContext, container); try { container = ConverData.ToReceiv <JsonContainer>(TextFromServer.ToString()); //if apruval ok userExists = true userExists = true; //just for test!!!!!!!!!!!! } catch (Exception ex) { Console.Write(ex.ToString()); } return(userExists); }
public void Receiving(IWindowsViewModel windowsViewModel, ISignInViewModel loginViewModel, IMessageContent messageContent, ITcpEndPoint tcpEndPoint, IJsonContainer container) { _tcpEndPoint = tcpEndPoint; _windowsViewModel = windowsViewModel; FirstTime = true; IsConnected = true; var uiContext = SynchronizationContext.Current; Task.Run(() => { ConnectingToServer(); TcpSocket.tcpSocket.BeginSend(ConverData.ToSend(PersonList.GetPersonInfo()), 0, ConverData.ToSend(PersonList.GetPersonInfo()).Length, 0, new AsyncCallback(SendCallback), TcpSocket.tcpSocket); connectDone.WaitOne(); while (IsConnected) { _windowsViewModel.ChangeView(2); var textFromServer = ReceivData(uiContext, container); try { container = ConverData.ToReceiv <JsonContainer>(textFromServer.ToString()); } catch (Exception ex) { Console.Write(ex.ToString()); } if (FirstTime) { if (container.CurrentPersonId != null) { User.Id = container.CurrentPersonId.Id; } AddToOnlineUserList(uiContext, container); GetAllMessages(messageContent, container, uiContext); FirstTime = false; } else { // Detect if OnlineUsers changed if (container?.Persons?.Count > OnlineUsers.UserList.Count || container?.Persons?.Count < OnlineUsers.UserList.Count) { ChangeOnlineUserList(uiContext, container, textFromServer.ToString()); } else { AddNewMessage(uiContext, messageContent, textFromServer.ToString()); } } } }); }