Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 7 Siguiente »

Subdirección de las Tecnologías de la Información y Comunicaciones

Área de Gobernanza y Calidad



Contenido



Resumen
  • Versión: 1.0.0
  • Fecha publicación:   
  • Entrada en vigor desde: 


Cumplimiento normativo

Las normas expuestas son de obligado cumplimiento. La STIC podrá estudiar los casos excepcionales los cuales serán gestionados a través de los responsables del proyecto correspondiente y autorizados por el Área de Gobernanza de la STIC. Asimismo cualquier aspecto no recogido en estas normas deberá regirse en primera instancia por las guías técnicas correspondientes al esquema nacional de seguridad y esquema nacional de interoperabilidad según correspondencia y en su defecto a los marcos normativos y de desarrollo software establecidos por la Junta de Andalucía, debiendo ser puesto de manifiesto ante la STIC.

La STIC se reserva el derecho a la modificación de la norma sin previo aviso, tras lo cual, notificará del cambio a los actores implicados para su adopción inmediata según la planificación de cada proyecto.

En el caso de que algún actor considere conveniente y/o necesario el incumplimiento de alguna de las normas y/o recomendaciones, deberá aportar previamente la correspondiente justificación fehaciente documentada de la solución alternativa propuesta, así como toda aquella documentación que le sea requerida por la STIC para proceder a su validación técnica.

Contacto Arquitectura: l-arquitectura.stic@juntadeandalucia.es


Histórico de cambios

Versión

1.3.1 Bug fix

Fecha publicación

09-11-2020

Fecha entrada en vigor

09-11-2020

Alcance

  • Corrección en la definición de determinadas clases Entity respecto a la  definición del esquema de BBDD y envío de la versión de la API en el campo user-agent de la invocación al servicio Web de BDU.  

    •  Se ha eliminado la definición de esquema de BBDD específico en las siguientes entidades:

      • ComunidadEntity

      • FarmaciaTipoAportacionEntity

      • FinanciacionEntity

      • LocalidadEntity

      • PaisEntity

      • SexoEntity

      • SituacionActualEntity

      • TipoViaEntity

    • En la clase proxy genérico, definida en bduApiClient/WebService/Boundary/WSBduManager.cs, al invocar al servicio web de BDU, se ha añadido  la versión actual de la API en el campo User-Agent.        

Versión

1.3.0 Upgrade

Fecha publicación

15-07-2020

Fecha entrada en vigor

15-07-2020

Alcance

  •  Añadido consulta para obtener las solicitudes de decreto, en el que se filtra por NUHSA. Los cambios han sido los siguientes:

     Proyecto SAS.BduApiClient.Core

    • Boundary/Contracts/Repositories

      • IUserRepository: Mecanismos de obtención de información referente a usuarios utilizando la réplica de BBDD. Se ha añadido el siguiente método:

                   

                    // Mecanismo de obtencion de información de Bdu de solicitudes decreto. Devuelve valores de CONVENIO_AP, SITUACION_ACTUAL, CLAVE_MEDICA, VALIDADO, ESPECIALIDAD_CM de la tabla de BDU por nuhsa.

                     BduDecreeRequest FindBduElementsDecreeRequest(QuerysBduUserSearchDto criteria);

           

    • Boundary/Contracts/Services

      • IBduDecreeRequestService: Mecanismos de obtención de información referente a las solicitudes de decreto vía réplica de BBDD.

                  

                    //Mecanismo de obtencion de información de Bdu de solicitudes decreto.

                      BduDecreeRequest FindBduElementsDecreeRequest(IGenericAuthContext<object> petitionerBdu, QuerysBduUserSearchDto criteria);             

    • Entity

      • BduDecreeRequest: Petición de decreto

 Proyecto BduApiClient

    • api/boundary

      • BduDecreeRequestService: Mecanismos de obtención de información de bdu referente a una solicitud decreto de un usuario. Implementa la interfaz IBduDecreeRequestService


