### YamlMime:ManagedReference
items:
- uid: adas_core.Application.Services.Interfaces.ILockProvider
  commentId: T:adas_core.Application.Services.Interfaces.ILockProvider
  id: ILockProvider
  parent: adas_core.Application.Services.Interfaces
  children:
  - adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync(System.String,System.TimeSpan)
  - adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync(System.String)
  langs:
  - csharp
  - vb
  name: ILockProvider
  nameWithType: ILockProvider
  fullName: adas_core.Application.Services.Interfaces.ILockProvider
  type: Interface
  source:
    remote:
      path: adas-core.Application/Services/Interfaces/ILockProvider.cs
      branch: document/release/1.0.1
      repo: https://git.teralevel.io/adas/adas-core.git
    id: ILockProvider
    path: ../../adas-core.Application/Services/Interfaces/ILockProvider.cs
    startLine: 7
  assemblies:
  - adas-core.Application
  namespace: adas_core.Application.Services.Interfaces
  summary: >-
    Contrato genérico para un proveedor de locks por clave.

    CacheService usará una implementación local en memoria.

    RedisService podría usar una distribuida (si fuera necesario).
  example: []
  syntax:
    content: public interface ILockProvider
    content.vb: Public Interface ILockProvider
  derivedClasses:
  - adas_core.Application.Services.Caching.InMemoryLockProvider
  - adas_core.Application.Services.Caching.RedisLockProvider
  extensionMethods:
  - System.Object.adas_core.Domain.Utils.NumberUtils.IsNumber
  - System.Object.adas_core.Domain.Utils.NumberUtils.ToDouble
  - System.Object.adas_core.Domain.Utils.ObjectUtils.ToStr
- uid: adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync(System.String,System.TimeSpan)
  commentId: M:adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync(System.String,System.TimeSpan)
  id: AcquireAsync(System.String,System.TimeSpan)
  parent: adas_core.Application.Services.Interfaces.ILockProvider
  langs:
  - csharp
  - vb
  name: AcquireAsync(string, TimeSpan)
  nameWithType: ILockProvider.AcquireAsync(string, TimeSpan)
  fullName: adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync(string, System.TimeSpan)
  type: Method
  source:
    remote:
      path: adas-core.Application/Services/Interfaces/ILockProvider.cs
      branch: document/release/1.0.1
      repo: https://git.teralevel.io/adas/adas-core.git
    id: AcquireAsync
    path: ../../adas-core.Application/Services/Interfaces/ILockProvider.cs
    startLine: 12
  assemblies:
  - adas-core.Application
  namespace: adas_core.Application.Services.Interfaces
  summary: Intenta adquirir el lock para una clave dentro del timeout.
  example: []
  syntax:
    content: Task<bool> AcquireAsync(string key, TimeSpan timeout)
    parameters:
    - id: key
      type: System.String
    - id: timeout
      type: System.TimeSpan
    return:
      type: System.Threading.Tasks.Task{System.Boolean}
    content.vb: Function AcquireAsync(key As String, timeout As TimeSpan) As Task(Of Boolean)
  overload: adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync*
  nameWithType.vb: ILockProvider.AcquireAsync(String, TimeSpan)
  fullName.vb: adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync(String, System.TimeSpan)
  name.vb: AcquireAsync(String, TimeSpan)
- uid: adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync(System.String)
  commentId: M:adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync(System.String)
  id: ReleaseAsync(System.String)
  parent: adas_core.Application.Services.Interfaces.ILockProvider
  langs:
  - csharp
  - vb
  name: ReleaseAsync(string)
  nameWithType: ILockProvider.ReleaseAsync(string)
  fullName: adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync(string)
  type: Method
  source:
    remote:
      path: adas-core.Application/Services/Interfaces/ILockProvider.cs
      branch: document/release/1.0.1
      repo: https://git.teralevel.io/adas/adas-core.git
    id: ReleaseAsync
    path: ../../adas-core.Application/Services/Interfaces/ILockProvider.cs
    startLine: 17
  assemblies:
  - adas-core.Application
  namespace: adas_core.Application.Services.Interfaces
  summary: Libera el lock para la clave (idempotente).
  example: []
  syntax:
    content: Task ReleaseAsync(string key)
    parameters:
    - id: key
      type: System.String
    return:
      type: System.Threading.Tasks.Task
    content.vb: Function ReleaseAsync(key As String) As Task
  overload: adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync*
  nameWithType.vb: ILockProvider.ReleaseAsync(String)
  fullName.vb: adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync(String)
  name.vb: ReleaseAsync(String)
