public async Task <IHttpActionResult> Post([FromBody] EncodeMessageInfo encodeInformation)
        {
            if (encodeInformation == null)
            {
                return(BadRequest());
            }

            if (encodeInformation.SendingPMode == null)
            {
                return(BadRequest());
            }

            encodeInformation.SigningCertificatePassword = CertificateInfoRetriever.RetrieveCertificatePassword(this.Request).SigningPassword;

            var service = new EncodeService();

            var result = await service.CreateAS4Message(encodeInformation);

            if (result == null)
            {
                return(BadRequest());
            }

            if (result.Exception != null)
            {
                return(InternalServerError(result.Exception));
            }

            return(Ok(CreateEncodeResultFromContext(result)));
        }
        public async Task <IHttpActionResult> Post([FromBody] DecodeMessageInfo decodeInfo)
        {
            if (decodeInfo == null)
            {
                return(BadRequest());
            }

            var certificateInformation = CertificateInfoRetriever.RetrieveCertificatePassword(this.Request);

            decodeInfo.DecryptionCertificatePassword      = certificateInformation.DecryptionPassword;
            decodeInfo.SigningResponseCertificatePassword = certificateInformation.SigningPassword;

            try
            {
                var service = new DecodeService();

                var processingResult = await service.Process(decodeInfo);

                if (processingResult == null || processingResult.ReceivedMessageType == EbmsMessageType.Unknown)
                {
                    return(BadRequest());
                }

                return(Ok(processingResult));
            }
            catch (Exception ex)
            {
                return(InternalServerError(ex));
            }
        }