Proyecto SAS.BduApiClient.ManagedDataAccess.Oracle
Componente utilizado internamente por las clases servicios que se conenectan a BDU vía réplica. Se ha añadido lo siguiente: 

    • Boundary

             

      • UserRepository. Mecanismos de obtención de información referente a los usuarios vía réplica de BBDD

                 Se añade el siguiente mecanismo de obtencion de información de BDU de solicitudes decreto, el cual devuelve los valores de CONVENIO_AP, SITUACION_ACTUAL, CLAVE_MEDICA, VALIDADO, ESPECIALIDAD_CM de la tabla BDU filtrado por NUHSA:

                   public BduDecreeRequest FindBduElementsDecreeRequest(QuerysBduUserSearchDto criteria)  

    • Control/Mapper

             

        • UsuarioBduSolicitudDecretoMapper. Clase para realizar el mapeo de las entidades relacionadas con usuario BDU.   

    • Entity

             

      • BduSolicitudDecreto. Entidad solicitud decreto de BDU.             

Versión

1.2.0 Upgrade

Fecha publicación

08-06-2020

Fecha entrada en vigor

08-06-2020

Alcance

  • Añadido posibilidad de definir el endpoint del servicio web de BDU por configuración

  • Permitir llamadas al servicio web de BDU vía HTTPS

  • Corregido minúsculas en el espacio de nombre api.boundary. Se ha cambiado a Api.Boundary.

  • Actualizada versión de MacoApiClient a la v2.4.3, la cual permite llamadas a su servicio web vía HTTPS

Versión

1.1.0 Upgrade

Fecha publicación

07-04-2020

Fecha entrada en vigor

07-04-2020

Alcance

  • Añadido dos nuevos servicios para consultar, vía réplica de BBDD, usuarios y mutuas. Los cambios han sido los siguientes:

     Proyecto SAS.BduApiClient.Core

    • Boundary/Contracts/Repositories

      • IMutualidadRepository: Interfaz de mecanismos de obtención de información referente a mutuas utilizando la réplica de BBDD. 

                   

                    //Mecanismo de obtención de información de todas las mutuas. 

                     IList<MutualInsurance> GetMutualInsurance();

                    /// Mecanismo de obtencion de información de todas las mutuas que cumplen con el criterio.

                     IList<MutualInsurance> FindMutualInsurances(QuerysMutualInsuranceDto criteria);

                         

      • IUserRepository: Mecanismos de obtención de información referente a usuarios utilizando la réplica de BBDD.

                  

                    //Mecanismo de obtención de información referente un usuario.

                     IList<BduUser> FindUserWithDetailed(QuerysBduUserSearchDto criteria);

                    

                    // Mecanismo de obtencion de información de Bdu de solicitudes decreto. Devuelve valores de CONVENIO_AP, SITUACION_ACTUAL, CLAVE_MEDICA, VALIDADO, ESPECIALIDAD_CM de la tabla de BDU por nuhsa.

                     BduDecreeRequest FindBduElementsDecreeRequest(QuerysBduUserSearchDto criteria);   

    • Boundary/Contracts/Services

      • IMutualInsuranceService: Mecanismos de obtención de información referente a las mutuas vía réplica de BBDD.

                    

                        //Mecanismo de obtención de información de todas las mutuas. 

                          IList<MutualInsurance> GetMutualInsurance(IGenericAuthContext<object> petitionerMutua);

                        // Mecanismo de obtencion de información de todas las mutuas que cumplen con el criterio.

                        IList<MutualInsurance> FindMutualInsurances(IGenericAuthContext<object> petitionerMutua, QuerysMutualInsuranceDto criteria);

                     

    • Entity/dto  

      • QuerysMutualInsuranceDto**: Entidad para definir el criterio de búsqueda de mutuas

                    public decimal? Id { get; set; } // Identificador numérico de la mutua

            

    • Entity       

      • MutualInsurance: Compañía de seguros         

