public void Guardar(InscripcionEditDto inscripcionEditDto)
        {
            var inscripcion = Mapeador.CrearMapper().Map <InscripcionEditDto, Inscripcion>(inscripcionEditDto);

            try
            {
                using (var scope = new TransactionScope(TransactionScopeOption.Required))
                {
                    _repositorio.Guardar(inscripcion);
                    _unitOfWork.SaveChanges();
                    var cursoDto = _repositorioCursos.GetCursoPorId(inscripcion.CursoId);
                    var curso    = Mapeador.CrearMapper().Map <CursoEditDto, Curso>(cursoDto);
                    //Curso curso = null;
                    if (curso != null)
                    {
                        curso.Vacantes--;
                        _repositorioCursos.Guardar(curso);
                        _unitOfWork.SaveChanges();
                        inscripcionEditDto.InscripcionId = inscripcion.InscripcionId;
                        scope.Complete();
                    }
                    else
                    {
                        throw new Exception("Joder algo anduvo mal");
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
        private void mbtNuevo_Click(object sender, EventArgs e)
        {
            FrmInscripcionAE frm = new FrmInscripcionAE();

            frm.Text = "Nueva Inscripcion";
            DialogResult dr = frm.ShowDialog(this);

            if (dr == DialogResult.OK)
            {
                try
                {
                    InscripcionEditDto inscripcionEditDto = frm.GetInscripcion();
                    servicio.Guardar(inscripcionEditDto);
                    InscripcionListDto inscripcionListDto = Mapeador.CrearMapper()
                                                            .Map <InscripcionEditDto, InscripcionListDto>(inscripcionEditDto);
                    DataGridViewRow r = ConstruirFila();
                    SetearFila(r, inscripcionListDto);
                    AgregarFila(r);
                    Helper.MostrarMensaje(this, "Registro Agregado", Tipo.Success);
                }
                catch (Exception ex)
                {
                    Helper.MostrarMensaje(this, ex.Message, Tipo.Error);
                }
            }
        }
 public bool Existe(InscripcionEditDto inscripcionDto)
 {
     if (inscripcionDto.InscripcionId == 0)
     {
         return(_dbContext.Inscripciones.Any(i => i.CursoId == inscripcionDto.CursoListDto.CursoId &&
                                             i.AlumnoId == inscripcionDto.AlumnoListDto.AlumnoId));
     }
     return(_dbContext.Inscripciones.Any(i => i.CursoId == inscripcionDto.CursoListDto.CursoId &&
                                         i.AlumnoId == inscripcionDto.AlumnoListDto.AlumnoId &&
                                         i.InscripcionId != inscripcionDto.InscripcionId));
 }
        private void GuardarMetroButton_Click(object sender, EventArgs e)
        {
            if (ValidarDatos())
            {
                if (inscripcionDto == null)
                {
                    inscripcionDto = new InscripcionEditDto();
                }

                inscripcionDto.CursoListDto     = (CursoListDto)cursoMetroComboBox.SelectedItem;
                inscripcionDto.AlumnoListDto    = (AlumnoListDto)alumnoMetroComboBox.SelectedItem;
                inscripcionDto.FechaInscripcion = fechaTimePicker.Value;
                if (!servicio.Existe(inscripcionDto))
                {
                    DialogResult = DialogResult.OK;
                }
                else
                {
                    MetroMessageBox.Show(this, "Registro repetido", "Error",
                                         MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
        }
 public bool Existe(InscripcionEditDto inscripcionDto)
 {
     return(_repositorio.Existe(inscripcionDto));
 }