EXAMEN Semestre : 1 2 Session : Principale Rattrapage Module : Architecture n-t
EXAMEN Semestre : 1 2 Session : Principale Rattrapage Module : Architecture n-tiers .NET Enseignants : Equipe .NET Classes : 4Sim Documents autorisés : OUI NON Nombre de pages : 4 Date :28/10/2014Heure 13h30Durée : 1h30mn Classe : ……………… Salle : ……………… ETUDIANT(e) N° Carte : …………………………………………………………... Nom et Prénom : ……………………………………………… .. Enoncé du problème : Vous êtes appelés à développer une application de gestion des recrutements. NB :Toute carte Wifi active est une tentative de fraude - L’enseignant vous fournira un projet que vous devez compléter afin de répondre aux questions en respectant l’architecture vue en cours et les patrons de conceptions étudiés. Diagramme de classes - Un candidat peut être un candidat externe (Candidat) ou bien un candidat interne (InternalCandidate). - Un candidat a un ensemble d’expérience. - Un candidat a une adresse. - Un candidat peut postuler à plusieurs offres d’emplois (JobOffer). - « Address » est un type complexe Partie I : Entity-Framework 1. Ajouter les propriétés de navigation ainsi que les propriétés représentant les clés étrangères en respectant le diagramme de classes. 2. En utilisant les annotations, configurer les propriétés selon ces contraintes : La propriété FirstName dans la classe Candidatedoit être : - Obligatoire sinon l’application affiche le message d’erreur suivant : Vous devez indiquer votre prénom. - De longueur maximale de 25 caractères sinon l’application affiche le message d’erreur suivant : La longueur maximale est 25 caractères. - La colonne de la Base de données qui lui correspond doit être de taille 20. - Affichée dans les vues comme suit : «Prénom». La propriété Emaildans la classe Candidate doit être : - Obligatoire sinon l’application affiche le message d’erreur suivant : Vous devez indiquer votre adresse mail. - De type Email Address. - Affichée dans les vues comme suit : «Email». La propriété Passworddans la classe Candidate doit être : - Obligatoire. - De longueur minimale de 6 caractères. - Affichée dans les vues comme suit : «Mot de passe». - De type Password La propriété DateOfBirthdans la classe Candidate doit être : - Obligatoire - De type Date. - Affichée dans les vues comme suit : «Date de naissance». La propriété CvFileName dans la classe Candidate doit être : - De type ImageUrl - Affichée dans les vues comme suit : «CV». 3. En utilisant la fluent API : Dans le dossier Configurations développer: - La classe CandidateConfiguration qui permet: a) De configurer les relations Many to Many entre les entités Candidate et JobOffer, spécifier « Application » comme nom de table d’association. b) De configurer les entités Candidate et InternalCandidate de façon que ces entités soient mappées à une seule Table nommé «Candidates», la colonne de la base de données qui permet de différencier entre les entités héritées doit être nommée «IsInternal». c) De configurer la relation entre les entités Candidate et Experience (delete cascade désactivé). - La classe ExperienceConfiguration qui permet de configurer la propriété ExperienceId de la classe Experience pour qu’elle soit une clé primaire. - La classe AddressConfiguration permet de configurer les propriétés suivantes du type complexe « Address »: La propriété StreetAddressdans la classe Address doit être obligatoire, et doitavoir une taille fixe de 20 caractères. Les autres propriétés de la classe Address sont optionnelles. 4. Completez la classe RecrutementsContext NB : Ne pas implémenter la classe Initializer. 5. Compléter les classes repositoriesdans le repertoire Repositories. 6. Dans la couche Service implémenter les méthodes suivantes dans la classe CandidateService: a) void CreateCandidate(Candidate candidate) Cette fonction permet d’ajouter un candidat. b) IEnumerable<Candidate> GetCandidates(); Cette fonction retourne la liste des candidats. c) IEnumerable<InternalCandidate> GetInternalCandidates() Cette fonction retourne la liste des candidats internes (InternalCandidate). d) Candidate GetCandidateById(int CandidateId) Cette fonction fait la recherche d’un candidat selon son ID passé en paramètre. e) InternalCandidate GetInternalCandidateById(int InternalCandidateId) Cette fonction fait la recherche d’un candidat interne selon son ID passé en paramètre. f) IEnumerable<InternalCandidate> GetInternalCandidatesWithGreatExperience() Cette fonction retourne la liste des candidats internes (InternalCandidate) qui ont plus que 3 ans d’expérience. --------------------------------------------------------------------------------------------------------------- Partie II : MVC Toute cette partie se déroulera dans le projet ASP MVC intitulé : « GestionRecrutements.Web» Les actions seront développées dans la classe « CandidateController». 1) Implémenter l’action Index en mode GET et sa vue correspondante qui permet d’afficher tous les Candidats. 2) Implémenter l’action CreateInternalCandidate en mode Get avec et sa vue correspondante qui permet d’ajouter un candidat interne. 3) Implémenter l’action CreateInternalCandidate en mode Post qui permet de : a. Valider les données du candidat interne saisie. b. Récupérer les informations du formulaire et les sauvegarder dans la session de l’utilisateur. c. Enregistrer le CV du candidat dans le dossier CV sous le répertoire Content d. Rediriger l’utilisateur vers la liste des candidats internes. Liste des candidats internes 4) Affichage du CV du candidat : a) Implémenter l’action et générer la vue « InternalCandidateCvPage » dans laquelle s’affichent les informations du candidat. b) Ajouter la vue partielle «_ShowExperiences » qui affiche les expériences d’un candidat. c) Ajouter la vue partielle «_ShowExperiences » à la vue « InternalCandidateCvPage » pour former le CV du candidat. Affichage du CV du candidat Bon Travail uploads/Geographie/ enonce-du-probleme-examen.pdf
Documents similaires
-
72
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Sep 11, 2021
- Catégorie Geography / Geogra...
- Langue French
- Taille du fichier 0.1727MB