Proyecto BduApiClient

    • api/boundary

      • BduUserService: Mecanismos de obtención de información referente a los usuarios mediante réplicas de BBDD

      • MutualInsuranceService: Mecanismos de obtención de información referente a las mutuas utilizando la implementación de réplicas de BBDD.       

  Proyecto SAS.BduApiClient.ManagedDataAccess.Oracle
    Componente utilizado internamente por las clases servicios que se conenectan a BDU vía réplica.

    • Boundary

      • ConfigContextApiBduConnection. Configuración de conexiones a la réplica de BBDD de BDU

      • ManagedConfigBduConnection. Entidad de conexión a contexto

      • MutualidadRepository. Mecanismos de obtención de información referente a mutuas vía réplica de BBDD

      • UserRepository. Mecanismos de obtención de información referente a los usuarios vía réplica de BBDD


    •  Control/Mapper

      • MutualidadesMapper. Clase para realizar el mapeo de las entidades relacionadas con la Mutualidad.

      • MutualidadMapper. Clase para realizar el mapeo de las entidades relacionadas con la Mutualidad.

      • UsuarioBduMapper. Clase para realizar el mapeo de las entidades relacionadas con usuario BDU.

      • UsuarioBduSolicitudDecretoMapper. Clase para realizar el mapeo de las entidades relacionadas con la solicitud de decreto de usuario BDU.

      • UsuariosBduMapper. Clase para realizar el mapeo de las entidades relacionadas con usuarios BDU.

    • Entity

      • BduSolicitudDecreto. Entidad solicitud decreto de BDU.

      • Mutualidad. Entidad de mutualidad.

      • UsuarioBdu.  Entidad usuario BDU.

    • Entity/EntityFramework/Bdu

      • BduConexion.  Contexto de conexión a la replica de BDU. 

      • BduEntity. Entidad de BDU. 

      • BduManejadoConnect. Clase para utilizar la conexión de BDU en un contexto manejado

      • CausasPasivoEntity. Entidad de las causas pasivo.

      • ComunidadEntity. Entidad de comunidad.

      • FarmaciaTipoAportacionEntity. Entidad de farmacia tipo aportacion. 

      • FinanciacionEntity.  Entidad financiación. 

      • LocalidadEntity. Entidad de localidad.

      • MutualidadEntity. Entidad de mutualidad. 

      • PaisEntity. Entidad de pais.

      • SexoEntity. Entidad de sexo. 

      • SituacionActualEntity. Entidad de la situación actual.

      • TipoViaEntity. Entidad de tipo via. 

    • Entity/EntityFramework/Exception

      • ContextException. Contexto para la excepciones producidas en la conexión a la réplica de BBDD de BDU

    • Entity/EntityFramework/Projection  

      • BduProjection. Proyección de BDU.

      • CausasPasivoProjection. Proyección de las causas pasivo.

      • ComunidadProjection. Proyección de la comunidad.

      • FarmaciaTipoAportacionProjection. Proyección farmacia tipo aportacion.

      • FinanciacionProjection. Proyección financiación.

      • LocalidadProjection. Proyección de la localidad. 

      • MutualidadProjection.  Proyección de la mutualidad.

      • PaisProjection. Proyección del pais.

      • SexoProjection. Proyección del sexo.

      • SituacionActualProjection. Proyección de la situacion actual. 

      • TipoViaProjection. Proyección del tipo de via.   

Versión

1.0.3 Deps Update

Fecha publicación

19-02-2020

Fecha entrada en vigor

19-02-2020

Alcance

    Actualizada la versión del componente MacoApiClient a la v2.4.1, y la versión de oracle  a la v19.6

Versión

1.0.2 Bug fix

Fecha publicación

31-07-2019

Fecha entrada en vigor

31-07-2019

Alcance

  • Corregido error en el mapeo de los datos de ContactInformation.

  • Actualizada versión de la librería de MacoApiClient a v2.0.1

Versión

1.0.1 Bug fix

Fecha publicación

23-04-2019

Fecha entrada en vigor

23-04-2019

Alcance

      Se actualiza la versión del componente SASUtils.Xml por la v1.0.1, debido a un error en el método obtener texto del nodo XML

Versión

1.0.0 Versión inicial .NET Standard 2.0.

Fecha publicación

12-03-2019

Fecha entrada en vigor

12-03-2019

