private async Task ApplyChangesUltimoTrabajoPrestaciones(
            ICollection <Prestacion> ultimoTrabajoPrestaciones,
            UltimoTrabajo detalleUltimoTrabajo)
        {
            foreach (var prestacion in
                     ultimoTrabajoPrestaciones.Where(prestacion => prestacion != null))
            {
                if (prestacion.Id == 0)
                {
                    if (detalleUltimoTrabajo != null)
                    {
                        prestacion.UltimoTrabajoId = detalleUltimoTrabajo.Id;
                    }

                    await this.prestacionRepository.AddAsync(prestacion)
                    .ConfigureAwait(false);
                }
                else
                {
                    if (prestacion.Active)
                    {
                        await this.prestacionRepository.UpdateAsync(prestacion)
                        .ConfigureAwait(false);
                    }
                    else
                    {
                        await this.prestacionRepository.DeleteAsync(prestacion)
                        .ConfigureAwait(false);
                    }
                }
            }
        }
        private async Task ApplyChangesUltimoTrabajoIngresos(
            ICollection <Ingreso> ultimoTrabajoIngresos,
            UltimoTrabajo detalleUltimoTrabajo)
        {
            foreach (var ingreso in
                     ultimoTrabajoIngresos.Where(ingreso => ingreso != null))
            {
                if (ingreso.Id == 0)
                {
                    if (detalleUltimoTrabajo != null)
                    {
                        ingreso.UltimoTrabajoId = detalleUltimoTrabajo.Id;
                    }

                    await this.ingresoRepository.AddAsync(ingreso)
                    .ConfigureAwait(false);
                }
                else
                {
                    if (ingreso.Active)
                    {
                        await this.ingresoRepository.UpdateAsync(ingreso)
                        .ConfigureAwait(false);
                    }
                    else
                    {
                        await this.ingresoRepository.DeleteAsync(ingreso)
                        .ConfigureAwait(false);
                    }
                }
            }
        }
        private void AddPrestaciones(UltimoTrabajo ultimoTrabajo)
        {
            var eTipoPrestaciones = Enum.GetValues(typeof(ETipoPrestacion))
                                    .Cast <ETipoPrestacion>();

            foreach (var toInsert in eTipoPrestaciones.ToList()
                     .Where(p => p != ETipoPrestacion.OtrasPrestaciones)
                     .Select(prestacion => new Prestacion {
                TipoPrestacion = prestacion
            }))
            {
                ultimoTrabajo?.Prestaciones?.Add(toInsert);
            }
        }
        private void AddIngresos(UltimoTrabajo ultimoTrabajo)
        {
            var salarios = Enum.GetValues(typeof(ETipoSalario))
                           .Cast <ETipoSalario>();

            foreach (var toInsert in salarios.ToList()
                     .Where(p => p != ETipoSalario.OtrosIngresos)
                     .Select(prestacion => new Ingreso {
                TipoIngreso = prestacion
            }))
            {
                ultimoTrabajo?.Ingresos?.Add(toInsert);
            }
        }