SDK .NET

El paquete NuGet Dinaup reúne el cliente de la API y los módulos de base de datos, logs, validaciones, almacenamiento, ASP.NET Core y secretos.

El SDK .NET de Dinaup es el paquete NuGet Dinaup, para net10.0. Cada módulo se usa por separado.

dotnet add package Dinaup

El paquete pide como mínimo StackExchange.Redis 3.2.1 y protobuf-net 3.4.30. Para trabajar tipado contra tus secciones e informes, añade tu biblioteca MyDinaup. Las credenciales del cliente salen de Play: Cliente Dinaup.

Módulos

Módulos auxiliares

Inicio de sesión y apps externas

DinaupAuthClient (namespace Dinaup.Auth) valida el correo y la contraseña de un empleado contra auth.dinaup.com. LoginAsync(email, password) devuelve un AuthResponse con la empresa del usuario (TenantConnectionKeyword), o null si las credenciales fallan. MyAppClient y MyAppKVClient operan sobre esa empresa. Las tres piezas se montan en Apps multi-tenant.

Excepciones (exceptions)

La clase Dinaup.Exceptions agrupa ClientNotInitializedException, APIConnectionException, InvalidAPIResponseException, TimeoutException, APIOperationException, FormClosedException, RetryLimitExceeded y APIRequestException. FormClosedException hereda de APIOperationException: FormSave la lanza si el formulario ya no está abierto (cancelado, caducado o con un token que no existe) y no guarda nada.

Cultura y zona horaria (cultureservice)

CultureService (interfaz ICultureService, namespace Dinaup.CultureService) formatea fechas e importes con la cultura y la zona horaria del usuario, y convierte entre UTC y hora local: ToLocal, ToUtc, ToDateOnly, ToStringMoney, ToStringDecimal, ToLocalFriendlyDate, ToLocalFriendlyDateTime, LocalNow y DateOnlyNow. Lee la cultura de la cabecera Accept-Language.

builder.Services.AddHttpContextAccessor();
builder.Services.AddScoped<Dinaup.CultureService.ICultureService, Dinaup.CultureService.CultureService>();

Valores por defecto de CultureServiceOptions: DefaultCulture = "es-ES", WindowsTimeZoneId = "Romance Standard Time", IanaTimeZoneId = "Europe/Madrid" y DetectCultureFromAcceptLanguage = true.

Modelos de configuración (models)

Clase (Dinaup.Models)Qué guarda
DinaupClientSettings(endPoint, aPIKey, secretKey)Las tres credenciales del cliente: new DinaupClientC(settings).
DinaupExternalAppSettingsAppId y AppToken de una app externa, desde un VaultData (claves DINAUP_APPID y DINAUP_APPTOKEN) o con los dos valores.
DinaupWebhookSettings(endPoint, token)Endpoint y token de un webhook.
AccountCreationModel, AccountActivationModel, PasswordRecoveryModel, ChangePasswordModel, SignInModelEntrada de las operaciones de cuenta. Validan sus campos (GetValidationReason, ValidatePasswordChange, ValidateInput).
AuthResponse, AuthRequest, AddressModelRespuesta y petición del inicio de sesión de empleados, y dirección postal.

Eventos Redis (redis)

RedisClient (namespace Dinaup.Redis) recibe los cambios de una empresa: new RedisClient(connectionString, licenseSerial). SubscribeToChangesAsync() entrega cada lote en el evento ChangesReceived: un MonitoringEvent con Changes, cada uno con RowId, SectionId, Table, UserId, IsUpdate, NewValues y OldValues. UnsubscribeFromChanges() para la escucha. GetLastChangeAsync(sectionId, field) y MayHaveChangesAsync(sectionId, since, field) consultan la marca de último cambio. Qué publica el servidor, en Eventos Redis.

Entorno (Env)

EnvExtensions da el nombre y la versión de la app (GetAppName, GetAppVersion), el hostname (GetHostName) y un texto de diagnóstico del proceso (GetRuntimeInfoTextAsync). Limits.MaxFileSizeInBytes es el tamaño máximo de archivo subido: 150 MB.

En esta página