Cl.Core.Addons 1.2.0

There is a newer prerelease version of this package available.
See the version list below for details.
dotnet add package Cl.Core.Addons --version 1.2.0                
NuGet\Install-Package Cl.Core.Addons -Version 1.2.0                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Cl.Core.Addons" Version="1.2.0" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Cl.Core.Addons --version 1.2.0                
#r "nuget: Cl.Core.Addons, 1.2.0"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Cl.Core.Addons as a Cake Addin
#addin nuget:?package=Cl.Core.Addons&version=1.2.0

// Install Cl.Core.Addons as a Cake Tool
#tool nuget:?package=Cl.Core.Addons&version=1.2.0                

Acerca de Cl.Core.Addons

Conjuto de funcionalidades que facilitan la gestión y operación de los componentes de walkthrough y walkthrough-console. Este paquete permite realizar operaciones CRUD, brindando una integración fluida con la base de datos y los endpoints correspondientes.

¿Qué resuelve?

Este paquete soluciona la gestión de los endpoints requeridos para el manejo eficiente de las operaciones de POST, PATCH, GET y DELETE, esenciales para el correcto funcionamiento del componente walkthrough-console. Proporciona las herramientas necesarias para interactuar con la base de datos de forma segura y eficiente, asegurando la persistencia y actualización de los datos vinculados a los tours y sus pasos.

Rutinas

Nota

Para la implementación de las rutinas de creación y actualización es indispensable contar con la siguiente implementación:

En el Process, declarar una instancia de IHttpContextAccessor para acceder a los datos del contexto HTTP y obtener información del usuario logueado, lo que es esencial para registrar los campos de auditoría (como CreatedBy y UpdatedBy) en las operaciones de creación y actualización.

private readonly IHttpContextAccessor _httpContextAccessor;

public Process(IHttpContextAccessor httpContextAccessor)
{
   _httpContextAccessor = httpContextAccessor;
}

GetTours<Microsoft.EntityFrameworkCore.DbContext>( IServices, System.String, System.String ): Cl.Core.Structures.Classes.Rebound.CLContext< System.Collections.Generic.IEnumerable<Cl.Core.Structures.Classes.Addons.TourAndStepsString>

Descripcion

Obtiene toda la información relevante a los tour y sus respectivos steps por medio de una consulta a la base de datos de aplicación.

Parametros

  • _services (Requerido): Interfaz de servicios utilizada para ejecutar la consulta de la base de datos.
  • _dbObjectToken (Requerido): Token de objeto de base de datos utilizado para el contexto durante la operación.
  • _filter (Requerido): Cadena de filtro utilizada para buscar y recuperar recorridos en función de criterios específicos.

Tipos genéricos

  • TDbContext (Requerido): El tipo de contexto de base de datos utilizado en la operación. Este debe ser una instancia de DbContext.

Ejemplo:

public CLContext<IEnumerable<TourAndStepsString>> MyFunction(string? filter)
{
    _logManager.Record($"REQUESTING RECORDS");
    
    var oClContext = Walkthrough.GetTours<MainDbContext>(_services,"GetTours", filter);
    
    _logManager.Record($"REQUESTE COMPLETED");
    
    return oClContext; 
    
}

Procedimiento almacenado a utilizar:

CREATE PROCEDURE [dbo].[CL_D_DEV_OPS_DEV_SLT_TOURSANDSTEPSFILTER]
    @Key NVARCHAR(50) = NULL
AS
BEGIN
    SELECT *, (
            SELECT *
            FROM dbo.StepsByTour AS S
            WHERE S.TourId = T.Id
            FOR JSON PATH
        ) AS Steps
    FROM
        [dbo].[Tour] as T
    WHERE
        (@Key IS NULL OR @Key = 'null'  OR T.Code LIKE '%' + @Key + '%')
        OR
        (@Key IS NULL OR @Key = 'null'  OR T.TourName LIKE '%' + @Key + '%')
        OR
        (@Key IS NULL OR @Key = 'null'  OR T.ViewName LIKE '%' + @Key + '%')
        OR
        (@Key = T.ViewPath AND t.IsActive = 1);
END

PostTours< Microsoft.EntityFrameworkCore.DbContext,Cl.Core.Structures.Interfaces.ICLMaster,Cl.Core.Structures.Interfaces.ICLSingle> ( Cl.Core.Structures.Classes.Addons.TourAndSteps, ICore, System.String, Microsoft.AspNetCore.Http.IHttpContextAccessor ):Cl.Core.Structures.Classes.Rebound.CLContext<Cl.Core.Structures.Classes.Addons.TourAndStepsString>

Descripcion

Este método se utiliza para registrar un tour junto con sus detalles en la base de datos.

