public override void GuardarCambios() { EspecialidadLogic especialidadLogic = new EspecialidadLogic(); if (this.Modo == ModoForm.Alta) { Especialidad especNueva = new Especialidad(); this.EspecialidadActual = especNueva; } if (this.Modo == ModoForm.Alta || this.Modo == ModoForm.Modificacion) { try { this.MapearADatos(); especialidadLogic.Save(this.EspecialidadActual); } catch (Exception e) { this.Notificar(this.Text, e.Message, MessageBoxButtons.OK, MessageBoxIcon.Error); } } else if (this.Modo == ModoForm.Baja) { PlanLogic planLogic = new PlanLogic(); List <Plan> planes = new List <Plan>(); planes = planLogic.GetPlanesPorIdEspecialidad(this.EspecialidadActual.Id); if (planes.Count > 0) { DialogResult result = MessageBox.Show("Hay planes asociados a la especialidad elegida. Si elimina la especialidad, se borrarán dichos planes. Continuar de todos modos?", "Eliminar", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (result.Equals(DialogResult.Yes)) { //traer el id de cada plan de planes y set null el id_plan de las personas afectadas a ese plan foreach (Plan p in planes) { especialidadLogic.SetNullPlanDePersona(p.Id); } especialidadLogic.Delete(EspecialidadActual.Id); } else { this.Close(); } } } }