public void AsignarEmpresaAlumno(string idCiclo, int idAlumno, int idEmpresa, string idProfe, string nombreTutorEmpresa, out string msgError) { msgError = ""; FCT FCTNueva; var profe = bdFCTsEntities.Profes.Find(idProfe); var ciclo = bdFCTsEntities.Ciclos.Find(idCiclo); var alumno = bdFCTsEntities.Alumnos.Find(idAlumno); var empresa = bdFCTsEntities.Empresas.Find(idEmpresa); // POSIBLES ERRORES // 1. if (ciclo.OfertasFCTs.Count == 0) { msgError = "La empresa " + empresa.Nombre + " no ha solicitado alumnado para el ciclo " + ciclo.Nombre; return; } ; // 2 if (alumno.Aprobado == false) { msgError = "El alumno/a " + alumno.Nombre + "no ha aprobado el ciclo " + ciclo.Nombre; return; } // 3 if (alumno.FCT != null) { msgError = "El alumno / a " + alumno.Nombre + " ya tiene asignada la empresa " + alumno.FCT.Empresa.Nombre; } // 4 var ofertasCant = bdFCTsEntities.OfertasFCTs.Where(ofFCT => ofFCT.IdEmpresa == idEmpresa && ofFCT.IdCiclo == idCiclo).SingleOrDefault(); if (ofertasCant.Cantidad == ofertasCant.Empresa.FCTs.Count()) { msgError = "La empresa " + empresa.Nombre + " ya tiene asignados el/los " + ofertasCant.Cantidad + " (cantidad) alumnos/as pedidos"; return; } FCTNueva = new FCT(idAlumno, idEmpresa, profe.Id, nombreTutorEmpresa); bdFCTsEntities.FCTs.Add(FCTNueva); try { int asignados = bdFCTsEntities.SaveChanges(); if (asignados == 0) { msgError = "No se ha podido asignar ningúna empresa"; return; } } catch (Exception exc) { msgError = exc.Message; return; } }
public string AñadirAlumnoEmpresa(Ciclo anadirCiclo, Empresa anadirEmpresa, Alumno anadirAlumno, Profe anadirProfe, string tutorEmpresa) {// No tiene sentido que traiga los objetos, solo los identificadores, ya que es en la colecciones existentes donde vamos a hacer las modificaciones // Con los id debía buscar los correspondientes, el ciclo, ver si tenía esa empresa, si tenía ese alumno o alumna, si el alumno estaba aprobado, si .... if (anadirCiclo == null) { return("Debes seleccionar un ciclo"); } if (anadirAlumno == null) { return("Debes seleccionar un alumno"); } if (anadirEmpresa == null) { return("Debes seleccionar una empresa."); } if (anadirProfe == null) { return("Debes escoger un profesor valido"); } if (String.IsNullOrWhiteSpace(tutorEmpresa)) { return("El nombre del tutor de la empresa no puede estar vacio"); } if (anadirAlumno.Aprobado == false) { return($"El alumno {anadirAlumno.Nombre} no ha aprobado no puede hacer FCT"); } if (anadirAlumno.FCT != null) { return($"El alumno {anadirAlumno.Nombre} ya tiene asignada una empresa"); } OfertasFCT Ofertafct = BdFCTsEntities.OfertasFCTs.Find(anadirEmpresa.Id, anadirCiclo.Id); if (Ofertafct == null) { return($"La {anadirEmpresa.Nombre} no ha solicitado alumnos para el ciclo {anadirCiclo.Nombre}"); } if (!(anadirCiclo.Alumnos.Contains(anadirAlumno))) { return($"Este {anadirAlumno.Nombre} no esta en este ciclo"); } if (anadirEmpresa.FCTs.Count == Ofertafct.Cantidad) // No controla que las FCTs solicitadas sean justo de ese ciclo { return($"La empresa {anadirEmpresa.Nombre} ya tiene asignados el/los {Ofertafct.Cantidad} alumnos/as pedidos"); } //Creamos una nueva FCT donde vamos a añadirlo FCT anadirFct = new FCT(anadirAlumno.NMatricula, anadirEmpresa.Id, anadirProfe.Nombre, tutorEmpresa, anadirAlumno, anadirEmpresa, anadirProfe); if (BdFCTsEntities.FCTs.ToList().Contains(anadirFct)) { return("Esta Fct ya existe."); } try { BdFCTsEntities.FCTs.Add(anadirFct); anadirAlumno.NombreEmpresa = anadirEmpresa.Nombre; //Control de error por si no se a podido añadir int cambios = BdFCTsEntities.SaveChanges(); if (cambios == 0) { return("Error al añadir"); } return("Añadido correctamente"); } catch (Exception ex) { return(ex.Message); } }