public override OperationResponse Handle(OperationRequest request, SendParameters sendParameters) { DeleteCharacterOperationRequest operation = new DeleteCharacterOperationRequest(peer.Protocol, request); if (!operation.IsValid) { return(InvalidParametersOperationResponse((SelectCharacterOperationCode)request.OperationCode)); } if (string.IsNullOrEmpty(operation.GameRefId) || string.IsNullOrEmpty(operation.CharacterId)) { return(new OperationResponse(request.OperationCode) { ReturnCode = (short)ReturnCode.InvalidOperationParameter, DebugMessage = "GameRefId or CharacterId invalid operation parameter" }); } DbPlayerCharactersObject updatedPlayerCharactersObject = null; if (!this.application.Players.DeleteCharacter(operation.GameRefId, operation.CharacterId, out updatedPlayerCharactersObject)) { return(new OperationResponse(request.OperationCode) { ReturnCode = (short)ReturnCode.Fatal, DebugMessage = "Error of deleting character" }); } if (updatedPlayerCharactersObject == null) { return(new OperationResponse(request.OperationCode) { ReturnCode = (short)ReturnCode.Fatal, DebugMessage = "Error of receiving PlayerCharactersObject" }); } DeleteCharacterOperationResponse responseObject = new DeleteCharacterOperationResponse { Characters = updatedPlayerCharactersObject.GetInfo() }; return(new OperationResponse(request.OperationCode, responseObject)); }
public override OperationResponse Handle(OperationRequest request, SendParameters sendParameters) { CreateCharacterOperationRequest operation = new CreateCharacterOperationRequest(peer.Protocol, request); if (!operation.IsValid) { return(InvalidParametersOperationResponse((SelectCharacterOperationCode)request.OperationCode)); } var characterName = application.DB.GetCharacterName(operation.DisplayName); if (characterName != null) { return(new OperationResponse(request.OperationCode) { ReturnCode = (short)ReturnCode.CharacterWithSameNameAlreadyExists, DebugMessage = operation.DisplayName }); } DbPlayerCharactersObject player = null; var response = this.application.Players.CreateCharacter( request, sendParameters, operation.GameRefId, operation.DisplayName, (Race)operation.Race, (Workshop)operation.Workshop, operation.icon, out player); if (player != null) { peer.SetCharacterId(player.SelectedCharacterId); application.DB.WriteCharacterName(operation.GameRefId, response.Parameters[(byte)ParameterCode.CharacterId].ToString(), operation.DisplayName); } return(response); }
public void Save(DbPlayerCharactersObject document) { var result = this.PlayerCharacters.Save(document); }