none
Crear un Metodo WCF que retorne un mensaje en XML RRS feed

  • Pregunta

  • Buenas Noches:

    Tengo varios metodos en un Servicio WCF que actualmente retornan string pero como este servicio tiene como fin transportar datos de un sistema a un BUS de integración con SAP al retornar genera el mensaje XML  pero al ser una cadena string agrega una cabecera CDATA.  La consulta es Puedo Generar un metodo tipo XDOcument lo he intentado pero me genera error.

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
       <s:Body>
          <GetObtenerBPResponse xmlns="http://tempuri.org/">
             <GetObtenerBPResult><![CDATA[<mensaje>
      <PersonNumber>80500000</PersonNumber>
      <PersonFirstName>JARED</PersonFirstName>
      <PersonLastName>JARED</PersonLastName>
      <PersonLastName>ROMERO</PersonLastName>
      <CompanyNo>PGPSI1BG01</CompanyNo>
      <PersonJob>ESTUDIANTE</PersonJob>
      <PersonClass>E</PersonClass>
      <Vigencia>2017-02-28T00:00:00</Vigencia>
      <Codigo_Estado>2</Codigo_Estado>
      <Status_Registro>Registro Activo</Status_Registro>
    </mensaje>]]></GetObtenerBPResult>
          </GetObtenerBPResponse>
       </s:Body>
    </s:Envelope>

    Interface

     [OperationContract]
            [WebGet(RequestFormat = WebMessageFormat.Xml, ResponseFormat = WebMessageFormat.Xml, UriTemplate = "/ GetUpdatePerson /")]
            string GetObtenerBP(string user, string passw, string cod_Bp);

    ---Definicion del metodo

       public string GetObtenerBP( string user, string passw,string cod_Bp)
            {
                string mensaje;
                DataClassBoschDataContext db = new DataClassBoschDataContext();
                PERSON obj = db.PERSONs.Single(person => person.RESERVE6 == cod_Bp);
                string Valida;
                Valida = logon(user, passw);


                if (Valida == "Ha Ingresado a Bosch")
                {



                    try
                    {


                        //para obtener el COmpaniid de persons RQ Ronal Bus 31/07/2016 CH

                     
                        COMPANy objco = new COMPANy(); //Se instancia la compania
                        objco = db.COMPANies.Single(company => company.COMPANYID == obj.COMPANYID);
                        ACPERSON objc = db.ACPERSONs.Single(acperson => acperson.PERSID == obj.PERSID);
                        decimal status;
                        string COMPANYNO;
                        COMPANYNO = objco.COMPANYNO;
                        status = obj.STATUS;


                        if (cod_Bp != "" && status == 1)
                        {

                            XDocument Arbolmsj = new XDocument(
                                           new XElement("mensaje",
                                           new XElement("PersonNumber", obj.PERSNO),
                                          new XElement("PersonFirstName", obj.FIRSTNAME),
                                          new XElement("PersonLastName", obj.FIRSTNAME),
                                          new XElement("PersonLastName", obj.LASTNAME),
                                          new XElement("CompanyNo", COMPANYNO),
                                          new XElement("PersonJob", obj.JOB),
                                          new XElement("PersonClass", obj.PERSCLASS),
                                          new XElement("Vigencia", objc.AUTHUNTIL),
                                          new XElement("Codigo_Estado", 2),
                                          new XElement("Status_Registro", "Registro Activo"))



                                );





                            


                             mensaje = Arbolmsj.ToString();







                        }
                        else
                        {
                            if (cod_Bp != "" && status == 0)
                            {


                                XDocument Arbolmsj = new XDocument(
                                               new XElement("mensaje",
                                               new XElement("PersonNumber", obj.PERSNO),
                                              new XElement("PersonFirstName", obj.FIRSTNAME),
                                              new XElement("PersonLastName", obj.FIRSTNAME),
                                              new XElement("PersonLastName", obj.LASTNAME),
                                              new XElement("CompanyNo", COMPANYNO),
                                              new XElement("PersonJob", obj.JOB),
                                              new XElement("PersonClass", obj.PERSCLASS),
                                              new XElement("Vigencia", objc.AUTHUNTIL),
                                              new XElement("Codigo_Estado","2"),
                                              new XElement("Status_Registro", "Registro Inactivo"))


                                     );

                                mensaje = Arbolmsj.ToString();



                            }
                            else
                            {
                                XDocument Arbolmsj = new XDocument(
                                                new XElement("mensaje",
                                                new XElement("PersonNumber", obj.PERSNO),
                                               new XElement("PersonFirstName", obj.FIRSTNAME),
                                               new XElement("PersonLastName", obj.FIRSTNAME),
                                               new XElement("PersonLastName", obj.LASTNAME),
                                               new XElement("CompanyNo", COMPANYNO),
                                               new XElement("PersonJob", obj.JOB),
                                               new XElement("PersonClass", obj.PERSCLASS),
                                               new XElement("Vigencia", objc.AUTHUNTIL),
                                               new XElement("Codigo_Estado", "2"),
                                               new XElement("Status_Registro", "Registro Inactivo"))


                                      );

                                mensaje = Arbolmsj.ToString();
                                // mensaje = mensaje1;
                            }
                        }


                    }

                    catch (Exception ex)
                    {
                        // mensaje = "Excepcion" + ex.Message;

                        XDocument Arbolmsj = new XDocument(
                                              new XElement("mensaje",
                                              new XElement("PersonNumber", "NULL"),
                                             new XElement("PersonFirstName", "NULL"),
                                             new XElement("PersonLastName", "NULL"),
                                             new XElement("PersonLastName", "NULL"),
                                             new XElement("CompanyNo", "NULL"),
                                             new XElement("PersonJob", "NULL"),
                                             new XElement("PersonClass", "NULL"),
                                             new XElement("Vigencia", "NULL"),
                                             new XElement("Codigo_Estado", "2"),
                                             new XElement("Status_Registro", "Registro Inactivo"))


                                    );

                        mensaje = Arbolmsj.ToString();


                    }
                }
                else
                {

                    XDocument Arbolmsj = new XDocument(
                                              new XElement("mensaje",
                                            
                                             new XElement("Mensaje", "Revise sus Parametros de Autenticacion"),
                                             new XElement("Status_Registro", "Registro Inactivo"))


                                    );

                    mensaje = Arbolmsj.ToString();
                    //mensaje = "Revise sus Parametros de Autenticacion";
                }



                return mensaje;
            }

    Quedo atento a sus comentarios


    Carlos Alberto Hernández R. CEO -Xtreme Business Solutions Movil: 3102334026 Bogota- Colombia

    miércoles, 14 de septiembre de 2016 2:17