Alcance


  Proyecto SAS.BduApiClient.Core

      •  Boundary/Contracts/Services

        • IBduSearch: Interfaz del servicio de búsqueda de BDU

                       

                      //Búsqueda de usuarios, pasando como argumento información del usuario peticionario de la consulta y 

                      // criterio de búsqueda 

                      List<BduUser> FindUsers(IGenericAuthContext<T> petitionerUser, QuerysBduUserSearchDto querysBduUserSearchDto);

                    

      • Entity/dto

        • QuerysBduUserSearchDto: Entidad para definir el criterio de la consulta de usuarios de BDU

                    

                      public List<string> Nuhsas { get; set; }    //Código nuhsas

                      public string SocialSecurityNumber { get; set; }  // Número de seguridad social

                      public string AffiliationNumber { get; set; } // Número de afiliación

                      public string NUHSA { get; set; }// Código NUHSA

                      public string CodSns { get; set; } // Código SNS

                      public string BirthDateYear { get; set; } //Fecha de nacimiento

                      public bool FarmaciaInfo { get; set; } //True si la consulta devolverá información de farmacia

                      public bool FullAddress { get; set; }  //True si la consulta devolverá información de la dirección completa del usuario 

                      public string DocumentIdType { get; set; }   // Tipo del identificador del documento

                      public string DocumentType { get; set; }   // Tipo de documento

                      public string DocumentId { get; set; }  //Identificador del documento

                      public string Name { get; set; }  //Nombre del usuario    

                      public string Surname { get; set; }       //Primer apellido del usuario

                      public string SecondSurname { get; set; }    // segundo apellido del usuario

                      public string ProvinceId { get; set; } //identificador de la provincia

                      public bool DetailedInfo { get; set; } // True si se desea mostrar información detallada

      • Entity

        • Address: Dirección del usuario

        • Adscription: Adscripción

        • BduDisplacement: Desplazamiento BDU. Deriva de la clase Displacement

        • BduUser: Usuario BDU

        • Displacement: Desplazamiento

        • NursingAdscription: Adscripción de Enfermería

        • TeamAdscription: Equipo de Adscripción      

SAS.BduApiClient

Introducción


En el presente documento se presenta la librería SAS.BduApiClient, componente .NET Standar 2.0, para el acceso a datos de BDU.
Esta librería permite el acceso a los datos de BDU utilizando dos implementaciones diferentes: una que utiliza internamente el servicio web de BDU y otra que utiliza réplica de BBDD.

La versión actual de la librería , en su versión acceso a réplica de BBDD, solo dispone de métodos para acceso a la información de mutuas, decretos y los datos principales de usuarios de BDU. 

            

Dependencias


Nombre del componenteVersiónDescripción
System.ServiceModel.Duplex4.5.3Proporciona clases para consumir y comunicarse con servicios Dúplex
System.ServiceModel.Http4.5.3Gestiona solicitudes realizadas a través del protocolo HTTP
System.ServiceModel.NetTcp4.5.3Genera de forma predeterminada una pila de comunicación en tiempo de ejecución, que utiliza la seguridad de transporte, TCP para la entrega de mensajes
System.ServiceModel.Security4.5.3Se encarga de temas generales relacionados con la seguridad
SAS.Common.Core1.1.0Componente .NET común con clases e interfaces core de aplicaciones
SAS.Common.Kernel1.1.0Componente .NET kernel de aplicaciones, como interfaz mapper o diversas utilidades linq
SAS.MacoApiClient2.4.3Componente MacoApiClient
SASUtils.Parse1.0.0Componente utilidad para la conversión entre tipos
SASUtils.Xml1.0.1Componente .NET común para el tratamiento de XMLs
SAS.Common.OracleProvider1.3.3Componente .NET común para la configuración del proveedor de BBDD Oracle
EntityFramework6.2.0ORM de Microsoft para .NET
Oracle.ManagedDataAccess19.6.0Proveedor de acceso a datos de Oracle para .NET
Oracle.ManagedDataAccess.EntityFramework19.6.0ORM de Oracle para .NET

Errores conocidos


  • Bug al obtener texto de un nodo XML: Corregido desde de la version 1.0.1  (tic)

Integración de la librería

Acceder a nuget e instalar la librería SAS.BduApiClient.   

Configuración


La configuración de la API depende del tipo de implementación de servicios que se vaya a utilizar, según se acceda a los datos  mediante el Servicio Web de BDU o mediante réplicas de BBDD. Veamos cada una de ellas:

La siguiente configuración de ejemplo se añadiría en clase Startup de un proyecto ASP .NET MVC.

Primero, en el fichero Startup.cs, método ConfigureServices, inicializamos el contenedor de inyección de dependencia:
 
    public void ConfigureServices(IServiceCollection services)
    {
        ...
        ContainerDI.SetAsyncScopedLifestyle(); // establecer estilo de vida por defecto del contenedor de inyección. Permite procesar tanto operaciones asíncronas como síncronas
        ContainerDI.RegisterServices(ref services); 
        ...
    }
 
