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();
                    }
                }
            }
        }