public void Run(IScsServerClient client, List <string> parameters, string messageId) { var sender = new ServerSender(client); try { var login = DataSingleton.Instance.ServerClients[(int)client.ClientId].Login; var userId = SqlUserCommands.GetUserId(login); var tmp = DataSingleton.Instance.Rooms.GetAllItems() .Where(x => x.InsideInfo.Clients.Exists(y => y.Id == userId)).ToList(); if (tmp.Any()) { foreach (var roomActive in tmp) { var index = roomActive.InsideInfo.Clients.FindIndex(x => x.Id == userId); roomActive.InsideInfo.Clients?.RemoveAt(index); } } DataSingleton.Instance.ServerClients.Remove(client.ClientId); SqlUserCommands.AddActionInfo(userId, Utils.Instance.GetIpOfClient(client), SqlUserCommands.Actions.Logout); sender.Success(messageId); Console.WriteLine("{0} disconnected", client.ClientId); } catch (Exception ex) { Console.WriteLine(ex.Message); sender.Error(messageId); } }
public void Run(IScsServerClient client, List <string> parameters, string messageId) { var sender = new ServerSender(client); var login = parameters[0]; var password = parameters[1]; try { if (SqlUserCommands.LoginExists(login)) { var hashedPass = Scrypt.Hash(password, SqlUserCommands.GetSalt(login)); if (SqlUserCommands.CheckPassword(hashedPass, login)) { var getUserID = SqlUserCommands.GetUserId(login); var rank = SqlUserCommands.GetUserRank(getUserID); var tmpClient = new ServerClient(client) { Rank = (Rank)rank, Id = getUserID, Username = login, Login = login }; // if (Utils.Instance.IsActiveLogin(client)) //Receiver_Disconnect(null, new ServerReceiverEvents.DisconnectEventArgs(e.Client)); ///TODO DataSingleton.Instance.ServerClients[(int)tmpClient.Client.ClientId] = tmpClient; sender.Success(messageId, tmpClient.Username); SqlUserCommands.AddActionInfo(getUserID, Utils.Instance.GetIpOfClient(client), SqlUserCommands.Actions.Login); } else { sender.Error(messageId); } } else { sender.Error(messageId); } } catch (Exception ex) { Console.WriteLine(ex.Message); sender.Error(messageId); } }
public void Run(IScsServerClient client, List <string> parameters, string messageId) { var sender = new ServerSender(client); var login = parameters[0]; var password = parameters[1]; var email = parameters[2]; try { if (!SqlUserCommands.LoginExists(login)) { var salt = Scrypt.GenerateSalt(); if (SqlUserCommands.CreateUser(login, Scrypt.Hash(password, salt), salt, login)) { sender.Success(messageId); var getUserID = SqlUserCommands.GetUserId(login); SqlUserCommands.AddActionInfo(getUserID, Utils.Instance.GetIpOfClient(client), SqlUserCommands.Actions.Register); } else { sender.Error(messageId); } } else { sender.Error(messageId); //TODO acc exist param } } catch (Exception ex) { Console.WriteLine(ex.Message); sender.Error(messageId); } }