ContainerDI, clase del componente común SAS.Util.Injection, el cual permite el registro por inyección de dependencia de los diferentes servicios y tipos utilizados en el sistema.


  • Configuración de la API para acceder al Servicio Web de BDU
        En el fichero appsettings.json se define una sección en la que se establece el código del módulo en MACO y en otra sección, el endpoint del servicio web de BDU.
        
     
     (1) "MacoApiClient": {
          "MacoModule": "XXX" // el código concreto hay que solicitarlo a la OTI
      },
    (2) "WebServiceLocator": {
        "ServiceAddressBdu": "https://servicios.pre.sas.junta-andalucia.es/",
        "EndPointAddressBduSolicitud": "/usuario/wsBDU.ashx"
      }
     
      (1) Configuración del módulo en MACO, indicado por la OTI.
      (2) Configuración de la dirección URL del servicio web de BDU. En el ejemplo se hace referencia a la URL de PRE.
      


A continuación, en el fichero Startup.cs, método InitializeContainer() se registra, por inyección de dependencia, los diferentes servicios utilizados de la API.
  
    
       private void InitializeContainer()
        {
        ...
            #region Registrar BDU
  (3) ContainerDI.Register<IBduSearch<MacoUser>, BduSearch>(ContainerDI.LifeStyleContainer.Transient);

            (4) var bduApiConfig = new BduApiConfig(Configuration.GetSection("WebServiceLocator:ServiceAddressBdu").Value, Configuration.GetSection("MacoApiClient:MacoModule").Value){
            };
            (5) bduApiConfig.EndPoints = new Dictionary<BduApiClient.Api.Entity.EndPointType, string>
            {
                { SAS.BduApiClient.Api.Entity.EndPointType.Solicitud, Configuration.GetSection("WebServiceLocator:EndPointAddressBduSolicitud").Value }
            };
            (6) ContainerDI.Register<IBduApiConfig>(() => bduApiConfig,  ContainerDI.LifeStyleContainer.Transient);
            (7) ContainerDI.Register<IBduUserManager, BduUserManager>(ContainerDI.LifeStyleContainer.Transient);
            (8) ContainerDI.Register<IBduExceptionManager, BduExceptionManager>(ContainerDI.LifeStyleContainer.Transient);
            (9) ContainerDI.Register<IWsBduManager, WsBduManager>(ContainerDI.LifeStyleContainer.Transient);
            #endregion
            ...
        }
    

     
   (3) Configuración del servicio de búsqueda de BDU que utiliza internamente el servicio web de BDU
   (4) Configuración de la API de BDU, indicando url de BDU y código de la aplicación en MACO
   (5) Configuración el endpoint del Servicio web de BDU
   (6) Registro del tipo BDUApiConfig que implementa la interfaz de configuración de BDU, IBduApiConfig
   (7) Registro del tipo BduUserManager, que implementa la interfaz IBduUserManager
   (8) Registro del tipo BduExceptionManager, que implementa la interfaz IBduExceptionManager
   (9) Registro del tipo WsBdumanager, que implementa la interfaz IWsBduManager   


  • Configuración de la API versión Réplica de BBDD     

        private void InitializeContainer()
        {
        ...
            #region Registrar BDU
        (10)  ContainerDI.Register<IBduSearch<object>, BduUserService>(ContainerDI.LifeStyleContainer.Transient);
        (11)  ContainerDI.Register<IMutualInsuranceService<object>, MutualInsuranceService>(ContainerDI.LifeStyleContainer.Transient);
        (12)  ContainerDI.Register<IBduDecreeRequestService<object>, BduDecreeRequestService>(ContainerDI.LifeStyleContainer.Transient);
        (13)  ContainerDI.Register<IUserRepository, UserRepository>(ContainerDI.LifeStyleContainer.Transient);
        (14)  ContainerDI.Register<IMutualidadRepository, MutualidadRepository>(ContainerDI.LifeStyleContainer.Transient);
        (15)  // Conexion a la réplica de BDU
            ContainerDI.Register<IConfigContextApiConnection<SchemaType>>(() =>
            new ConfigContextApiBduConnection(new ManagedConfigConnectionBase<SchemaType>[]
                {
                    new ManagedConfigConnectionBase<SchemaType>(ConfigurationManager.ConnectionStrings["BDUConnection"].ConnectionString, SchemaType.Bdu, "NOMBRE DEL ESQUEMA")
                })
            , ContainerDI.LifeStyleContainer.Transient);
         #endregion
            ...
        }
           
   (10) Registro del servicio BduUserService, que implemeneta la interfaz IBduSearch. Permite el acceso a datos de usuario vía réplica de BBDD.
   (11) Registro del servicio MutualInsuranceService, que implemeneta la interfaz IMutualInsuranceService, para el acceso a datos de mutuas vía réplica.
   (12) Registro del servicio BduDecreeRequestService, que implemeneta la interfaz IBduDecreeRequestService, para el acceso a datos de decretos vía réplica.
   (13) Registro del tipo UserRepository que implementa la interfaz IUserRepository
   (14) Registro del tipo MutualidadRepository que implementa la interfaz IUseIMutualidadRepository
   (15) Configuración del contexto de BBDD con el tipo concreto ConfigContextApiBduConnection. Recibe como parámetros la cadena de conexión de la réplica de BDU, tipo de esquema Bdu y nombre del esquema de la BBDD.

