public override Packet OnPacketReceive(Packet receivedPacket) { ClientPacketUpdatePet clientPacketUpdatePet = receivedPacket as ClientPacketUpdatePet; ConsoleHelper.Write("Receive - ClientPacketUpdatePet"); PLFPet pet = clientPacketUpdatePet.PetProfile; //insert new profile into DB MySqlCommand updatePetCommand = new MySqlCommand(); updatePetCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; updatePetCommand.CommandText = $"UPDATE `T_Pet` SET `petType`='{(int)pet.PetType}',`petName`='{pet.PetName.ToSQL()}' WHERE `petID`='{pet.PetID}'"; ServerPacketConfirmation serverPacketConfirmation; try { updatePetCommand.ExecuteNonQuery(); serverPacketConfirmation = new ServerPacketConfirmation(true, NetworkError.NONE); } catch (Exception e) { serverPacketConfirmation = new ServerPacketConfirmation(false, NetworkError.GLOBAL_UNKNOWN); Console.WriteLine(e.Message); } ConsoleHelper.Write("Send - ServerPacketConfirmation"); return(serverPacketConfirmation); }
public override void Selected(UIPickerView pickerView, nint row, nint component) { //set selected pet selectedPet = Application.PetManager.UserOwnPets[(int)row]; //trigger event petChangeEvent?.Invoke(null, null); }
/// <summary> /// Views the will appear. /// </summary> /// <param name="animated">If set to <c>true</c> animated.</param> public override void ViewWillAppear(bool animated) { //init picker InitPetPicker(); //populate fields selectedPet = Application.PetManager.SelectedPet; ivPetIcon.Image = IosPetHelper.GetImageForPetType(Application.PetManager.SelectedPet.PetType); }
public override void ViewWillAppear(bool animated) { //get selected pet and populate fields selectedPet = Application.PetManager.SelectedPet; lblPetName.Text = selectedPet.PetName; ivPetIcon.Image = IosPetHelper.GetImageForPetType(selectedPet.PetType); //load page LoadPage(); }
/// <summary> /// Views the will appear. /// </summary> /// <param name="animated">If set to <c>true</c> animated.</param> public override void ViewWillAppear(bool animated) { //if no selected pet if (Application.PetManager.SelectedPet == null) { return; } //get actual pet actualPet = Application.PetManager.SelectedPet; //update fields UpdatePetView(); UpdatePetAttributes(); UpdateScrollView(); }
public void InitPetPicker() { //create new picker model var petPickerModel = new PetPickerModel(Application.PetManager.UserOwnPets); //set picker view model pvUserPetView.Model = petPickerModel; //add event handler petPickerModel.petChangeEvent += (sender, e) => { selectedPet = petPickerModel.selectedPet; ivPetIcon.Image = IosPetHelper.GetImageForPetType(selectedPet.PetType); }; }
/// <summary> /// Updates the pet. /// </summary> /// <returns>The pet.</returns> /// <param name="pet">Pet.</param> public static ServerPacketConfirmation UpdatePet(PLFPet pet) { //create new client packet update pet ClientPacketUpdatePet clientPacketUpdatePet = new ClientPacketUpdatePet(0, pet); //send packet to the server ServerPacketConfirmation serverPacketConfirmation = TCPClient.SendPacket(clientPacketUpdatePet) as ServerPacketConfirmation; //if no answer if (serverPacketConfirmation == null) { return(new ServerPacketConfirmation(false, NetworkError.SERVER_UNAVAILABLE)); } return(serverPacketConfirmation); }
/// <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> /// Shares the pet. /// </summary> /// <returns>The pet.</returns> /// <param name="user">User.</param> /// <param name="pet">Pet.</param> /// <param name="receiverUserName">Receiver user name.</param> /// <param name="sharePower">Share power.</param> public static ServerPacketConfirmation SharePet(PLFUser user, PLFPet pet, String receiverUserName, int sharePower) { //get user id int userID = user.ID; //create new packet share pet ClientPacketSharePet clientPacketSharePet = new ClientPacketSharePet(userID, pet.PetID, receiverUserName, sharePower); //send packet to the server ServerPacketConfirmation serverPacketConfirmation = TCPClient.SendPacket(clientPacketSharePet) as ServerPacketConfirmation; //if no answer if (serverPacketConfirmation == null) { return(new ServerPacketConfirmation(false, NetworkError.SERVER_UNAVAILABLE)); } return(serverPacketConfirmation); }
/// <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); }
/// <summary> /// Deletes the pet. /// </summary> /// <returns>The pet.</returns> /// <param name="user">User.</param> /// <param name="pet">Pet.</param> public static ServerPacketConfirmation DeletePet(PLFUser user, PLFPet pet) { //get user and pet id int userID = user.ID; int petID = pet.PetID; //new client delete pet ClientPacketDeletePet clientPacketDeletePet = new ClientPacketDeletePet(userID, petID); //send delete packet to the server ServerPacketConfirmation serverPacketConfirmation = TCPClient.SendPacket(clientPacketDeletePet) as ServerPacketConfirmation; //if no answer if (serverPacketConfirmation == null) { return(new ServerPacketConfirmation(false, NetworkError.SERVER_UNAVAILABLE)); } return(serverPacketConfirmation); }
/// <summary> /// Loads the user pet list. /// </summary> /// <param name="user">User.</param> public void LoadUserPetList(PLFUser user) { //clear actual petlist userPets.Clear(); //send download pets id packet ServerPacketDownloadPetsID serverPacketDownloadPetsID = ServerHelper.DownloadPetsID(user); userPetsID = serverPacketDownloadPetsID.IdList; //foreach user own pets id foreach (var id in userPetsID) { //download pet infos from server PLFPet pet = ServerHelper.DownloadPet(id).Pet; //if pet isn't null if (pet != null) { userPets.Add(pet); } } //get shared pets id int[] sharePetsId = serverPacketDownloadPetsID.SharedIdList; //foreach user share pets id foreach (var id in sharePetsId) { //download shared pet infos from server PLFPet pet = ServerHelper.DownloadPet(id, true).Pet; //if pet isn't null if (pet != null) { userPets.Add(pet); } } }
PLFPet pet; //pet public PetCard(PLFPet pet) : base(pet.PetName, $"Pet/{pet.PetType.ToString().ToLower()}.png", pet.Shared ? "Icon/share.png" : "null") { this.pet = pet; }
/// <summary> /// Adds the pet. /// </summary> /// <param name="pet">Pet.</param> public void AddPet(PLFPet pet) { //add pet to list userPets.Add(pet); }
/// <summary> /// Deletes the pet. /// </summary> /// <param name="pet">Pet.</param> public void DeletePet(PLFPet pet) { //remove pet from list userPets.Remove(pet); }
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); }
int selectedPetAttributeID; //selected attribute id /// <summary> /// Initializes a new instance of the <see cref="T:PetLaForme.Manager.PetManager"/> class. /// </summary> public PetManager() { //init variables userPets = new List <PLFPet>(); selectedPet = null; }
public override Packet OnPacketReceive(Packet receivedPacket) { //get received packet ClientPacketDownloadPet clientPacketDownloadPet = receivedPacket as ClientPacketDownloadPet; ConsoleHelper.Write("Receive - ClientPacketDownloadPet"); //read packet infos int petID = clientPacketDownloadPet.PetID; //get share power Dictionary <int, int> sharedPetPower = SQLHelper.GetPetSharePower(new List <int>() { petID }); //download pet MySqlCommand downloadPetsCommand = new MySqlCommand(); downloadPetsCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; downloadPetsCommand.CommandText = $@"SELECT * FROM `T_Pet` WHERE `petID` IN ({petID})"; MySqlDataReader mysqlDataReader = null; PLFPet pet = new PLFPet(PetType.OTHER); try { //execute reader mysqlDataReader = downloadPetsCommand.ExecuteReader(); //open reader while (mysqlDataReader.Read()) { //get pet pet = new PLFPet(mysqlDataReader.GetInt32(0), (PetType)mysqlDataReader.GetInt32(1), mysqlDataReader.GetString(2)); //if is a shared pet if (clientPacketDownloadPet.Shared) { pet.SharePower = sharedPetPower[mysqlDataReader.GetInt32(0)]; } } //close reader mysqlDataReader.Close(); } catch (Exception e) { Console.WriteLine(e.Message); } //close reader if (mysqlDataReader != null && !mysqlDataReader.IsClosed) { mysqlDataReader.Close(); } ConsoleHelper.Write("Send - ServerPacketDownloadPet"); return(new ServerPacketDownloadPet(pet)); }
PLFPet pet; //pet list public ServerPacketDownloadPet(PLFPet pet) : base(PacketType.SERVERPACKETDOWNLOADPET) { this.pet = pet; }
PLFPet newPet; //pet public ClientPacketAddPet(int ownerUserID, PLFPet newPet) : base(PacketType.CLIENTPACKETADDPET) { this.ownerUserID = ownerUserID; this.newPet = newPet; }
PLFPet petProfile; //pet profile public ClientPacketUpdatePet(int ownerUserID, PLFPet petProfile) : base(PacketType.CLIENTPACKETUPDATEPET) { this.petProfile = petProfile; }
public override Packet OnPacketReceive(Packet receivedPacket) { ClientPacketDownloadPets clientPacketDownloadPets = receivedPacket as ClientPacketDownloadPets; ConsoleHelper.Write("Receive - ClientPacketDownloadPets"); int userID = clientPacketDownloadPets.UserID; List <int> ownPetIdList = SQLHelper.GetIDList($"SELECT `fkPetID` FROM `T_Own` WHERE `fkUserID`='{userID}'", 0); List <int> sharePetIdList = SQLHelper.GetIDList($"SELECT `fkPetID` FROM `T_Share` WHERE `fkReceiverID`='{userID}'", 0); Dictionary <int, int> sharedPetPower = SQLHelper.GetPetSharePower(sharePetIdList); //download pet MySqlCommand downloadPetsCommand = new MySqlCommand(); downloadPetsCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; downloadPetsCommand.CommandText = $@"SELECT * FROM `T_Pet` WHERE `petID` IN ({SQLHelper.IntListToString(ownPetIdList)})"; //OLD //downloadPetsCommand.CommandText = // $"SELECT T_Pet.`petID`, T_Pet.`petType`, T_Pet.`petName`, T_Pet.`petAttributs` FROM `T_Pet`, `T_Own` WHERE T_Own.`fkUserID` = '{userID}'"; MySqlCommand downloadSharedPetsCommand = new MySqlCommand(); downloadSharedPetsCommand.Connection = Program.mySQLManager.MySQLConnection.MysqlConnection; downloadSharedPetsCommand.CommandText = $@"SELECT * FROM `T_Pet` WHERE `petID` IN ({SQLHelper.IntListToString(sharePetIdList)})"; //OLD //downloadSharedPetsCommand.CommandText = // $"SELECT T_Pet.`petID`, T_Pet.`petType`, T_Pet.`petName`, T_Pet.`petAttributs` FROM `T_Pet`, `T_Share` WHERE T_Share.`fkReceiverID` = '{userID}' "; MySqlDataReader mysqlDataReader = null; List <PLFPet> petList = new List <PLFPet>(); try { // // DOWNLOAD OWN PETS // if (ownPetIdList.Count > 0) { mysqlDataReader = downloadPetsCommand.ExecuteReader(); //open reader while (mysqlDataReader.Read()) { PLFPet pet = new PLFPet(mysqlDataReader.GetInt32(0), (PetType)mysqlDataReader.GetInt32(1), mysqlDataReader.GetString(2)); //JsonConvert.DeserializeObject<List<PetAttribute>>(mysqlDataReader.GetString(3)) //scotch fix. TODO: fix it with sql command if (!ListContains(petList, mysqlDataReader.GetInt32(0))) { petList.Add(pet); } } mysqlDataReader.Close(); } // // DOWNLOAD SHARED PETS // if (sharePetIdList.Count > 0) { mysqlDataReader = downloadSharedPetsCommand.ExecuteReader(); //open reader and read shared pets while (mysqlDataReader.Read()) { PLFPet pet = new PLFPet(mysqlDataReader.GetInt32(0), (PetType)mysqlDataReader.GetInt32(1), mysqlDataReader.GetString(2), sharedPetPower[mysqlDataReader.GetInt32(0)]); //scotch fix. TODO: fix it with sql command if (!ListContains(petList, mysqlDataReader.GetInt32(0))) { petList.Add(pet); } } } } catch (Exception e) { Console.WriteLine(e.Message); } if (mysqlDataReader != null && !mysqlDataReader.IsClosed) { mysqlDataReader.Close(); } //new List<PLFPet>() { new PLFPet(1, PetType.CAT, "Test", new List<PetAttribute>()) } ConsoleHelper.Write("Send - ServerPacketDownloadPets"); return(new ServerPacketDownloadPets(petList)); }