Todas las respuestas

  • Buenas Tardes 

    Ya lo he solucionado creado los metodos como tipo XElemnt

     public XElement  GetSavePerson(string user, string passw,string cod_Bp, string person_class, string person_reserved1, string Person_Number, 
                string Person_Lastname, string Person_Firstname, decimal Person_Sex, string CompanyNo, 
                string Person_Town, string Person_Street, string Person_Cellphone, string Person_Phone,
                DateTime Person_ValidFrom, string Person_ValidTo, string Person_EMail, string PhotoPerPerson_PhotoName,
                string Person_Job, string Authorization_shortname, string Card_Number)
            {
                XElement mensaje;
                DataClassBoschDataContext db = new DataClassBoschDataContext();

                string Valida;
                Valida = logon(user, passw);


                if (Valida == "Ha Ingresado a Bosch")
                {
                    try
                    {
                        Personids Personid = new Personids();
                        
                        string companyid;
                        COMPANy objco = new COMPANy(); //Se instancia la compania 
                                                       //para obtener el COmpaniid de persons RQ Ronal Bus 31/07/2016 CH
                        objco = db.COMPANies.Single(company => company.COMPANYNO == CompanyNo);
                       
                        if (objco.COMPANYID=="") {

                            //mensaje = "El CompanyNo:" + CompanyNo + " " + "No existe";

                            XElement msj1 = new XElement("mensaje",
                           new XElement("mensaje", "El CompanyNo:" + CompanyNo + " " + "No existe"),
                            new XElement("Estado", 1));
                            mensaje = msj1;

                        }
                         
                        companyid = objco.COMPANYID;//Almacena el Companiid obtenido CH 31/07/2016

                        PERSON obj = new PERSON();
                        
                        obj.RESERVE6 = cod_Bp;
                        obj.PERSID = Personid.GenerarPerson();
                        obj.PERSCLASS = Convert.ToChar(person_class);
                        obj.CLIENTID = "FF0000D300000002";
                        obj.PERSCLASSID = "FF0000E500000003";
                        obj.RESERVE1 = person_reserved1;
                        obj.PERSNO = Person_Number;
                        obj.LASTNAME = Person_Lastname;
                        obj.FIRSTNAME = Person_Firstname;
                        obj.SEX = Person_Sex;
                        obj.COMPANYID = companyid;
                        obj.CITY = Person_Town;
                        obj.STREETHOUSENO = Person_Street;
                        obj.PHONEMOBILE = Person_Cellphone;
                        obj.PHONEOFFICE = Person_Phone;
                        obj.DATECREATED = DateTime.Now;
                        obj.RESERVE3 = Person_ValidTo;
                        obj.EMAIL = Person_EMail;
                        obj.RESERVE4 = PhotoPerPerson_PhotoName;
                        obj.JOB = Person_Job;
                        obj.RESERVE5 = Authorization_shortname;
                        obj.NUMBERPLATE = Card_Number;
                        obj.STATUS = 1;
                        obj.REVISER = "BIS";
                        db.PERSONs.InsertOnSubmit(obj);
                        db.SubmitChanges();


                        //Registro en ACPersons
                        ACPERSON obap = new ACPERSON();
                        AcPersid id = new AcPersid();
                        obap.ID = id.GenerarAcid();
                        obap.PERSID = obj.PERSID;
                        obap.TMID = null;
                        obap.AUTHFROM = Person_ValidFrom;
                        obap.AUTHUNTIL = Convert.ToDateTime(Person_ValidTo);
                        obap.EXTOPENTIME = 0;
                        obap.LOCKED = 0;
                        obap.DATECREATED = DateTime.Now;
                        obap.DATEUPDATED = null;
                        obap.REVISER = "BIS";
                        obap.DOMAIN = 1000;
                        obap.SUBDOMAIN = null;
                        obap.LASTACCESS = null;
                        obap.AREAID = null;
                        obap.STATUS = 1;
                        obap.WEIGHT = null;
                        obap.RADIATIONLIMIT = null;
                        obap.DELTARADIATIONLIMIT = null;
                        obap.RADIATIONCONTROL = 1;
                        obap.RADIATIONO = null;
                        obap.CLIENTID = "FF0000D300000002";
                        obap.VIP = 0;
                        obap.PINCODECHECK = 1;
                        db.ACPERSONs.InsertOnSubmit(obap);
                        db.SubmitChanges();

                        XElement msj = new XElement("mensaje",
                            new XElement("mensaje", "El registro Ha sido Creado Exito"),
                             new XElement("Estado", 1));





                        //XDocument msj = new XDocument(
                        //   new XElement("mensaje",
                        //  new XElement("mensaje","El registro Ha sido Creado Exito"),
                        //  new XElement("Estado", "1"))
                        //  );


                        mensaje = msj;
                      

                        //mensaje = msj.ToString();

                    }

                    catch (Exception ex)
                    {
                        string ex1;
                        ex1 = ex.Message;
                        //XDocument msj = new XDocument(
                        // new XElement("mensaje",
                        // new XElement("mensaje","No se ha podido Crear el Registro"),
                        // new XElement("Estado", ex.Message),
                        // new XElement("Estado", "0"))
                        // );

                        XElement msj = new XElement("mensaje",
                        new XElement("mensaje", "No se ha podido Crear el Registro"),
                         new XElement("Estado", 0));


                        mensaje = msj;

                    }
                }
                else
                {

                    //XDocument msj = new XDocument(
                    //  new XElement("mensaje",
                    // new XElement("mensaje","Revise sus Parametros de Autenticacion"),
                    // new XElement("Estado", "0"))
                    // );

                    XElement msj = new XElement("mensaje",
                       new XElement("mensaje", "Revise sus Parametros de Autenticacion"),
                        new XElement("Estado", 0));


                    mensaje = msj;


                }
                return mensaje;


            }


    Carlos Alberto Hernández R. CEO -Xtreme Business Solutions Movil: 3102334026 Bogota- Colombia

    jueves, 15 de septiembre de 2016 21:33