Criterios


El objeto QuerysBduUserSearchDto, es la representación de los criterios de búsqueda que son soportados por la API client. Dicho objeto permite los siguientes valores:

  • Flags, estos son los modificadores soportados:   
    • DetailedInfo: Booleano indicando si se desea la información detallada (true) o resumida (false). Valor por defecto: False
              NOTA: Actualmente, en la versión réplica de la API sólo se permite la consulta detallada.                
    • FarmaciaInfo: Booleano indicando si se desea la información detallada sobre farmacia. Valor por defecto: False
    • FullAddress: Booleano indicando si se desea la información detallada del domicilio del paciente. Valor por defecto: False.
  • Identificadores de usuario único
        -
    • NUHSA: Alfanumérico.    
    • CodSns: Alfanumérico.   
    • SocialSecurityNumber: Alfanumérico.   
    • AffiliationNumber: Alfanumérico    
    • Nuhsas: Lista de códigos NUHSA   
    • DocumentIdType + DocumentType + DocumentId: permite identificar un paciente por el identificador definido. 
  • Filtros de búsqueda    
    • BirthDateYear: Alfanumérico.    
    • Name: Nombre del paciente    
    • Surname: Primer apellido del paciente    
    • SecondSurname: Segundo apellido del paciente

    Antes de realizar la búsqueda de usuarios, vía servicio web o réplica de BBDD, se valida que el objeto criterio de búsqueda QuerysBduUserSearchDto cumpla las siguientes condiciones:
    

  • El objeto QuerysBduUserSearchDto no puede ser nulo
  • No pueden ser nulo los siguientes atributos: SocialSecurityNumber, AffiliationNumber, NUHSA, CodSns, DocumentId
  • Almenos se deben de especificar dos campos de entre: Name,  Surname, SecondSurname
      

Métodos de servicio

Los métodos de servicio que la API proporciona son los siguientes:

  • Búsqueda de usuarios (consula detallada/corta)
        La búsqueda de usuarios se realizará mediante los métodos "findUsers"  que soportan el criteria descrito anteriormente.
            NOTA: Actualmente en la versión réplica sólo se permite la consulta detallada
  • Búsqueda información de mutuas (sólo modo réplica de BBDD)
        - Listado de mutualidades
        - Listado de mutualidades que cumplen con un criterio
  • Búsqueda información de decretos (sólo modo réplica de BBDD)
        - Búsqueda de información de solicitud de decreto que cumple un criterio

Uso


A continuación se describe el uso de la librería. 

Funcionalidades utilizando Servicio Web de BDU

  • Búsqueda de usuarios

Una vez realizada la configuración de la API, se siguen los siguientes pasos para realizar una búsqueda de usuarios utilizando el servicio Web de BDU.
    