Parametros

  • _tour (Requerido): Objeto de tipo TourAndSteps que contiene los detalles del tour a registrar.
  • _core (Requerido): Interfaz utilizada para realizar las operaciones de base de datos.
  • _dbObjectToken (Requerido): Token que identifica el contexto del objeto de base de datos durante la operación.
  • httpContextAccessor (Requerido): Accesor para el contexto HTTP, utilizado para obtener el correo electrónico del usuario autenticado.

Tipos genéricos

  • TDbContext (Requerido): El tipo de contexto de base de datos utilizado en la operación. Este debe ser una instancia de DbContext.
  • TMaster (Requerido): Tipo que representa la entidad maestra en la operación, que implementa la interfaz ICLMaster.
  • TSingle (Requerido): Tipo que representa una entidad individual en la operación, que implementa la interfaz ICLSingle.

Ejemplo:

public CLContext<TourAndStepsString> MyFunction(TourAndSteps tour)
{
    _logManager.Record($"REQUESTING POST OBJECT");
    
    var oClContext = Walkthrough.PostTours<MainDbContext,ICLExclude,ICLSingle>(tour, _core, "PostTour",_httpContextAccessor);
    
    if(tour.Steps.Count > 0 && oClContext.Response != null)
    {
        tour.Id = oClContext.Response.Data.Id;
        _= Walkthrough.PostStepsByTour<MainDbContext>(tour, _core, "PostStepsByTour",_httpContextAccessor);
    }
    
    _logManager.Record($"REQUESTE COMPLETED");
    return oClContext;
}

Procedimiento almacenado a utilizar:

CREATE PROCEDURE [dbo].[CL_D_CL_DEV_OPS_DEV_CRT_TOUR]
    @CreatedBy NVARCHAR(50),
    @IsActive BIT,
    @Code NVARCHAR(255),
    @TourName NVARCHAR(MAX),
    @ViewName NVARCHAR(255),
    @ViewPath NVARCHAR(MAX)
AS
BEGIN
    IF (SELECT COUNT(Id) FROM [Tour] WHERE [Code] = @Code) > 0
            THROW 60000, 'Ya existe un tour registrado con los datos proporcionados. Verifique los detalles e intente nuevamente.', 1;
    INSERT INTO [Tour]
    (
        [CreatedBy]
        ,[CreatedDate]
        ,[UpdatedBy]
        ,[UpdateDate]
        ,[IsActive]
        ,[Code]
        ,[TourName]
        ,[ViewName]
        ,[ViewPath]
     )
    OUTPUT
    inserted.[Id]
    VALUES
    (
        @CreatedBy,
        GETDATE(),
        @CreatedBy,
        GETDATE(),
        @IsActive,
        @Code,
        @TourName,
        @ViewName,
        @ViewPath
     );
END

PostStepsByTour< Microsoft.EntityFrameworkCore.DbContext> ( Cl.Core.Structures.Classes.Addons.TourAndSteps, ICore, System.String, Microsoft.AspNetCore.Http.IHttpContextAccessor ):Cl.Core.Structures.Classes.Rebound.CLContext<Cl.Core.Structures.Classes.Addons.SaveListInfo>

Descripcion

Este método se utiliza para registrar los pasos asociados a un tour específico, serializando los pasos en formato JSON e inserta los datos en la base de datos.

Parametros

  • _tour (Requerido): Objeto de tipo TourAndSteps que contiene los detalles del pasos a registrar.
  • _core (Requerido): Interfaz utilizada para realizar las operaciones de base de datos.
  • _dbObjectToken (Requerido): Token que identifica el contexto del objeto de base de datos durante la operación.
  • httpContextAccessor (Requerido): Accesor para el contexto HTTP, utilizado para obtener el correo electrónico del usuario autenticado.

Tipos genéricos

  • TDbContext (Requerido): El tipo de contexto de base de datos utilizado en la operación. Este debe ser una instancia de DbContext.

Ejemplo:

public CLContext<SaveListInfo> MyFunction(TourAndSteps tour)
{
    _logManager.Record($"REQUESTING POST OBJECT");
    
    var oClContext = Walkthrough.PostStepsByTour<MainDbContext>(tour, _core, "PostStepsByTour",_httpContextAccessor);

    _logManager.Record($"REQUESTE COMPLETED");
    return oClContext;
}

Procedimiento almacenado a utilizar:

CREATE PROCEDURE [dbo].[CL_D_CL_DEV_OPS_DEV_CRT_STEPSBYTOUR]
    @TourId INT,
    @Data NVARCHAR(MAX)
