/// <summary> /// Buttons the save pet touch up inside. /// </summary> /// <param name="sender">Sender.</param> partial void BtnSavePet_TouchUpInside(UIButton sender) { //create new pet with selected type PLFPet pet = new PLFPet(selectedType); pet.PetName = tfPetNameField.Text; //send pet register to server ServerPacketAddPet serverPacketAddPet = ServerHelper.AddPet(Application.ActualUser, pet); //if register success if (serverPacketAddPet.RegisterSuccess) { //set pet id pet.PetID = serverPacketAddPet.PetID; //add pet to user pet list Application.PetManager.AddPet(pet); //reset fields selectedType = PetType.OTHER; tfPetNameField.Text = ""; //pop actual controller this.NavigationController.PopViewController(true); return; } //get the good error message String errorMessage = string.Empty; switch (serverPacketAddPet.NetworkError) { case NetworkError.SERVER_UNAVAILABLE: errorMessage = MSGBank.ERROR_NO_SERVER; break; default: errorMessage = $"Impossible d'ajouter ce familier"; break; } BarHelper.DisplayErrorBar(uivMainView, MSGBank.ERROR_TITLE, errorMessage); }
/// <summary> /// Adds the pet. /// </summary> /// <returns>The pet.</returns> /// <param name="user">User.</param> /// <param name="pet">Pet.</param> public static ServerPacketAddPet AddPet(PLFUser user, PLFPet pet) { //get user ID int userID = user.ID; //create new client add pet packet ClientPacketAddPet clientPacketAddPet = new ClientPacketAddPet(userID, pet); //send packet to server ServerPacketAddPet serverPacketAddPet = TCPClient.SendPacket(clientPacketAddPet) as ServerPacketAddPet; //if no answer if (serverPacketAddPet == null) { return(new ServerPacketAddPet(false, -1, NetworkError.SERVER_UNAVAILABLE)); } return(serverPacketAddPet); }
public override Packet OnPacketReceive(Packet receivedPacket) { //cast received packet ClientPacketAddPet clientPacketAddPet = receivedPacket as ClientPacketAddPet; ConsoleHelper.Write("Receive - ClientPacketAddPet"); //get packet properties int userID = clientPacketAddPet.OwnerUserID; PLFPet pet = clientPacketAddPet.NewPet; //add packet command MySqlCommand registerNewPetCommand = new MySqlCommand(); registerNewPetCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; registerNewPetCommand.CommandText = $"INSERT INTO `T_Pet`(`petType`, `petName`, `petAttributs`) VALUES ('{(int)pet.PetType}','{pet.PetName.ToSQL()}', '[]'); SELECT LAST_INSERT_ID();"; MySqlDataReader mysqlDataReader = null; ServerPacketAddPet serverPacketAddPet; try { //execute sql reader mysqlDataReader = registerNewPetCommand.ExecuteReader(); int petID = 0; //open reader while (mysqlDataReader.Read()) { petID = mysqlDataReader.GetInt32(0); } //new server packet serverPacketAddPet = new ServerPacketAddPet(true, petID, NetworkError.NONE); } catch (MySqlException e) { //write message Console.WriteLine(e.Number + " - " + e.Message); serverPacketAddPet = new ServerPacketAddPet(false, -1, NetworkError.GLOBAL_UNKNOWN); } catch (Exception e) { serverPacketAddPet = new ServerPacketAddPet(false, -1, NetworkError.GLOBAL_UNKNOWN); Console.WriteLine(e.Message); } //close reader if (mysqlDataReader != null && !mysqlDataReader.IsClosed) { mysqlDataReader.Close(); } //add own relation if success if (serverPacketAddPet.RegisterSuccess) { MySqlCommand registerNewOwnCommand = new MySqlCommand(); registerNewOwnCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; registerNewOwnCommand.CommandText = $"INSERT INTO `T_Own`(`fkPetID`, `fkUserID`) VALUES ('{serverPacketAddPet.PetID}','{userID}') "; registerNewOwnCommand.ExecuteNonQuery(); } ConsoleHelper.Write("Send - ServerPacketAddPet"); return(serverPacketAddPet); }