1. En la clase donde se va a añadir esta funcional, BduService en el ejemplo,  añadir al constructor un objeto de tipo IBduSearch: IBduSearch<MacoUser> bduSearch. 
2. Añadir un método, FindUsers en el ejemplo, con los siguientes parámetros: IGenericAuthContext<MacoUser> petitionerUser y QuerysBduUserSearchDto querysBduUserSearchDto. El primero hace referencia al usuario Maco peticionario de la llamada y el segundo los criterial de la query que se va a realizar.
3. Llamar al método FindUsers del servicio de BDU, _bduSearch en el ejemplo, pasando como parámetro el usuario peticionario y la query, petitionerUser y queryBduUserSearchDto en el ejemplo.
4. Por último, se hace el mapping entre el tipo usuario BDU devuelto por la API y el propio del sistema que realiza la llamada.
Ejemplo:
  
       ...
        using SAS.MacoApiClient.User.Entity;
        using SAS.Common.Core.Boundary.Contracts;
        using SAS.BduApiClient.Core.Entity.dto;
        using SAS.BduApiClient.Core.Boundary.Contracts.Services;
        ...
       public class BduService: IBduService
        {
            private IBduSearch<MacoUser> _bduSearch;
            public BduService(IBduSearch<MacoUser> bduSearch)
            {
                _bduSearch = bduSearch;
            }
    
            public List<BduUser> FindUsers(IGenericAuthContext<MacoUser> petitionerUser, QuerysBduUserSearchDto querysBduUserSearchDto)
            {
                List<BduUser> resultFindUsers = new List<BduUser>();
                var result = _bduSearch.FindUsers(petitionerUser, querysBduUserSearchDto);
                foreach (SAS.BduApiClient.Core.Entity.BduUser bduUser in result)
                {
                    var bduUserLocal = new BduUser();
                    bduUserLocal.Name = bduUser.Name;
                    bduUserLocal.FirstSurname = bduUser.FirstSurname;
                    bduUserLocal.SecondSurname = bduUser.SecondSurname;
                    //en unmapping hacer resto de campos
                    resultFindUsers.Add(bduUserLocal);
                }
                return resultFindUsers;
            }
        }
    }
    
   
    5. La clase que se haya creado para añadir la funcionalidad de búsqueda de usuarios se debe registrar en la clase Startup.cs, método InitializeContainer(), al igual que el resto de servicio y tipos. Continuando con el ejemplo:
     
               
          ContainerDI.Register<IBduService, BduService>(ContainerDI.LifeStyleContainer.Transient);
       

Funcionalidades utilizando la réplica de BDU

  • Búsqueda de usuarios
        La búsquea de usuarios se realiza del mismo modo que se explica en el punto anterior. Únicamente hay que tener encuenta que el servicio que implementa la interfaz IBduSearch es, en este caso, SAS.BduApiClient.Api.Boundary.BduUserService (ver Configuración de la API versión Réplica de BBDD) y que en modo réplica, y en la versión actual de la librería, sólo se puede especificar la consulta detallada.
        
  • Información de Mutuas
        Para consultar información de mutuas, se realiza los siguientes pasos:
      
    • En el constructor de la clase donde vamos a utilizar la funcionalidad de mutuas, se añade un objeto de tipo  IMutualInsuranceService: IMutualInsuranceService<object> servicioMutua;        
      • Listado de mutuas
                     A continuación se llama al método GetMutualInsurance del servicio, pasando como parámetro peticionario un null: servicioMutua.GetMutualInsurance(null);
                     NOTA: El parámetro peticionario es null debido a que en la réplica no se registra peticionario de la consulta. En un futuro servicio web de mutuas sí podría ser necesario el parámetro peticionario definido en la interfaz para su registro.
                
      • Búsqueda de mutuas  que cumplen una determinada condición
                    En este caso se llamaría al método FindMutualInsurances, que recibe como parámetros el peticionario y el criterio de búsqueda:
                    FindMutualInsurances(IGenericAuthContext<object> petitionerMutua, QuerysMutualInsuranceDto criteria);
                    En el atributo petitionerMutua se le pasaría un null y en criteria el id de la mútua a buscar.
  • Información de decretos

    Para consultar información de decretos, realizamos los siguientes pasos:
   

    • En el constructor de la clase donde vamos a utilizar la funcionalidad de decretos, se añade un objeto de tipo  IBduDecreeRequestService: IBduDecreeRequestService<object> servicioDecretos;
              
      • Búsqueda de decretos  que cumplen una determinada condición
                    En este caso se llamaría al método  FindBduElementsDecreeRequest(IGenericAuthContext<object> petitionerBdu, QuerysBduUserSearchDto criteria), que recibe como parámetros el peticionario y el criterio de búsqueda:    
                    En el atributo peticionario se le pasaría un null y en criteria el criterio de búsqueda QuerysBduUserSearchDto.


  • Sin etiquetas