コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }
コード例 #3
0
ファイル: DbReader.cs プロジェクト: OlegGelezcov/neb
 public void Save(DbPlayerCharactersObject document)
 {
     var result = this.PlayerCharacters.Save(document);
 }