/// <summary> /// Processes a delete character request and returns a response. /// </summary> /// <param name="packet"></param> private void ProcessDeleteCharacterRequest(DeleteCharacterPacket packet) { DeleteCharacterTypeEnum responseType = DeleteCharacterTypeEnum.Denied; if (Model.IsCharacterDeletionEnabled) { string filePath = DirectoryPaths.CharacterVaultDirectoryPath + Model.ConnectionUsernamesDictionary[packet.SenderConnection] + "/" + packet.FileName; using(PlayerCharacterFileAccess repo = new PlayerCharacterFileAccess()) { responseType = repo.DeletePlayerCharacterFile(filePath); } } else { responseType = DeleteCharacterTypeEnum.DeniedDisabled; } DeleteCharacterPacket response = new DeleteCharacterPacket(packet.FileName, responseType); Agent.SendPacket(response, packet.SenderConnection, NetDeliveryMethod.ReliableUnordered); }
private void DeleteCharacter(object sender, JavascriptMethodEventArgs e) { if (ViewModel.ActiveCharacter != null) { string fileName = ViewModel.ActiveCharacter.FileName; DeleteCharacterPacket packet = new DeleteCharacterPacket(fileName, DeleteCharacterTypeEnum.Request); if (!Object.ReferenceEquals(WinterEngineService.NetworkClient, null)) { WinterEngineService.NetworkClient.SendPacket(packet, NetDeliveryMethod.ReliableUnordered); } } }
/// <summary> /// Processes a packet containing the delete character response. /// </summary> /// <param name="packet"></param> private void ProcessDeleteCharacterResponsePacket(DeleteCharacterPacket packet) { if(packet.DeleteRequestType == DeleteCharacterTypeEnum.Accepted) { ViewModel.DeleteCharacterResponseMessage = "Your character has been deleted successfully."; } else if (packet.DeleteRequestType == DeleteCharacterTypeEnum.Denied) { ViewModel.DeleteCharacterResponseMessage = "Your request to delete your character has been denied by the server."; } else if (packet.DeleteRequestType == DeleteCharacterTypeEnum.DeniedDisabled) { ViewModel.DeleteCharacterResponseMessage = "The server has disabled character deletion."; } else if (packet.DeleteRequestType == DeleteCharacterTypeEnum.Error) { ViewModel.DeleteCharacterResponseMessage = "An error has occurred. Your character has not been deleted."; } else if (packet.DeleteRequestType == DeleteCharacterTypeEnum.FileNotFound) { ViewModel.DeleteCharacterResponseMessage = "Character does not exist."; } AsyncJavascriptCallback("DeleteCharacter_Callback", (int)packet.DeleteRequestType); }