コード例 #1
0
ファイル: DatosFCT.cs プロジェクト: 01Joel-Hazas/06-EF-FCTs
        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;
            }
        }
コード例 #2
0
        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);
            }
        }