Laden...

Forenbeiträge von impish1234 Ingesamt 5 Beiträge

05.09.2017 - 09:44 Uhr

@LaTino

Danke nochmals für die Hilfe, hab das ganze mit SVCUTIL aus SDK v8.1.A zum laufen gebracht.

04.09.2017 - 07:24 Uhr

Danke für den Hinweis, kann ich das irgendwie anpassen das eventuell der erste <TAG> nicht im BODY angezeigt wird - hab mich da am weekend ein wenig beschäftigt damit aber nichts passendes gefunden?

Ich versteh aber nicht warum der code welcher von svcutil generiert wird (xsd & wsdl), nicht ident ist mit den Ergebnis welches erwartet wird.

auf jeden fall danke an alle für die hilfe 👍

01.09.2017 - 11:09 Uhr

finde den Übeltäter aber nicht 😭 - such ja auch schon 2 tage nach diesen.....

Hab jetzt mal ein komplett abgespeckte version des ganzen projects gepackt - eventuell helft das mir zu helfen. 😁

wünsche aber allen noch ein nice weekend - und nochmals danke für die hilfe

01.09.2017 - 10:22 Uhr

Danke gleich mal an alle.....

Der ganze Namespace wurde ja von svcutil.exe erstellt - und ich kann diese maximal auf 500 Zeilen reduzieren.

Hier aber mal nur die CouponActivationRequest Klasse daraus


    public partial class CouponActivationRequest
    {
        private CouponActivationRequestCouponActivations couponActivationsField;
        private string versionField;
        private string requestIdField;
        private Command commandField;
        private string compensationForRequestField;

        [System.Xml.Serialization.XmlElementAttribute(Form = System.Xml.Schema.XmlSchemaForm.Unqualified)]
        public CouponActivationRequestCouponActivations couponActivations
        {
            get
            {
                return this.couponActivationsField;
            }
            set
            {
                this.couponActivationsField = value;
            }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public string version
        {
            get
            {
                return this.versionField;
            }
            set
            {
                this.versionField = value;
            }
        }

        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "positiveInteger")]
        public string requestId
        {
            get
            {
                return this.requestIdField;
            }
            set
            {
                this.requestIdField = value;
            }
        }

        [System.Xml.Serialization.XmlAttributeAttribute()]
        public Command command
        {
            get
            {
                return this.commandField;
            }
            set
            {
                this.commandField = value;
            }
        }

        [System.Xml.Serialization.XmlAttributeAttribute(DataType = "positiveInteger")]
        public string compensationForRequest
        {
            get
            {
                return this.compensationForRequestField;
            }
            set
            {
                this.compensationForRequestField = value;
            }
        }
    }

01.09.2017 - 08:18 Uhr

Hallo,

Ich arbeite zur Zeit an einer Schnittstellen Interface, und hab mich hier für c# wcf entschieden.
Es funktioniert so ziemlich alles, bis auf einen Request den ich zusammen bauen muss, mir aber dies nicht so gelingt wie er aussehen muss. Habe nun nach 2 Tagen googlen keine Ideen mehr und suche nun bei Profis um Hilfe.

Meine Frage ist wie kann ich den ersten <tem:CouponActivationRequest> unterdrücken, bzw. warum gibt es diesen Eintrag im root des bodys (Name der Funktion???).

<body>
  <tem:CouponActivationRequest>
  <tem:CouponActivationRequest version="1.01.000" requestId="3002" command="activation">

So sieht der Request mit meinem Code aus...... (SOAP UI)

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/" xmlns:typ="http://www.loyaltypartner.com/lm/core/couponing/couponactivation/types">
   <soapenv:Header/>
   <soapenv:Body>
      <tem:CouponActivationRequest>
         <tem:CouponActivationRequest version="1.01.000" requestId="3002" command="activation">
            <typ:couponActivations>
               <couponActivation>
                  <couponIdentifier>100000</couponIdentifier>
                  <groupingId>6700</groupingId>
                  <activationChannel>O</activationChannel>
                  <validUntil>2011-11-12T00:00:00.000+01:00</validUntil>
                  <cards>
                     <mainCardNumber>3083421064757539</mainCardNumber>
                     <cardNumber>?</cardNumber>
                  </cards>
                  <targetgroupId>1516</targetgroupId>
                  <marketingCode>OC32500009</marketingCode>
                  <barcode>?</barcode>
                  <validFrom>2011-11-12T00:00:00.000+01:00</validFrom>
                  <activatedAt>2011-11-12T00:00:00.000+01:00</activatedAt>
               </couponActivation>
            </typ:couponActivations>
         </tem:CouponActivationRequest>
      </tem:CouponActivationRequest>
   </soapenv:Body>
</soapenv:Envelope>

So sollte das ganze aussehen......

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
    <ns2:couponActivationRequest xmlns:ns2="http://www.loyaltypartner.com/lm/core/couponing/couponactivation/types" requestId="3002" command="activation" version="1.01.000">
      <couponActivations>
         <couponActivation>
         <couponIdentifier>100000</couponIdentifier>
         <groupingId>6700</groupingId>
         <activationChannel>O</activationChannel>
         <validUntil>2011-11-12T00:00:00.000+01:00</validUntil>
         <cards>
           <mainCardNumber>3083421064757539</mainCardNumber>
         </cards>
         <targetgroupId>1516</targetgroupId>
         <marketingCode>OC32500009</marketingCode>
         <validFrom>2011-11-12T00:00:00.000+01:00</validFrom>
         <activatedAt>2011-11-12T00:00:00.000+01:00</ activatedAt >
         </couponActivation>
      </couponActivations>
    </ns2:couponActivationRequest>
  </S:Body>
</S:Envelope>

Der C# Code dazu...

**IService.cs

using System.ServiceModel;
using MTHPayback_WSDL;

namespace MTHPayback
{
    [ServiceContract]
    public interface IService
    {
        [OperationContract]
        [XmlSerializerFormat]
        CouponActivationResponse CouponActivationRequest(CouponActivationRequest CouponActivationRequest);
    }
}

**Service.svc.cs


using System;
using MTHPayback_WSDL;

namespace MTHPayback
{
    public class Service : IService
    {
        public CouponActivationResponse CouponActivationRequest(CouponActivationRequest pbReq)
        {
            CouponActivationResponse pbResp = new CouponActivationResponse();
            pbResp.result = new CouponActivationResult();
            pbResp.requestId = pbReq.requestId;
            pbResp.version = pbReq.version;

            try
            {
            }
            catch (Exception ex)
            {
                pbResp.result.resultCode = CouponActivationResultCode.InternalError;
            }
            finally
            {
            }

            return (pbResp);
        }
    }
}

- knapp 700(!) Zeilen Code entfernt - Coffeebean