/// <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);
        }
Esempio n. 2
0
        /// <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);
        }
Esempio n. 3
0
        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);
        }