/// <summary>
        /// Guarda en la bd el objeto actual
        /// </summary>
        protected override bool SaveObject()
        {
            using (StatusBusy busy = new StatusBusy(moleQule.Face.Resources.Messages.SAVING))
            {
                this.Datos.RaiseListChangedEvents = false;

                if (_has_parent)
                {
                    return(true);
                }

                Instructor temp = _entity;
                temp.ApplyEdit();

                // do the save
                try
                {
                    temp.Save();
                    _entity = temp;
                    _entity.ApplyEdit();

                    //Decomentar si se va a mantener en memoria
                    //_entity.BeginEdit();
                    return(true);
                }
                catch (iQValidationException ex)
                {
                    MessageBox.Show(iQExceptionHandler.GetAllMessages(ex) +
                                    Environment.NewLine + ex.SysMessage,
                                    moleQule.Library.Application.AppController.APP_TITLE,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation);
                    return(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(iQExceptionHandler.GetAllMessages(ex),
                                    moleQule.Library.Application.AppController.APP_TITLE,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation);
                    return(false);
                }
                finally
                {
                    this.Datos.RaiseListChangedEvents = true;
                }
            }
        }
        /// <summary>
        /// Guarda en la bd el objeto actual
        /// </summary>
        protected override bool SaveObject()
        {
            using (StatusBusy busy = new StatusBusy(moleQule.Face.Resources.Messages.SAVING))
            {
                this.Datos.RaiseListChangedEvents = false;

                //if (SubmoduloRepetido())
                //{
                //    MessageBox.Show("Sólo se puede incluir un profesor titular por submódulo y periodo");
                //    return false;
                //}

                Instructor temp = _entity.Clone();
                temp.ApplyEdit();

                // do the save
                try
                {
                    if (CapacidadRepetida())
                    {
                        MessageBox.Show("Se está añadiendo varias veces el mismo submódulo");
                        return(false);
                    }
                    if (PromocionRepetida())
                    {
                        MessageBox.Show("Se está añadiendo varias veces la misma promoción");
                        return(false);
                    }

                    _entity = temp.Save();
                    _entity.ApplyEdit();

                    // Se modifica el nombre de la foto
                    if (_entity.Foto != string.Empty)
                    {
                        Bitmap imagen = new Bitmap(AppController.FOTOS_INSTRUCTORES_PATH + _entity.Foto);

                        string ext = string.Empty;

                        if (imagen.RawFormat.Guid.Equals(System.Drawing.Imaging.ImageFormat.Jpeg.Guid))
                        {
                            ext = ".jpg";
                        }
                        else
                        {
                            if (imagen.RawFormat.Guid.Equals(System.Drawing.Imaging.ImageFormat.Bmp.Guid))
                            {
                                ext = ".bmp";
                            }
                            else
                            {
                                if (imagen.RawFormat.Guid.Equals(System.Drawing.Imaging.ImageFormat.Png.Guid))
                                {
                                    ext = ".png";
                                }
                            }
                        }

                        imagen.Dispose();

                        if (_entity.Foto != _entity.Oid.ToString("000") + ext)
                        {
                            File.Copy(AppController.FOTOS_INSTRUCTORES_PATH + _entity.Foto,
                                      AppController.FOTOS_INSTRUCTORES_PATH + _entity.Oid.ToString("000") + ext,
                                      true);
                            File.Delete(AppController.FOTOS_INSTRUCTORES_PATH + _entity.Foto);

                            _entity.Foto = _entity.Oid.ToString("000") + ext;
                            _entity.Save();
                        }
                    }

                    //Decomentar si se va a mantener en memoria
                    //_entity.BeginEdit();
                    return(true);
                }
                catch (iQValidationException ex)
                {
                    MessageBox.Show(iQExceptionHandler.GetAllMessages(ex) +
                                    Environment.NewLine + ex.SysMessage,
                                    moleQule.Library.Application.AppController.APP_TITLE,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation);
                    return(false);
                }
                catch (Exception ex)
                {
                    MessageBox.Show(iQExceptionHandler.GetAllMessages(ex),
                                    moleQule.Library.Application.AppController.APP_TITLE,
                                    MessageBoxButtons.OK,
                                    MessageBoxIcon.Exclamation);
                    return(false);
                }
                finally
                {
                    this.Datos.RaiseListChangedEvents = true;
                }
            }
        }