# Class ConfigObservationRepository

Namespace
  adas_core.Infrastructure.Repositories

Assembly
  adas-core.Infrastructure.dll

Repositorio para manejar las operaciones CRUD de ConfigObservation en MongoDB.

    public class ConfigObservationRepository : MongoRepository<ConfigObservation>, IConfigObservationRepository, IMongoRepository<ConfigObservation>

Inheritance
  object
  MongoRepository<ConfigObservation>
  ConfigObservationRepository

Implements
  IConfigObservationRepository
  IMongoRepository<ConfigObservation>

Inherited Members
  MongoRepository<ConfigObservation>.Db
  MongoRepository<ConfigObservation>.Collection
  MongoRepository<ConfigObservation>.InsertOneAsync(ConfigObservation)
  MongoRepository<ConfigObservation>.UpdateOneAsync(ObjectId, ConfigObservation)
  MongoRepository<ConfigObservation>.DeleteAsync(ObjectId)
  MongoRepository<ConfigObservation>.CreateIndexes()
  MongoRepository<ConfigObservation>.InsertManyAsync(List<ConfigObservation>)
  MongoRepository<ConfigObservation>.UpdateManyObjectIdAsync(string, ObjectId, ObjectId)
  MongoRepository<ConfigObservation>.DeleteAsync(string)
  MongoRepository<ConfigObservation>.CollectionExists(string)
  object.Equals(object)
  object.Equals(object, object)
  object.GetHashCode()
  object.GetType()
  object.MemberwiseClone()
  object.ReferenceEquals(object, object)
  object.ToString()

Extension Methods
  NumberUtils.IsNumber(object)
  NumberUtils.ToDouble(object)
  ObjectUtils.ToStr(object?)

## Constructors

### ConfigObservationRepository(IOptions<ApiSettings>, IMongoDatabase, IMasterListServiceFactory)

Constructor para ConfigObservationRepository, inyecta las dependencias necesarias.

    public ConfigObservationRepository(IOptions<ApiSettings> apiSettings, IMongoDatabase database, IMasterListServiceFactory masterListServiceFactory)

#### Parameters

`apiSettings` IOptions<ApiSettings>

  Configuración de la API.

`database` IMongoDatabase

  Instancia de la base de datos MongoDB.

`masterListServiceFactory` IMasterListServiceFactory

  Fábrica de servicios de lista maestra.

## Methods

### Count()

Cuenta el número total de ConfigObservation en la base de datos MongoDB.

    public Task<long> Count()

#### Returns

Task<long>

  El número total de ConfigObservation.

### Delete(ObjectId)

Elimina un ConfigObservation por su ID en la base de datos MongoDB.

    public Task<ConfigObservation?> Delete(ObjectId id)

#### Parameters

`id` ObjectId

#### Returns

Task<ConfigObservation>

### FindAll()

Busca todos los ConfigObservation en la base de datos MongoDB.

    public Task<ICollection<ConfigObservation>> FindAll()

#### Returns

Task<ICollection<ConfigObservation>>

  Una colección de todos los ConfigObservation.

### FindAllByName(string)

Busca todos los ConfigObservation que coinciden con un nombre específico en la base de datos MongoDB, utilizando una búsqueda insensible a mayúsculas y minúsculas.

    public Task<List<ConfigObservation>> FindAllByName(string name)

#### Parameters

`name` string

  El nombre del ConfigObservation a buscar.

#### Returns

Task<List<ConfigObservation>>

  Una lista de ConfigObservation que coinciden con el nombre proporcionado.

### FindAllIds()

Busca todos los IDs de ConfigObservation en la base de datos MongoDB.

    public Task<List<ObjectId>> FindAllIds()

#### Returns

Task<List<ObjectId>>

  Una lista de todos los IDs de ConfigObservation.

### FindById(ObjectId)

Busca un ConfigObservation por su ID en la base de datos MongoDB.

    public Task<ConfigObservation?> FindById(ObjectId id)

#### Parameters

`id` ObjectId

  El ID del ConfigObservation a buscar.

#### Returns

Task<ConfigObservation>

  El ConfigObservation encontrado, o null si no se encuentra.

### FindByName(string)

Busca un ConfigObservation por su nombre en la base de datos MongoDB, utilizando una búsqueda insensible a mayúsculas y minúsculas.

    public Task<ConfigObservation?> FindByName(string name)

#### Parameters

`name` string

  El nombre del ConfigObservation a buscar.

