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 DinaupEl 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
Cliente Dinaup
Apps multi-tenant
LoadAllRowsAsync
IAQuery
QuickQuery
Dinaup.Database
Dinaup.Logs
Notificaciones ntfy
Dinaup.Validations
Utilidades
Almacenamiento S3
ASP.NET Core
Vault
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). |
DinaupExternalAppSettings | AppId 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, SignInModel | Entrada de las operaciones de cuenta. Validan sus campos (GetValidationReason, ValidatePasswordChange, ValidateInput). |
AuthResponse, AuthRequest, AddressModel | Respuesta 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.