private void cmdGuardar_Click(object sender, EventArgs e) { try { if (!CheckData()) { MessageBox.Show("Complete los campos faltantes"); return; } PrepareLists(); //c.Capacitaciones.ToList().ForEach(x => x.CandidatoCedula = c.Cedula); //c.ExperienciaLaborales.ToList().ForEach(x => x.CandidatoCedula = c.Cedula); if (Editing) { var c = Context.Candidatos .Include("PuestoAspira") .FirstOrDefault(x => x.Cedula == Candidato.Cedula); c.PuestoAspira.IsAvailable = true; c.Nombre = Candidato.Nombre; c.PuestoId = Candidato.PuestoId; c.Departamento = Candidato.Departamento; //c = Candidato.Adapt<Candidatos>(); var caps = Candidato.Capacitaciones.Where(x => x.Id != 0).Select(x => x.Id); c.Capacitaciones = c.Capacitaciones.Where(x => caps.Contains(x.Id)).ToList(); c.Capacitaciones.ToList().ForEach(x => { var data = Candidato.Capacitaciones.First(cc => cc.Id == x.Id); x.Institucion = data.Institucion; x.Nivel = data.Nivel; x.FechaDesde = data.FechaDesde; x.FechaHasta = data.FechaHasta; x.Descripcion = data.Descripcion; }); Candidato.Capacitaciones.Where(x => x.Id == 0).ToList() .ForEach(x => { c.Capacitaciones.Add(x.Adapt <Capacitaciones>()); }); var exps = Candidato.ExperienciaLaborales.Where(x => x.Id != 0).Select(x => x.Id); c.ExperienciaLaborales = c.ExperienciaLaborales.Where(x => exps.Contains(x.Id)).ToList(); c.ExperienciaLaborales.ToList().ForEach(x => { var data = Candidato.ExperienciaLaborales.First(cc => cc.Id == x.Id); x.Empresa = data.Empresa; x.FechaDesde = data.FechaDesde; x.FechaHasta = data.FechaHasta; x.PuestoOcupado = data.PuestoOcupado; x.Salario = data.Salario; }); Candidato.ExperienciaLaborales.Where(x => x.Id == 0).ToList() .ForEach(x => { c.ExperienciaLaborales.Add(x.Adapt <ExperienciaLaboral>()); }); c.Idiomas = Candidato.Idiomas.Adapt <IList <Idiomas> >(); } else { var c = Candidato.Adapt <Candidatos>(); //c.RecomiendaId = MDIs.MDI_User.IdentificadorEmpleado; Context.Candidatos.Add(c); } Context.SaveChanges(); Context.Database.ExecuteSqlCommand($" update [RRHH_DATA].[dbo].[Puestos] set [IsAvailable] = 0 where [Id] = {Candidato.PuestoId} "); MessageBox.Show("Saved!!!!!!"); this.Close(); } catch (Exception ex) { MessageBox.Show($"Error al Guardar Candidato: {ex.Message}"); } }