#### Returns

Task<ConfigObservation>

  El ConfigObservation que coincide con el nombre proporcionado, o null si no se encuentra.

#### Exceptions

BadRequestException

  Se lanza cuando el nombre es nulo, vacío o demasiado largo.

### GetByCodeSysAndCode(string?, string?)

Busca un ConfigObservation por su sistema de codificación y código en la base de datos MongoDB, utilizando una búsqueda insensible a mayúsculas y minúsculas.

    public Task<ConfigObservation?> GetByCodeSysAndCode(string? codingSystem, string? code)

#### Parameters

`codingSystem` string

  El sistema de codificación del ConfigObservation a buscar.

`code` string

  El código del ConfigObservation a buscar.

#### Returns

Task<ConfigObservation>

  El ConfigObservation que coincide con el sistema de codificación y código proporcionados, o null si no se encuentra.

### GetCollectionName()

Obtiene el nombre de la colección de MongoDB para ConfigObservation, utilizando la configuración proporcionada o un valor predeterminado.

    public override string GetCollectionName()

#### Returns

string

  El nombre de la colección de MongoDB para ConfigObservation.

### GetConfigNames()

Busca todos los nombres de ConfigObservation en la base de datos MongoDB, eliminando duplicados y espacios en blanco.

    public Task<List<string>> GetConfigNames()

#### Returns

Task<List<string>>

### GetConfigNames(string)

Busca todos los nombres de ConfigObservation en la base de datos MongoDB, eliminando duplicados y espacios en blanco.

    public Task<List<string>> GetConfigNames(string id)

#### Parameters

`id` string

  El ID del ConfigObservation para filtrar los nombres (opcional).

#### Returns

Task<List<string>>

  Una lista de nombres de ConfigObservation.

### GetPaginatedItems(PaginationFilter)

Busca ConfigObservation en la base de datos MongoDB utilizando paginación y un filtro de texto opcional que busca en varios campos.

    public Task<ICollection<ConfigObservation>> GetPaginatedItems(PaginationFilter filter)

#### Parameters

`filter` PaginationFilter

  El filtro de paginación y búsqueda.

#### Returns

Task<ICollection<ConfigObservation>>

  Una colección de ConfigObservation que cumple con los criterios de búsqueda y paginación.

#### Exceptions

BadRequestException

  Se lanza cuando el texto de búsqueda es demasiado largo.

### GetSingleConfigObservationItem(string?, string?, string?, string?)

Busca un ConfigObservation que coincida con los parámetros proporcionados (código, sistema de codificación, nombre u nombre original) en la base de datos MongoDB, utilizando una búsqueda insensible a mayúsculas y minúsculas.

    public Task<ConfigObservation?> GetSingleConfigObservationItem(string? code, string? codingSystem, string? name, string? originalName)

#### Parameters

`code` string

  El código del ConfigObservation a buscar.

`codingSystem` string

  El sistema de codificación del ConfigObservation a buscar.

`name` string

  El nombre del ConfigObservation a buscar.

`originalName` string

  El nombre original del ConfigObservation a buscar.

#### Returns

Task<ConfigObservation>

  El ConfigObservation que coincide con los parámetros proporcionados, o null si no se encuentra.

### InsertInitialLoad()

Inserta una carga inicial de ConfigObservation en la base de datos MongoDB utilizando una lista maestra de observaciones de enfermería. Si ya existen ConfigObservation en la base de datos, solo se insertan aquellos que faltan en comparación con la lista maestra.

    public override sealed Task InsertInitialLoad()

#### Returns

Task

### InsertOneAsyncAndReturn(ConfigObservation)

Inserta un nuevo ConfigObservation en la base de datos MongoDB y devuelve el objeto insertado, incluyendo su ID generado.

    public Task<ConfigObservation> InsertOneAsyncAndReturn(ConfigObservation configObservationItem)

#### Parameters

`configObservationItem` ConfigObservation

  El ConfigObservation a insertar en la base de datos.

#### Returns

Task<ConfigObservation>

  El ConfigObservation insertado, incluyendo su ID generado.

### Update(ConfigObservation)

Actualiza un ConfigObservation existente en la base de datos MongoDB.

    public Task<ConfigObservation?> Update(ConfigObservation configObservation)

#### Parameters

`configObservation` ConfigObservation

  El ConfigObservation con los datos actualizados.

#### Returns

Task<ConfigObservation>

  El ConfigObservation actualizado, o null si no se encuentra.