public EliminarEstudianteResponse Ejecutar(EliminarEstudianteRequest request)
 {
     Dominio.Estudiante estudiante = _unitOfWork.EstudianteServiceRepository.FindFirstOrDefault(t => t.IdUsuario == request.IdUsuario);
     if (estudiante == null)
     {
         return(new EliminarEstudianteResponse()
         {
             Message = $"Estudiante no existe"
         });
     }
     else
     {
         _unitOfWork.EstudianteServiceRepository.Delete(estudiante);
         _unitOfWork.Commit();
         return(new EliminarEstudianteResponse()
         {
             Message = $"Estudiante Eliminado Exitosamente"
         });
     }
 }
        public CrearEstudianteResponse Ejecutar(CrearEstudianteRequest request)
        {
            var estudiante = _unitOfWork.EstudianteServiceRepository.FindFirstOrDefault(t => t.IdeEstudiante == request.IdeEstudiante);

            if (estudiante == null)
            {
                Dominio.Estudiante newEstudiante = new Dominio.Estudiante(request.IdeEstudiante, request.NomEstudiante, request.FecNacimiento, request.LugNacimiento,
                                                                          request.LugExpedicion, request.InsProcedencia, request.DirResidencia, request.CelEstudiante, request.TipSangre, request.GradoEstudiante, request.Eps,
                                                                          request.Correo, request.Sexo, request.TipoDocumento, request.TelEstudiante, request.IdUsuario);

                IReadOnlyList <string> errors = newEstudiante.CanCrear(newEstudiante);
                if (errors.Any())
                {
                    string listaErrors = "Errores:";
                    foreach (var item in errors)
                    {
                        listaErrors += item.ToString();
                    }
                    return(new CrearEstudianteResponse()
                    {
                        Message = listaErrors
                    });
                }
                else
                {
                    _unitOfWork.EstudianteServiceRepository.Add(newEstudiante);
                    _unitOfWork.Commit();
                    return(new CrearEstudianteResponse()
                    {
                        Message = $"Estudiante Creado Exitosamente"
                    });
                }
            }
            else
            {
                return(new CrearEstudianteResponse()
                {
                    Message = $"Estudiante ya existe"
                });
            }
        }
        public ActualizarEstudianteResponse Ejecutar(ActualizarEstudianteRequest request)
        {
            Dominio.Estudiante estudiante = _unitOfWork.EstudianteServiceRepository.FindFirstOrDefault(t => t.IdeEstudiante == request.IdeEstudiante);
            if (estudiante == null)
            {
                return(new ActualizarEstudianteResponse()
                {
                    Message = $"Estudiante no existe"
                });
            }
            else
            {
                estudiante.IdeEstudiante   = request.IdeEstudiante;
                estudiante.NomEstudiante   = request.NomEstudiante;
                estudiante.FecNacimiento   = request.FecNacimiento;
                estudiante.LugNacimiento   = request.LugNacimiento;
                estudiante.LugExpedicion   = request.LugExpedicion;
                estudiante.InsProcedencia  = request.InsProcedencia;
                estudiante.DirResidencia   = request.DirResidencia;
                estudiante.CelEstudiante   = request.CelEstudiante;
                estudiante.TipSangre       = request.TipSangre;
                estudiante.GradoEstudiante = request.GradoEstudiante;
                estudiante.Eps             = request.Eps;
                estudiante.Correo          = request.Correo;
                estudiante.Sexo            = request.Sexo;
                estudiante.TipoDocumento   = request.TipoDocumento;
                estudiante.TelEstudiante   = request.TelEstudiante;

                _unitOfWork.EstudianteServiceRepository.Edit(estudiante);
                _unitOfWork.Commit();
                return(new ActualizarEstudianteResponse()
                {
                    Message = $"Estudiante Actualizado Exitosamente"
                });
            }
        }