Completed

C# Vs2015 - Servicio Wcf a partir de Documentación

Published on the November 30, 2018 in IT & Programming

About this project

Open

Especificaciones Proyecto Siteminder

Documentación Siteminder:
https://siteminder.atlassian.net/wiki/spaces/SMXAPPS/overview

Otros recursos:
•    WSDL: adjuntado está el .WSDL exacto que se necesita (SMXAPP_API_FLAT.wsdl)
•    WSDL en .cs: adjuntado está el archivo “wsdl.cs” que es una clase de C# que fue hecho a partir del .WSDL original mediante la herramienta “svcutil”. Se puede usar directamente esta clase para hacer la estructura, no hay ningún problema y es de hecho la manera más correcta de hacerlo porque ya viene todo pre-definido, pero en caso de que no se utilice les servirá de referencia para lograr el entregable.
•    Full XML Request Example: adjuntado está el archive “Full XML Request Example” que contiene el XML máximo que la aplicación debe ser capaz de recibir y dar una respuesta.

Extracto Proyecto
    Lo que se necesita es que se cree un servicio en C# que sea consumido por 3eros, mediante WCF y Visual Studio 2015, que sea capaz de leer un XML de entrada especificado como “Maximum Content XML Sample” de la documentación de Siteminder. El proyecto tiene que contemplar la instalación de este servicio en un servidor a elección Windows en AWS, que puede ser Windows Server 2012, Windows Server 2016, y cualquiera de sus derivados (R2, station, standard, data center edition, etc..).
Se debe entregar:
•    Código del proyecto en C# utilizando Visual Studio 2015
•    Instalación de proyecto en una máquina virtual AWS (entregada por nosotros)

Explicación de negocio
    Siteminder es una empresa del mundo del travel que se especializa en ser distribuidores de reservas para otras empresas (B2B) que quieran conectarse al sistema de reservas de algún hotel. Básicamente es un intermediario entre un hotel y una empresa que quiera prestarle servicios que tengan alguna relación con las reservas de ese hotel.
    Esta especificación del proyecto no busca que se haga ninguna lógica con la data que Siteminder va a “empujar” a nuestros sistemas, simplemente que se puedan leer todos los campos especificados en el “Maximum Content XML Sample”, luego de eso nosotros nos encargaremos de la lógica de negocios
Especificaciones Técnicas
Header

    Tal y como sale especificado en la documentación, se tiene que validar que cualquier input de XML que entre tiene que tener este formato de Header y con esas especificaciones de seguridad exactas. El usuario y contraseña se puede utilizar cualquiera de pruebas para el entregable.

Cuerpo / Body
•    Todo xml recibido por el servicio debe aceptar la estructura exacta que aparece en la documentación, en la sección:
https://siteminder.atlassian.net/wiki/spaces/SMXAPPS/pages/234946685/Maximum+Content+XML+Sample

•    Fijarse muy bien que hay clases / campos que pueden venir 1 o varios dentro de uno mismo. Por ejemplo el primero que aparece “Source”:


•    Se deben considerar todos los parámetros, tanto como “XMLElementAttribute” (en el punto anterior el campo “ResStatus” sería uno de ellos) como el valor de una de las etiquetas del XML (en el punto anterior sería “CompanyName0” de la etiqueta “CompanyName”) especificados en la documentación.

•    Notar que todo XML que se recibe contiene un cuerpo que comienza con “OTA_HotelResNotifRQ” con un objecto de “HotelReservations” adentro de él que es in arreglo del objeto “HotelReservation” y pueden ser N de ellos.

•    Notar que toda respuesta debe ser de un objeto “OTA_HotelResNotifRS” con las especificaciones de la documentación. En específico, se deben considerar 2 escenarios:

o    Respuesta “success”: lo que aparece acá:
https://siteminder.atlassian.net/wiki/spaces/smxapps/pages/199439075/smx+for+applications+api#smxforapplicationsapi-ota_hotelresnotifrssample

o    respuesta con “errors”: lo que aparece acá:
https://siteminder.atlassian.net/wiki/spaces/SMXAPPS/pages/556367921/Error+Handling
    Como se comentó en esta documentación anteriormente, no es necesario que se aplique la lógica de cuándo, porqué y/o cómo se devuelven estos estados de “success” y/o “errors”, sino que simplemente dar un ejemplo de cada uno con las estructuras establecidas.

Category IT & Programming
Subcategory Desktop apps
What is the scope of the project? Create a new app
Is this a project or a position? Project
I currently have I have specifications
Required availability As needed
API Integrations Other (Other APIs)
Required platforms Windows

Project duration 1 to 3 months

Skills needed

C#