AS
BEGIN
DECLARE @message NVARCHAR(MAX);

    BEGIN TRY
        BEGIN TRAN
            IF EXISTS(SELECT * FROM dbo.Tour AS T WHERE T.Id=@TourId )
            BEGIN
                INSERT INTO [dbo].[StepsByTour] (
                        [CreatedBy]
                        ,[CreatedDate]
                        ,[UpdatedBy]
                        ,[UpdateDate]
                        ,[IsActive]
                        ,[TourId]
                        ,[StepName]
                        ,[ClassName]
                        ,[StepTitle]
                        ,[StepText]
                        ,[Position]
                        ,[ButtonNext]
                        ,[ButtonBack]
                        ,[ButtonEnd]
                        ,[IsScrollTo]
                        ,[CloseButton]
                )
                SELECT
                    JSON_VALUE(value, '$.CreatedBy') AS CreatedBy,
                    GETDATE() AS CreatedDate,
                    JSON_VALUE(value, '$.UpdatedBy') AS UpdatedBy,
                    GETDATE() AS UpdateDate,
                    JSON_VALUE(value, '$.IsActive') AS IsActive,
                    @TourId AS TourId,
                    JSON_VALUE(value, '$.StepName') AS StepName,
                    JSON_VALUE(value, '$.ClassName') AS ClassName,
                    JSON_VALUE(value, '$.StepTitle') AS StepTitle,
                    JSON_VALUE(value, '$.StepText') AS StepText,
                    JSON_VALUE(value, '$.Position') AS Position,
                    JSON_VALUE(value, '$.ButtonNext') AS ButtonNext,
                    JSON_VALUE(value, '$.ButtonBack') AS ButtonBack,
                    JSON_VALUE(value, '$.ButtonEnd') AS ButtonEnd,
                    JSON_VALUE(value, '$.IsScrollTo') AS IsScrollTo,
                    JSON_VALUE(value, '$.CloseButton') AS CloseButton
                FROM OPENJSON(@Data);	
            END
            ELSE
            BEGIN			
                SET @message = 'El tour no se encuentra registrado';
                THROW 51000, @message, 1; 
                ROLLBACK TRAN;
            END	
        COMMIT TRAN

    END TRY
    BEGIN CATCH
        DECLARE @error int, @xstate int;
        SELECT @error = ERROR_NUMBER(),  @message = ERROR_MESSAGE(), @xstate = XACT_STATE();
        RAISERROR(@message, 11, 11);
        ROLLBACK TRAN;
    END CATCH
END

DeleteStepsByTour< Microsoft.EntityFrameworkCore.DbContext, Cl.Core.Structures.Interfaces.ICLSingle> ( System.Int32, IServices, System.String):Cl.Core.Structures.Classes.Rebound.CLContext<Cl.Core.Structures.Classes.Addons.TourAndStepsString>

Descripcion

Este método elimina todos los pasos asociados a un tour específico identificado por el identificador de tour proporcionado.

Parametros

  • _tourId (Requerido): El identificador del tour cuyos pasos asociados deben ser eliminados.
  • _services (Requerido): Interfaz de servicios utilizada para realizar la operación de eliminación.
  • _dbObjectToken (Requerido): Token que identifica el contexto del objeto de base de datos durante la operación.

Tipos genéricos

  • TDbContext (Requerido): El tipo de contexto de base de datos utilizado en la operación. Este debe ser una instancia de DbContext.
  • TSingle (Requerido): El tipo que representa un registro individual en el contexto. Debe implementar ICLSingle.

Ejemplo:

public CLContext<TourAndStepsString> MyFunction(TourAndSteps tour)
{
    _logManager.Record($"REQUESTING POST OBJECT");
    
    var oClContext = Walkthrough.DeleteStepsByTour<MainDbContext, ICLSingle>(tour[0].Id, _services, "DeleteStepsByTour");

    _logManager.Record($"REQUESTE COMPLETED");
    return oClContext;
}

Procedimiento almacenado a utilizar:

CREATE PROCEDURE [dbo].[CL_D_CL_DEV_OPS_DEV_DLT_STEPSBYTOUR]
    @Key INT
AS
BEGIN
    DELETE FROM 
        [StepsByTour] 
    WHERE TourId = @Key
END

DeleteTourById< Microsoft.EntityFrameworkCore.DbContext, Cl.Core.Structures.Interfaces.ICLSingle> ( System.Int32, IServices, System.String):Cl.Core.Structures.Classes.Rebound.CLContext<Cl.Core.Structures.Classes.Addons.TourAndStepsString>

Descripcion

Este método elimina un tour específico de la base de datos identificado por su identificador de tour.

Parametros

  • _tourId (Requerido): El identificador del tour que debe ser eliminado.
  • _services (Requerido): Interfaz de servicios utilizada para realizar la operación de eliminación.
  • _dbObjectToken (Requerido): Token que identifica el contexto del objeto de base de datos durante la operación.