references:
- uid: adas_core.Application.Services.Interfaces
  commentId: N:adas_core.Application.Services.Interfaces
  href: adas_core.html
  name: adas_core.Application.Services.Interfaces
  nameWithType: adas_core.Application.Services.Interfaces
  fullName: adas_core.Application.Services.Interfaces
  spec.csharp:
  - uid: adas_core
    name: adas_core
    href: adas_core.html
  - name: .
  - uid: adas_core.Application
    name: Application
    href: adas_core.Application.html
  - name: .
  - uid: adas_core.Application.Services
    name: Services
    href: adas_core.Application.Services.html
  - name: .
  - uid: adas_core.Application.Services.Interfaces
    name: Interfaces
    href: adas_core.Application.Services.Interfaces.html
  spec.vb:
  - uid: adas_core
    name: adas_core
    href: adas_core.html
  - name: .
  - uid: adas_core.Application
    name: Application
    href: adas_core.Application.html
  - name: .
  - uid: adas_core.Application.Services
    name: Services
    href: adas_core.Application.Services.html
  - name: .
  - uid: adas_core.Application.Services.Interfaces
    name: Interfaces
    href: adas_core.Application.Services.Interfaces.html
- uid: System.Object.adas_core.Domain.Utils.NumberUtils.IsNumber
  commentId: M:adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
  parent: adas_core.Domain.Utils.NumberUtils
  definition: adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
  href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_IsNumber_System_Object_
  name: IsNumber(object)
  nameWithType: NumberUtils.IsNumber(object)
  fullName: adas_core.Domain.Utils.NumberUtils.IsNumber(object)
  nameWithType.vb: NumberUtils.IsNumber(Object)
  fullName.vb: adas_core.Domain.Utils.NumberUtils.IsNumber(Object)
  name.vb: IsNumber(Object)
  spec.csharp:
  - uid: adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
    name: IsNumber
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_IsNumber_System_Object_
  - name: (
  - uid: System.Object
    name: object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
  spec.vb:
  - uid: adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
    name: IsNumber
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_IsNumber_System_Object_
  - name: (
  - uid: System.Object
    name: Object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
- uid: System.Object.adas_core.Domain.Utils.NumberUtils.ToDouble
  commentId: M:adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
  parent: adas_core.Domain.Utils.NumberUtils
  definition: adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
  href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_ToDouble_System_Object_
  name: ToDouble(object)
  nameWithType: NumberUtils.ToDouble(object)
  fullName: adas_core.Domain.Utils.NumberUtils.ToDouble(object)
  nameWithType.vb: NumberUtils.ToDouble(Object)
  fullName.vb: adas_core.Domain.Utils.NumberUtils.ToDouble(Object)
  name.vb: ToDouble(Object)
  spec.csharp:
  - uid: adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
    name: ToDouble
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_ToDouble_System_Object_
  - name: (
  - uid: System.Object
    name: object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
  spec.vb:
  - uid: adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
    name: ToDouble
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_ToDouble_System_Object_
  - name: (
  - uid: System.Object
    name: Object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
- uid: System.Object.adas_core.Domain.Utils.ObjectUtils.ToStr
  commentId: M:adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
  parent: adas_core.Domain.Utils.ObjectUtils
  definition: adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
  href: adas_core.Domain.Utils.ObjectUtils.html#adas_core_Domain_Utils_ObjectUtils_ToStr_System_Object_
  name: ToStr(object)
  nameWithType: ObjectUtils.ToStr(object)
  fullName: adas_core.Domain.Utils.ObjectUtils.ToStr(object)
  nameWithType.vb: ObjectUtils.ToStr(Object)
  fullName.vb: adas_core.Domain.Utils.ObjectUtils.ToStr(Object)
  name.vb: ToStr(Object)
  spec.csharp:
  - uid: adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
    name: ToStr
    href: adas_core.Domain.Utils.ObjectUtils.html#adas_core_Domain_Utils_ObjectUtils_ToStr_System_Object_
  - name: (
  - uid: System.Object
    name: object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
  spec.vb:
  - uid: adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
    name: ToStr
    href: adas_core.Domain.Utils.ObjectUtils.html#adas_core_Domain_Utils_ObjectUtils_ToStr_System_Object_
  - name: (
  - uid: System.Object
    name: Object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
- uid: adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
  commentId: M:adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
  isExternal: true
  href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_IsNumber_System_Object_
  name: IsNumber(object)
  nameWithType: NumberUtils.IsNumber(object)
  fullName: adas_core.Domain.Utils.NumberUtils.IsNumber(object)
  nameWithType.vb: NumberUtils.IsNumber(Object)
  fullName.vb: adas_core.Domain.Utils.NumberUtils.IsNumber(Object)
  name.vb: IsNumber(Object)
  spec.csharp:
  - uid: adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
    name: IsNumber
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_IsNumber_System_Object_
  - name: (
  - uid: System.Object
    name: object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
  spec.vb:
  - uid: adas_core.Domain.Utils.NumberUtils.IsNumber(System.Object)
    name: IsNumber
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_IsNumber_System_Object_
  - name: (
  - uid: System.Object
    name: Object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
- uid: adas_core.Domain.Utils.NumberUtils
  commentId: T:adas_core.Domain.Utils.NumberUtils
  parent: adas_core.Domain.Utils
  href: adas_core.Domain.Utils.NumberUtils.html
  name: NumberUtils
  nameWithType: NumberUtils
  fullName: adas_core.Domain.Utils.NumberUtils
- uid: adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
  commentId: M:adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
  isExternal: true
  href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_ToDouble_System_Object_
  name: ToDouble(object)
  nameWithType: NumberUtils.ToDouble(object)
  fullName: adas_core.Domain.Utils.NumberUtils.ToDouble(object)
  nameWithType.vb: NumberUtils.ToDouble(Object)
  fullName.vb: adas_core.Domain.Utils.NumberUtils.ToDouble(Object)
  name.vb: ToDouble(Object)
  spec.csharp:
  - uid: adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
    name: ToDouble
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_ToDouble_System_Object_
  - name: (
  - uid: System.Object
    name: object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
  spec.vb:
  - uid: adas_core.Domain.Utils.NumberUtils.ToDouble(System.Object)
    name: ToDouble
    href: adas_core.Domain.Utils.NumberUtils.html#adas_core_Domain_Utils_NumberUtils_ToDouble_System_Object_
  - name: (
  - uid: System.Object
    name: Object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
- uid: adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
  commentId: M:adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
  isExternal: true
  href: adas_core.Domain.Utils.ObjectUtils.html#adas_core_Domain_Utils_ObjectUtils_ToStr_System_Object_
  name: ToStr(object)
  nameWithType: ObjectUtils.ToStr(object)
  fullName: adas_core.Domain.Utils.ObjectUtils.ToStr(object)
  nameWithType.vb: ObjectUtils.ToStr(Object)
  fullName.vb: adas_core.Domain.Utils.ObjectUtils.ToStr(Object)
  name.vb: ToStr(Object)
  spec.csharp:
  - uid: adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
    name: ToStr
    href: adas_core.Domain.Utils.ObjectUtils.html#adas_core_Domain_Utils_ObjectUtils_ToStr_System_Object_
  - name: (
  - uid: System.Object
    name: object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
  spec.vb:
  - uid: adas_core.Domain.Utils.ObjectUtils.ToStr(System.Object)
    name: ToStr
    href: adas_core.Domain.Utils.ObjectUtils.html#adas_core_Domain_Utils_ObjectUtils_ToStr_System_Object_
  - name: (
  - uid: System.Object
    name: Object
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.object
  - name: )
- uid: adas_core.Domain.Utils.ObjectUtils
  commentId: T:adas_core.Domain.Utils.ObjectUtils
  parent: adas_core.Domain.Utils
  href: adas_core.Domain.Utils.ObjectUtils.html
  name: ObjectUtils
  nameWithType: ObjectUtils
  fullName: adas_core.Domain.Utils.ObjectUtils
- uid: adas_core.Domain.Utils
  commentId: N:adas_core.Domain.Utils
  href: adas_core.html
  name: adas_core.Domain.Utils
  nameWithType: adas_core.Domain.Utils
  fullName: adas_core.Domain.Utils
  spec.csharp:
  - uid: adas_core
    name: adas_core
    href: adas_core.html
  - name: .
  - uid: adas_core.Domain
    name: Domain
    href: adas_core.Domain.html
  - name: .
  - uid: adas_core.Domain.Utils
    name: Utils
    href: adas_core.Domain.Utils.html
  spec.vb:
  - uid: adas_core
    name: adas_core
    href: adas_core.html
  - name: .
  - uid: adas_core.Domain
    name: Domain
    href: adas_core.Domain.html
  - name: .
  - uid: adas_core.Domain.Utils
    name: Utils
    href: adas_core.Domain.Utils.html
- uid: adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync*
  commentId: Overload:adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync
  href: adas_core.Application.Services.Interfaces.ILockProvider.html#adas_core_Application_Services_Interfaces_ILockProvider_AcquireAsync_System_String_System_TimeSpan_
  name: AcquireAsync
  nameWithType: ILockProvider.AcquireAsync
  fullName: adas_core.Application.Services.Interfaces.ILockProvider.AcquireAsync
- uid: System.String
  commentId: T:System.String
  parent: System
  isExternal: true
  href: https://learn.microsoft.com/dotnet/api/system.string
  name: string
  nameWithType: string
  fullName: string
  nameWithType.vb: String
  fullName.vb: String
  name.vb: String
- uid: System.TimeSpan
  commentId: T:System.TimeSpan
  parent: System
  isExternal: true
  href: https://learn.microsoft.com/dotnet/api/system.timespan
  name: TimeSpan
  nameWithType: TimeSpan
  fullName: System.TimeSpan
- uid: System.Threading.Tasks.Task{System.Boolean}
  commentId: T:System.Threading.Tasks.Task{System.Boolean}
  parent: System.Threading.Tasks
  definition: System.Threading.Tasks.Task`1
  href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1
  name: Task<bool>
  nameWithType: Task<bool>
  fullName: System.Threading.Tasks.Task<bool>
  nameWithType.vb: Task(Of Boolean)
  fullName.vb: System.Threading.Tasks.Task(Of Boolean)
  name.vb: Task(Of Boolean)
  spec.csharp:
  - uid: System.Threading.Tasks.Task`1
    name: Task
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1
  - name: <
  - uid: System.Boolean
    name: bool
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.boolean
  - name: '>'
  spec.vb:
  - uid: System.Threading.Tasks.Task`1
    name: Task
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1
  - name: (
  - name: Of
  - name: " "
  - uid: System.Boolean
    name: Boolean
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.boolean
  - name: )
- uid: System
  commentId: N:System
  isExternal: true
  href: https://learn.microsoft.com/dotnet/api/system
  name: System
  nameWithType: System
  fullName: System
- uid: System.Threading.Tasks.Task`1
  commentId: T:System.Threading.Tasks.Task`1
  isExternal: true
  href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1
  name: Task<TResult>
  nameWithType: Task<TResult>
  fullName: System.Threading.Tasks.Task<TResult>
  nameWithType.vb: Task(Of TResult)
  fullName.vb: System.Threading.Tasks.Task(Of TResult)
  name.vb: Task(Of TResult)
  spec.csharp:
  - uid: System.Threading.Tasks.Task`1
    name: Task
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1
  - name: <
  - name: TResult
  - name: '>'
  spec.vb:
  - uid: System.Threading.Tasks.Task`1
    name: Task
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task-1
  - name: (
  - name: Of
  - name: " "
  - name: TResult
  - name: )
- uid: System.Threading.Tasks
  commentId: N:System.Threading.Tasks
  isExternal: true
  href: https://learn.microsoft.com/dotnet/api/system
  name: System.Threading.Tasks
  nameWithType: System.Threading.Tasks
  fullName: System.Threading.Tasks
  spec.csharp:
  - uid: System
    name: System
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system
  - name: .
  - uid: System.Threading
    name: Threading
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading
  - name: .
  - uid: System.Threading.Tasks
    name: Tasks
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading.tasks
  spec.vb:
  - uid: System
    name: System
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system
  - name: .
  - uid: System.Threading
    name: Threading
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading
  - name: .
  - uid: System.Threading.Tasks
    name: Tasks
    isExternal: true
    href: https://learn.microsoft.com/dotnet/api/system.threading.tasks
- uid: adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync*
  commentId: Overload:adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync
  href: adas_core.Application.Services.Interfaces.ILockProvider.html#adas_core_Application_Services_Interfaces_ILockProvider_ReleaseAsync_System_String_
  name: ReleaseAsync
  nameWithType: ILockProvider.ReleaseAsync
  fullName: adas_core.Application.Services.Interfaces.ILockProvider.ReleaseAsync
- uid: System.Threading.Tasks.Task
  commentId: T:System.Threading.Tasks.Task
  parent: System.Threading.Tasks
  isExternal: true
  href: https://learn.microsoft.com/dotnet/api/system.threading.tasks.task
  name: Task
  nameWithType: Task
  fullName: System.Threading.Tasks.Task
