private async Task UpdatePuestoAsync(IList <Puestos> puestosAdam)
        {
            var result = await this.puestoSolicitadoService.GetAsync()
                         .ConfigureAwait(true);

            var puestosSolicitados = result.ToList();

            foreach (var puesto in puestosAdam)
            {
                var puestoSolicitado = puestosSolicitados.FirstOrDefault(p => p.AdamId == puesto.Puesto);

                if (puestoSolicitado == null)
                {
                    puestoSolicitado = new PuestoSolicitado {
                        AdamId = puesto.Puesto, Nombre = puesto.Descripcion
                    };

                    await this.puestoSolicitadoRepository.AddAsync(puestoSolicitado)
                    .ConfigureAwait(false);
                }
                else
                {
                    puestoSolicitado.Nombre = puesto.Descripcion;

                    var toEdit = await this.puestoSolicitadoRepository.GetByIdAsync(puestoSolicitado.Id)
                                 .ConfigureAwait(false);

                    this.puestoSolicitadoRepository.ApplyCurrentValues(toEdit, puestoSolicitado);
                    await this.puestoSolicitadoRepository.UpdateAsync(puestoSolicitado)
                    .ConfigureAwait(false);
                }
            }
        }
        private async Task <List <PuestoSolicitado> > UpdatePuestosAdamAsync()
        {
            var puestosAdam = await this.odsQueries.GetPuestosAsync()
                              .ConfigureAwait(false);

            var responseMiRh = await this.puestoSolicitadoRepository.ListAllAsync()
                               .ConfigureAwait(false);

            foreach (var puestoSolicitado in responseMiRh)
            {
                puestoSolicitado.Active = false;
            }

            foreach (var puestose in puestosAdam)
            {
                var toEdit = responseMiRh.FirstOrDefault(p => p.AdamId.Trim() == puestose.Puesto.Trim());

                if (toEdit != null)
                {
                    toEdit.Active = true;
                    toEdit.Nombre = puestose.Descripcion;
                    await this.puestoSolicitadoRepository.UpdateAsync(toEdit)
                    .ConfigureAwait(false);
                }
                else
                {
                    var toInsert = new PuestoSolicitado
                    {
                        Nombre = puestose.Descripcion,
                        AdamId = puestose.Puesto.Trim()
                    };

                    await this.puestoSolicitadoRepository.AddAsync(toInsert)
                    .ConfigureAwait(false);
                }
            }

            return(await this.puestoSolicitadoRepository.ListAllAsync()
                   .ConfigureAwait(false));
        }