Tipos genéricos

  • TDbContext (Requerido): El tipo de contexto de base de datos utilizado en la operación. Este debe ser una instancia de DbContext.
  • TSingle (Requerido): El tipo que representa un registro individual en el contexto. Debe implementar ICLSingle.

Ejemplo:

public CLContext<TourAndStepsString> MyFunction(TourAndSteps tour)
{
    _logManager.Record($"REQUESTING POST OBJECT");
    
    var oClContext = Walkthrough.DeleteTourById<MainDbContext,ICLSingle>(tourId, _services, "DeleteTourById");

    var deleteSteps = Walkthrough.DeleteStepsByTour<MainDbContext, ICLSingle>(tourId, _services, "DeleteStepsByTour");

    _logManager.Record($"REQUESTE COMPLETED");
    return oClContext;
}

Procedimiento almacenado a utilizar:

CREATE PROCEDURE [dbo].[CL_D_CL_DEV_OPS_DEV_DLT_TOUR]
    @Key INT
AS
BEGIN
    DELETE FROM 
        [Tour] 
    WHERE TourId = @Key
END

UpdateTours< Microsoft.EntityFrameworkCore.DbContext> ( Cl.Core.Structures.Classes.Addons.TourAndSteps[], ICore, System.String, Microsoft.AspNetCore.Http.IHttpContextAccessor):Cl.Core.Structures.Classes.Rebound.CLContext<Cl.Core.Structures.Classes.Addons.SaveListInfo>

Descripcion

Actualiza los tours proporcionados con la información especificada, asignando el usuario que los actualizó y guardando los datos en la base de datos.

Parametros

  • _tourId (Requerido): Un arreglo de objetos TourAndSteps que representan los tours a actualizar.
  • _core (Requerido): Instancia de ICore utilizada para las operaciones principales en la base de datos.
  • _dbObjectToken (Requerido): Token que identifica el contexto del objeto de base de datos durante la operación.
  • httpContextAccessor (Requerido)::Interfaz IHttpContextAccessor para acceder al contexto HTTP y obtener la información del usuario que está conectado.

Tipos genéricos

  • TDbContext (Requerido): El tipo de contexto de base de datos utilizado en la operación. Este debe ser una instancia de DbContext.

Ejemplo:

Ejemplo cuando se actualiza solo un registro

public CLContext<SaveListInfo> MyFunction(TourAndSteps[] tour)
{
    _logManager.Record($"REQUESTING POST OBJECT");
    
   var oClContext = Walkthrough.UpdateTours<MainDbContext>(tour, _core, "UpdateTour",_httpContextAccessor);

   if (tour[0].Steps.Count > 0 && oClContext.Response != null)
   {
        _ = Walkthrough.DeleteStepsByTour<MainDbContext, ICLSingle>(tour[0].Id, _services, "DeleteStepsByTour");
        _ = Walkthrough.PostStepsByTour<MainDbContext>(tour[0], _core, "PostStepsByTour",_httpContextAccessor);
    }

    _logManager.Record($"REQUESTE COMPLETED");
    return oClContext;
}

Ejemplo cuando se actualizan varios registros

public CLContext<SaveListInfo> MyFunction(TourAndSteps[] tour)
{
    _logManager.Record($"REQUESTING POST OBJECT");
    
   var oClContext = Walkthrough.UpdateTours<MainDbContext>(tour, _core, "UpdateTour",_httpContextAccessor);

    _logManager.Record($"REQUESTE COMPLETED");
    return oClContext;
}

Procedimiento almacenado a utilizar:

CREATE PROCEDURE [dbo].[CL_D_CL_DEV_OPS_DEV_UPT_TOUR]
    @TourId INT,
    @Data NVARCHAR(MAX)
AS
BEGIN
    UPDATE 
        [Tour] 
    SET
        [UpdatedBy] = JSON_VALUE(value, '$.UpdatedBy'),
        [UpdateDate] = GETDATE(),
        [IsActive] = JSON_VALUE(value, '$.IsActive'),
        [Code] = JSON_VALUE(value, '$.Code'),
        [TourName] = JSON_VALUE(value, '$.TourName'),
        [ViewName] = JSON_VALUE(value, '$.ViewName'),
        [ViewPath] = JSON_VALUE(value, '$.ViewPath')
    FROM OPENJSON(@Data)
    WHERE [Tour].Id = JSON_VALUE(value, '$.Id');
END

Clavis Consultores ©

Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.2.2-alpha 0 1/20/2025
1.2.1-alpha 74 11/6/2024
1.2.0 104 11/1/2024
1.1.4-alpha 121 10/18/2024
1.1.3-alpha 79 10/11/2024
1.1.2-alpha 78 10/4/2024
1.1.1-alpha 80 9/27/2024
1.1.0-alpha 76 9/20/2024
1.0.0-alpha 129 9/13/2024