ASP de bout en bout. Développement de NET et de cadres d'entité | Trevoir Williams | Skillshare

Vitesse de lecture


1.0x


  • 0.5x
  • 0.75x
  • 1 x (normale)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

ASP de bout en bout. Développement de NET et de cadres d'entité

teacher avatar Trevoir Williams, Jamaican Software Engineer

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Regardez ce cours et des milliers d'autres

Bénéficiez d'un accès illimité à tous les cours
Suivez des cours enseignés par des leaders de l'industrie et des professionnels
Explorez divers sujets comme l'illustration, le graphisme, la photographie et bien d'autres

Leçons de ce cours

    • 1.

      Introduction

      2:49

    • 2.

      Créer un compte GitHub

      2:28

    • 3.

      Installez une édition de communauté de Visual Studio 2019

      10:14

    • 4.

      Mise à jour : Installez des installez Visual Studio 2022 Community Edition et la version de la communauté unifiée. NET 6

      2:16

    • 5.

      Créer . Projet d'application Web Net Core

      5:51

    • 6.

      Visite d'une application centrale ASP.NET

      23:25

    • 7.

      Migrer le projet vers . NET 5

      5:12

    • 8.

      Mise à jour - Migrer un projet vers des projets dans . NET 6

      5:57

    • 9.

      Mise en page Web de sites Web

      21:16

    • 10.

      Base de données, modèles et migrations

      32:39

    • 11.

      Injection de Repository et de dépendance de la configuration

      25:36

    • 12.

      Impliquer des bases de données et des fonctionnalités de la fonction de cadre d'entité et entièrement les entités

      25:35

    • 13.

      Configurer des modèles et AutoMapper

      32:04

    • 14.

      Réviser et ajouter des modifications à GitHub

      8:00

    • 15.

      Contrôle de type de l'écriture de l'lire et des actions

      12:20

    • 16.

      Affichage Indice de type de l'identification de type l'identification

      18:44

    • 17.

      Créer une photo de l'ordre de l'image

      23:17

    • 18.

      Modification de type de l'écriture l'ordre l'ensemble l'ordre l'ensemble l'ordre de l'ordre

      19:43

    • 19.

      Configuration laissez des détails de type type laissez des laissez des détails

      6:06

    • 20.

      Désir une fonction de suppression de type police l'l'l

      14:55

    • 21.

      Ajouter une table de données de type laissez et des icônes géniales de polices

      29:31

    • 22.

      Réviser et ajouter des modifications à GitHub

      8:06

    • 23.

      Aperçu de l'authentification ASP.Net Core Core Authentication

      25:53

    • 24.

      Personnaliser la page et le processus d'inscription et le processus

      36:02

    • 25.

      Fonctionnalité de connexion

      11:02

    • 26.

      Ajouter des rôles par défaut et l'utilisateur Admin

      32:19

    • 27.

      Contrôler l'accès utilisateur avec une autorisation de rôle

      19:10

    • 28.

      Réviser et ajouter des modifications à GitHub

      2:32

    • 29.

      Vue de l'ensemble de module d'allocation

      2:02

    • 30.

      Module d'allocation - Modification de base de données

      11:55

    • 31.

      Module d'allocation - Créer un affichage Créer de créer une vue

      44:42

    • 32.

      Module d'allocation - Liste des employés

      29:53

    • 33.

      Module d'allocation - Affichage laissez l'affectation par employé

      36:55

    • 34.

      Module d'allocation - Édition l'attribution par employé

      30:15

    • 35.

      Réviser et ajouter des modifications à GitHub

      4:30

    • 36.

      Présentation du module de demande de congé des employés

      2:06

    • 37.

      Module de demande de l'employé - Modifications et vues de la base de données et de modèles Models de la base les modèles

      9:21

    • 38.

      Module de demande de congé des employés - Configurer des contrôles Controlledrs

      33:37

    • 39.

      Module de demande de l'employé - Configuration de l'index Admin Admin View

      11:33

    • 40.

      Module de demande de l'employé - Créer une demande de Leave partie 1

      34:01

    • 41.

      Module de demande de l'employé de la façon de l'employé - Créer une demande de l'autorisation partie 2

      40:44

    • 42.

      Module de demande de demande d'adhésion aux administrateurs de la demande de demande d'autorisation d'approbation par administrateur

      40:02

    • 43.

      Module de demande des employés - Des points de demande de demande pour les employés

      15:00

    • 44.

      Réviser et ajouter des modifications à GitHub

      7:38

    • 45.

      Aperçu de thème AdminLTE sur AdminLTE

      1:23

    • 46.

      Créer une nouvelle page de mise en page

      8:43

    • 47.

      Configurer AdminLTE et les dépendances

      39:01

    • 48.

      Corrections et ajouts essentiels de mise en page

      14:00

    • 49.

      Pages de connexion et d'inscription personnalisés

      9:59

    • 50.

      Réviser et ajouter des modifications à GitHub

      3:11

    • 51.

      Fonctions de repository asynchrones

      17:41

    • 52.

      Contrôles et actions asynchrones et actrices Asynchronous

      16:11

    • 53.

      Réviser et ajouter des modifications à GitHub

      2:37

    • 54.

      Examen des motifs de programmation

      12:18

    • 55.

      Implémenter un repository générique

      30:01

    • 56.

      Implémenter une unité de travail

      14:54

    • 57.

      Contrôle de types de congé de Refactor

      13:02

    • 58.

      Contrôle de demandes de congé de Refactor

      18:45

    • 59.

      Contrôleur de congé Refactor de dégagement des allocations de Refactor

      9:21

    • 60.

      Mise à jour - Forte type comprend pour l'unité de travail

      11:53

    • 61.

      Examen des fonctionnalités de sécurité intégrées dans la sécurité

      7:26

    • 62.

      Méthode de suppression sécurisée

      6:56

    • 63.

      Envoyer des emails utilisant MailKit et SMTP

      19:24

    • 64.

      Vue de la section Publier l'ensemble de section

      3:50

    • 65.

      Configurer des services d'information Internet (IIS) sur un serveur d'un serveur

      15:46

    • 66.

      Publier une application à IIS et SQL Server

      29:39

    • 67.

      Créer un compte Microsoft Azure

      7:12

    • 68.

      Publier des services SQL Azure et Azure

      24:07

    • 69.

      Configurer des pipeline automatisé à l'installation automatisée avec GitHub et les DevOps Azure

      32:40

    • 70.

      Édition publie un examen

      2:13

  • --
  • Niveau débutant
  • Niveau intermédiaire
  • Niveau avancé
  • Tous niveaux

Généré par la communauté

Le niveau est déterminé par l'opinion majoritaire des apprenants qui ont évalué ce cours. La recommandation de l'enseignant est affichée jusqu'à ce qu'au moins 5 réponses d'apprenants soient collectées.

833

apprenants

--

projet

À propos de ce cours

Présentation générale

Apprenez comment créer un système de gestion de l'employé avec ASP.Net Core 3.1, le travail des entités pour la personne de la direction, Code First et le motif de référence. Ce cours complet vous montrera comment utiliser Visual Studio, Microsoft SQL Server Express et explorera le développement Web dynamique avec Bootstrap et JQuery et diverses bibliothèques de front-end de face.

ASP.NET Core 3.1 est le cadre de Microsoft pour créer des applications web compatibles de la personne de la personne qui vous servira à la construction d'applications Web à la construction d'applications Web prêts pour l'entreprise. Dans ce cours, vous apprendrez tout ce dont vous devez savoir sur la création d'applications ASP.NET Core 3.1, de la compréhension de la structure et des fichiers de dossier, à la construction d'une application Web complète.

Mettez à jour jusqu'à . NET 5 *NOUVEAU*

. NET 5 est la dernière version des technologies SDK de Microsoft et lorsque nous développons cette solution à l'aide. NET Core 3.1, nous faisons une mise à jour avec, une mise à jour ultérieure. NET 5 avec un effort minimaliste. Tout fonctionne encore !

Pourquoi apprendre ASP.NET Core 3.1

Microsoft . NET est la plateforme qui conduit la technologie commerciale de beaucoup des entreprises les principales entreprises aux États-Unis et de nombreux autres pays. Il s'agit de la technologie majorée utilisée pour générer des technologies d'entreprise à l'échelle des entreprises. Les entreprises ont choisi les entreprises. NET parce qu'il a fait pour ses for la fiabilité et son soutien prouvées.

La. Le langage NET de choix pour apprendre est C c puisqu'il s'agit des langues les plus utilisées les langues les plus utilisées aujourd'hui. Il s'agit d'un langage de programmation général qui peut traiter presque tous les problèmes, du bureau à la mobile aux applications Web dynamiques. En tant que tel, il y une demande forte dans le monde et les besoins de ce les autres. Développeurs NET dans une variété métier, afin de que d'autres emplois soient disponibles pour les candidats avec une base construite sur terre. Technologies NET.

Créer une base forte dans la base. Programmation de base NET :

  • Créer une application Web entièrement basée sur une technologie d'arête

  • Connectez-vous à une base de données à l'aide de Entity Framework Framework Core

  • Motif de Repository et d'injonction de dépendance

  • Comprendre le fonctionnement du motif MVC (modèles, vues et contrôles) de motif MVC et de manière contrôlable.

  • Comprendre C C et . Syntaxe Web Net Core

  • Comprendre l'authentification utilisateur à l'utilisation de ASP.NET Core Core

  • Comprendre comment utiliser les modèles, ViewModels et AutoMapper

  • Utilisez Bootstrap pour style et manipuler la mise en page globale

  • Gérer des paquets avec NuGet Manager

  • Implémenter la mise en page Web avec AdminLTE Theme AdminLTE

  • Configurer GitHub pour la commande source pour la commande

  • Configurer des serveurs IIS sur machine locale (ou Windows Server)

  • Configurer un compte Microsoft Azure

  • Publier . Application NET Core à IIS

  • Publier . Application NET Core aux services d'applications Microsoft Azure App App Azure

Contenu et aperçu

Pour suivre ce cours, vous devrez avoir quelques connaissances en matière de programmation orientée des objets, si pas C !. Même si vous n'avez pas beaucoup de risques à la présentation des éléments de la photo, Pile de développement net, ce cours est très débutant et très amical avec des conseils de développement.

C'est un cours énormé. Plus de 15 heures de contenu premium, mais intelligemment déchargé de mettre en valeur un ensemble d'activités connexes basées sur chaque module de l'application qui est en construction. Nous verrons également les problèmes et les erreurs au fur et à mesure des erreurs au fur et à mesure de la suite, la mise en œuvre des meilleures pratiques et l'écriture logique et comprendre pourquoi les développeurs font des choses de la manière à leur pratique. Vos connaissances grow, étape par étape, au cours de ce cours, et vous serez challenged de vous faire un grand nombre de mieux que vous pourrez être.

À la fin du cours, vous aurez passé dans Visual Studio et examinerez les erreurs de logique et de syntaxe que ce sera une seconde nature pour que vous ayez un deuxième de la seconde nature pour votre travail dans l'écran. Environnement NET. Cela permettra de mettre vos nouvelles compétences apprises dans la pratique et use votre patron et vos collègues de l'orbite.

Le cours est complet avec des fichiers de travail hébergés sur GitHub, avec l'inclusion de certains fichiers afin de permettre à vous de reproduire le code démontré. Vous pourrez travailler avec l'auteur pendant chaque lecture et vous recevrez un certificat de vérification vérifiable après la fin du cours.

Rencontrez votre enseignant·e

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

Enseignant·e

Compétences associées

Développement Développement Web
Level: All Levels

Notes attribuées au cours

Les attentes sont-elles satisfaites ?
    Dépassées !
  • 0%
  • Oui
  • 0%
  • En partie
  • 0%
  • Pas vraiment
  • 0%

Pourquoi s'inscrire à Skillshare ?

Suivez des cours Skillshare Original primés

Chaque cours comprend de courtes leçons et des travaux pratiques

Votre abonnement soutient les enseignants Skillshare

Apprenez, où que vous soyez

Suivez des cours où que vous soyez avec l'application Skillshare. Suivez-les en streaming ou téléchargez-les pour les regarder dans l'avion, dans le métro ou tout autre endroit où vous aimez apprendre.

Transcription

1. Introduction: Hé les gars, bienvenue à ce cours intitulé complet dotnet Core 3.1 et Entity Framework Development. Je suis votre instructeur, la trappe Williams. C' est un cours très détaillé pour vous mettre en service et programmer dans l'environnement dotnet Core en un rien de temps. Et certains des objectifs que nous espérons atteindre pour ce cours sont de construire une application Web entièrement axée sur les données. Comprendre le flux des applications dotnet Core. Construire un programme entièrement fonctionnel en utilisant le modèle de référentiel et l'injection de dépendance. Et certaines de ces expressions peuvent sembler plus effrayantes, mais tout au long de ce cours, je vais simplifier. Tout est très débutant convivial, c'est très détaillé. Et à la fin, vous devriez être un développeur dotnet complet. Nous allons également voir d'abord en attente, le modèle MVC fonctionne. Nous parviendrons à une meilleure compréhension de C Sharp et certainement des astuces et astuces. Et nous aurons un avant-goût de l'utilisation des frameworks frontaux pour styliser la mise en page globale et l'apparence de notre application web. Maintenant, faire ce cours est très, très bénéfique pour vous. Dotnet est l'un des plus populaires. La connaissance est utilisée pour construire l'entreprise des applications. Les développeurs sont en très forte demande. C' est une technologie très prédominante et c'est un ensemble de compétences extrêmement important à avoir à notre époque. Pendant toute la durée de ce cours, nous utiliserons Visual Studio 2019 Community Edition, qui est un environnement de développement très puissant dans l' outil de choix lorsque vous effectuez le développement de dotnet. Et cela nous permet d'intégrer rapidement avec d'autres frameworks front-end tels que bootstrap, jQuery, Font Awesome, et bien d'autres. Il est également livré avec l'intégration Git, ce qui nous permet d'intégrer facilement avec GitHub à nos fins de contrôle de la source. Et il est livré avec de nombreux Management Studio pour nos activités de gestion de bases de données. En fin de compte, je veux qu'il soit prêt à vous ouvrir au monde de la programmation dotnet, vous n'auriez pas besoin d'une certaine connaissance du HTML, CSS et de la programmation orientée objet si vous avez une certaine connaissance des bases de données filament, c'est aussi bon. Mais en fin de compte, encore une fois, c'est très détaillé. Donc, même si vous ne vous adaptez pas à ces technologies, il est très facile pour vous de vous tenir au courant et de vous sentir compétent en un rien de temps. Ceci est juste un aperçu de l'application que nous allons construire ensemble où nous allons permettre aux employés de demander un congé et de mettre en place des fonctionnalités administratives pour que les utilisateurs administrateurs puissent gérer ces demandes de congé. Donc, s'ils les approuvent ou les rejettent et ont montré l'histoire. Donc tout cela, une fois de plus, sera dynamique. Nous allons le coiffer en utilisant Bootstrap et admin LTE. Et on va s'amuser. Alors préparez-vous à rouler. 2. Créer un compte GitHub: Hé, les gars dans cette vidéo vont créer ou créer des comptes sur. C' est une étape très simple. Levez-vous. Il est très facile pour nous de vous inscrire. Tu as juste besoin d'aller te faire sauter la paume. C' est G I T H u b point c o m. Obtenez point com sur le hub. Vous allez atterrir sur ce terrain. Non, à partir d'ici, si vous avez déjà un compte et que vous pouvez vous connecter et vous pouvez pratiquement arrêter de regarder la vidéo ici si vous ne le faites pas, cependant, alors le formulaire du Sénat est juste ici. Tu peux faire un peu de lecture. Obtenez juste une appréciation de ce que sert le ghetto B. Et c'est un bateau. Ils ont des prix, donc ils offrent des plans d'entreprise, des plans d'éducation et des plans différents pour différentes situations. Mais pour le développeur solaire pour les très petites, vous savez, équipes qui peuvent ne pas être d'entreprise jamais qu'elles ne vous donnent ah beaucoup gratuitement. Donc, pour vous inscrire, il suffit de mettre un nom d'utilisateur sur une adresse e-mail et un mot de passe sur Une fois que vous avez fourni toutes ces choses et à condition que votre nom d'utilisateur soit assez unique hors cours alors vous cliquez. Inscrivez-vous pour le ghetto sur. Tu devrais être là. Donc j'ai déjà un compte, quelques ajustements réels en vous affectant vu mes frères deviennent fous en essayant de fournir informations, donc je vais juste me connecter avec mon compte existant. Donc c'est ce qu'il peut utiliser. Vous utilisez lui ou e militaristes pour vous connecter. Et le mot de passe ici je suis. C' est mon stand d'atterrissage. Donc, ils vous donnent vraiment, genre, un sens de la communauté. C' est presque comme un Facebook pour les développeurs. Dans une certaine mesure, vous pouvez suivre les gens une fois qu'ils suivent les gens, vous voyez leurs activités sur la page d'accueil de la grippe. Vous pouvez accéder à votre référentiel. Donc, évidemment, si vous êtes nouveau pour vous lever, alors vous n'auriez rien répertorié sur le côté ici. Quoi ? Je ne suis pas une nouvelle. J' ai été très occupé. Um, mettre du contenu sur descendre presque tous les petits projets d'animaux que je commence. J' ai un get sur positif, en fait besoin de passer par et nettoyer cela sur Aussi, j'ai eu des étudiants m'ajouter à leur repos dans le passé. Eso que vous connaissez, nous pourrions collaborer. Peut-être qu'ils ont un problème et je pourrais juste vérifier leur cordon à travers les positions de re. Toutes ces choses sont, vous savez, vous savez, possibles grâce à cet outil juste et puissant. Mais une fois que vous avez créé vos cônes et que vous avez bien signé Ondo, vous ne verrez évidemment pas ce que je vois une fois de plus. Mais alors cela compléterait le signe d'actif 3. Installez une édition de communauté de Visual Studio 2019: Hé, les gars, dans cette vidéo va installer Visual Studio 2019 Community Edition Maintenant pour accéder au site Visual Studio, nous tapons dans Visual Studio dot Microsoft dot com Photo Ne regarde pas studio bizarre, et nous veulent obtenir l'édition communautaire. Donc, nous avons des professionnels et nous avons de l'entreprise. Mais dans l'édition communautaire est gratuite pour les individus sur les utilisateurs académiques sur ditz. Aussi ouvert, monsieur. Donc encore une fois, hum, si vous êtes dans une séance inter-presse, vous devriez avoir de l'entreprise et vous devez payer une licence pour ça. Mais pour notre projet animal de compagnie, un projet individuel ou des projets académiques open source, les communautés là-bas, il est gratuit et il est entièrement alimenté et en attente d'être utilisé. Donc nous avons juste la communauté sur alors que les déclencheurs ne sont pas seigneur pour un installateur. Donc nous venons de cliquer sur ce Insulted qui vient d'être téléchargé Run. Il va initialiser Onda. Nous pouvons aller de l'avant avec nos installations afin que nous puissions continuer sur ce que juste poissons quelques dossiers pour nous. Très bien, donc une fois que ce sera fini avec ces charges de travail initiales, alors ce qu'il fera est de nous demander. Quels paquets souhaitons-nous installer pour prendre en charge tout ce que nous allons développer . Donc, comme je l'ai dit, nous développons une application web, donc nous avions besoin SP dotnet et le package de développement Web ou de la charge de travail sur. Ensuite, nous prenons ça, euh, nous prenons cette boîte ici puis à droite et nous avons dit, Vous voyez qu'ils nous donnent une petite liste de ce qui sera inclus. Donc, le dernier framework dot net est quatre points il. Donc vous savez, c'est que nous allons obtenir 4.4 à 4.6. Donc je comprends d'aller de l'avant sur le teck. Tous ces tous ces points net framework 4.6 point 1.2 point sept pointent sur. Mais ce n'est pas tout . Nous avons besoin de ce noyau Met, mais ce cours est basé sur dot net core 3.1, qui est le dernier. Mais si vous allez avec Visual Studio et qu'ils obtiennent 0,1 pour qu'on puisse laisser ça tranquille après ça, alors je vais vous montrer comment obtenir 3.1. Aussi, comme on va faire un peu comme ça, je vais juste prendre la case A zéro. Nous n'avons pas à modifier beaucoup plus là-bas. Je coche juste cette case. Assurez-vous que nous avons toutes les bibliothèques qui nécessiteraient que vous puissiez faire une exploration vers le bas. Il suffit de voir ce qui est à votre disposition d'autre. Sûr. Il a quitté le développement de la plate-forme de base de point net. Si vous cliquez sur cette charge de travail, vous obtenez d'autres points de noyau net. Mais je pense que beaucoup d'entre eux sont déjà inclus dans la charge de travail de développement Web car vous remarquez que l'espace total augmentera avec chaque charge de travail que vous choisissez. Donc je vais juste me mettre au pied sur Tick le 01 on. Je vais juste m'assurer d'avoir la charge de travail multiplateforme dot net core sur les charges de travail SB dot net et de développement Web. Nous ne faisons pas beaucoup de développement avec comme votre donc vous pouvez le prendre si vous voulez. Si vous savez que vous avez l'espace, c'est bon. Et bien sûr, plus vous cochez est plus long prendra le téléchargement. Mais je ne vais pas le prendre pour cette particule, Bien sûr, donc une fois de plus nous avons juste le développement net et Web, et nous avons le développement de la plate-forme cross core darknet sur les numéros un à cliquer, Installer sur, alors cela va démarrer l'installation, ce qui est vraiment un ne pas charger. Donc, en fonction de la vitesse d'Internet, cela va varier en longueur. Certains reprennent juste quinto quand tout est terminé ici. Bon, donc ce processus est terminé. Burba a pris juste désapprendre notre sur leur voir qu'ils ont besoin que je redémarre mon ordinateur afin de terminer cette configuration. Donc je vais dire que non. Non, pas que tu n'aies pas besoin de redémarrer, mais il y a autre chose que je veux te montrer avant de te laisser reconstruire. Donc, je vais dire, ne sais pas ce qui est fondamentalement juste ne va pas terminer l'installation tout de suite. Mais je vais juste minimiser cela et je vais vous montrer que nous avons besoin de télécharger les outils dot net core 3.1 sur, donc j'ai déjà cela ouvert et vous pouvez accéder à ce site Web via dot net dot Microsoft dot com on. Ensuite, je suis à Slash Don't Lord, où il me montre que je ne peux pas connaître les outils dot net core 3.1 ou le temps d'exécution pour cela spécifiquement ainsi que dot net framework quatre points il. Donc, nous venons d'installer Visual Studio avec le framework dot net. Quatre points. Ce sont des outils, donc on n'a pas besoin de faire attention à ça. Mais nous avons besoin du noyau 3.1 sur. J' ai dit plus tôt que le noyau dot net est construit pour plusieurs plates-formes. C' est une plateforme transversale. Donc vous voyez que les fenêtres ne savent pas que le Lennox Stone Lord, que les McCoys ne le savent pas et qu'ils ont un médecin ne le Seigneur pas. Bon, alors on va avec les fenêtres. J' utilise une machine Windows sur je vous enseigne basé sur Windows. Mais cela étant dit, quel que soit l'an suivant, vous ne connaissez pas celui qui vous convient sur DWI Run the Up donc je suis Winton. Il suffit de ne pas charger le moteur d'exécution dot net sur. Je vais aussi ne pas connaître le dot net core sdk, donc je vais juste ne pas connaître la X 64 parce que j'étais 64 bits sur. Nous ne pouvons pas le savoir lors de l'installation. Donc, quand l'installateur se décolle, c'est assez simple, un coup d'étoile sur. Ensuite, il fera ce qu'il doit faire. Ensuite, vous verrez que cela a été couronné de succès. Donc, je n'ai vraiment pas mis autant de temps à installer. Je vais juste revenir en arrière et aussi obtenir le sdk. Donc ce que j'ai eu c'était un temps de course. Je suis allé télécharger le SDK no sdk short pour le kit de développement logiciel. C' est là que les vrais outils de développement seront, um, à disposition pour que Visual Studio interagisse sur préavis. Ils disent que cette version est uniquement compatible avec Visual Studio 2019. Donc, si vous avez 2017 ou une version antérieure, alors vous pouvez vouloir mettre à niveau. Donc c'est je ne sais pas. Est-ce que nous allons juste installer que donc et puis démarrer A vient avec une installation de bâton, laissez-le faire son truc. Et puis il dit que tout a été installé avec succès et qu'ils utilisent tous leurs temps et tous les autres nous pointent. Les différents documents que nous pouvons utiliser pour votre ressource est de sorte que nous pouvons fermer cela. Je sais qu'on a fait tout ça. Ensuite, je peux redémarrer les ordinateurs. Je ne voulais pas redémarrer et puis oublier les étapes. Donc, je viens de m'assurer d'installer tout et puis nous faisons juste un gros redémarrage Onda bas l' ordinateur pour faire son truc. Bon, alors sachez qu'Ari Start est terminé. Lettres. Allez-y et tirez sur Visual Studio 2019 sur. Vous pouvez le trouver en allant dans le menu Démarrer, et vous pouvez probablement simplement taper dans Visual Studio va apparaître déjà épinglé mon Visual Studio 2019 à mon menu Démarrer, ainsi que dans ma barre des tâches. Donc, juste en cliquant sur cette icône violette qui ressemble à ce signe infini, nous lancerons notre studio visuel dès qu'il sera lancé. Il vous encourage à vous connecter ou à créer un compte, et vous pouvez le faire plus tard. Non, avec l'ajout de la communauté, ça vous donnera un peu, comme un essai de 30 jours si vous ne vous connectez pas. Donc, si vous choisissez, pas savoir, peut-être plus tard, puis plus tard, vous voyez comme ils disent, ou il a expiré ou quelque chose comme ça. C' est juste dire qu'ils s'attendent à ce que vous vous connectez veut vous connecter. Ensuite, il n'y a pas d'expérience d'expiration que vous avez une partie, donc je vais juste me connecter compte Windows, et ce sont les fenêtres sont des cônes. Est-ce que le Microsoft est un maïs que j'ai dur longtemps avant ? Andi. C' est celui qui abusent de tout comme vos activités connexes que notre maison comprend pour aller de l'avant et se connecter Une fois de plus, vous pouvez créer un cônes Microsoft ou, si vous avez déjà un, il suffit de l'utiliser lors de la connexion. Donc, si vous avez choisi de vous connecter ou vous avez dit ne pas savoir, peut-être plus tard, vous serez conduit au discours où ils vous demanderont quel style vous aimez. Tellement sombre, thème sombre est toute la région. Je ne suis pas bien. Non, mais vous pouvez choisir le thème qui vous convient dans les paramètres de développement. Je vais mettre ce développement web orteil. Donc, Général, oui, c'est bon. Mais alors quel développement ? Ce genre de mettre certaines choses à certains endroits pour le rendre plus évident pour vous de voir. D' accord, donc une fois que tu as fait tout ça, tu peux commencer le studio de résultats Non, peu importe. Je suis la signature des orteils sentir parce que je suis sur un serveur et ils sont certaines restrictions, nos propres activités. Et donc je suis juste en train de souligner ça pour montrer que si tu disais ne pas savoir, peut-être plus tard, alors c'est un écran que tu auras. Une fois le studio visuel Florentines, vous serez invité à vous connecter et à droite. Vous voyez que vous avez un procès de 30 jours. Donc, une fois de plus, votre période d'évaluation comme et que s'il vous plaît vous connecter remorquer beaucoup de produits. Tout ce que vous avez vraiment à faire est de vous connecter à ce message d'évaluation disparaît. Quelqu' un est à nouveau un signe. Très bien, je sais que j'ai été connecté. Tu vois ça ? J' ai le cône personnalisé qu'ils avaient à mon contenu. Et puis ce message d'évaluation a vraiment disparu. Et pour que je puisse choisir des vêtements. Et puis c'est l'écran de lancement de Visual Studio 2019. Donc à partir d'ici, je peux vérifier quelque chose d'un contrôle source. Je peux ouvrir un projet existant, ouvrir un dossier local pour créer de nouveaux projets. Donc on va faire une pause ici. Si tu es allé aussi loin, alors c'est parfait. Vous avez installé les résultats Studio 2019 Community edition sur. Alors vous êtes prêt pour la prochaine activité. 4. Mise à jour : Installez des installez Visual Studio 2022 Community Edition et la version de la communauté unifiée. NET 6: Salut les gars. Dans cette leçon, nous allons installer Visual Studio 2022, qui est livré avec dotnet six, qui est le dotnet le plus rapide à ce jour. Donc, pour commencer, il suffit de passer aux téléchargements slash Microsoft.com de Visual Studio dot. Ensuite, nous allons aller de l'avant et le téléchargement gratuit sur l'édition communautaire, qui nous donnera ensuite un installateur. Une fois que nous aurons exécuté ce programme d'installation, nous serons en mesure de sélectionner les charges de travail souhaitées. Les charges de travail font vraiment référence aux bibliothèques ou aux bibliothèques qui prennent en charge le type d'application que vous souhaitez créer. Donc, dans ce cas, nous voulons absolument obtenir cette charge de travail de développement Web ASP.Net sur le développement Web. Mais si vous êtes intéressé par d'autres technologies, vous pouvez aller de l'avant et les sélectionner. Vous pouvez donc voir que plusieurs charges de travail sont sélectionnées avec le développement Azure, NodeJS et le développement de bureau. Vous pouvez donc y aller de l'avant et les diviser également. Je pense qu'ils seront utiles avec d'autres projets que vous pourriez finir par construire dans l'ensemble, une fois que vous aurez fait cela, vous pouvez aller de l'avant et cliquer sur Installer, une fois que vous aurez fait cela, vous pouvez aller de l'avant et cliquer sur Installer, ce qui se ferait dans le coin inférieur droit. Bien sûr, plus vous sélectionnez de charges de travail, plus la taille du téléchargement est grande. Une fois que vous avez terminé cela, vous pouvez continuer. Maintenant, lorsque ce téléchargement est terminé, vous pouvez obtenir certaines options que je n'obtiendrai pas car je l'ai déjà installé. Cela va donc vous guider à quoi je m'attends ? Vous pouvez obtenir une option où vous pourrez choisir votre thème. Comme vous pouvez le voir, j'utilise le thème sombre, mais vous avez l'option d' un thème clair, un thème bleu. Et le fait est que Visual Studio 22 a beaucoup plus de thèmes que ses prédécesseurs. Ainsi, même si vous ne voulez pas éclairer les thèmes initiaux, vous pouvez obtenir tous les thèmes si vous en avez besoin. se peut également que vous soyez invité à vous connecter. Donc, si 2019 est déjà installé sur votre machine et que vous venez d'être installé en 2022, vous êtes déjà connecté à 2019, cela ne vous demandera probablement pas de vous connecter à nouveau. Cependant, s'il s'agit de votre première installation de Visual Studio, vous serez peut-être invité à vous connecter ou à créer un compte en direct, à quel point vous voudriez simplement utiliser votre Microsoft émis en direct à tous les loci, on m'apprend un lot com cones, ou vous pouvez simplement aller de l'avant et en créer un. Et si ma mémoire me sert correctement, vous pouvez utiliser une autre adresse e-mail non Microsoft, sécrète la salive, le froid. 5. Créer . Projet d'application Web Net Core: vous les gars dans cette vidéo, nous allons commencer à créer notre application Web dot net core. Vous pouvez commencer cela en lançant un studio visuel. Si vous ne l'avez pas déjà ouvert, alors quand vous arrivez à ce point ici était probablement vide pour vous parce que vous avez fait une nouvelle installation. J' ai fait une nouvelle installation. Il suffit de démontrer. Mais j'ai d'autres projets sur lesquels j'ai travaillé, donc je vais les avoir sur le côté ici où il montre en quelque sorte vos projets récents. Mais pour cet exercice, nous allons créer et vous voulez cliquer, créer un nouveau projet, puis en utilisant la barre de recherche en haut, nous allons simplement taper le mot core. Donc, lorsque nous tapons en cour, il va en quelque sorte filtrer tous les modèles de projet principaux liés parce que nous faisons spécifiquement une application Web, je peux être plus spécifique et CSB dot net core on. Ensuite, il va encore une fois filtrer et ensuite nous donner le modèle d'application Web de base sp dot net afin que nous puissions aller de l'avant et cliquer sur celui-ci, et nous voulons nous assurer que c'est celui avec C sharp. Vous pouvez voir d'autres avec F Sharp et peut-être vb dot net. Mais nous voulons celui avec C pointu, puis nous cliquons ensuite et nous lui donnons un nom. Quelqu' un devrait appeler celui-là. Partez. Bonjour, ami de la direction depuis que nous créons un système de gestion des congés, donc c'est laisser la gestion des tirets allumés. Nous n'avons pas à modifier quoi que ce soit d'autre à moins que vous ayez un emplacement spécifique dans lequel vous souhaitez placer votre projet. Ensuite, tout le reste peut rester tel qu'il est, et ils vont juste aller de l'avant et cliquer sur créer après avoir cliqué crée là-bas. On ne nous demande pas quel genre d'échafaudage ou de préréglage. Hum, tu sais quoi ? Avec quoi voulons-nous créer un projet afin que nous puissions créer un projet complètement vide. Nous pouvons en créer un avec un e p I, vous savez, modèle. Nous pouvons faire avec un modèle d'application Web que nous pouvons faire avec un modèle NBC acte angulaire GS, etcetera. Donc, pour cet exercice ont été la sélection de l'application Web M. V modèle c. Vous voulez vous assurer que c'est ce cadre de base de mitt et non dotnet. Droit ? J' ai donc expliqué que le framework dotnet et que Niko ne sont pas différents. Donc nous voulons nous assurer que nous sommes sur le noyau Darknet. Et nous voulons également nous assurer que la version hors dot net core est 3.1. J' ai donc un bon nombre d'entre eux énumérés ici. Vous n'en avez peut-être pas autant, mais vous devriez avoir core 3.1 si vous n'avez pas core 3.1, puis revenez à la vidéo d'installation sur Essayer et le configurer une fois de plus. Donc, je sélectionne core 3.1 sur la droite et dit qu'ils demandent, Voulons-nous configurer pour https ? Ils veulent permettre le soutien du médecin. Je veux les laisser comme non. Donc, je sélectionne une application Web avec NBC dot net core 3.1 sur puis pour l'authentification. Je vais changer cela de pas d'authentification Toe comptes d'utilisateur individuels. Donc, ce que cela va faire est en fait nous donner le cadre pour l'authentification dans notre application où nous pouvons créer et Andi utiliser les cônes A nativement sont hors de la boîte. D' accord, donc je vais juste sélectionner des cônes d'utilisateur individuels. Cliquez sur OK, puis nous pouvons aller de l'avant et cliquez sur Créer une fois de plus sur Ensuite, il va commencer le processus création du projet. Une fois que ce projet est créé avec succès que vous voyez, une interface qui ressemble à ceci, je peux avoir personnalisé mes interférences parce que vous pouvez réellement déplacer les acheteurs d'amarrage . Il peut présenter d'autres que vous ne voyez peut-être pas. Donc, exemple, je pense que par défaut, la solution Explorer est généralement sous le côté droit. C' est probablement ce que tu vois. , En fait, j'ai une préférence pour ça sur ma gauche, principalement parce que, vous savez, vous savez, tant que lecteurs occidentaux ou lire de gauche à droite. Donc, en partant de la gauche, en allant à droite, c'est plus facile pour moi. Mais je veux dire, à la fin de la journée, vous pouvez débarquer sur ces deux barres. Comme vous le souhaitez. Si j'ai ici une barre d'outils que vous ne voyez pas sur la vôtre et que vous pouvez simplement aller voir, alors vous pouvez cliquer et vous voyez l'expérience de sondage de Team Explorer. E Tous ceux-là. Toutes ces barres ou la plupart d'entre elles sont des barres d'outils qui apparaîtront sur notre doctorat. Si vous ne voulez pas qu'une barre d'outils soit toujours affichée comme,par exemple, l'explorateur de solutions, toujours affichée comme,par exemple, par exemple, l'explorateur de solutions, Vous voulez peut-être plus de biens immobiliers pour votre cour que vous pouvez utiliser cette petite épingle ici. C' est son masquage automatique, et vous pouvez cliquer dessus et il se cache automatiquement. Andi. Il n'apparaît que lorsque vous allez dessus et que vous cliquez dessus. Lorsque vous perdez pendant qu'il y a concentration, vous pouvez faire ce que vous devez faire. Et quand tu auras fini, tu peux juste cliquer dessus et il va, tu sais, se cacher à nouveau. Donc c'est C'est un calme, interfère polyvalent. Vous pouvez en quelque sorte le personnaliser, déplacer les choses selon vos préférences. Une fois de plus, j'ai un expert social à ma gauche. Andi, j'aime quand il est là pour un accès facile, avoir un grand vous savez, les écrans ont assez de biens immobiliers. Cette page de destination ils vous donnent une ressource est qu'ils peuvent, vous savez, commencer rapidement avec le code du bâtiment. Mais pour cela, scores allaient construire une application spécifique sur faire beaucoup plus de choses que n'importe lequel de ces articles probablement jamais mentionné pour vous afin que vous puissiez coller la nôtre dans la prochaine vidéo. Nous allons passer par l'explorateur de solutions, et nous allons vous faire savoir, nous allons passer en revue et comprendre exactement ce que nous regardons et comment tous ces composants contribuent à nous aider avec notre application développement. 6. Visite d'une application centrale ASP.NET: Hé, les gars. Dans cette vidéo, nous allons regarder la structure des dossiers de notre nouvelle application Web SP dot net core 3.1 . Non, notre outil de choix est Visual studio Community Edition 2019 sur Dans l'Explorateur de solutions que le nous permettre. Nous pouvons voir tous les fichiers qui sont dans notre projet. Donc, eh bien, commençons par ce qui est en haut pour que vous puissiez voir que ce genre de vue d'arbre plus haut Arctique. Plus haut sont vous donner tous les fichiers. Tout est un fichier si ou autre chose. Donc, je me tiens au sommet. C' est donc un fichier de solution. Donc, si vous n'êtes pas si familier avec Visual Studio sur des projets dans Visual Studio, ce qu'ils font c'est qu'ils créent Nous appelons un fichier de solution, qui est comme un directeur général pour tous les projets qui pourraient être à l'intérieur d'une solution. Ainsi, vous pouvez avoir une solution et il a un projet Web. Il a ah, voir bibliothèque de classe forte. Vous pouvez avoir un projet de bureau. Vous pouvez avoir plusieurs projets au sein d'une seule solution. Dans cette situation qui a une solution, ça va quitter la direction et nous avons un projet. Donc, la solution est au sommet. La plupart des participants au projet seraient au deuxième rang de cette liste. Sur ce sont nos projets Web. Et si vous cliquez, cela vous montre que c'est vraiment juste un fichier XML qui met en évidence, vous savez, certaines propriétés que le projet ou la solution devra suivre ce qui est fait . Donc, la solution est en haut et a généralement ce carré avec ce logo infini que Visual Studio a. Et puis nous avons le projet Web après ça, et nous projetons, vous savez, les icônes vous donnent un indice sur le genre de projet qu'il s'agit. Donc c'est notre projet Web, Andi. C' est un autre directeur comme pour tous les Off les fichiers qui seront utilisés sont créés à l'intérieur du projet Web. Alors ce projet représente l'ensemble de nos sites Web qui étaient sur le point de se développer ? Non, juste en marchant à travers les services connectés F. Et si vous détruisez cela, vous skins, vous pouvez à des services connectés. Les services connectés incluent, comme Microsoft, car vos services peuvent développer des services. Tout ce qui peut être peut être connecté au projet et l'utiliser comme un service Web ou un service supplémentaire. Vous pouvez l'utiliser comme un espoir pour cette vidéo. Je n'entrerai pas dans ça. Je voulais juste comprendre ce que tu regardes. Et puis nous avons la dépendance est donc si vous étendez les dépendances que vous voyez des analyseurs . Dominic Cork est livré avec quelques analyseurs qui nous aident avec notre débogage et ou analyse des performances. Au fur et à mesure, nous avons un cadre. Donc, nous savons où utiliser le noyau de points net à partir du travail sur les références de framework de base de points sur le magasin , puis les paquets où nous savons réellement quel type de paquets utilisaient et un paquet peut être, Vous savez, comme une bibliothèque de partie 1/3 qui est un utilitaire. Ainsi, par exemple, bootstrap sortira dans les versions précédentes que vous pourriez télécharger. Bootstrap. Non pas que vous ne pouvez pas savoir Désolé, mais il n'est pas implémenté de cette façon principalement. Mais le fait est, si vous avez 1/3 bibliothèque de parties que vous voulez inclure dans votre projet, alors vous ne savez pas ce que nous appelons un paquet en utilisant un outil appelé new get. Donc, si vous êtes en fait la dépendance est et que vous voyez quelque chose appelé géré, vous obtenez des paquets. Un autre écran qui vous montre ce qui est installé. Donc, nous avons tous ces paquets et rappelons que nous avions fait des cônes utilisateur individuels et nous avons créé un projet. Donc, quand vous le regardez, vous voyez le noyau de point net cette identité que vous j'ai raison. C' est donc un paquet que nous n'avons pas chargé sur certaines bibliothèques, le handle connexion stocke les données abeilles. Et puis, si la bibliothèque veut n'est pas déjà installée, vous pouvez toujours aller chez Bro. Sur. Ils devront le moins toutes les bibliothèques disponibles pour vous sur la nouvelle plateforme get. Donc voici geek où vous ne pouvez pas savoir que Jake porte des références ici sans aller manuellement et obtenir les fichiers. Um, vous avez la partie supérieure d'automne. Vous en avez quelques-uns que certains peuvent signifier quelque chose pour votre Je sais que certains ne me sont pas, et c'est très bien. Notez simplement qu'il est important que vous incluiez la pré-version lorsque vous effectuez une recherche parce que nous utilisons cette nuit-là 3.1, qui est tout neuf sur DSO. Certaines personnes n'ont peut-être pas publié um, très publiquement le darknet trois points la version dark net core 3.1 de leur paquet pour l' instant . Donc, en incluant la pré-version que nous mettons cette version à notre disposition pour Donald et inclusion. Ensuite, nous avons des propriétés. Et si nous allons dans les propriétés, vous voyez lancer les paramètres de pelouse que Jason, qui ouvre ce fichier, Nous n'avons pas à toucher quoi que ce soit ici. Mais voici Mlle Guy. Juste un feu avec quelques directives que quand nous lançons, c'est ce que nous sommes censés faire. Vous pouvez donc le modifier si vous savez exactement ce que vous faites. Si ce n'est pas le cas, vous pouvez le laisser tel quel et le modifier au cas par cas. Notre prochaine nous avons ou www route No. dossier racine Www a nos fichiers statiques. Et quand je dis des fichiers statiques, je veux dire dans le fichier CSS, n'importe quel fichier de script Java ou n'importe quelle lib a le bootstrap sur la requête JIA. Donc, il est livré avec ces choses déjà intégrées. Il est livré avec les références de fichier bootstrap, um, par défaut. Donc, si vous envisagiez d'utiliser bootstrap, alors vous n'avez pas à aller très loin parce que c'est déjà séparé du projet temporaire que nous aurions créé si nous voulons des fichiers JavaScript qui allaient se développer . Nous l'avons mis ici site pas CSS. est fondamentalement juste là cesse fichier qu'ils nous donnent que nous pouvons modifier si vous voulez ajouter choses qui me bootstrap, pas nécessairement nous donner. Donc, dans l'ensemble, tout ce qui est un fichier statique côté client. Ils nous donnent le cadre sur l'endroit où les mettre dans la mer. Assists, et ce sont généralement des fichiers CS et GS ne rendraient pas chaque fichier dima nécessairement dans un projet comme celui-ci. Donc, ce sont vraiment des fichiers CSS et JavaScript qui seraient créés et placés dans ces dossiers sur tous ceux qui sont dans le dossier racine www. Ensuite, nous avons des zones sur Daz. On va dans le truc de l'identité. Nous allons explorer ce qui se passe ici. Mais les zones sont fondamentalement comme une segmentation de vos applications. Vous avez, comme une zone d'administration contre et l'ère des employés contre j'utilise leur ère de gestion. Donc, par défaut, parce que nous avons inclus l'authentification de l'utilisateur, nous avons obtenu l'identité comme une zone sur son Il est vide. Non, mais quand on arrive à ce point, tu le vois un peu plus Philip. Ensuite, nous avons des contrôleurs. Non, je veux dire ne pas avoir passé beaucoup de temps à expliquer ce que la MTV et la mer signifient vraiment dans NBC, mais ils représentent des modèles, des vues et des contrôleurs. Sur DSO, nous avons un dossier quatre contrôleurs, et vous remarquez que nous avons un plein de quatre modèles. Sont un dossier pour les vues. Non, le contrôleur. Comme il semble personne, est-à-dire, c' est-à-dire, je vais l'expliquer d'abord à peu près dicte ce que l'application Web devrait faire. Donc, quand quelqu'un clique sur une page lorsqu'il clique sur un lien, il demande plutôt du contenu. Ils demandent un terrain. Donc, lorsque le clic sur ce lien, c'est notre demande, qui est envoyée au contrôleur. Donc Controller reçoit une requête sur. Puis quand il reçoit la demande, il est dit, Ok, cette personne a demandé ce lien ou ce contenu en fonction de l'information sur laquelle je reçois . Ensuite, il retournera le contenu du mieux possible. S' il ne peut pas, alors vous obtenez comme ça quatre ou quatre erreurs, sorte que le contrôleur tire littéralement les chaînes en fonction de ce que l'utilisateur demande par rapport à ce que l'application a à offrir, ledit utilisateur. Permettez-moi donc de le mettre en termes un peu plus simples ou bien dans le contexte de ce qui se trouve dans le dossier réel. Donc, dans les contrôleurs vendus Aranda, nous avons gagné le contrôle et ça s'appelle le contrôleur maison. Donc, c'est un contrôleur maison de modèle de nommage. Donc, quel que soit le nom du contrôleur, nous avons ce nom et ensuite le contrôleur de mots, et il devrait toujours être dans la communauté. C' est comme ça sur notre dossier. Celle-ci a été générée pour nous afin que nous puissions juste passer par le passé et le regarder. Nous voyons que nous avons un contrôleur domestique de classe publique. Donc, le même nom du fichier est le même nom de la classe qui est là. Et il hérite de nous une classe de base appelée contrôleur et celle qui insiste, condition que Onda commence par index. Donc indexe généralement la toute première page que les seigneurs sur n'importe quel site Web. Donc, quand vous allez bouleversé amazon dot com bulled venir youtube dot com. La première page qui apparaît est généralement appelée index, indépendamment de l'extension de ce point PHP html Quoi qu'il en soit, c'est presque toujours appelé index. Et si on était un magasin, quittez la direction et allez à la maison. Donc il a dit, laisser la gestion sous ledit slash maison, alors la première chose qu'il ferait est d'essayer de trouver l'indice. Très bien, donc l'index de barre oblique à la maison est le contenu que nous les utilisateurs demanderaient sur DSO. Le contrôleur va vérifier s'il a une fonction tirée index. Si c'est le cas, alors il dit, Qu'est-ce que l'index je devrais faire ? Ensuite, il dit vue de retour. Donc, la vue est ce que l'utilisateur voit arts suppression Avoir em wear V nufc modèle contrôleur de vue. Donc, le contrôleur voit que j'ai reçu une requête d'un utilisateur sur dso je vais faire ce que j'ai ordre de porte. Il s'agit du contenu que cet utilisateur devrait voir, qui est la vue quelle que soit l'utilisateur saisit la vue. Donc, si je regarde dans mon dossier de vues, alors je vais voir ah dossier avec le nom correspondant pour mon contrôleur. J' ai donc le contrôleur à domicile. C' est le nom de mon contrôleur Have Abus dossier appelé à la maison sur DSO Forever fonction qui est défini à l'intérieur de mon contrôleur. Donc au moins l'index et la vie privée. Si je regarde à l'intérieur de ce dossier de vues pour l'ensemble du contrôleur, alors je devrais voir un fichier avec le même nom. J' ai donc un fichier d'index. Désolé. Laissez-moi juste y revenir rapidement avoir une fonction d'index droite appelée index et vue de retour. L' attente est que quand il dit Return View va regarder à l'intérieur de ce dossier avec le nom correspondant pour un fichier avec le même nom que la fonction. Par conséquent, pour la confidentialité, vous voyez un fichier appelé Privacy Arrow. Candido Quelque chose de différent Est-ce que ces retours de vous avec un peu de contenu dedans entrés dans ça ? Pourquoi c'est un peu différent, mais à la fin de la journée étaient une vue tournante sur le travail à revenir vue ici. Le tribunal est identique, mais sait alors contextuellement qu'il renvoie la vue qui correspond au nom de la vie privée. Donc, il regarde dans le dossier et trouve un fichier avec un nom correspondant. Donc, depuis que nous avons commencé avec Index, regardons la vue de l'index. Donc si je n'aime pas l'index, tu vois ça ? C' est vraiment juste le chargement et ça voit Ok, heu, chacun des remorqueurs Bienvenue. Donc, c'est un html cinq, mais remarquez l'extension, disons, C s que html sur Ceci est une extension spéciale parce que alors il nous permet le genre off injecter C accord pointu dans notre page comme nous le voulons. Très bien, donc ici vous pouvez voir que cela ne ressemble pas au HTML. Ce n'est pas html un grand. Il est en fait un peu off comme un type C pointu d'hybride C forte html sorte d'hybride. PH Très bien, donc si vous êtes familier avec PHP, alors ce genre de désaccord est applicable dans un fichier CS HTML. Maintenant, la page d'erreur par défaut est ici, et elle revient de vous. Mais c'est une vue quelque part, et il renvoie un modèle de vue d'erreur. Donc, remarquez que quel que soit le nom, ne regardons pas le nom de ceci. Mais si vous êtes familier avec C Sharp et que c'est vraiment une classe, c'est donc déclarer la classe. Je retournais une vue avec une classe qui va avoir des données. Vous le remarquez, voyant la requête i d. Et il indique ce que le contenu de cette variable devrait être. Essentiellement, c'est du contenu, donc une fois que vous allez produire du contenu, ce n'est pas statique. Donc le contenu statique est comme ça. Je l'ai tapé et je l'ai laissé. Cependant, sur la base de cela, basé sur ce que je déclare cette classe comme passé dans la vue, alors cela peut être contexte. Donc je peux voir si c'est ce type de ferro sur ce genre de message off, etcetera, etcetera. Ou peut-être que je veux que les données soient affichées. Et une fois que les données sont dynamiques, le contenu doit être affiché que ce que nous utilisons est le modèle. Nous avons donc eu le siège de Vienne, nous avons le point de vue. On a les contrôleurs. Maintenant, nous regardons le M, qui est des modèles sur. Nous avons un modèle pour alors, dans ce modèle hirondelle, nous avons un modèle appelé modèle de vue d'erreur sur vous. Notez que c'est le même qui est déclaré ou initialisé ici avec du contenu à passer dans une vue qui devrait correspondre au mot erreur ou nommé Eric. Si nous avons regardé dans les vues et en regardant partagé sur, alors regardez dans le puits dans le partage pour qu'ils verront que nous avons cette erreur, pas CSS fichier de vue html là-bas. Très bien, donc quand nous quand cela sert hors de l'ère, Pidge, il va vraiment orteil, Servir cette vue avec une erreur de texte et une erreur s'est produite en faisant votre demande sur. Ensuite, il vous donne la même notification d'idée de demande qu'il cite des idées de demande de médecin modèle . Donc, note dans le contrôleur où une demande de modèle de révision I d. Donc, une fois que cette vue est rendue, elle a tout le contenu qui a été placé dans un modèle de révision, elle peut y accéder. Ensuite, nous pouvons imprimer dynamiquement qui est orteil nos utilisateurs en utilisant, eh bien, la syntaxe C tranchant. Alors voyez, nous avons une déclaration, et c'est ce que je voulais dire par le problème CS. Malala était le genre d'injecter un peu de C pointu avec plus de html. Très bien, donc, je l'espère avoir une meilleure compréhension de NBC. Je sais que j'étais comme un cours d'accident, mais ne vous inquiétez pas, nous avons tout un parcours devant nous et nous arriverons à comprendre tout au fur et à mesure que nous continuons . Donc, nous avons les paramètres de l'application que Jason c'est là que la chaîne de connexion grandes chaînes sont configurées sur l'ensemble. Nous voulons que la journalisation soit gérée sur dso cette connexion par défaut à peu près. Vous pouvez changer le nom si vous le souhaitez, mais il est là sur ce va créer une base de données sur un serveur appelé TV locale. J' ai donc dit que nous utilisions SQL Express. Nous utilisons en fait une version plus petite de SQL Express. Et c'est ce qu'on appelle la base de données locale, quel genre de vient intégré dans Visual Studio. Certes, nous pouvons y accéder en studio visuel ou nous pouvons utiliser ce studio de gestion. Mais c'est à nous de décider. Donc, ils sont certains paramètres en dehors de l'appât des abeilles il certains paramètres que nous pouvons mettre ici sur l'accès et il est dans un fichier de paramètres. Donc, si nous avons besoin de changer quelque chose, nous venons juste ici, le changer sur, déplacer ou programmer le fichier CS. C' est un fichier standard qui vient avec des applications principales, et c'est vraiment comme un Isar initial. Donc, il est juste de créer l'environnement pour l'orteil d'application de base du médecin. Démarrer et exister dans alors ou point de démarrage CS a plus de configurations pour nous, donc Doctor core est très modèle dans la nature. On peut mettre des connecteurs dans l'état des douves, euh, vous savez, référence des choses ici porte la France, eux là-bas. En fin de compte, ce dossier, ce conflit a déclenché ce cessez-le-feu. Désolé est livré avec une initialisation de configuration sur. Nous pouvons comprendre que nous avons mis en place différents services qui sont nécessaires. Donc, par exemple, nous avons besoin de se connecter à la base de données qui est définie par la chaîne de connexion par défaut, nous venons de regarder en séance assise afin que nous puissions changer la chaîne de connexion ici. Mais alors nous devons nous assurer que nous changeons la chaîne de connexion. On peut le changer dans le dossier du conflit. Désolé, mais nous devons nous assurer que si nous le modifions dans le fichier de conflit, que nous le modifions dans le démarrage de cette référence de fichier CS. En outre, nous pouvons configurer certaines valeurs par défaut sur notre identité. L' identité, une fois de plus, est ce que nous utilisons. Poignée d'orteil, authentification et autorisation. Nous mettons en place des services pour les contrôleurs avec des vues et des lectures. Une page est donc une fois de plus, point Net Core est polyvalent peut être utilisé pour le Web de bureau ou même application console applications mobiles . Vous n'aurez donc pas nécessairement besoin de tous ces éléments en fonction du contexte. Donc, quand vous mettrez en place le projet, votre startup, ce cessez-le-feu aura l'air très différent selon le genre de projet que vous créez. Donc, ils arrêtent l'application, n' auraient pas besoin de contrôleurs et n'auraient pas besoin de Razor PGE. Notre application Web le fait. On fait ça. Nous avons également une fonction de configuration pour l'environnement. Donc est de faire certaines choses en fonction du type d'environnement, et nous utilisons certaines fonctions de rotation sur l'authentification sur nous sommes assis à quoi le modèle par défaut pour vous naviguez devrait ressembler. Il y a donc un certain nombre de choses que nous pouvons mettre en place. Nous n'allons pas faire de changements, sommes trop intrusifs dans les changements dans cette vidéo et lancer le cours Nous avons fait les changements au cas par cas. Donc, sachez que nous avons vu à quel point la structure est pleine et nous avons une meilleure compréhension hors. Qu' est-ce que tu ne peux pas et je crois que j'ai sauté le dossier des données. Donc, le dossier de données que j'ai fait sauter les tuyaux du dossier de données, notre contexte DB sur notre migration. Donc, notre contexte DB est un fichier où quand nous sommes assis dans la base de données, nous n'allons pas entrer dans SQL Server et créer la base de données la traditionnelle que nous allions utiliser une technique appelée Code First, où nous sommes en fait simplement allé pour construire des classes qui modéliseront à quoi ressembleront les tables. Vous devez les ajouter à ce fichier sur. Ensuite, nous devons exécuter ce que nous appelons migrations, qui va réellement générer la base de données pour nous basé sur les modèles que nous aurions créés sont ces classes de données. Donc, je ne vais pas m'en mêler là-dedans. Je veux juste que vous compreniez ce qu'il y a dans le dossier de données, mais sachez juste ce que je veux faire est réellement exécuter cette application telle qu'elle est, afin que nous puissions voir à quoi notre application Web ressemble hors de la boîte sans aucune modification effectuée. Donc, nous avons cliqué sur la glace a exprimé cette flèche verte sur. Ensuite, il démarre ce que vous appelez un processus de débogage où il vérifie. Si vous avez des erreurs de syntaxe ou n'importe quoi dans votre tribunal va l'empêcher de fonctionner, donc il fait toutes ces vérifications. Ensuite, à la fin de ces vérifications, il lancera un navigateur avec votre application. Donc, c'est Visual Studio en mode débogage. Très bien, donc ils font bas vous clic orteil à travers vos fichiers Onda, mais il est pris des diagnostics et montrant toute activité basée sur votre utilisation hors de l'application. Alors qu'il est dans ce matin ici, nous voyons notre application est chargée afin que je puisse cliquer sur la nôtre. Si je peux cliquer sur la maison si gênant que le répertoire d'index ou la vue d'index dans le contrôleur personnel sera toujours la valeur par défaut. Vous pouvez changer cela, mais ce sera toujours la valeur par défaut sur DSO. Rappelez-vous, nous avons vu cette étiquette sur un autre remorqueur P. D' accord. Et puis, si vous cliquez sur la confidentialité qu'il grandit, est la barre oblique de la maison confidentialité. Tu vois ça ? Si je change ça sur mon index droit, alors ça va revenir directement à notre discours d'index puis en studio visuel. Alors que nous voulons voir l'ensemble ou l'application est en cours d'exécution, Ce que nous pouvons faire est à ce que nous appelons des points de rupture. Disons que je vis une certaine forme d'époque et que je ne sais pas exactement pourquoi. Sont que la flèche est, euh, je peux définir un point de rupture. Voyons voir ici. Donc, ce point de frein, il suffit de cliquer le long de ce panneau entre la barre d'accueil sur les lignes de cordon, sorte que le plus bien, plupart tourneront inversé quand il est dans cette section. Mais il reviendra à la normale ici. Lorsque vous cliquez, vous voyez ce point rouge et cette ligne est surlignée en rouge, est-ce pas ? Donc, je vais brozer l'index une fois de plus, alors ce qui va faire est de frapper cette fonction, puis de procéder à ce qui est dans la fonction . Mais alors il fera une pause sur le point de rupture, parce que c'est là que je veux que l'application fasse une pause ou plutôt me laisser le faire sur le terrain de confidentialité . Donc, je vais faire une pause sur le retour de la vue pour la confidentialité. Alors je vais y retourner. Ensuite, je vais voir la vie privée et puis il ne perd pas de concentration sur le frère, et puis il met en évidence la ligne où il est. Donc c'est dans le fait que vous êtes sur le point de faire ce processus. À ce stade, je peux choisir de sauter ce qui signifie que je peux aller ligne par ligne, qui sont des bas. Moi pour voir toutes les variables et toutes les valeurs en cours de définition, ou je peux simplement continuer ou appuyer sur f cinq pour continuer. Ensuite, la demande se poursuivra comme il se doit. Très bien, donc c'est essentiellement trou que nous fonctionnons globalement ou l'application. Si je vais me connecter, je pense que je vais obtenir une erreur car ce sont certaines étapes qui ou je n'ai pas eu d'erreur . Ok, il y a certaines étapes que nous devons faire avant de pouvoir faire ça. Donc fait fuite registre. Alors je crois que j'aurai cette erreur et on y va. Il semblait donc qu'il y avait un échec d'opération de base de données sur. Nous devons faire quelques migrations avant de pouvoir continuer. Donc c'est sur l'activité pour un plus tard ne pas. Mais pour non, je voulais juste que vous compreniez comment le studio visuel fonctionne et comment notre projet est réglé afin que je puisse réellement divulguer hors de cette fenêtre de navigateur. Andi, une fois que vous fermez la fenêtre du navigateur, Visual Studio va quitter, démystifier plus que revenir au mode où il vous permet d'écrire du code librement. Donc c'est tout pour le tour hors de la structure complète pour dotnet core 3.1 application. Dans la prochaine vidéo, nous commencerons à mettre en place le Lion. Donc vous avez vu le Leo juste savoir qu'il avait déjà ce genre de sentiment de bootstrap à elle. Mais nous allons juste aller de l'avant et faire quelques modifications, au moins pour commencer 7. Migrer le projet vers . NET 5: Hey les gars, dans cette vidéo, nous allons discuter de la façon de mettre à niveau 2.In à cinq ou même l'installer si vous n'avez jamais installé aucun framework .net du tout. Donc, cinq dominant est tout englobant et il est en fait rétrocompatible avec beaucoup de choses que vous auriez dans votre ASP.Net ou votre application principale 3.1. Cependant, si vous voulez mon accord sur .net cinq, alors cette vidéo est pour vous. Donc, notre voyage commence avec une simple recherche Google pour .net cinq, nous pouvons suivre le premier lien et ensuite cela nous mènera à une ère où nous pourrions soit télécharger le SDK, soit le runtime ou la puce. y a vraiment aucune limite sur laquelle vous devriez. Donc, vous installeriez le SDK de sorte que Visual Studio vous donne tous les outils dont vous avez besoin pour être en mesure de créer une application cinq dominante, tandis que le runtime est plus définit les bibliothèques de sorte que vous pouvez héberger l'application sur comme sur iOS. Donc, vous pouvez vérifier sur mon autre vidéo sur l'hébergement dominent applications de base. Et les étapes que vous devez suivre pour installer le moteur d'exécution, préparer en tant que et publier votre application. Donc, pour le SDK, nous voulons télécharger la version appropriée sur, disons, si vous êtes sur Mac, Linux, Windows, ils ont un package d'installation pour vous. Ainsi, vous pouvez aller de l'avant et cliquer sur le bon. Je vais y aller avec le x 64. Et une fois ce téléchargement terminé, vous obtiendrez ce programme d'installation, qui vous permet d'aller de l'avant et de cliquer sur Installer. Vous passez par tous les points de contrôle de sécurité F2. Et c'est un processus assez rapide et simple, donc il vous le fera savoir et il a été couronné de succès. Si cela n'a pas réussi, vous voudrez probablement vérifier que vous avez la bonne version. Je ne suis ni Rachel, au support de Microsoft. Quoi qu'il en soit, si vous avez la sérigraphie, alors vous êtes un pas de plus. Encore une fois, allez-y et cliquez sur Fermer. Et puis, si vous allez créer notre tout nouveau projet, vous pouvez lancer Visual Studio. Cliquez sur Créer des modèles de projet 2-0. Et allons-y avec une application Web de base. Cliquez sur Suivant et donnez-lui un nom. Donc, ce n'est qu'un échantillon, donc je ne serai pas trop formel avec quoi que ce soit humide et cliquez sur Créer. Et puis sur cet écran, vous seriez en mesure de sélectionner Dot NYC core 5 dans la liste. Ensuite, vous choisissez le modèle approprié avec lequel vous souhaitez travailler. Modifiez quoi que ce soit d'autre, puis continuez et cliquez sur Créer. C' est ainsi que vous pouvez créer votre premier .net. Donc, dans le cas où vous avez déjà le noyau, peut-être 3.1 application, alors ce que nous ferions le mieux noté est toujours d'apporter le projet. Cliquez sur votre fichier de projet, puis cela montrera simplement la configuration XML, XML derrière elle. Et puis vous allez faire quelques changements. Donc, où vous voyez le noyau détonant jusqu'à 3.1, Vous ne voulez pas changer cela en noyau .net ou .net, désolé, 5. Donc, juste comme ça .net cinq points ou laissez-moi juste le faire en plus grand donc c'est plus évident. Donc, vous voudrez juste remplacer point. Je continue à voir Dot.NET Core jusqu'à 3.1 avec net 5. C' est l'étape numéro un. Les prochaines étapes vous permettront de mettre à jour votre package ou vos références. Donc Randall, tous mes paquets qui verraient la 3.1, je voudrais en fait les changer pour peut-être cinq, non ? Ou je pourrais faire une construction. Eh bien, ma construction se sent réellement parce que, vu que mes dépendances ne correspondent pas à ce que ces attendues, ce qui est ce que nous sommes sur le point de réparer. Donc, laissez-moi adopter cette approche différente au lieu de construire ou de faire autre chose, nous pouvons cliquer avec le bouton droit sur notre projet, aller plus loin pour gérer de nouveaux paquets get, puis regarder installé. Et puis vous verrez toutes les mises à jour disponibles de peut-être 3.1 à cinq ou de n'importe quelle version il était parce que j'en ai d'autres qui ne sont pas directement des dépendances Microsoft et ils offrent les options de mise à niveau. Donc, je vais aller de l'avant et faire tous ces objets. Je vais donc cliquer sur les mises à jour, sélectionner tous les paquets et charger la mise à jour. Et puis après cet exercice, si je fais une autre construction, alors je vois que tout a été mis à jour avec succès. Donc, en un mot, peut-être que votre projet est différent du mien en termes de dépendances et de bibliothèques que vous utilisez. Mais les étapes sont moi et vous installez le SDK, vous venez changer votre infrastructure cible, mettre à jour tous vos nouveaux paquets get. Et puis vous devriez être bon d'aller avec .net 5. Si vous revenez à votre fichier de projet, vous verrez qu'ils ont tous été changés à 5. Très bien, donc ce sont les étapes que vous pouvez prendre pour mettre à jour votre série de pages. Application Mvc pour .net cinq. 8. Mise à jour - Migrer un projet vers des projets dans . NET 6: Salut les gars, bienvenue. Dans cette leçon, je vais juste vous guider mise à niveau de votre projet de dotnet 52, dotnet six. Maintenant, c'est complètement facultatif, et je suggère seulement si vous avez franchi le pas et que vous avez déjà mis à jour votre projet à partir de dotnet, trois points un, dotnet Core 3.12 dot net cinq, comme la leçon précédente l'aurait suggéré. Si vous n'avez pas pris cet engagement, vous pouvez continuer au-delà de cette conférence et continuer avec le reste du cours en utilisant dotnet Core 3 point 1, 0.net Core 5 est rétrocompatible avec tout à partir de Dotnet Core 3.1. Je vous suggère donc d'effectuer la mise à niveau. Cependant, pour cette leçon particulière, dotnet Sikhs sont dotnet Core six n' est livré qu'avec Visual Studio 2022. Donc, si vous utilisez Visual Studio 2020 et que vous avez déjà créé le projet à l'aide de dotnet Core 3.1 ou de dotnet Core 5. Ensuite, cette leçon est de vous guider sur la façon de mettre à niveau ce projet vers dotnet 6. Une fois de plus, vous avez déjà Visual Studio 2022 et vous avez le projet dans dotnet five ou dotnet Core 3.1, alors cette leçon est pour vous aider à passer à dotnet six. Sinon, vous pouvez poursuivre le reste de ce cours. Tout ce que nous faisons dans ce cours est compatible avec les versions précédentes. Cependant, au fur et à mesure, vous constatez que Visual Studio 2022 offre certaines fonctionnalités que vous ne verrez pas présentes en 2019. Par conséquent, en termes d'expérience, différentes choses peuvent apparaître sur votre écran. Ensuite, vous verrez sur mon écran, mais les concepts généraux restent les mêmes. Donc, assez de mon monologue, commençons. La première étape consiste donc à passer à notre fichier CSS. Maintenant, je suis conscient que vous n'êtes probablement pas très familier avec dotnet core et c'est très bien. Je vais y aller très lentement. Maintenant, vous verrez que je suis déjà dans Dotnet, en net ou en hausse 3.1, c'est là que je commence. Cela signifie donc que si vous n'êtes toujours pas dans le noyau 3.1, ce que je vais faire fonctionne également. Nous allons donc d'abord la date ou la mettre à niveau pour voir net 6. Ensuite, nous allons prendre deux nouveaux paquets et les placer ici sous le groupe d'articles pour les références de colis. Soyez donc prudent lorsque vous tapez ces références de package incluent Microsoft dot, ASP NET Core, JSON Patch, et la version est 6. La même chose vaut pour les extensions de points Microsoft version 6 des abstractions de mise en cache de points. Vous pouvez donc appuyer sur Pause et les taper. Une autre modification que nous allons apporter concerne le fichier ON de l'application settings.js. Nous allons donc remplacer ces deux lignes, les lignes 89, ou du moins pour moi, 89, mais l'avertissement des deux-points Microsoft et les informations sur la durée de vie des points d'hébergement Microsoft . Et nous allons remplacer cela par un avertissement de deux-points Microsoft dot ASP NET Core. Assurez-vous de mettre les bons guillemets et les tribunaux voient, comme vous le voyez ici, appuyez sur pause et répliquez en conséquence. Maintenant, après avoir effectué ces modifications, vous pouvez créer la solution pour que vous puissiez maintenir la touche Control Shift et appuyer sur B. Ou vous pouvez simplement aller dans Construire et continuer et appuyer sur cette option. Et cela vous suggérera que certains actifs sont désynchronisés. La raison en est que l'utilisation de dotnet six est nulle part et nos versions ne sont pas encore terminées. Donc, si vous êtes déjà sur dotnet cinq, vous allez voir les versions avec cinq. Vous les auriez déjà mis à jour à cinq. Vous verriez le même genre d'erreur. Nous devons donc cliquer avec le bouton droit de la souris sur notre projet, puis passer à Gérer les packages NuGet. Et vous ne connaissez peut-être pas cela, mais au fur et à mesure que nous suivons ce cours, vous interagirez davantage avec le gestionnaire de paquets. Il s'agit donc d'un outil qui vous permet de vous assurer que vous utilisez la version correcte des bibliothèques pour la version de dotnet que vous utilisez actuellement. Par conséquent, si vous regardez sous les mises à jour, vous verrez qu'elles sont pré-emballées avec certaines bibliothèques, certains paquets. Et beaucoup de versions sont désactivées. Vos versions sont peut-être différentes des miennes, mais à ce stade, elles doivent toutes en voir six. Vous pouvez donc sélectionner tous les paquets, puis cliquer sur Mettre à jour. Ensuite, vous pouvez accepter et cliquer sur OK pour accéder à toutes les invites que vous recevez. Et une fois que la douleur des mises à jour est effacée, vous pouvez appuyer à nouveau sur build, puis reconstruire cette fois. Ainsi, cela nettoiera la solution, restaurera tous les paquets et veillera à ce qu'elle voit tout en fonction de ce qu'il attend. Et une fois que cela a échoué, vous pouvez continuer. est ainsi que vous effectuez la mise à niveau vers dotnet 6. Ainsi, vous voyez que même si vous n'avez pas mis à niveau dotnet cinq, vous pouvez toujours franchir le pas et mettre à niveau dotnet 6 à partir de dotnet Core 3.1. Ils apprécient donc le cours. Comme je l'ai dit, Visual Studio 2022 est différent de 2019 en ce qui concerne certaines fonctionnalités. Vous aurez donc l'expérience de certaines choses comme IntelliSense amélioré, d'autres suggestions d'IA. Et vous ne le voyez peut-être pas sur mon écran car j'utilise 2019, qui est une version plus ancienne. Cependant, tout ce qui est enseigné est assez identique et rétrocompatible. Donc, vous ne devriez absolument pas avoir de problème. Je me réajuste en conséquence. Continuez donc et amusez-vous bien. 9. Mise en page Web de sites Web: Hé, les gars dans cette vidéo vont commencer à modifier certaines de l'esthétique autour de notre application. Donc, je l'ai chez les gens plus que ce est notre application sur. Vous pouvez voir qu'il est très clair, mais personne n'est tout simplement est plus ou moins est plus ainsi. Ne vous inquiétez pas des espaces blancs, mais certaines modifications que nous allons apporter incluent la modification du nom qui est affiché ici. CC congé sur la gestion des scores. C' est le nom de notre projet. Mais ce n'est peut-être pas le nom de l'application elle-même. Donc, nous apprenons comment changer cela. Nous comprendrons que nous pouvons faire face aux changements une fois. Certains changements sont-ils idéaux une fois. Rep. Ricky jeter l'application parce que ou dot net core application donne ou quelque chose comme un Lay faible pH où nous changeons les choses une fois et il est changé globalement. Donc, vous remarquez que la barre de Knave sur le pied de page sont statiques, indépendamment de la page ou sur si je vais à la vie privée est le même pied de page Onda barre nerveuse. Si je vais m'inscrire, c'est la même barre nerveuse sur le pied de page. D' accord, donc tu sais ce que c'est ? Il certaines choses qui sont cohérentes. Et c'est parce qu'il y a un fichier de base qui peut être modifié orteil. Vous me connaissez, ces choses en quelque sorte statiques sur global dans notre application. Donc de retour dans Visual Studio, et je vais juste fermer ce mode de débogage, et ensuite nous retournons à Visual Studio sur. Nous allons entrer dans la vue. Fuller. On va s'agrandir, partager sur. Nous allons orteil mise en page point CSS html. Donc, cela ouvre une grande pizza HTML. Si vous avez fait un travail avec HTML et par extension bootstrap, alors vous devriez l'être. Tu sais, tu devrais être capable de naviguer dans ton discours. Il y a ici quelques choses qui sont quelque peu différentes de la question ordinaire de la paix. Mais au fur et à mesure, je vais les expliquer. Pas de problème. Donc, nous avons la norme Isham des formats, ou ce que j'appelle le squelette, où nous avons ou non taper ou déclarer leurs déclarations en haut ou tête remorqueur et ou corps tout cela à l'intérieur de l'endroit où html baignoire tyran à l'intérieur de la tête hors tête. Nous avons certaines balises méta qui sont nécessaires pour que nous soyons à la fois globalement acceptables dans nos chances sur aussi tohave sont réactives. Site Web sur ces Ceci est requis par Bootstrap pour les dépenses de conception de site web responsive. Ensuite, nous avons notre titre, donc la première chose que je veux changer est le titre. Donc, vous voyez ici, il a laissé sur la gestion des scores, qui est les liteks OG que nous avons dit que nous voulons orteil se débarrasser sur. Ensuite, vous remarquerez également que c'est Il a ceci au signe et quelque chose qui est en quelque sorte mis en évidence, en colère et ne ressemble pas tout à fait au HTML ou au texte statique. Donc, une fois que vous voyez l'extérieur sur ce grand point culminant sur le texte, cela signifie que c'est la syntaxe de rasoir ou C tranchant en html. peu près. View data est une sorte de variable qui est disponible pour nous à l'intérieur de nos applications dot net core , et nous pouvons en quelque sorte asseoir les données de vue pour être ce que nous voulions être à partir du contrôleur sur. Ensuite, c'est ce qui sera imprimé dans cette section sur le titre puis le trait d'union et laisser la gestion extatique. Donc, en fait, je vais juste changer ça. Je suis allé appeler notre base d'application, laisser la gestion donc pour plus de contexte, peu près quand vous allez sur amazon dot com et cliquez sur le discours de crédit. Si vous regardez dans votre Tubb, vous vous rendez compte que vous voyez des produits tiret, amazon dot com. Ou peut-être voir Amazon dot com tiret. Certains indiquent hors Quel pager sur ce est à peu près tout ce qu'ils font. Amazon dot com serait statique. Ça ne change jamais. Mais alors ils vous disent dynamiquement sur quel pager en fonction du moment où vous grandissez. Donc, si je retourne aux contrôleurs sont plutôt si je retourne aux vues à la maison sur I Click Index que vous voyez ici que nous définissons réellement le titre de données View Toby Page d'accueil, alors dans la mise en page, il va imprimer tout ce que je mets dans ce titre et puis tiret , quelle que soit la statique fixe que j'ai mis là. Donc, pour chaque pièce que nous allons créer, nous pouvons si vous le voulez. Si tu veux être aussi méticuleux, pas de problème. Vous vous assurez juste que vous êtes très particulier à propos de ce que vous y mettez. Donc, l'application de base de tiret d'union de page d'accueil est ce qui sera chargé lorsque nous Breaux de sorte que notre page d'accueil sur pour la vie privée, ce sera la politique de confidentialité, gestion de congé de base de trait d'union tout droit, sorte que la section de données de vue fonctionne sur. Ensuite, vous voyez que nous référençons notre feuille de style bootstraps bootstraps, ainsi que le site qui CSS et lie le site CSS slash. Ce CSS et ça va de nos racines www utilise Fuller. Ce site sur celui-ci va du dossier lib bootstrap Beast CSS en ce que nous avons les fichiers bootstraps. Très bien, c'est ainsi que ces liens fonctionnent et par extension que c'est similaire pour le fichier script. Donc, les scripts sont généralement référencés en bas de la page afin que les P se rende avant que les fichiers de script ne soient rendus parce que, vous savez, nous ne voulons pas qu'il fasse attendre nos gens sur DSO Modern technique nous obligerait à mettre le au bas de la pizza qu'un contenu peut seigner jusqu'à ce que le feu de bande se charge . Donc on a ça sur. Nous avons aussi une section J'arrive à la section Assez, vous savez, commençons par modifier sur assez de barre. Donc, ça suffit. Bar est une barre assez bootstrap sur def. Vous n'êtes pas si familier avec bootstrap Parti veut plus de renforcement avec ce que vous pouvez faire avec Bootstrap, alors vous pouvez aller sur leur site Web, obtenir bootstrap dot com, où vous aurez accès à tous leurs de la documentation, des exemples et ainsi de suite. Donc Bush, en haut de 4.4, est le dernier. C' est et c'est ce que Eh bien, je ne suis pas sûr si c'est quatre points pour cela que le projet vient avec, mais c'est certainement quatre. Donc, votre si vous n'êtes pas le dernier et vous êtes assez proche de la dernière sur une fois de plus couvre bâtiment, donc nous n'avons pas à faire attention, beaucoup d'attention aux instructions d'installation. Mais si vous voulez comprendre, tenir assez par les œuvres et tenir les cours de travail. Alors on peut aller aux pieds. Je crois que c'est de la documentation. Ensuite, nous pouvons vous chercher à taquiner si les utilitaires de démarrage que ses composants. Andi, Comme vous pouvez le voir, c'est un document assez grand, mais dans les composants et nous avons nuff acheteur. Donc, quand nous cliquons assez de barre, alors il nous amène à la section où nous pouvons réellement regarder le noyau qui est nécessaire pour assez d'acheteur. Et c'est l'exemple de ce que le tribunal en bas vous donnera pour que vous puissiez être un gars que vous pouvez utiliser ce, euh, guide pour mieux comprendre la cour, mais je vais marcher à travers certains des changements que nous allons présenter notre demande. Donc d'abord, je ne veux pas de barres assez légères. Nous avons une option éteindre la lumière. Sombre sur. Laisse-moi revenir en arrière. Onda vous montre les différentes options. Vous avez la Sibérie. Vous avez les cheveux bleus foncés, Nous avons bleu clair. Je voulais être assez sombre sur BG Dash dark. Donc je vais retourner à ma cour et je vois ici que je n'ai pas de lampe de tableau de bord. C' est presque la valeur par défaut. Donc je vais voir le tableau de bord sombre en changeant ça pour le tableau de bord B G sombre. Mais si j'efface ce que je fais de l'espace culturel, alors vous voyez que la cour du studio visuel me donne alors vous voyez que la cour du studio visuel me donne un peu ce qu'on appelle l'intelligence. Ça vous aide alors que vous allez avec votre cour. Même avec des classes de bootstrap, je l'ai fait si sombre RBG. Donc, je sélectionne BG dark on. C' est une modification que je fais et que je vais apporter quelques modifications à mes propriétés de navigation . Donc, pour chaque lien qui apparaît dans une barre suffisante, vous avez besoin d'un allié avec la classe maintenant élément sur. Ensuite, vous avez un oncle remorqueur avec Charles. Est-ce que les classes pour l'attaque ANC veulent déjà qu'ils regardent donc je veux qu'il faut un tiret de texte sur. Je voulais être blanc. Je crois pouvoir voir le droit d'une femme. Donc j'ai besoin que le texte soit blanc parce que l'acheteur de nuff va être sombre. D' accord, donc je suis en train de l'inverser ici. Très bien, donc mon roman sur, puis le texte blanc va faire du texte blanc sur la zone de spe est contrôleur, les yeux égaux à la maison. Et l'action est index. Donc ça veut dire que quand je clique sur cette maison, tout va bien, comme nous l'avons fait quand nous sommes allés dans le livre. Plus décider venir sur où la maison et la vie privée liens. Donc, c'est le lien d'accueil sur. C' est le lien de confidentialité. Lorsque vous cliquez sur, le lien d'accueil va rechercher le contrôleur appelé « home ». droite. Et nous avons établi que nous avons un contrôleur appelé à la maison. Ensuite, il va chercher l'action. Est une action est à peu près cette fonction que j'ai montré l'intérieur du contrôleur de sorte vous voyez qu'il est appelé résultat d'action. Donc, l'action est que la fonction sur a fait. Il doit avoir l'index de nom. Il est donc à la recherche d'une action appelée Index. Et donc lorsque je clique sur la page d'accueil, c'est ma demande d'utilisateur pour voir l'action d'index ou la vue dans le contrôleur de la maison. Donc, quand je clique sur la maison va chercher d'abord que les contrôles de ce contrôleur n' existent pas et vous obtenez une erreur. Bon, alors, s'il le trouve, alors il va chercher l'action à l'intérieur. Et si elle n'existe pas, vous obtenez aussi un tôt. S' il existe, alors il fera tout ce qu'il y a à l'intérieur de cet espace pour. La fonction dans ce cas ne fait que retourner la vue, Donc, ce n'est personne à regarder dans le dossier Views pour la collection de vues de la maison correspondante sur. Alors il va aux orteils. Rendez notre contenu d'index. Non, le contenu de l'index est sur chaque discours qui dit Welcome et notre Peter qui a un lien et un récit sur ce court de nuit. Donc, ce qui se passe, c'est que lorsque nous cliquons que c'est la hauteur du Leo, quelle que soit la vue qui est retournée par la suraction est rendue à l'intérieur du corps d'Orender. Bon, donc c'est notre tueur. Six sur avec assez de barre et ensuite nous passons à la section de contenu. Donc, une fois de plus, je fais tout cela, en supposant que vous avez une certaine exposition au HTML sur. Donc, vous savez que Mishima PGE Après que vous faites votre hit et les baignoires de corps qui sont nécessaires absolument nécessaires pour une bonne structure. La nouvelle structure de votre page de la section hitter qui a généralement assez sur vos bannières et quoi que ce soit d'autre. Et puis vous avez le contenu qui est sur la page sur tout cela, la plupart du pied de page. Donc, si vous regardez de près, vous voyez que sont hommes Peach a la section d'en-tête avec notre barre assez droite qui a tous nos liens sur. Il a aussi, ah ce que nous appelons un partiel pour les fonctions de bagage. D' accord, mais alors nous avons aussi un don qui a une classe appelée conteneur sur ce sont les sections principales qui est la section de contenu hors tout bouleversé sur. Chaque vue est rendue à l'intérieur de cette section, ce qui explique pourquoi ou vue peut être si légère parce que nous n'avons pas à passer par et être clair Tout hors de la syntaxe html et tout. Chaque fois que nous avons de vous, nous avons juste besoin de nous concentrer sur le HTML requis pour cela. contenu des particules doit être restitué au pH. D' accord, on. Donc, il est rendu comme dans cette section, à l'intérieur du conteneur sur Contin Aires, une classe bootstrap qui nous donne, comme un beau remplissage de 80% sur n'importe quel écran qui est affiché sur. D' accord, donc je suis juste en train de marcher à travers ça va revenir et modifier notre barre assez un peu dans un peu parce qu'ils sont quelque chose de foutu à nos fesses qui se passent, nous ajoutons, nous avons notre conteneur, qui rend notre contenu de vue à chaque fois. Et puis nous avons notre pied de page. Donc, notre section pied de page je ne vais pas modifier l'esthétique, mais je veux modifier le contenu. Donc nous avons la copie, euh, copie pour cent, chimique. Et cela nous donne ce droit d'auteur sur le panneau. Alors je veux changer ça, et je vais te montrer quelques morceaux. Um, syntaxe du rasoir. Alors rappelez-vous que rasoir nous fermer orteil mettre c forte au lieu de quatre syntaxe html. peu près. Je vais modifier cette année, Toby plus dynamique parce que maintenant c'est 2019 et je suis en fait enregistrer cette vidéo sur le réveillon du Nouvel An donc littéralement demain sera 2020. Donc, je fais juste savoir que pour aller de l'avant quand vous voyez 2020 dans mon pied de page, même si nous avons commencé 2019 année quand siéger 2020 c'est pourquoi. Donc, il système à 19 et il est statique comme 2019. Donc je suis ce qui va orteil. Utilisez un peu de c pointu pour le rendre plus dynamique. Je vais dire à l'heure du signe, accord, et ensuite je verrai non. Donc si jamais je voulais savoir l'heure Non, que je parle, j'utiliserais le chronométré. Non, mais je ne veux que l'année pour que je puisse voir des points sur. Alors n'obtiens que l'année. Donc, ce qui va faire est d'avoir le droit d'auteur sur, puis obtenir l'année comme actes le temps de chargement de l'application Web, ou l'année en fonction de l'heure sur le serveur à partir de laquelle il pille, donc mon ordinateur est exact, assez précis. Donc demain tout changement 2020 alors mon heure de jour sera 2020 si l'heure du serveur est incorrecte. Lord applicateur sont le temps de l'ordinateur est faux, alors Évidemment cette valeur sera fausse. Mais le fait est que c'est dynamique. Ce ne sera pas 2019, même en 2020 et 2021. Donc je fais juste ça un peu plus que et je deviens juste démontrer. Tout c pointu peut être inséré dans notre HTML assez facilement à travers l'art du moteur de rasoir sur. Ensuite, je change ce texte sur DSO. Ils devraient aussi dire la gestion des congés de base. Et je vais copier ceci pour que je n'ai pas encore marché sur je laisse ce lien de confidentialité et ensuite nous avons ou script, hum, hum, fichiers en cours de chargement. Donc le script de requête FRG feu étant chargé le feu JavaScript bootstrap en cours de chargement sur notre site personnalisé ce fichier Js, qui vient également de notre doublet de votre itinéraire. Gs Fuller. Non, s'il vous plaît noter qu'avec les scripts et avec CSS, l'ordre est important. Donc ça veut dire que parfois tu essayes d'installer un peu, tu sais, comme une carrière J. Nous guitare quelque chose, et ensuite vous mettez les références de script au-dessus de la référence Jake Worry. C' est un non non, parce que vous obtenez juste un rose ne fonctionnera pas et ensuite vous voyez Oh, mon Dieu, qu'est-ce que je fais de mal ? Je ne peux pas faire ça. Donc l'ordre compte. Donc, je recommande juste que tous les fichiers de script supplémentaires que vous allez ajouter qui ne sont pas Jake ou, euh, bootstrap. Vous les mettez juste en dessous. Ils continuent à ajouter, ajoutant, ajoutant, je pense que je ne l'ai jamais mis au-dessus d'Ok, c'est une bonne règle empirique, cas par cas. Si vous comprenez ce que vous faites, alors c'est bon. Mais juste pour rester en dehors des ennuis, si vous n'êtes pas si sûr, il suffit de les ajouter ci-dessous sur. Ensuite, nous avons notre intersection ici. Alors rappelez-vous, laissez Orender corps, qui rend nos vues. Dans cette section, nous avons la section de rendu bien, ce qui est causé des scripts, je nous perds les scripts d'insertion dans la vue au cas par cas, parce que nous ne pouvons pas avoir besoin de chaque script cinq pour chaque vue unique. Bon, donc vous voulez réduire nos incendies, le Seigneur sur quelles pages. Alors en continuant, on verra le but de ça, mais je te fais savoir à quoi ça sert. vous n'avez pas besoin de supprimer. Tu peux, si tu veux. Tu n'as pas à le faire. Je dirais que ne le sont pas, alors quoi ? On va le faire ? Non, ça fait juste une touche finale. Rangez assez de bar. Je veux juste changer au sommet, où nous avons la première section sur la dette disant la gestion des congés et que nous voulons mettre dans l' application dans laquelle est la gestion des congés de notation. C' est donc le texte qui sera imprimé dans la barre de navigation elle-même. Nous n'avons pas à ennuyer beaucoup plus, mais je vais juste ajouter d'autres liens ici. Donc on est à la maison. Nous avons de l'intimité. J' ai quelques autres liens. C' est notre orteil clé, nos activités en suspens. Donc j'ai écrit 1/4 et je vais juste remplacer l'accord existant par la nouvelle cour et juste te donner un aperçu rapide de ce que je fais. Certains remplaçant le lien de confidentialité par mon cordon supplémentaire sur DSO. Encore une fois, nous construisons un système de gestion des congés. Donc la première chose que je mets dans la vie privée de la police est une demande de congé. Je vais juste m'assurer que mon texte est aussi blanc. Très bien, alors demande un congé. C' est ce que fera l'employeur. Et puis j'en ai un autre, et celui-ci est sous la forme d'une liste déroulante. Donc c'est comme ça que tu fais tomber Don. En fait, je viens de prendre le cordon exemple de bootstrap dot com parce qu'ils avaient un exemple déroulant . Et dans leur exemple déroulant, ils ont dit que pour obtenir un lien déroulant, c' est un lien déroulant que nous devons aller à l I Nous avons besoin d'un noyau orteil qui ressemble à ceci . Donc, je viens de copier ceci et puis modifier les parties que je voulais une clé. La goutte. Ne liez pas le texte sur l'action réelle ou les remorqueurs d'ancrage. Plutôt. Alors je pourrais me faire cette modification sur. J' ai donc les éléments déroutants et je les ai tous. Mais au fur et à mesure, nous les remplirons au fur et à mesure que nous mettrons les fonctions. Ensuite, nous rencontrerons le travail des liens. Donc pour l'instant, ce n'est pas mon objectif. Je veux juste que ma barre de noix ressemble légèrement à ce que je m'attends à ressembler. Andi, je vais juste mettre les pieds, euh, teck ce texte blanc et assurez-vous qu'il est à l'intérieur de chaque élément déroulant pour m'assurer que ça prend ces blancs. Mais je le suis. Ensuite, je vais juste aller déboguer et voir à quoi ça ressemble. D' accord, donc c'est à ça que ça ressemble, non ? Non. Sur dso, vous voyez que le nombre a changé trop sombre sur fait tant de choses ne sont toujours pas prend tiret blanc. Donc vous voyez qu'ils sont cachés ici. Mais alors les autres sont donc ce sont des petites choses que vous connaissez pendant que vous allez tester et ensuite vos alliés Oh, je ne m'ai pas laissé le changer sur une autre chose. Tu réalises que j'ai changé mes bâtiments en texte blanc tandis que le menu déroulant est blanc, donc tout ici est blanc, donc je vais m'occuper de moi. Ces modifications sur la bonne chose est que vous pouvez réellement changer la cour en mode débogage. Laissez-moi commencer par le partiel. Donc, je vais trouver mon explorateur de solutions, qui peut avoir changé la position opposée sur je vais aller au spectacle de bûcherons forestiers. Donc, cette connexion dans les tuyaux partiels, les liens pour la journalisation et enregistrer certains changer cette orteil blanc. Et je vais changer celui-ci en blanc aussi, puis économiser sur. Ensuite, je peux juste rencontrer le changement et voir même revenir à mon mode de débogage Actualiser sur le bas Une fois les changements sont reflétés, alors vous savez que vous avez fait quelque chose de correctement ? Donc, je suis allé de l'avant et j'ai fait tous les changements pour moi. Ces tiret de texte sombre sur dso savent que vous voyez tout. Bon, donc nous avons le nom de notre application. Ça pourrait être un logo. Tu sais, je le fais juste pour nous le nom de l'application en ce moment. Andi. Donc, quels que soient les changements que nous faisons, ils allaient sur chaque vue qui va être rendue à l'intérieur de cette section, qui se trouve entre notre barre de navigation sur notre pied de page sur. C' est donc un orteil d'introduction rapide qui apporte des changements esthétiques à votre application comme bon vous semble. Si tu dois sentir que tu as peut-être l'administrateur, Lt. Quoi qu'il en soit, quel que soit le thème que vous avez ou quoi que ce soit Look et sentez que vous allez pour vous pouvez juste moi les changements une fois dans les stocks de mise en page CSH dans un fichier le jour sera global. Utilisez votre application si vous voulez plus d'un chargement et vous pouvez créer un autre fichier en couches sur une base au cas par cas. Vous référencez ce fichier Leo à l'intérieur de la vue. Nous n'avons pas encore créé de vues. Donc, quand nous sommes arrivés à ce point, alors vous voyez ce que je veux dire par référence. Il est dans la vue pour que vous puissiez aller de l'avant et moi ces changements et tout autre que vous jugez bon. Andi. Dans la vidéo suivante, nous commencerons à créer notre base de données. 10. Base de données, modèles et migrations: Hé, les gars, Bienvenue dans cette vidéo, nous allons commencer à modéliser sur la base de données, et sur mon écran, il y a un modèle de données réel sur ce que nous allons créer en utilisant notre cadre d'entité appelé First Technique. Maintenant, c'est un diagramme de modèle de données sur. Laisse-moi voir si je peux devenir un peu plus grand pour toi. Bon, donc j'ai compris que ce sera plus grand à l'écran. Andi manger rectangulaire, ou chaque boîte représente Ah, table. Donc, vous voyez ici que certains ont le nom sont les mots ISS être net au début. Donc ont s revendications utilisateur d'arachide est les utilisateurs d'arachide etcetera ? Ils sont tous générés automatiquement par notre identité. Um, construit dans la fonctionnalité d'identité qui nous est donnée par s p dot net Core sait que nous avons d'autres tables que nous allons créer manuellement là-dessus. Ci-dessous. Laissez des histoires. Laissez les allocations de type Steve. On en voudra peut-être plus. Nous voulons moins que nous allons de pair avec raffiné le design sur. C' est ce que je nous fais d'abord en gardant tout pour la conception de la base de données sur le tribunal. Je vous donne juste un aperçu de ce que nous sommes sur le point de créer et remarquez que les relations seront créées à travers la façon dont chacune de ces choses sera facilité dans notre réel les adultes. Maintenant, dirigeons donc vers Visual Studio et commencez à concevoir ou à faire des cours. Donc, tout d'abord, nous avons un dossier ici appelé Data on. Quoi que ce soit dans les données est, vous savez, il est recommandé que cela ait à voir avec la base de données. Donc, en utilisant la cour d'abord, ce que nous allons faire, c'est créer des cours de cour qui seront convertis au rythme des écuries que nous venons de voir. Mais pour commencer, nous voulons générer notre base de données sont mis en place par beat obese on, afin que nous puissions continuer à travailler avec cette base de données. Donc, la première chose que nous voulons faire est d'aller à nos paramètres vers le haut que Jason sur nous avons la connexion par défaut avec la connexion orteil String. Notre base de données de cette chaîne entière représente une connexion. Chaîne les différents moteurs de base de données. La chaîne peut ressembler différemment. Hum, nous utilisons ah, moteur de base de données intégré appelé BB local. Il Zaveri Avery version lumière sur SQL. Et c'est plutôt indigène. Eh bien, il est livré avec un studio visuel. Donc, en installant les résultats pour vous, vous auriez obtenu ce moteur de base de données sur DSO. C' est celui qu'on utilise. Donc, pour se connecter à ce moteur, nous devons dire que le serveur est égal à. Alors il devrait déjà être là. Slash db local m. s s que une base de données locale donc nous n'aurons pas à changer cette partie. Mais alors pour la base de données accueille dans cette section devrait être le nom de la base de données que nous voulions créer. Donc il nous a donné Ah, bien sur notre nom dégénéré avec un bon, mais ce n'est pas forcément ce que je veux. C' est une bouchée. Donc, je vais juste simplifier ça un peu. Je vais appeler ça la gestion des congés. Donc, je vais tout enlever sur les bases de données égales à la gestion des congés. Donc, lorsque nous exécutons bien, nous devons exécuter pour générer la base de données dans notre base de données devrait être laissé sur la gestion des scores . C' est ce qu'on cherche. Ensuite, nous pouvons laisser tout le reste orteil les valeurs par défaut pour non. Au moins, vous n'avez pas à ennuyer ceux sur alors si vous vous souvenez quand nous avons essayé le registre des orteils . Il nous a dit que nous devions mettre en place la base de données et que nous devions faire une migration et toutes sortes de mots fantaisistes. Donc c'est tout ce qu'on va faire ? Non. Donc, dehors du dos, ce qui va se passer, c'est qu'il y a des migrations. Donc, si nous allons au dossier de données et les migrations pour leur et nous voyons que nous avons ici un fichier avec un tas de zéros et il est créer un schéma d'identité Donc si nous jetons un oeil rapide dans ce fichier de migration verra que nous avons un troisième ouvert sur. Si je m'écroule que nous voyons que nous avons aussi ah méthode terne. Donc, les callosités ne sont pas basées sur la méthode. Ok, laisse-moi enlever ça. Les méthodes up est laissez-moi les créer et ce sont les contraintes pour les créations. Donc, il va créer un SP net Rolls s utilisateurs de cacahuètes. Toutes ces choses sont par défaut. Et si vous regardez dans les utilisateurs SP, vous voyez toutes les colonnes et les contraintes qu'ils auront toutes ces choses merveilleuses . Je ne vous dis pas d'étudier ce dossier et de devenir un expert dans ce feu nécessairement cela a été une fois de plus également généré parce que nous avons sélectionné utilisateur consulaire individuel créer notre projet sur Comme nous allons le long, nous verrons que ce genre du fichier sera généré avec les différents changements que nous faisons à droite, Donc orteil effet une migration. Ce que nous voulons faire est de chercher la console du gestionnaire de paquets, donc elle devrait être en bas de la fenêtre Visual Studio. Si ce n'est pas là, alors vous pouvez disco pour voir Onda. Je suis désolé. Pas de vue, mais des imbéciles outils en fait. Ensuite, vous obtenez le gestionnaire de paquets sur les consoles du gestionnaire de paquets. Lorsque vous cliquez dessus, alors cette fenêtre que j'ai mis en évidence ici devrait être mise à votre disposition sur. Alors ce que nous verrons est mettre à jour les bases de données de trésorerie. Donc, il y a en fait deux étapes à cela. Mais alors la première étape est déjà en quelque sorte de prendre soin de parce que nous avons déjà le fichier de migration . Je ne vais pas m'y attarder quand nous commencerons à construire notre base de données, vous voyez la pertinence de cela. Mais nous avons d'abord la migration. Ce que nous devons faire est de mettre à jour la base de données, donc jouer base de données dit fondamentalement s'il y a une base de données que je vais rencontrer les changements que j'aime à moi. Basé sur le fichier de migration le plus récent sur diff, il n'y a pas de base de données que celle-ci. La commande va en fait aller de l'avant et créer la base de données en fonction des fichiers de migration disponibles. Donc, quand je dis que la base de données et appuyez sur Entrée va aller dans notre propre hors traitement, il va construire un projet sur. Puis une fois que cela a réussi, alors nous obtiendrons un message vu fait. Donc, si vous n'avez pas de messages d'erreur, vous n'avez pas reçu d'écriture rouge ou toutes les écritures jaunes, et c'est quelque chose qui regarde cela signifie que quelque chose s'est très bien passé. Donc, une fois que vous avez fait cela, nous pouvons vérifier qu'une base de données a été créée en fonction du nom que vous avez mis votre. J' ai donc mis congé sur la gestion du score. Donc, je m'attends à voir une base de données appelée Leave on the Score Management. Donc, pour accéder aux bases de données, ce que nous allons faire, c'est aller voir sur. Ensuite, nous allons chercher l'objet SQL serveur explorer. Donc, c'est comme une gestion de serveur SQL intégrée um, tableau de bord, que l'étudiant de visa met à notre disposition par défaut est en train de regarder l'instance DB locale qui est intégrée dans Visual Studio. Donc je l'ai déjà ici. Je peux étendre ce serveur SQL à l'intérieur de SQL Server, vous verriez aux encens db locaux. Donc, nous allons avec le m s s que une base de données locale comme indiqué dans notre chaîne de clinicien et je vais étendre cela sur puis dans la liste des bases de données que je vois la gestion des congés. Donc, si je développe, laisse la punition et élargis les tables, alors nous verrons que certaines tables ont été créées sur la base de cette dernière migration sur nous obtient comme un historique de migration qui est juste une table de camionnage sur tout cela est des tables nettes que nous avons vu dans notre précédent diagramme Montel. Donc c'était facile de déployer toutes ces tables requises pour notre authentification utilisateur sur la gestion des règles, ça se trouve si j'essaie de m'inscrire à nouveau, je ne devrais pas avoir d'erreur sur, vous savez, base de données manquante bloc d'opération droit. Ça devrait marcher. Non. Cependant, notre travail n'est pas fait parce que nous avons encore quelques autres tables qui sont nécessaires qui ne sont pas nécessairement seulement sur les utilisateurs et donc pour créer nos tables la première chose que je vais faire et comprendre pour réduire ce qui n'est pas absolument nécessaire à la tâche à portée de main. Quelqu' un pour fermer la migration, trouver des vêtements ou un fichier de fils sur. La première chose que nous voulons faire est de créer sur une table de profil d'employé. Donc, je vais écrire Clickbait er goto classe publicitaire sur. Ensuite, je vais créer un nouveau fichier sur Ball une nouvelle classe et je l'appelle employés. C' est une classe sur le nom off. Le casting est employé. Quelqu' un à cliquer, ajouter et puis cela me donne sur la classe d'employé Non sur les employés a généralement prénom, taxe de nom I D. Date hors anniversaire joint. Vous pouvez ajouter d'autres choses. Vous savez, quel que soit l'employé dans l'organisation que vous travaillez avec ce que ce sont les propriétés que je travaille sur Soto à notre propriété, vous pouvez alors que vous pouvez aller le long chemin et la chaîne publique droite le nom de qui dans ce cas sera le prénom sur. Alors on peut juste avoir imaginaire sur le plateau. Ah plus court. Nous sommes le moyen le plus rapide de le faire est d'écrire le mot prop C'est P R O P. pressé deux fois dessus. Alors. Visual studio génère cette ligne pour vous, donc le type de données serait de nouveau une chaîne. Il a appuyé sur le haut pour passer du type de données nom de propriété toe et le nom est nom de famille sur. Ensuite, vous vous dispersez, entrez, puis passez à la ligne suivante. Donc, quelle que soit la façon dont vous trouvez plus facile de le faire, vous pouvez le faire de cette façon. Mais encore une fois, nous faisons prénom, nom de famille Taxe I d. la date de naissance. Et c'est ce à quoi notre classe devrait ressembler. Prénom, nom Taxe I D date hors naissance. Le joint hors cours de deux jours sont hors temps temps de temps de temps sont sur. Ensuite, nous pouvons en avoir un de plus pour que je puisse juste dupliquer cette terre en tenant le contrôle et en appuyant sur b avis. Je n'avais pas à mettre les lions en évidence. Vous pouvez copier et coller, mais juste en cliquant dans la ligne sur la tenue sur le contrôle et le président de il va dupliquer autant de fois que vous le faites Cette combinaison de touches sur je vais mettre ceci comme cela a créé bit de sens. L' enregistrement des employés a été ajouté à notre base de données afin que vous puissiez en ajouter autant que vous le souhaitez. Ce n'était donc qu'un exemple. Je ne vais pas aller de l'avant avec ce qu'il a créé. Voilà à quoi ressemblera mon profil d'employé. Tu sais ? Une autre chose à noter est que l'employé est à peu près l'utilisateur, donc je ne veux pas avoir une table d'utilisateur et une table d'employé séparés. Je voudrais la table utilisateur, qui a l'utilisation dans le mot de passe sur Connaissez-vous d'autres petits détails sur l'utilisateur qui aident à l'authentification peut également avoir les détails sur ce qu'un employé devrait avoir afin d'étendre cette table. Alors rappelez-vous que la table utilisateur est réellement générée pour nous, et je peux juste revenir à escalader l'Explorateur d'objets sur développer cet utilisateur stable sur Regardez les colonnes sur Alors les colonnes auraient, vous savez, un I D, qui est une clé primaire. Le nom d'utilisateur un normalisé en utilisant lui l'adresse e-mail. Donc, toutes ces choses sont déjà incluses dans le SB net User stable, mais alors je veux ces propriétés prénom, taxe de nom I D données date de naissance joint orteil également être ah partie de cette table utilisateur. Donc, ce que je vais faire est d'étendre cet orteil de table ont également ces propriétés sur pour le faire. Ce que je vais faire, c'est utiliser l'héritage. Donc, utilisez nos deux-points sur ça. Je vais spécifier un nom de classe, qui, qui, dans ce cas, est identité User. Donc, l'utilisateur d'identité est, ah, classe qui représente l'stable. C' est spin it user stable est représenté par l'utilisateur d'identité de table. Tu as remarqué cette ligne rouge. Nous pouvons simplement cliquer là dessus, puis si nous plus, nous obtenons cette petite boule blanche qui suggère comment nous pourrions le réparer sur le correctif car il est d' inclure une bibliothèque manquante, qui est l'identité de base du réseau SB. Donc juste en incluant cette bibliothèque dans notre liste de bibliothèque en haut, nous avons vu le problème. Et puis nous n'avons plus d'erreurs pour nos employés, Gus. Maintenant, nous pouvons rouler ces changements directement à la base de données, semblent en même temps par la création d'une migration, puis de mettre à jour dans la base de données. Donc, je vais d'abord retourner à notre console de gestionnaire de paquets. Donc, c'est la première classe que j'ai ajoutée sur Eh bien, avant d'y arriver, il y a en fait une étape de plus que je dois terminer, qui est l'annonce. Donc, nos fichiers de contexte DB. J' ai donc besoin de cliquer sur l'application db. Contexte sont donc nous voyons ici que c'est la classe et c'est ce qu'on appelle le contexte Application Devi. Mais leur véritable puissance vient de son héritage de l'autre contexte db identité de classe Juste sur Alors nous avons ah constructeur ici. Donc, sous le constructeur, je dois lui dire que dans la construction de la base de données en faisant ce que vous faites par défaut, vous défaut, avez également besoin de ce sont ces stables donc que la table la plus récente est des employés, qui hérite de l'utilisateur d'identité. Donc, j'ai besoin de voir public puis dire db set ouvert sous le support. J' ai remarqué que l'intelligence me guide alors que je vais, donc j'ai besoin d'employés à ce moment-là. Donc, c'est une classe que je m'attends à devenir une table, mais que je dois lui donner un vrai nom. Je vais appeler ça des employés, puis j'ai mon générique obtenir Andi assis. Donc non, je viens de créer une propriété à l'intérieur du contexte db de l'application et vous ai dit que cela devrait être une partie de l'ensemble DB. Donc, chaque fois qu'il génère la base de données dans la base de données, quoi qu'il doive faire, il doit s'assurer que la classe d'employés est prise en compte. Sur elle est déployée dans une table ou par la façon dont nous l'avons définie. Il étend la classe d'utilisateur d'identité, sont utilisateur SP. C' est parce que l'utilisateur inclut également ce que les employés ont à offrir. Donc, quand nous faisons cela, alors nous pouvons faire une migration. Ensuite, nous revenons à notre console de gestionnaire de paquets et ensuite nous disons, ajoutez la migration de trait d'union, puis nous lui donnons un nom. Donc, bien sûr, vous voulez garder l'indien numérisé unique afin que nous puissions suivre mes changements à la base de données. C' est facile à dire, c' est ce que j'ai fait à ce moment-là. Je vais voir des employés ajoutés manger des points parce que c'est ce que nous avons fait. Nous avons ajouté des points de données des employés qui identifient la classe d'utilisateur. Ensuite, une fois que nous ajoutons la migration et que nous appuyons sur Entrée va orteil pour construire sur, puis générer ce fichier de migration sur cette migration générée. Fat est en fait aller orteils ont le même haut et ne fonctionnent pas que nous venons de voir dans l' autre. Donc, dans la fonction up que vous voyez ici, il en fait certains dans les colonnes, et il voit la colonne ad ah hors types, chaîne utilisateurs TSP. En voici un de temps pour être rejoint. Il est l'ajouter à la date de naissance des utilisateurs SP Net, tous les points de données que j'ai dit que je voulais faire partie des utilisateurs de l'arachide S. Ça va les ajouter à son cœur. C' est ce que cette migration cinq sait. Après avoir fait tout ça. La prochaine chose que je veux faire est de la pression sur la base de données entrer, et ensuite nous obtenons à remarquer que cela a été fait. Donc, si nous revenons à notre explorateur d'objets pendant que, j'ai déjà la table ouverte, donc si je clique juste dessus et que je clique sur rafraîchir, ce qui je pense va juste rafraîchir la vue entière de toute façon, accord, Et puis on creuse en arrière, ne pénètre pas dans notre table. Ensuite, vous voyez que les nouvelles colonnes air là, nous avons joint avec un peu de naissance étaient prénom, taxe de nom I D. Donc, c'est en fait comment facile de l'être encore. Cette base de données Et si nous ne voulons pas de colonne. On peut y retourner, en retirer la colonne. Mais bien sûr, nous devons faire une migration, puis mettre à jour la base de données une fois de plus. Donc essentiellement, si tu devais partager ce froid avec quelqu'un, ou je sais que ce projet sur toi leur a dit, Ok, voici un projet. Vous avez besoin d'une base de données. Nous pouvons simplement exécuter la base de données de mise à jour. Et ce que le moteur va réellement faire est de passer du premier fichier au fichier le plus récent , et il va réellement déployer tous ces changements en utilisant les méthodes ouvertes pour savoir exactement quels changements il doit apporter à créer la version la plus récente de la base de données en fonction de l'endroit où se trouvait le projet, comme à l'époque. D' accord. C' est pourquoi la première technique de la cour est un peu facile à suivre. Quelles sont les modifications apportées à votre base de données ? Heures supplémentaires Onda aide les gens à savoir exactement ce qui se passe quand d'accord, alors nous avons ajouté une table ou nous avons étendu une table. Mais nous avons trois tables que nous devons agir. Donc je vais juste aller de l'avant et créer une autre classe. Je fais un clic droit, clic sur les données, ajouter la classe de sélection sur. Ensuite, la table suivante que nous allons ajouter est l'historique des congés. Donc, nous ajoutons l'historique de congé sur. Je vais juste aller de l'avant et à toutes les classes avant de commencer à y mettre des propriétés . Donc, nous avons quitté l'histoire. Nous avons un type de congé parce que, eh bien, elle part. L' histoire va croire record. Le type de feuille est un type de congé que la personne a pris avec son père maternel ou, vous savez, vacances. Ensuite, nous allons avoir la table d'allocation des congés, qui stocke aussi quoi ? Combien de jours chaque employé a pour chaque type de congé libre droit de sorte que vous pouvez avoir 10 vacances ces, mais cinq années soixante etcetera, etcetera. Donc ce sont les trois tables qui ont été mis en place pour commencer avec Onda comme nous allons le long de la première Andi la plus facile à faire va croire les types parce que les autres tables ont dépendance est sur le type de congé, donc je vais créer ou aller retour à notre classe de type de congé sur. Alors ce que je vais faire, c'est mettre en trois propriétés. Alors rappelez-vous que je peux dire prop de notre part à la place. Donc c'est public. Je n'ai pas désolée. Donc l'idée serait la clé primaire de la table. Donc c'est toujours bon. descente de base de données a toujours une clé primaire. Une autre propriété serait le nom étant le type off. Laissez votre nom hors du type de congé. Donc le nom de la chaîne sur le bas. Un de plus, qui serait fait temps sur ce serait acte créé. D' accord, je suis en quelque sorte en train de mélanger mes lignes ici. Donc, une fois de plus, vous pouvez t ce genre de moyen plus court d'écrire dans les propriétés. Ou vous pouvez les écrire dans le long chemin. De toute façon, ça marche. Mais alors nous avons besoin de ce que nous appelons des attributs. Toujours en quelque sorte spécifié à la base de données que lorsque vous générez cette table, c'est ce qui est requis pour ceux-ci, est-ce pas ? Donc, par exemple, je vais mettre un attribut clé sur la propriété I. D. Très bien, Donc, c'est de spécifier que c'est la propriété key et qu'il a une ligne rouge. J' y reviendrai ensuite pour le nom. Je vais spécifier que celui-ci est nécessaire donc dans les bases de données et vous pouvez beaucoup ne sont pas seuls sait donc sans le mot t oiseau requis. Ensuite, cela aurait Bean généré comme une colonne qui sait quoi alors Il n'a pas de sens de créer un type de feuille sans nom. S' il n'y a pas de nom, alors il ne peut pas y avoir de type feuille, non ? Je ne vais pas être si dur et rapide à la date créée parce que je peux forcer cette valeur plus tard. Mais au moins je veux vous montrer que nous avons ces hommages pour avoir le crochet, le mot ou le nom hors de l'attribut et fermer les crochets. Donc, les lignes rouges indiquent une fois de plus qu'il manque quelque chose pour que nous puissions passer le curseur dessus, cliquer sur notre ampoule et y arriver la solution. Ou on peut. Si on dactylographie, on ne peut pas s'embêter le plus. Vous venez de rencontrer les courants vont au milieu du monde, puis maintenez le contrôle et appuyez sur point sur. Ensuite, il nous donnera une suggestion sur le moins donc c'est une autre carte de requin clavier courte que vous pouvez utiliser. Donc, je vais juste aller de l'avant avec l'orteil suggestion inclure les données du modèle de composant sur les notations dans le type de congé. Donc, nous avons la clé. Donc, la base de données, vous savez que c'est la clé primaire pour la stable et il est généré sur le sens requis que cela devrait être généré comme pas de neige. Et puis je peux voir si ce fichier suivant à modifier est laisser des allocations pour quitter un emplacement. Il aura la propriété i d qui va également avoir ces attributs clés. Donc je vais juste contrôler ça, obtenir la suggestion et laisser ça se faire. Nous allons également orteil ont des propriétés pour le nombre de ceux-ci qui seront sous la forme d' entier sur pour les dates que l'enregistrement est créé. Donc, nous avons public en nombre sur ces sur nous avons le jour être créé sur. Ensuite, nous aurons des références aux employés pour lesquels ces allégations sont faites, ainsi qu'au type de congé pour lequel les allégations sont faites à nouveau. Alors réfléchissons juste à ça. Je suis un employé. J' ai un I sur. On m'attribue cinq, ce qui est le numéro de ces jours de maladie, non ? Donc je reçois 56 jours, donc vous devez savoir qui je suis ou qui est l'employé ainsi que le type d'employé. Laissez ce numéro hors ce est un choix auquel vous appliquez orteil appliqué. Désolé. Ce que nous devons savoir, c'est voir public, donc nous commencerons par la référence de l'employé. Donc, nous disons les employés publics. Bien, alors nous pouvons juste donner à la propriété le même nom que les employés se mettent en place. Donc, cela veut dire pour le moteur de base de données que nous devons nous assurer que nous référençons les employés ou que l'employé auquel cet enregistrement d'allocation de congés sera lié complète les détails sur le fait que les employés sont disponibles pour la sélection. Si je regarde cette allocation droite sur, alors je vais voir l'employé I d. Parce que j'ai encore besoin de cette propriété pour l'employé i d. qui est ce qui est en fait souvent si les employés. Donc en fait, l'employé va être une chaîne et pourquoi est-ce que je sais que c'est une chaîne ? Parce que si je vais dans mon explorateur d'objets et que je regarde cette propriété quatre je serais sur environ Shar Ce n'est pas de l'oignon. Donc, traditionnellement, je enseigne toujours plus tard bassins qu'ils utilisent dans leur utilisation Ah Geo I d. Ok, un identifiant unique qui est généralement jamais une longue chaîne. Et c'est très bien. Donc, je vais juste dire, chaîne publique, puis voir les employés que j'ai d. sur le rendez-vous et assis. Bon, donc non, il semblait que pour n'importe quel employé je D soit référencé ici. Je peux obtenir tous les détails et stocker à la place des employés, des objets qui sont séparés croient classe d'allocation ou enregistrement droit sur. Ensuite, nous ferons des choses similaires pour notre type de feuille parce que nous avons encore besoin de savoir quelle taxe de congé est là. Nous pouvons vouloir les détails, donc je vais juste mettre le type de congé sur le type de feuille i D. Non à d'autres attributs ou bien, un autre attribut qui doit être ajouté est un pour la clé étrangère, où nous pouvons réellement dicter le nom que la clé étrangère devrait avoir dans la table alors que ce n'est pas très différent ici, donc je vais juste dire, clé étrangère sur la clé étrangère pour les employés. La clé étrangère est l'employé I d. sur. Nous le reverrons pour le type de congé sur son type de congé I D. Donc il semble un peu redondant. Non, parce que ce sont les noms réels de la clé étrangère, mais, mais, euh, propriétés. Mais dans le tableau suivant, vous voyez où cela est utile. Mais vous voyez que j'ai lu des lignes, et c'est parce que j'ai besoin d'inclure autre chose. Donc j'utilise juste mon ampoule. Débarrassez-vous de cette référence pour cette fois. C' est le schéma des annotations d'anarchie des données. Donc, sachez que je peux enregistrer ce fichier, puis passer à la prochaine sur ce prochain est laisser l'histoire et laisser des histoires assez becs. Je vais juste me dépêcher,les écrire, les écrire, et ensuite je vais juste te dire ce qui a été fait sont donc pars. L' histoire va avoir beaucoup plus de données que les deux autres tables, et nous allons juste les parcourir en premier. Ensuite, nous commençons par la clé, qui, comme je l'ai dit précédemment, est traditionnellement un entier. Ensuite, nous passons à notre première référence de clé étrangère. Maintenant, rappelez-vous que j'ai dit plus tôt que la clé étrangère, um attribut ne peut pas nous dire ce que nous voulons être appelés. Je veux dire, j'essaie de garder le même texte, mais il peut être différent dans votre cas, mais le fait est qu' une clé étrangère demande un employé sur lequel je suis. Ce serait alors l'employé qui demande les congés. C' est donc une autre clé étrangère référencée sur la table d'utilisateur ou la table d'employé. Non, vous vous demandez probablement, OK, OK, mais la table des employés n'avait pas de I D. Donc si vous retournez à notre classe d'employés, rappelez-vous que nous avons mis cinq propriétés. Voici six propriétés cinq, Mais alors nous étendons l'utilisateur d'identité. Donc, quelle que soit l'identité de l'utilisateur a comme ses propres propriétés, je peux réellement le faire, il est un peu difficile de voir quelle identité utilisateur a l'offre comme ses propres propriétés. Mais alors, si nous allons à la base de données, vous pouvez voir les colonnes qui sont là que les employés incarne réellement cette classe d'utilisateur d'identité . Donc, quoi que ce soit de la classe d'utilisateur d'identité ou de l'ESPN il utilisateur stable que nous voulons , nous pouvons réellement y accéder simplement en référençant ou table d'employé, parce que notre classe d'employés hérite des propriétés de l'identité utilisateur. Donc vous voulez l'idée des employés. Nous avons également notre public a commencé public terminé, donc de quand à quand devrait quitter être applicable. Nous avons le type de feuille. Je demande donc un congé à partir de cette date jusqu'à cette date. Je veux que ce type soit éteint. Partez, à droite. Cherchez des vacances, etc. Sur. Ensuite, la demande a été faite le jour où il s'agissait d'une action et l'action présente ici si elle a été approuvée ou non. Donc vous voyez ici qui ont approuvé le taureau public et ce taureau boonies oui ou non ? Mais il a aussi un point d'interrogation. Donc ce genre de me donne un petit tricheur. Où peut avoir le troisième état désactivé ? Non. D' accord, donc ça veut dire que c'est remarquable pour qu'il puisse être mis dans un état non approuvé ou ah, oui. La valeur n'est pas une valeur. Non, cela signifierait évidemment que c'est en attente. Cela ne signifie pas que l'action le fait encore, alors l'action serait vide. Bien que ce n'est pas. Une fois que l'état de cette modification change , l'attente est que nous nous assurons que l'action de date change également sur. Ensuite, nous avons une autre clé étrangère qui relie nos employés à la table de cette fois elle est approuvée par I D. Donc je veux dire, vous êtes un employé, vous faites la demande. Celui qui l'approuve est probablement aussi sur les employés de l'entreprise. Donc nous voulons savoir qui a approuvé. Hum, votre congé est pour toujours. Action, tu es parti. Quoi ? Ils l'ont approuvé sont refusés. Andi. Donc, nous pouvons suivre qui l'a demandé, Qui l'a approuvé sur Certains l'a fait parfois et des détails sur ce qui était demandé. est donc ce que la table d'historique des congés a en réserve pour nous. Sachez, une fois que nous avons créé ces trois classes de données, nous devons nous assurer que nous les enveloppons dans le contexte de base de données d'application. On l'a fait avec la table des employés. Nous devons donc nous assurer de le faire avec les trois autres tables. Donc, dans ce suivant le même modèle que c'est une base de données publique, définissez le nom de la classe qui a été créée sur puis le nom de la table, donc vous remarquerez que j'ai Ceci est ma convention de nommage où j'appelle la classe par son singulier États. Mais alors j'appelle le till par son état pluriel parce que la bande est généralement une collection sur les propriétés qui composent un état singulier. droite. Donc c'est une instance désactivée, et c'est beaucoup d'instances, est-ce pas ? Donc je veux dire, vous pouvez mettre votre propre nom et votre convention. n'y a rien de dur et possible que, mais c'est le mien. J' ai donc l'historique des congés, les historiques des congés, les types de congés types de congés alloués à partir. Les allocations sont si savoir que j'ai fait toutes ces choses avec les tables sont définies de mes classes de données. Andi, j'ai réglé le contexte DB. La prochaine chose que je vais faire est de commencer ou à une autre migration, certaines qui est une migration de tiret d'ajout. Et puis je veux dire que j'ai laissé des tables de détail sur, appuyez, entrez et cela va générer sur le nouveau fichier de migration sur def. Vous venez de déposer sur les migrations et vous voyez chaque fichier. Comme le 1er 1 celui que j'ai fait. employés que je connais sont les plus récents sur son peut voir qu'il est temps trébuché. Souligner quel que soit le nom que nous lui avons donné dans la commande Juste sur. Vous pouvez prendre votre temps et analyser ce qui est fait. Si vous le souhaitez. Je ne vais pas passer du temps là-dessus. Je vais juste aller de l'avant et exécuter la migration en faisant la base de données. Donc, en utilisant la commande up ouverte sur les flèches du clavier. Vous pouvez réellement parcourir toutes les commandes que vous avez déjà dans cette console. Donc, la base de données et appuyez sur Entrée, je vais attendre jusqu'à ce que ce soit fini. Bon, donc j'ai eu un message sans erreur. Et si je retourne à mon serveur SQL Object Explorer et actualise, puis retourne dans ma base de données sur les tables, alors je devrais voir tout sur les tables S bean it existantes ainsi que mes allocations de congé , mon congé historiques sur les types de congés. Et si je regarde les colonnes que les colonnes et la date que les noms et les types de données devraient tous correspondre à ce que j'ai conçu et que vous voyez où sont les clés étrangères , tout semble tout à fait dans l'ordre. C' est donc ma création de base de données. Donc, une fois de plus, toute table que vous voulez créer le favori sont recommandés, S'il vous plaît, pour vous de mettre la classe de modèle. Je l'appelle une classe de modèle ou la classe de données que je dis est dans le dossier de données. N' oubliez pas que pour l'ajouter au contexte BB de l'application en tant que classe ou propriété de jeu DB sur, vous devez créer une migration à l'aide de la console du gestionnaire de packages. Donc, vous voyez, ajouter la migration de tiret le nom de la migration sur. Ensuite, une fois que cela est fait, vous voyez la base de données optimiste. Si vous n'avez pas d'erreurs, alors vous devriez finir aussi loin que moi. Si vous avez des erreurs, n'hésitez pas à me contacter et je peux vous aider à travailler avec eux. 11. Injection de Repository et de dépendance de la configuration: Hé, les gars, bienvenue. Dans cette vidéo, nous allons commencer à implémenter ou modèle de dépôt sur le démarrage de notre projet avec injection de dépendance. Maintenant, avant d'entrer dans ce que ces mots fantaisistes signifient Indépendance du dépôt. Regardons une application au niveau le plus basique. Nous avons juste mis en place les classes de données ou les objets de base de données qui nous chargent pour générer une base de données. Aucune application qui est dû à leur avec son site Web A ou il est à cette application d'arrêt, même un mobile jusqu'à la plupart de ces applications, surtout si elles interagissent avec une base de données ou une forme de battre un magasin. Ils nous permettent, en tant qu'utilisateurs, de faire quatre choses avec ces données. Cela nous permet de créer les données, de lire les données ou, vous savez que les sièges les examinent. Mettre à jour les données signifiant apporter des modifications. Les données existantes ou les données de suppression sont supprimées pour les courts-métrages. L' acronyme de ces quatre opérations est « crowdcrud ». Voir pour crée R pour lire vous pour les mises à jour avant la suppression. Donc, une fois de plus, peu importe à quel point l'application ressemble, peu importe houe flashy. C' est quand vous appuyez sur la suppression pour voir une animation et toutes ces choses, peu importe tout flashy regarde à la fin de la journée. L' opération la plus basique consiste à supprimer des données de la base de données ou à créer des battements et une base de données, soit à vous les présenter. Voir cliquez sur votre profil sur peut-être Facebook et vous voyez toutes les informations que vous avez entrées précédemment. Alors tu regardes. Les données sont en train de lire les données. Si vous modifiez vos données, votre profil sur Facebook, alors vous mettez à jour les données. C' est tout à la fin du B. Donc notre modèle de dépôt est à peu près un modèle très populaire. C' est un moyen d'écrire et de structurer votre cour. C' est ce que nous entendons quand nous disons que les modèles sur DIT sont très, très populaires au niveau du développement d'applications au niveau de l'entreprise. Il nous aide à restreindre le trou. Nous interagissons avec les données et créer des couches sont détenues les opérations de base de données, la logique métier sur les États-Unis. Donc, nous passons un peu de temps. On ne peut pas te faire. Je, qui serait plus défendre le regard et la sensation sur. C' est la présentation à l'utilisateur. Et puis la logique métier viendra probablement plus dans les contrôleurs lorsque nous commencerons construire nos contrôles pour différents modèles. Mais en ce moment, nous nous concentrons sur les opérations de base de données, et c'est vraiment là que le modèle de référentiel va entrer en jeu. Donc, je vais créer un nouveau dossier dans cette structure de projet. Alors comprenez, effondrement des orteils, tout ce qui n'est pas absolument nécessaire en ce moment, je vais créer deux nouveaux Fuller 1er 1 Et juste en cliquant sur le projet, je vais faire un clic droit sur cela. Je vais voir Ajouter sur, puis dossier et puis le 1er 1 je vais l'appeler contrats sur. Puis le deuxième dossier Son allait répéter ces étapes. Je vais appeler Repository. Je sais si vous preniez note, mais pendant que j'avais cette sélection, cette cour a été modifiée à mesure que j'ai ajouté d'autres mais pendant que j'avais cette sélection, cette cour a été modifiée à mesure que j'ai ajouté d'autres dossiers. Donc, vous voyez, créé à l'intérêt pour les contacts sous Dossier du référentiel. Donc nous n'avons pas besoin de voir ce dossier. Vraiment. On peut fermer ça. Donc, la première chose que je veux faire est d'ajouter euh, le contrat sur les contrats sont à peu près les interférences est donc qu'ils sont positifs qu'ils modèle de dépôt nous obligeraient à créer des interfaces, classes onda qui implémentent l'interface. Donc, nos interférences est comme un modèle pour ce que la classe devrait avoir, et je vais expliquer cela. Donc, le premier contrat que je vais créer, je viens de faire un clic droit allez à l'annonce sur. Puis je suis allé voir la classe, mais je ne crée pas vraiment de classe. Je crée une interférence. Donc, en utilisant cette même boîte Poppel sur allait sélectionner des interférences à la place sur Alors je vais appeler celui-ci I dépôt bêtes. Bon, donc, donc, comme je l'ai déjà dit, par conséquent, par conséquent, opérations majeures que chaque base de données, plupart des bases de données ou des applications nous permettent plutôt de faire contre la base de données qui crée des données, ou manipulé les données, que nous les supprimions, apportent une modification. Donc, la première chose que je vais faire avec cela interfère est que je vais le rendre très générique parce que chaque type hors table de base de données ou dans notre situation, employés de classe de données ou de domaine vivent. Je regarde, votre fils quitte l'histoire. Ils vont tous orteils une perte ou un quatre handicaps pour effectuer foule contre les records qui sont dans ces tables. Donc, je vais créer cette base, interfère sur aller le rendre public sur cette interface basée va orteil, avoir un air d'identification générique appelé T sur que je vais juste voir une classe de côlon étaient t . Donc, ce que cela veut dire est que je fais cette interface assez générique pour que je puisse passer n'importe quelle classe ici sur cette classe devrait être capable d'effectuer toutes les opérations que je vais orteil en ligne. Très bien, Donc, cela rend ce référentiel de base assez générique sur les opérations génériques ou globales que chaque classe sont chaque table devrait être en mesure d'effectuer serait de créer, mettre à jour, supprimer sur la partie vue. Donc, après avoir fait cela, je vais en fait juste à partir des opérations qui devraient être implémentées une fois que nous implémentons opérations de base de données autour de n'importe quelle classe qui est transmise. Donc, le 1er 1 que je vais faire est de trouver aussi j'utilise la collection I. Donc, c'est légendaire classe de collection de bandes dessinées. Donc, si vous êtes familier avec C sharp, vous savez que See Sherpas Un certain nombre de collections que vous avez liste que vous avez d'innombrables, comme wearable. Je collection est assez générique que vous pouvez presque être tout hors de ceux. Mais alors si vous n'êtes pas familier avec C sharp que de penser simplement à cela comme un ar e. Ok, donc ceci est juste en disant que j'accepte n'importe quel type d'objets hors ari qui pourraient être transmis. Donc, tout type hors zone qui est une collection hors type T serait votre classe. Mais alors, parce que je fais du thé et de faire des génériques ou du thé, voici juste un identificateur générique Rare de dire que toute classe où ils croiront que l'histoire de congé de type peut aller là-bas sur l'opération serait de trouver tout ce qui signifie que je suis renvoyant tout à partir de la base de données. Et si vous êtes familier avec les bases de données et SQL, ce sera comme une étoile sélectionnée de quel que soit le nom de la table est difficile. Donc c'est la trouvaille tout sur. Ensuite, le suivant à voir serait orteil si je voulais voir un seul enregistrement, et je voudrais probablement trouver cet enregistrement par I D. Donc, je crée une autre fonction. La création était comme un frappeur de fonction pour voir une classe sur. Je veux trouver cet enregistrement par I D. Et j'accepte un paramètre entier appelé idee, mais nous savons que nous ne pouvons pas avoir de paramètres entiers. On en a peut-être un autre, mais c'est bon. Nous pouvons le laisser comme entier pour aucune autre commande de mise à jour et de suppression serait de créer . Donc, je vais mettre ceux sur je vois taureau parce que je veux indiquer, comme l'ensemble réussi cette opération a été, Sobule retournera oui ou non sur basé sur DS Arnott, Je peux utiliser ma poignée d'orteil logique de l'entreprise Tenez le u que je présente le ère notre succès à l' utilisateur, n'est-ce pas ? Donc je ne veux pas trop m'en mêler. Je veux juste dire que j'apprécie ce qui se passe alors que nous construisons sur ce cours. Donc, cette classe de référentiel basée va orteil ont une fonction ah pour obtenir tous les enregistrements hors. Quel que soit le type de classe que je cherche pour la table, je veux trouver un enregistrement spécifique basé sur l'i d. Cela est fourni Andi veut créer une entité hors du type T Donc le nom de la variable est une entité qui est assez générique sur le type Eesti, qui est également générique et le même pour la mise à jour et la suppression sur notre opération finale, serait de sauvegarder maintenant une fois de plus, tout ceci est générique et c'est une base. Ceci est une interface de base, donc cela signifie que toutes les autres interférences pour toute autre table spécifique devraient hériter de cette base parce que ces quatre opérations sont ici définies pour tout le monde alors dans cette interface particulière, s' il y a d'autres opérations dont j'avais besoin pour cette table particulière, alors nous pouvons les mettre en œuvre là. Donc, comme un premier acte, je vais implémenter un dépôt pour notre type de congé. Puisque celui-ci n'a pas de dépendances, ce devrait être le besoin le plus facile. Implémenter quelqu'un à clic droit ou dossiers contrats Goto annonce ajouter sur la classe C. Mais une fois de plus, nous ajoutons des frais inter sur avis que la convention de dénomination pour les interfaces serait I sur n'importe quel qu'il soit. Donc, dans ce cas, je l'appelle. Je laisse le dépôt de type, non ? C' est ça. C' est ma convention de dénomination. Donc, je viens de cliquer sur Ajouter, Puis quand cela crée son, Je veux le rendre public pour éviter toute erreur à l'avenir. Ensuite, je peux savoir beaucoup mon Je laisse le référentiel orteil laisser dépôt de type Désolé Teoh hériter de mon dépôt de base. Donc, je viens juste de faire la base du dépôt juste à ce moment-là. Rappelez-vous que basé sur le référentiel devrait avoir un type de variable déclaré avec un frère de type de classe déclaré avec lui et la décision Eric So puisque je traite du dépôt de type feuille. Ensuite, je vais passer dans le type de congé comme sur mon auto. C' est fini informel, mais ce n'est pas ce que je veux. Je veux le type de congé et je suis allé appuyer sur évasion cette fois au lieu d'entrer. Donc, le type feuille est une classe que je m'attendais à interrompre. Bien sur puis hors cours va me donner une erreur parce qu'ils sont dans des dossiers différents , des espaces de noms différents. J' ai juste besoin d'inclure ça. Donc, j'ai juste au-dessus de leur contrôle sur l'arrêt complet, puis appuyez sur Entrée, puis il ajoutera cette référence au dossier où le type Leaf est activé. Alors nous l'avons fait. Il n'est pas ajouté. Donc, c'est comme ça que vous allez faire cette interface hériter de ou quitter le type de, ou un dépôt Bees. Donc, sachez que j'ai l'ID de modèle ce qui devrait arriver. Et encore une fois, j'essaie de garder ça simple parce que nous sommes au début eso que je pars. Le référentiel ne permet pas de définir les opérations de base de données qui sont réellement implémentées dans notre référentiel. Donc, je vais continuer à créer une classe et cette fois va être une classe dans un dossier de référentiel Quelqu'un directement qui cliquez sur Ajouter aller à la classe sur la classe Leavitt US sur. Ensuite, j'appelle celui-ci le dépôt de type de laisser. D' accord. Ensuite, je clique sur. Donc non, j'ai une nouvelle classe appelée dépôt de type feuille. Il est vide. On s'attend à ce que tout ce qui a été défini à l'intérieur de ce dépôt soit défini à l'intérieur de l'avis de discussion. Rien n'a été défini dans ce dépôt dans This interfère plutôt, mais il hérite de la base du dépôt I, qui a cinq fonctions définies, ce qui signifie que nous attendons toe pour cinq fonctions déclarées plutôt sur. Nous nous attendons donc à définir le comportement de ces cinq fonctions à l'intérieur du dépôt de type off leaf . Donc, le moyen le plus rapide de les faire entrer est d'hériter de notre dépôt de type Je laisse sur. Je vais expliquer pourquoi nous n'héritons pas seulement de I dépôt bête ici. Je vais vous expliquer ça, mais pour non, nous allons juste travailler avec ça. Donc, je laisse le dépôt de type activé. Je suis juste en train de copier ça sur ce que je vais faire hériter de ça et puis une fois que je fais ça, vous allez séparer la ligne. Non. Tout d'abord, je dois inclure l'espace de nom où les contrats sont sur, Ensuite, utilisez avis que la ligne rouge est toujours là. Si je survole cette fois, c'est une flèche différente. Ce n'est pas dire qu'il n'implémente pas le membre Interferes et remarque qu'il semble que toutes les fonctions provenant de la base du référentiel. Très bien, donc il s'attend à ce que si j'hérite de cela interfère que toutes les fonctions qui sont déclarées sur une fois de plus connues soient déclarées ici. Mais ils sont tous déclarés ici et sa base d'affiche est héritée par je laisse le dépôt de type sur DSO En héritant je laisse le dépôt de type. Il hérite fondamentalement du fait que ces fonctions doivent être définies sur afin que je puisse juste utiliser mon ampoule une fois de plus l'interface d'implémentation NC et il va juste steamroll à travers et implémenter toutes nos fonctions. Associer l'identifiant à notre dépôt obèse ? Non. Maintenant, disons qu'il y a certaines fonctions et cela n'explique pas pourquoi nous ne sommes pas seulement hériter des abeilles du dépôt ? Non, ce ne sont que les Croates de base. Encore une fois, ce sont là la base. Ce sont les quatre millions de fonctions que vous faites toujours sur n'importe quelle fonction sur n'importe quelle table. Droit ? Mais alors peut-être qu'il y a une fonction Ah que seul je laisse le type Repository doit savoir. Donc, la base ne s'ennuie pas parce que si la base sait que tout le monde qui hérite des abeilles le saura aussi. Donc, je peux aller de l'avant et définir une autre fonction ici sur DSO Inside je laisse le dépôt de type sur DSO Quand le déposant de type leave hérite de lui, il saura tout ce que la base sait ainsi que tout ce que son correspondant interfère le dépôt sait. Donc, disons que je voulais un qui a retourné une partie de ma collection parce que celui-ci est spécifique. Non, il doit être en congé libre. Très bien, donc cette fois ce n'est pas t Il n'y a pas de t dans ce contexte. Donc, je veux une collection hors de type feuille sur. Ensuite, cette fonction est supposée obtenir des employés par type de congé. Très bien, disons que je voulais que tous les employés qui ont pris un congé de type particules alors cela va prendre en compte l'inculpé du TPIY étant l'i d pour le type de congé de particules . Maintenant que j'ai défini cela à l'intérieur, je laisse le dépôt de type. Si je retourne à la classe héritée, alors vous voyez que la ligne rouge est là sur la flèche sait que je n'ai pas implémenté toutes les fonctions sur c'est parce qu'il ne voit pas qu'une fonction est une partie désactivée. Je laisse le dépôt de type afin que je puisse aller de l'avant et implémenter l'interface dessus ajoutera simplement cette fonction à la liste des fonctions à définir. Donc, avec cela, je vais faire une pause sur un centime vous permettra d'aller de l'avant et de créer les autres dépôts, les autres interfaces et les classes de référentiel correspondants pour laisser un emplacement sur l'historique de congé . Je vais te laisser faire ça. Je vais le faire. Je vais le compléter pour que vous puissiez le faire référence. Mais je veux que tu y ailles et que tu essaies de le faire toi-même. D' accord. J' espère donc que vous mettez la vidéo en pause et l'avez essayée vous-même. Quoi ? Je suis sur le point de passer en revue ce que je m'attendais à ce que vous ayez accompli. Et si tu ne l'as pas fait, c'est la découverte. Ensuite, nous allons passer ensemble et vous trouverez la ressource est pour ces fichiers créés dans la ressource est pour cette vidéo. Quoi qu'il en soit, ce que nous devions faire était de créer le dépôt Je laisse un emplacement. Je quitte le dépôt d'histoire Onda. Idem pour les classes de référentiel réelles. Donc, si nous avons terminé son succès que l'allocation des congés devrait ressembler à ceci. N' oubliez pas de mettre votre public si elle n'est pas déjà générée avec elle. Interface publique. Je laisse le référentiel d'allocation activé. Nous héritons de bête de dépôt avec la classe appropriée qui est de laisser un emplacement sur le même pour l'histoire. Nous avons le même format semble beurre et juste le nom différent sur nous sommes sûrs d'hériter pour la bonne partie de type de classe alors pour les classes réelles respectives. Alors on hérite. Je laisse le dépôt d'allocation que nous venons de rouler l'avoine La mise en œuvre pour les fonctions inter honoraires à l'intérieur du fichier de classe sur. Nous avons fait la même chose pour le dépôt d'historique des congés. Non, il y a encore une chose. Et ce serait comme le début de notre injection de dépendance. Notre regard sur ce qu'est vraiment l'injection d'indépendance. Mais nous devons réellement laisser ces classes de référentiel connaître la base de données, donc oui, elles connaissent les classes et toutes ces choses, mais elles n'incarnent pas la connexion réelle à la base de données. Andi, si vous vous souvenez de cette application, le contexte DB incarne vraiment cette connexion. C' est donc comme notre passerelle et notre pont vers la base de données elle-même. Donc, il tuyaux en fait toutes les fonctions de cadre off ou d'entité juste ici sur la connexion réelle à la base de données. Donc, nous avons besoin d'un objet hors type d'application BB contexte alors qui nous fera beaucoup d' interagir avec la base de données. Donc, en revenant au 1er 1 que nous avons fait, qui est de laisser le dépôt de type dans la classe avant notre créateur et l'implémentation de toutes les autres fonctions, je vais déclarer privé, lire sur Lee ou la propriété sur. Je vais le faire hors de type application BB contexte sur. Ensuite, je vais l'appeler bien, souligner db Ok, Donc le modèle pour les propriétés privées, vous utiliserez un trait de soulignement lorsque votre nom e menace de sorte que c'est comme un gentil dire que si quelqu'un passe, César appelé. Ils savent que tout a été souligné. Cela signifie que c'est une variable privée sont tout ce qui est dans votre côté de classe. C' est donc la première étape. La deuxième étape consiste à créer un constructeur pour notre référentiel. Donc, nous avons Andi public, ou le raccourci pour les constructeurs leur C T O. R. Et d'abord deux fois sur il génère réellement ce constructeur bloquer la cour pour vous. Donc, vous devriez être familier avec ou PR Constructor est toute fonction qui a le même nom que la classe et il fait une certaine initialisation est quand cette classe est appelée Orenstein. Elle détestait Donc, dans cette situation, ce que nous attendons à ce que cela fasse est de remorquer initialiser. Ah, une nouvelle copie de notre variable de contexte db d'application. Donc vous avez remarqué que cela disait que c'est défini, mais ce n'est jamais utilisé. C' est juste là. Donc, la première chose que je veux faire est en fait de donner à cela un paramètre sur le test d'un périmètre du même type que je suis sur initialisé comprendre ? Pour copier cela sur l'appel de contexte db application, mais pas de soulignement db. Donc celui-ci est privé et celui-ci arrive par le constructeur sur. Ensuite, nous allons juste initialiser le privé pour être quelle que soit la valeur entre par l'instruction du constructeur. Désolé. Donc, alors notre constructeur n'est pas initialisé orteil ont ceci. C' est à quoi ressemble l'injection de dépendance sur cette étape. Ce n'est pas tout. Il y a l'injection de dépendance. C' est tout à fait quelques étapes, mais c'est le 1er 1 Donc, ce bloc hors cour doit être présent dans chaque fichier de classe du dépôt . Donc on va juste copier ça ? Nous l'avons écrit une fois dans je quitte le dépôt, donc je suis juste allé le copier, et je vais aller quitter un emplacement, et je vais le mettre là sur ce que je vais changer est juste le nom de la cause du constructeur évidente à la construction. Le nom ne peut pas croire le type de référentiel. Donc je suis juste là pour m'assurer que c'est la voiture qui porte son nom. Ensuite, je vais faire une chose similaire dans l'histoire des congés. Andi, juste changer le nom sur puis nos classes de données ou sont les classes positives sont presque prêtes pour l' action. Donc, nous avons fait un peu de travail sur la mise en place de ce cadre sur le dépôt Potter et son armée que c'est un modèle. C' est une structure. Donc, si vous le faites avec ces trois et que vous découvrez cinq autres tables dans l'annonce Utah, alors je m'attends à ce que vous suivez le modèle et le faites cinq fois de plus. Pour chacune de ces tables, cela peut sembler fastidieux, mais à la fin de la structure des dates arrière qui vous permet de maintenir votre cour encore mieux, car il coupe beaucoup de répétition, vous aide centralisez votre cour et facilite l'entretien au fil du temps. Très bien, alors en ce moment ou les fonctions sont définies, mais elles n'ont vraiment aucune fonctionnalité. Ils vont juste jeter des exceptions, et nous les laisserons comme ça dans la prochaine vidéo où nous allons réellement passer et définir les opérations de base de données dans cette vidéo, nous mettons juste le terrain que nous mettons dans le La dernière chose que je veux faire est de tirer bizarre la connaissance de ces fichiers de dépôt et leur but est de démarrer ce feu CS. Donc, nous sommes allés brièvement dans ce fichier, et nous avons vu que nous avions une fonction de services CONFICKER qui, vous savez, initialiser est quelque chose. Donc, je vais ajouter un peu plus d'initialisation est ici, et je vais le faire après l'initialisation de la base de données sur ces initialisation tsar toe, ajoutez notre référentiel ou contrat sur la relation de classe de référentiel toe le dot net core application. droite. Donc ce que je vais faire, c'est dire que les services ne sont pas allumés. Puis je suis allé voir l'école de publicité, puis nous avons notre première classe, et je vais voir que je laisse le dépôt de type sur, puis mettre une virgule. Ensuite, je suis en train de balayer que je laisse le dépôt de type à sa classe de posture beaucoup d'air, qui est de laisser le dépôt de type sur. Ensuite, je vais fermer les accolades et le demi-côlon. Pas hors cours là dans les lignes parce que nous avons besoin d'inclure les espaces de nom. Donc j'utilise mon contrôle amarré. Andi, incluez cet espace de nom pour le dépôt de type I leave, qui est les contrats sur. Ensuite, je vais faire la même chose ici sur inclure l'espace de nom suivant pour notre dépôt. D' accord, d'accord. Donc, une fois que nous ajoutons scolarisés sur, nous mettons dans notre dépôt ou interfère sur la classe de dépôt, Ensuite, si vous obtenez des lignes rouges et que vous voulez probablement juste vérifier vos références en haut , assurez-vous que vous avez l'espèce de nom correcte pour les fichiers respectifs sur. Ensuite, nous allons faire ça pour chacun de notre perce. Donc, nous avons que je laisse le dépôt de type. Nous avons aussi je laisse le référentiel de l'histoire er et nous avons aussi je laisse un dépôt d'emplacement . Et vous voyez, les lignes rouges apparaissent ? Non, parce qu'il se rend compte qu'il y a une incompatibilité entre les interférences référencées sur la classe du référentiel. Donc, pour nettoyer ça, on peut juste s'assurer que nous les entendons correctement. Donc je vais juste copier le nom des interférences et le déplacer, puis enlever le I. Et donc tout est, vous savez, vous savez, notre début de cette montre à fusibles CS. Terrible ça. Donc, je vais juste faire un peu de choses communes ici pour voir. Donc, cette section traite de l'ajout de références pour le référentiel sur les contrats pour démarrer le fichier. Très bien, donc c'est le commentaire que j'ai ajouté pour cette section. Donc, une fois de plus, pour autant d'autres tables de données que nous pourrions avoir envie de créer un contrat pour cette table, voulez la classe positive créateur de cette table ? Donc, et puis vous les ajoutez juste dans cette section à l'intérieur du début à propos de la classe CS. Donc, ce sont quelques étapes vers l'implémentation ou le modèle de référentiel. Veuillez noter qu'une fois de plus, toutes les fonctions qui auraient été implémentées sont à peu près vides. Ils vont juste jeter des exceptions. Donc, dans notre prochaine vidéo va réellement commencer à mettre dans les opérations de données par classe ou par fonction plutôt afin que nous puissions avoir une opération de base de données battue dans notre application. 12. Impliquer des bases de données et des fonctionnalités de la fonction de cadre d'entité et entièrement les entités: Hé, les gars, bienvenue dans cette vidéo, nous allons mettre en place notre fonctionnalité de base de données. Non. Dans notre vidéo précédente, nous avons traversé et nous avons commencé à implémenter sur le dépôt, pattern ou interfère est sur les classes de référentiel à hériter des interfaces. Cependant, lorsque nous avons implémenté les fonctions qui auraient été ou alignées dans les interfaces, nous n'avons pas procédé à la mise en place de fonctionnalités réelles dans ces fonctions. Donc, nous avons la fonction de création de taureau ici, mais ce n'est que lancer et pas implémenté exception. Et c'est essentiellement le cas pour chacun d'eux. Donc, nous allons passer par la mise en place d'un des dépôts et nous commençons par le dépôt de type feuille . C' est le 1er 1 que nous avons installé sur den. Je vais faire une pause et vous permettre de mettre en place les autres. Et ensuite, on pourra le traverser ensemble. Non. Ah classe de dépôt de type relief. Il hérite de je laisse le dépôt de type qui, si nous regardons cela, il hérite également de la base du dépôt sur. Il a sa propre fonction dans cette mise en œuvre dans ce qui interfère. Donc, nous avons environ six fonctions de leurs abeilles d'affiche et puis nous avons une fonction supplémentaire du dépôt de type je laisse sur DSO sur la classe héritant ou la classe de dépôt aurait un total de sept fonctions qui doivent être implémentées. Maintenant, je vais commencer à écrire dans les fonctions dans le même ordre qu'elles apparaîtraient dans la classe interferes. C' est sans raison particulière. C' est juste, tu sais, dans la construction. Si vous n'êtes pas si familier avec le framework d'entité, je vais vous amener étape par étape, vous montrer comment vous pouvez utiliser le framework d'entité pour interroger la base de données. Donc, nous allons commencer par la recherche de la collection I. En outre, l'idée derrière cette fonction est qu'une fois que cette fonction est appelée par rapport à n'importe quel dépôt et à quelle classe elle traite, quelle que soit la table qui vole avec elle devrait récupérer tous les enregistrements de cette table. Très bien, donc pour le contexte, si vous voulez mettre à terre la grille de tous les types de feuilles qui sont mangés le système, alors vous devez obtenir tous les enregistrements de type feuille de la base de données. Et donc vous devez trouver tout droit. Donc, lors de la mise en œuvre de cette formation, nous allons trouver tout sur sa droite ici tout droit sur les attentes qui retournaient forme hors collection hors du rythme, un type de feuille de type qui est encore une fois juste une classe sur. Je peux juste maintenir le contrôle et cliquer dessus ira à l'implémentation réelle de la classe. Notre définition de la classe plutôt sur elle nous montrera ce qu'elle est. C' est une classe de base de données ou une classe de données, a dit Deby. Classes, tu veux le mettre. Mais le fait est, c'est une table dans la base de données et elle est représentée dans notre projet comme une classe appelée type feuille . Donc, je veux chaque single que je veux une collection de disques qui ressemblaient à cette classe à peu près dans cette fonction, qui est de trouver tout ce que je suis allé pour effacer ce trône, vous n'avez pas implémenté l'exception et puis je vais orteil invoqué ma connexion à la base de données . Donc, pour plus de vidéo précédente, nous avions mis une mauvaise connexion à travers cette variable appelée DB, quelqu'un à utiliser sur la base de données de score et puis je vais le dire point et puis vous réaliseriez que vous avez assez de shuns de forme disponibles pour vous, mais puis, plus important encore, vous commencez à voir que vous avez réellement les tables nécessaires disponibles pour les employés de CLC, vous voyez, laissez le type Quoi que ce soit que nous avons mis en place dans notre contexte DB en tant que classe de données qui peut être accessible, un type de feuille remarqué est là. Ensuite, nous pouvons réellement y accéder via DD. Donc, pour obtenir cette liste après le point, je tiens juste sur le contrôle et l'espace presse, et cela ramène cette intelligence sur. Ensuite, je peux commencer à taper les types de congé sur. Alors j'ai besoin d'orteils en faire une collection. Donc juste en disant, db les types de feuille qui exécute littéralement une étoile select de l'instruction Leaf Types. Si vous êtes familier avec SQL, si ce n'est pas le cas, alors à peu près cela signifie simplement, Donnez-moi tous les types de feuilles. C' est littéralement ça. Très bien. Mais alors, parce que j'en ai besoin dans une forme quelconque de collecte, je vais voir ça pour la liste le tirer. Donc ah, la liste en C Sharp est un moyen très, très flexible d'obtenir une collection qui peut être utilisée dans plusieurs applications. Vous n'avez pas à faire beaucoup de typographie après cela. Vous pouvez simplement dire de la lister, mais alors vous remarquez que c'est il a une ligne rouge car c'est qu'ils ne retournent pas une valeur car il s'attend à ce que nous retournons une collection hors type de congé. Donc tout ce que j'ai besoin de faire, c'est juste un retour, il croit que les types de liste sur certaines personnes. Je veux dire, tout le monde a une bande de citations différente, et certaines personnes auraient probablement mis le virus Onda variable de dîner un bon moyen rapide de déclarer des variables qu'ils peuvent sauver nos types de congés. Onda, qui est égal orteil ce, que les résultats de cette déclaration. Donc, tout ce qui est retourné de cette instruction est stocké à l'intérieur, laissez les types activés . Ensuite, nous pouvons retourner les types de congés pour que tout le monde le fasse différemment. Vous pouvez développer votre propre style. Celui qui est plus rapide ou plus facile pour vous, c'est bon. Mais à la fin de la journée, tant que vous comprenez ce qui se passe, alors c'est bon. Mais à la fin de la journée, tant que vous comprenez ce qui se passe, Donc nous avons tout sur leur que nous économisons. Je soulage les types. DB laisse les types à lister. Donc, nous tournons tous les pas de la feuille, et ils jetaient son orteil un c pointu soigné que j'ai appelé au moins, ce qui est comme un Ari glorifié. Très bien, désolé. Tu dois avoir un numéro assis. Les objets sont des valeurs réalistes et les flexi peuvent grandir. Il peut contracter. Il peut être n'importe quel nombre à tout moment. Donc, c'est une collection très flexible qui, comme je l'ai dit, Donc nous avons juste jeté orteil jeter ce qui est retourné ici à notre liste hors types de congé. Et puis on vient de le rendre. Donc, tout ce qui appelle ce fils de forme devrait être prêt orteil recevoir une liste de types de congé , art, et c'est tout. C' est tout ce dont nous avons besoin pour obtenir tous les types de feuilles de notre base de données. Maintenant, le prochain que nous devons mettre en œuvre est condamné à une amende par I. D. Donc ce scénario serait que nous voulons voir les détails sur le type de feuille articulaire AARP . Droit ? Donc, vous voyez que nous avons mal où partent les vacances. Avec cette façon de faire, je veux seulement voir des congés annuels. Peut-être que ce sont des erreurs d'orthographe. Peut-être qu'il y a des détails que je voulais voir qui l'a créé. Peu importe ce que je clique dessus juste pour voir cet enregistrement. Donc, dans ce scénario, j'ai besoin de trouver ce type de feuille spécifiquement, et j'utilise le I D, qui est la clé ou la clé primaire dans la base de données. Je l'utilise pour identifier de façon unique ce, euh, feuille ça. Donc la prochaine que je suis en train de mettre en œuvre est bien par Lee. Non. Trouver par i d retourne à l'objet de type feuille. Pas une liste, pas une collection, mais juste un objet, parce que, rappelez-vous, nous en trouvons un en particulier. Bon, donc je vais supprimer cette ligne hors cour. Alors je vais sauver Ire. Type de laisser. Tout droit est égal à leur encore une fois, je vais appeler mon D V, qui est ma connexion à la base de données. Mon objet de base de données qui sur la table que je traite est une fois de plus laisser les types sur. Alors dans cette situation, j'ai vraiment besoin d'en trouver un. J' ai donc deux options ici. Je peux dire cela et c trouver afin qu'ils nous donnent une fonction réelle appelée find qui reçoit paramètre toute identification unique qui devrait bien, tout ce qui devrait identifier de manière unique un enregistrement dans n'importe quelle table d'ordre que nous regardons à ce sujet, nous ne faisons que passer ces permis, nous savons que lorsque nous le faisons, nous devons transmettre cet identifiant unique, puis à des travaux différents. Va faire le reste sur le trouver en fonction de cet identifiant unique sur. Ensuite, nous revenons. Type de laisser. Tout va bien. C' est ça. L' autre façon d'écrire ceci et vous le voyez probablement écrit de cette façon aussi. Et je viens de commenter La pensée est que vous pourriez dire, db point les types de congé Onda se table. Et donc c'est là que vous êtes à un commentaire. Si vous voulez froid, ce n'est pas aller orteils ou vous voulez écrire quelque chose qui n'est pas ce qui interférer avec la cour. Vous venez de mettre une barre oblique, une barre oblique et cela viendra dans les orteils cette ligne. Donc, c'est un point de base de données sur les types de laisser. Ensuite, vous dites point et ensuite vous auriez quelque chose sur. Je supprime juste cela rapidement pour que je puisse l'obtenir avec l'intelligence d'abord ou par défaut Donc abord ou par défaut, et puis vous allez dans une déclaration Lambda, um, . Mais je ne suis pas encore prêt pour ça. On va le faire plus tard, donc je ne vais pas entrer dans ça tout de suite. Bon, donc c'est une autre façon de le faire. Une autre chose. Un autre exemple. Lorsque nous devenons plus assaisonnés avec la syntaxe du framework d'entité, alors trouvez par I d sur. Ensuite, nous nous inquiétons, trouvons un type de feuille avec ce i D. articulaire qui est unique, que dans le feu il est retourné et stocké à l'intérieur de cette variable et nous retournons variable et remarquons que est satisfaite car visual studio sait que le type de feuille est renvoyé sur le type de congé est le type de retour attendu. Non, on va se marrer un peu plus. Donc, nous passons à la création. Donc, c'est lorsque nous créons des types de congé de quelqu'un se sent hors de la batterie, cliquez sur Enregistrer, puis la prochaine vitesse actualise avec la recherche de toutes les données. Donc, les rafraîchissements sur tout ce que nous venons d'ajouter s'affichent là. Donc, la fonction create a besoin toe sauf que les données le mettent réellement dans la base de données. Très bien, donc pour ou créer une fonction, ce que nous allons faire est que nous allons voir la base de données connectée sur l'objet DVR partition directement sur. Ensuite, nous allons spécifier la table, qui est les types de congé, donc note que nous devrions recevoir une variable ou un type d'objet hors type de laisser sur. On l'appelle entité. Donc, une fois qu'il atteint cette fonction, il est supposé recevoir des données dans la forme hors entité. Donc db qui laissent les types sur. Ensuite, nous allons dire cette annonce parce que ces types sont vraiment comme une collection. Les types de congé sont littéralement une collection d'enregistrements des types de congé de table. Donc, nous disons que je veux juste ajouter cette entité ou ce nouveau type de feuille. Donc, la collection des types de feuilles existants Donc, nous voyons connecté la base de données, donnez-moi les types de feuilles de table sont tous de la collection des enregistrements de types de congé sur à ce nouveau. Donc, ajoutez sur une brise ouverte et puis vous voyez, même l'intelligence est guidée ici et disant que ce qui attend est quelque chose de type feuille hors type Maintenant, vous pouvez l'appeler entité, donc nous allons l'appeler entité. Maintenant, cela aurait pu être appelé n'importe quoi, et je n'ai pas eu à être appelé seulement entités appelées entité parce que nous l'avons défini comme entité ici . J' aurais pu tout appeler BJ. J' aurais pu l'appeler. Pop c'est que ça n'a pas d'importance. Le fait est que nous recevons du type de données Andi dans ce cas spécifique hors feuille type, et nous l'appelons simplement entité. Très bien, donc c'est juste un nom d'objet d'homme très occupé sur. Alors nous, ils en ont fini avec ça. Donc nous disons, D d, c'est laisser les types qui annoncent, nous passons dans l'entité. Ok, donc il y a encore une chose à faire après qu'on l'ait adoptée et c'est la même chose. Mais je ne suis pas vraiment à écrire dans la fonction save pour l'instant, donc je vais juste faire un commentaire là pour pouvoir me rappeler que je dois enregistrer mes notes. Cela s'attend à un booléen. Donc nous avons une ligne rouge ici parce qu'elle ne revient pas tant qu'il ne retourne pas la valeur des données de la voiture. Donc je vais juste laisser ce commentaire. Il allait revenir sur le réparer plus tard. Ensuite, je vais juste aller de l'avant et en mettre un autre sur le prochain. En ligne serait en place, donc pour faire une mise à jour, il suit fondamentalement le même modèle. Nous nous connectons ou base de données. Nous obtenons notre table, les étapes, puis nous appelons la fonction, et parce que nous sommes un battement, ils nous donnent une mise à jour de fils de formulaire. Maintenant, je peux dire que c'est un soulagement parce que dans la journée, dans les premiers jours, hors cadre d'entité, ce n'était pas si facile. Donc non, nous pouvons voir cette mise à jour sur le passé dans l'entité tout de même, ayant moi ce changement, nous avons encore besoin de le voir. Donc c'est une autre chose que nous devons garder préavis. Nous avons une fonction dite, avons pas encore implémentée. Donc, quand on se mettra à la mise en œuvre, alors je vais passer à travers et nettoyer le reste. Très bien, donc nous l'avons fait pour la mise à jour sur la prochaine ligne serait supprimer. Nous avons donc notre lecture que nous avons ou que nous créons. Nous avons notre mise à jour sur aucun libellé ou bien supprimer pour supprimer. C' est à peu près le même modèle que nous avons vu avant sur ce que nous allons faire est connecter ou base de données, obtenir notre table. Si les types sur, Ensuite, nous disons point Sur cette fois, nous voulons supprimer Tout droit, donc il est pas croire cette fois, mais il est supprimé sur. Nous supprimons cette entité de la collection sur Encore une fois. Nous avons besoin de sauver les orteils, donc s'il vous plaît, vous ne pouvez pas écrire cette ligne. C' est très bien. Quelque chose sera fait, mais il ne sera pas engagé dans les bases de données. Comme un engagement pour la base de données. Pas cette course. Une base de données, en fait. Exécutez la requête. Bon, donc, non, nous devons comprendre ce qui doit se passer dans notre coffre. Donc, pour sauver, je vais supprimer ça. Andi, tout ce qui se passe vraiment dans ou sauver, c'est que nous voyons sur le score. Il a eu la base de données ? Et puis nous voyons des changements de sauvegarde, et c'est littéralement tout ce qui doit arriver. Pour voir cela change. Donc vous auriez pu littéralement mettre cette ligne ici. D' accord, donc une fois que vous dites DBC des changements, vous pourriez mettre cette ligne là. Mais parce que je l'écris, je m'attends à un taureau. Donc, si c'était éviter la fonction, alors ce serait bien parce que les fonctions void ne retournent pas de valeurs. Donc en le faisant éviter la forme, fils, tout aurait bien été. Mais ce n'est pas ce que nous avons. Nous avons un taureau, alors travaillons avec ce que nous avons. s'attend donc à ce que les lingots disent oui. Archanges n'a pas fait de changement n'a pas été fait. D' accord ? Donc, lorsque nous enregistrons des modifications, nous devons savoir où les changements sont réellement effectués. Parce que si cela a été fait, alors je devrais changer juste pour le voir pour tous les autres où j'ai dit que nous devons vraiment le faire, Seve. Donc, quand nous enregistrons les modifications, cela retournera une sorte de forme dans GIA qui dit, euh si des enregistrements auraient été édités à peu près correctement, donc c'est combien d'enregistrements sont édités. Donc, cela signifie qu'il ne devrait jamais être inférieur à un dans une situation comme celle-ci, si vous supprimez quelque chose qu'au moins une chose devrait être changée. Si vous ajoutez au moins une chose devrait changer. Votre opération à cette seule chose devrait être changée. Donc, cela signifie qu'ils devraient toujours retourner quelque chose de plus grand que zéro. Donc, je vais en faire un retour booléen en voyant le retour. Et puis je suis allé me voir ceci dans une déclaration logique. Très bien, où je vais voir, renvoyez la valeur si le tiroir des résultats tombe. Si la valeur renvoyée par cette fonction, les modifications de sauvegarde sont supérieures à zéro. Alors ce lingot n'est pas satisfait parce qu'il va évaluer cela. Cela ne sauve pas les changements, mais je pense qu'une meilleure infrastructure C'est moins déroutant, cependant, et fonctionnera probablement mieux est si je viens de le mettre dans une réponse verbale. Vier change est égal orteil sur le score. Db dot enregistrer les modifications. Très bien, alors ce n'est pas quelqu'un pour stocker un entier pour le nombre de changements nécessaires sur cela. Je vais revenir après cela si les changements sont supérieurs à zéro. Donc si c'est génial que ça finisse ici, alors c'est bien. Si ce n'est pas le cas, alors bien, évidemment, nous avons un problème, non ? Donc, nous sauvegardons les changements et puis nous revenons. Si c'est le cas, si le changement est fait plus grand que zéro, ce qui signifie qu'il ne devrait jamais être zéro dans une situation comme celle-ci , afin que nous puissions retourner tout ce que notre fonction de sauvegarde nous donne. Donc, dans notre fonction de mise à jour, nous ne reviendrons pas. Voyez, si oui, voici un flux. Nous mettons à jour l'entité dans la base de données, Ensuite, nous avons frappé le retour sur. Nous appelons la fonction safe sur la même fonction qui revient. Un booléen va me faire le changement sur. Alors dites-nous oui ou non. Si les modifications ont été réellement, voyez ce que Désolé a enregistré la modification. Andan nous dit si ces changements ont été enregistrés ou non. Et puis ce magasin de retour tombe. Donc, cette fonction de mise à jour sur toutes les autres fonctions ne sera pas vrai ou faux si c'était sûr. Donc, je vais juste prendre cette fonction de sauvegarde de retour à partir d'ici, mettre dans la suppression sur avis. Toute cette ligne rouge disparaît également dans la création sur cette ligne rouge disparaît également. Très bien, donc ce sont les changements qui sont nécessaires orteils ont ou opérations de foule ouvert courir partout où crée hors de l'élite. Nous ne voulons pas encore mettre en œuvre ou obtenir des employés en temps réel. Je vais laisser celui-là vide. Si vous voulez essayer, alors c'est bien. Mais je laisse celui-là vide jusqu'à ce que nous ayons plus dans nos applications. Mais en ce moment, je te défie. Toe, allez-y et répétez ces étapes dans les autres classes de référentiel. Commençons par l'histoire des congés. Um, je voulais passer par et faire la création de l'élite, la trouver toutes ces fonctions pour cette histoire de congé et quatre référentiel d'allocation de congé . Non, j'ai mis en pause l'enregistrement et j'espère que vous mettez la vidéo en pause et que vous l' avez fait. Mais je vais le faire. Non. Oh, et j'espère que vous avez travaillé intelligemment, non ? Ainsi, vous pouvez copier et coller et changer les éléments essentiels parce que la cour devrait ressembler à peu près le même. C' est le même modèle à travers le tableau. Donc, c'est mon dépôt de type feuille. Celui qu'on a fait ensemble. Je vais en fait juste copier ces fonctions, et puis je vais aller à mon dépôt d'allocation de congé sur je suis allé à l'est sur celui-ci est une rue. Je n'ai pas besoin de celui-là. Donc si tu as fait ça, j'espère que tu es conscient que tu n'en as pas besoin. Mais alors j'ai un tas d'erreurs parce que non, il semblait que je ne suis pas en train de mettre en œuvre et c'est parce que mes types de données manquent beaucoup donc je peux réellement faire une recherche et remplacer où je vais orteil, Il suffit de prendre allocation donner. Tout ce qui est le type de congé. Je vais juste remplacer par les mots. Laissez un endroit, à droite, quelqu'un boucle d'orteil, contrôle f sur. Ensuite, utilisez cette carotte ici, qui tombe le sur la recherche et Ripley section quelqu'un orteil trouver congé, tapez Dans ce fichier sur. Je vais le remplacer par. Laissez un emplacement sur, puis je peux aller un par un sur le remplacement. D' accord. D' accord. Kendall, monsieur, monsieur, s'il vous plaît. Tout sur, puis après que j'ai remplacé tout. Ensuite, vous voyez mes erreurs ennuyées et j'ai fini. D' accord. C' est donc un moyen agréable, rapide et facile de reproduire la cour. Parce qu'une fois de plus, c'est le même modèle, non ? Il y a un autre niveau d'obstruction que nous pourrions faire dans le dépôt Procter. Et où nous écrivons simplement ces refroidis et nous imposons juste à quelle classe il s'applique. Quoi ? Je laisse ce niveau hors de ça. Faites Toro sur le simple fait de garder ça. Donc, je vais le faire à nouveau pour laisser l'histoire sur aller juste faire Ah, copier et coller sur. Ensuite, un bon moyen rapide de faire le remplacement. Je peux juste mettre en évidence le mot et ensuite faire le contrôle f et il remplira automatiquement tout ce qui a été mis en évidence. Donc je cherche ou je l'ai mélangé. Donc je cherche à laisser un endroit, Andi, Andi, je le remplace par l'historique des congés. Et puis je peux juste faire notre place. Les 14 occurrences ont été appelées et remplacées . Eh bien, j'ai un léger problème ici parce que alors ce sont les histoires de congé sont je s je e s désolé. C' est pourquoi, oui. Donc je vais devoir me rendre manuellement. Placez ça alors. Je suis là. J' ai fini. Donc, pour m'assurer que je n'ai pas d'erreurs, ce que nous pouvons faire est de faire une construction rapide. Ils peuvent utiliser cela, mais parfois vous ne voulez pas nécessairement lancer. Tellement bouleversé. Et donc vous voulez juste vérifier les erreurs. Il peut juste tenir sur le changement de contrôle sur Dboey. Et puis que les initiés sont construits là où il passe juste, vérifie leur code et assurez-vous que tout est en ordre et que vous êtes exempt d'erreurs . Et je vois ici que j'ai un échec, ce qui indique que j'ai une liste afin que vous puissiez cliquer sur une version pour voir quelles sont les erreurs . Je vais juste y aller. D' accord. Désolé. C' était une fille qui faisait référence à un art vidéo précédent. Alors j'ai réparé ça rapidement. Il n'avait pas la bibliothèque de chariots pour le type de feuille de dépôt d'île. Quoi qu'il en soit, si je fais une construction à nouveau, alors nous verrons qu'une construction, Réussi, connue, a échoué. Et donc si je clique plus tôt, je n'ai aucune erreur. C' est bien. Donc, non, que nous avons terminé un dépôt, mais pour l'allocation des congés et laisser l'historique, je n'ai pas besoin de revenir à mon démarrage sur Let my started by my middleware. Donc ce feu de démarrage représente ce que vous appelez milieu. Où sont le milieu où les configurations. Je dois lui dire que leurs autres dépôts ont déjà pris en compte. Je laisse le dépôt de type. Bon, donc je dois juste passer par là. Et j'étais juste destiné à contrôler de Onda. Dupliquer ceux sur puis je suis juste échanger ces auto, je laisse histoire histoire sur l'allocation de congé mourir. D' accord, je le sais. Donnez-moi ces changements. Je dois m'assurer que les interférences et la classe beaucoup Donc je vais juste m'assurer que de la version oeil d'un côté sur la gauche le jour, j'ai la classe correspondante à droite, donc je viens de le faire rapidement. Je viens d'en faire une copie en paix et d'enlever le et toutes ces choses. Donc si tu veux taper ça Oh, c'est bon. Si vous voulez le faire de cette façon. C' est bien. Aussi, celui qui fonctionne plus facile pour vous, personne hors. Les principes derrière ce type de modèle sont que vous ne voulez pas mettre trop de logique métier à de nombreux endroits dans votre application. Chaque couche doit être spécifique et responsable d'une chose. Donc, à mes débuts, j'avais l'habitude de mettre beaucoup de chèques ici dans la section du dépôt de mon application. Où est ce chèque ? Non. C' est ce que tu sais ? C' est vide ? Devrais-je le retourner ou non ? J' ai arrêté de le faire parce que je veux juste que ce fichier soit juste des opérations liées à TBIS. Tout de suite, dans le contrôleur. C' est là que nous faisons tous les trucs de fantaisie. Donc, nous faisons nos validations qui sont de jolis contrôles pour faire nos contrôles de police dans le contrôleur sur ce qui est là où la logique réelle peut s'asseoir. Donc c'est tout pour cette vidéo que nous avons mis en place avec succès ou couche d'accès aux données sur connecté à la base de données. Donc, bien sûr, vous n'avez pas encore vu beaucoup d'action, mais nous faisons le travail de base à mesure que l'application grandit, alors nous avons une base et un modèle à partir desquels nous pouvons répliquer ce qui doit être fait 13. Configurer des modèles et AutoMapper: Hé, les gars, bienvenue dans cette leçon, nous allons mettre en place ou voir les modèles Onda configurant auto vadrouille avant que je n'entre dans quoi que ce soit lourd orteil. Hum, ce qui passe et explique quand je vous sauve des mannequins, ce que ça veut dire exactement. Et puis nous allons jeter un oeil à Autumn Oper sur. Ensuite, nous entrerons dans la cour. Non, pour commencer, un modèle est une obstruction de la table de base de données au niveau de base. C' est ça. Dans notre cas, c'est en fait le modèle pour la table de base de données parce que nous utilisons un premier modèle de tribunal . Donc, entité pour démarrer trouble bas vous pour créer la base de données. Ils le font toujours. Mais traditionnellement, vous créez les abeilles de détail sur. Ensuite, vous devez créer un diagramme de modèle à partir de cette base de données à l'intérieur de votre projet Visual Studio sur. Ensuite, ce serait le modèle de vos abeilles de données, et il serait similaire à la base de données. Diagramme moderne, non ? Non, dans cette situation, nous aurions effectivement écrit des classes C pointu sur. Laissez-moi simplement utiliser le type feuille, par exemple. Donc, nous avons écrit C classe pointu appelé type feuille. On lui a donné une clé appelée I D euh propriété requise appelée Onda. Nous lui donnons une propriété de temps de temps sur. Ensuite, nous avons conçu cette classe de C. Sharp. D' accord, nous l'avons conçu dans une table réelle et la table a été générée dans nos données Bees et je viens de trouver rapidement cette table, et c'est dans notre base de données de gestion des congés sur. On y va. Donc, nous avons i d, qui est une clé primaire, qui est identique à l'i d. Ici, nous avons le nom sur, Nous avons d créé de sorte que tout ce que nous aurions défini dans cette classe a été créé comme une table. C' est donc un modèle pour notre table connu avec une vue verrouillable modèles. C' est une abstraction supplémentaire du modèle de coléoptère réel. Donc, vous ne voulez pas nécessairement interagir directement avec ce Si vous ne le faites pas dur. Voulez-vous l'utiliser à des fins de base de données ? Mais alors pour générer nos vues et faire certaines opérations dans le contrôleur ? Ensuite, nous allons orteils, avons ce que nous appelons des modèles de vue qui sont encore plus obstruction sur ce sur. Ensuite, nous devrons convertir les données du modèle de vue au modèle réel avant de les transmettre à notre rapport que nous aurions mis en place, en fait. Terrio l'opération de base de données ? Non, j'ai mentionné une autre chose dans le titre. Ce sont de nouveaux modèles sur la configuration supérieure d'automne. Donc Autumn Upper est une bibliothèque qui nous permet de faire cette conversion facilement. Nous allons donc passer par la mise en place de modèles de vue pour un type de feuille sur. Nous allons mettre en œuvre Automne Upper No. Les premières choses d'abord. Je vais mettre tous mes modèles de vue à l'intérieur de mon dossier modèles dans votre projet. Donc, de mes contrôleurs de contrats, Peter a tous les fichiers de classe des abeilles de données réelles. Je vais les fermer. Mais alors les modèles non auront notre modèle de vue. Donc, je vais juste faire un clic droit sur notre dossier Modèles faut-il. Ajouter à propos d'une classe sur. Alors nous appelons celui-ci. Laissez le type sur. Ensuite, vous pouvez hochet les mots modèle de vue si vous le souhaitez. Je veux juste l'appeler VM, donc c'est ma convention de nommage. Si vous vous sentez mieux de taper modèle de présentation, c'est très bien. Mais ce n'est que mes conventions de nommage. Au lieu de dire le modèle de vue asi vm sur alors Eh bien, peu près c'est une obstruction de la classe de base de données d'origine, donc je vais vraiment copier ces propriétés à partir d'ici mis ici. Donc vous vous demandez probablement. OK, alors pourquoi copier et coller ? Pourquoi ? Pourquoi s'embêter avec le modèle View si c'est vraiment juste une copie sur la paix ? Il y a donc des situations où vous pouvez en avoir plus. Sont moins de propriétés à l'intérieur du modèle de vue que la classe de Beat Abi réelle aura . C' est donc le point de cette obstruction, parce que peut-être sur la page d'édition il y a certaines choses que vous ne voudriez pas afficher sur et sur l'index. Peter. Certaines choses que vous voudrez peut-être m'afficher. Vous voulez mettre dans une propriété supplémentaire sur les calculs à la volée, sorte que le modèle de vue sorte de vous donne ce genre hors de la flexibilité orteil. Personnalisez l'expérience que vous voulez. Utilisateur à avoir. Donc, la vue Rappelez-vous, nous avons discuté que les vues sont ce que l'utilisateur voit, donc la vue qui est générée serait basée sur certaines classes les champs qui sont exposés, les données qui disent accès toe. Donc, en utilisant un modèle de vue, vous pouvez avec une rampe vers le haut ou tonique sur la quantité de données qu'une personne a accès à toe dans notre point de vue particulier, une autre chose qu'il nous permet de faire est d'appliquer certaines vérifications pré sur nos vues. Donc, quand je dis prêcher sauf moi, comme dans un formulaire, donnez-moi envie ressent me donner certaines stipulations, notre propre validation de données. Ainsi, par exemple, je peux mettre la propriété requise dans le modèle de vue sur DSO hors cours après avoir inclus cette bibliothèque. Bien sur, puis, puis, Une fois que cela est inclus, Ce que cela fera est sur n'importe quelle vue qui est, générer cet héritage. Ce sont des données et son comportement à partir de ce modèle de vue va imposer ce nom est requis . Donc, si j'ai un formulaire quand j'ai un formulaire pour créer un type de feuille et que vous devez mettre le nom de ce type de feuille, ils ne peuvent pas le soumettre vide car c'est notre champ acquis. Je, cependant, ne veux pas rencontrer, qu'il soit créé nécessaire, parce que c'est quelque chose que je vais être assis dans la boîte cultivée. Donc je ne suis pas un pour moi, et cela a exigé. Alors vous vous demanderiez probablement. OK, donc si je suis assis dans le fil de fond, dérange-moi pour un instant, et c'est un point valable. Donc, alors une mère a vécu hors obstruction est que parfois vous pouvez avoir un modèle de vue différent à des fins différentes. Donc, par exemple, cela pourrait être le modèle de vue détaillée où je vais raccourcir chaque détail de bateaux. Cet article Andi, je peux en avoir un autre. Donc, certaines personnes les divisent en différents fichiers sur certaines personnes. Utilisez un fichier global sur juste avoir les différentes classes à l'intérieur de ce fichier. Donc, ce sont les détails du sport autour. Il s'agit du modèle de vue de détails sur puis peut avant le modèle de vue de création. Je n'ai pas besoin de l' I.D . Et pour plus de détails, cela ne serait pas nécessaire parce que cet affichage donc il n'y a pas besoin d' exiger des données puisque les détails que vous ne faites que montrer l'OTAN. C' est un côté créatif que vous modélisez, seulement le I D. Parce que, eh bien, il n'y a aucune idée au moment de la création, cependant, le nom est nécessaire pour la création à ce moment-là. Peut-être qu'au moment de la création, je ne mange pas vraiment le rendez-vous. Ce sont donc des petites choses que vous pouvez faire avec vos modèles de vue. Comme je l'ai dit soit tonique sur leur bateau, quantité de données qui est exposée à la vue qui héritera ou orteil augmenter la quantité de données hors. Non, quand nous arrivons à générer réellement les vues et les contrôleurs, alors vous apprécierez pleinement pourquoi nous prendrions ce travail dur, parce que le studio visuel génère réellement un peu hors cour pour vous lorsque vous utilisez le échafaudages. Et si tu as éraflé, six sens et que tu n'as qu'à le faire, alors tu n'auras pas à passer du temps à les nettoyer. Si vous êtes échafaudage au-dessus de vous, le modèle que vous avez déjà conçu orteil n'a que les champs dont vous avez besoin pour cette vue particulière , alors vous n'avez pas à passer autant de temps à nettoyer car ils ont déjà passé du temps assis sur le modèle de vue. Donc, c'est un genre de situations de poulet et d'œuf, un flux de trésorerie en une seule. C' est celui que vous préférez quand nous arrivons au point hors échafaudage, alors nous verrons la vraie puissance hors des modèles de vue. Bon, donc pour les deux autres classes de données qui allaient se concentrer sur ce que vous croyez, allocation et l'historique de quitter, je vais créer des modèles de vue, et je suis littéralement allé faire un direct abstraction de la classe de données, et je vais juste leur ajouter quelques attributs violets de son. Je ne suis pas un orteil passer du temps à nettoyer et la ville ou BTS contre crée. Je laisse le type de plomb VM tel qu'il est, Mais alors je vais aller de l'avant et faire l'historique des feuilles et laisser l'allocation différemment. Donc, je viens d'aller de l'avant et de créer une nouvelle classe une fois de plus sur celui-ci sera pour l'histoire de congé et j'ai appelé VM sur. Je pense ajouter. Alors je vais juste en faire un de plus pour l'allocation des congés. D' accord, Donc, nous avons ou quittons une VM d'emplacement ou laisser l'histoire et laisser le temps. Les fichiers GM le sont pour l'allocation des congés. Comme je l'ai dit, je comprends de faire une copie directe sur, alors je vais juste modifier les annotations de données. Donc, ces attributs que nous mettons en haut sont appelés annotations de données. Donc, pour laisser al appréciation retiré. Les clés sont des clés plus étrangères car elles ne sont pas absolument nécessaires dans une machine virtuelle, elles sont donc absolument nécessaires dans la classe de données. Eh bien, ils ne sont pas nécessaires dans le modèle de vue à l'époque. Vous voyez ici que la vue Month fait référence à une classe de données, donc il essaie de faire référence à la classe de données employé et essaie de faire référence à la classe de données de type feuille. Mais alors, idéalement, nous ne voulons pas que Toby fasse référence à la classe de données à partir de quelques modèles. Donc avez-vous Model devrait parler à notre modèle de vue sur les besoins d'une classe. Vous commencez à dissuader les cours, donc c'est pour ça que nous avons cette obstruction. Donc, cela signifie que je dois mettre en place un modèle de vue pour les employés aussi si intéressant de créer cela rapidement. D' accord , alors. Voici une autre situation où le modèle de vue pourrait être utile parce que lorsque nous voulons regarder un employé où en fait, ne puis-je pas utiliser un enregistrement ? Et si vous vous souvenez de la table Utilisateurs, qui est un utilisateur net rapide, qui est ce dont notre classe de données d'employés hérite, donc les employés nous donnent vraiment toutes ces données. Nous n'avons vraiment pas besoin d'afficher toutes ces données. On regarde un employé. Nous avons vraiment juste besoin peut-être le I d. le nom d'utilisateur l'adresse e-mail sur certaines clés. Hum, c'est hors données, donc un modèle de vue nous aide une fois de plus l'abstrait. Certaines choses du niveau de la base de données se concentrent sur ce que nous avons vraiment besoin de voir, donc je vais juste faire référence à certains carburants clés. J' utilise un nom e repas sur ceux que nous avons ajoutés, qui seront joints à la naissance. Prénom, nom de famille sur l'impôt I d. nom de famille sur l'impôt I d. J' ai donc pris les propriétés du jour de la classe des employés que nous avons mis en place. Non, je vais juste ajouter les autres de la table. Donc je veux que ce soit sur le côté pendant que je tape pour que je puisse tourner pendant la durée de mon a Par mon exercice ici le jour, je viens de temps ces rapide Non. Une chose à noter est que pendant que nous tapons ou quand nous tapons ces à travers, nous devons nous assurer que l'orthographe qui a gagné les types de données beaucoup Qu'est-ce que sont dans le puits, la table de données ou la classe de données. Donc, je ne peux pas avoir de chaîne l'utilisant ici, mais référencer char en l'utilisant ici qui échouera. Le mappage se sentira car alors ils sont deux propriétés différentes sur. Alors il ne saura pas que ça correspond à ça. Donc, la frappe du soir contient le i. D. Le nom d'utilisateur sur l'e-mail. Je le plus souvent le cas et je la plus grande capsule de données Environ star est que j'ai besoin de la façon d'un B C de voir la chaîne. Donc, je dois dire, chaîne sur a utilisé le nom est camel cased gardé une affaire vous et finir après moi. Bien sûr, je majuscules tout le monde et semble pour l'e-mail avec un e majuscule sur. Ensuite, je vais ajouter quatre numéros sur ce qui sera la fin de cet exercice, donc prob sur le nombre complet est stocké comme environ char Donc pour le nombre doit être une chaîne ici sur le numéro de téléphone. Donc, cela l'aidera en fait à revenir au pied de la classe sous-jacente pour les employés qui est l'utilisateur d'identité. Donc tout ce que j'ai fait avec la base de données, donc non donc je peux juste me glisser dedans et je reçois que mon état vraiment. C' est toujours bon que lorsque vous écrivez du code, vous parlez juste des builds. Je peux vous indiquer où vous avez disparu. Donc, je me rends compte, savoir que je ne suis pas retourné en arrière et corriger les époques dans la VM allocation de congé donc non, Je peux changer ce magasin employés VM et je peux changer ce congé d'un orteil qui abritera un détail. Désolé. Cela devrait être juste revenir en arrière et vérifier et assurez-vous que je suis en train d'écrire. Donc c'était Laissez ça via mes coordonnées. Laissez le type B. M. Donc j'ai juste utilisé les détails. Puisque les détails auraient tout ce dont j'ai besoin qui devrait revenir dans ce cœur de l'objet et il n'y a pas d'erreurs alors il sait juste que l'allocation de congé. Veum devrait s'attendre à ce que certains biens hors employés de type VM employé en congé type avec des détails. Laissez ce GM afin que nous puissions encore une fois passer par et créer des modèles de vue différents pour les employés. Vous savez, un pour visionner, un pour créer, un pour celle-là. Pour ça, c'est à toi de décider. Je vais le faire à la fois malade et au moins avoir un modèle et voir comment cela peut fonctionner sur DSO. Nous allons de l'avant avec le plus léger, donc je vais aller de l'avant et je vais quitter l'histoire. Je vais le faire rapidement ici pour que vous puissiez positivité ici et essayer de ramener la propriété sur vous-même. Alors nous pouvons continuer ensemble. D' accord, donc j'ai apporté toutes les propriétés et cela a changé tous les désirs erronés au modèle View ou à la classe VM correspondante alors, bien sûr, nous devons prendre tous ces attributs parce qu'ils ne sont pas au câble dans un modèle de quelques. Non, nous pouvons commencer à ajouter un peu de validation. Quelqu' un à retourner pour laisser l'allocation d'abord sur. Mettez un peu de validation. Donc, le nombre de jours de congé est requis parce que lorsqu'ils remplissent le formulaire et sont assis sur l'allocation, ils ont besoin de voir le nombre de ces jours que quiconque il est a. D' accord, euh, une autre chose que l'allocation des congés devra avoir, c'est l'accès à la liste des employés et à la liste des types de congés. Si vous remarquez que c'est vraiment un, ce n'est pas une liste. Il s'agit d'une entité appelée employés. Sur Ceci est une entité appelée Type de feuille et avec le I DS correspondant, à droite. Donc, pendant qu'il est stocké pendant que la table de données va stocker une idée d'employé et un type de congé, I D. It. Vraiment. Lorsque vous autorisez l'utilisateur à philo, la liste exigera qu'il le sélectionne dans une liste déroulante sur. Nous devrons donc inclure un mécanisme qui représente la liste des éléments qui auront les employés et la liste des éléments qui auront les objets de type feuille sont ainsi à faire . Cela inclura, à notre avis, modèle sur que je vais utiliser sur innombrables cette fois. Donc, et j'ai été innombrable là-bas utiliser un type de données appelé Select Most Ok, Tim Onda. Nous allons appeler celui-ci des employés. Donc, cela représente une liste déroulante des employés dans la base de données, et puis je vais juste inclure cette bibliothèque. D' accord, on va faire la même chose pour le type de feuille. Les employés aussi. Et disons qu'on a des types de congés. Donc, une fois de plus, les pauvres hors du modèle de vue, cela va verser la vue. C' est ce que l'utilisateur voit, et ce qu'il a besoin de voir est une liste déroulante ou une liste hors forme à partir de laquelle il peut serpenter une sélection. Donc, nous mettons dans le select ceci dans notre classe de modèle de vue car ils sont beaucoup plus flexibles avec les types de données qui sont pris en charge ici que nous l'aurions eu dans la classe d'allocation de congé réelle qui a été utilisée pour modéliser la base de données. Donc nous avons fait ça pour l'allocation des congés, et je suis bien habillé pour aller laisser l'histoire. Nous allons juste passer en revue que nous voyons ici que tout semble dans l'ordre, a changé tous les employés et les détails. Références. Eh bien, cette étape va être utilisée pour stocker le congé. Les références sont des demandes, plutôt Andi, qu'elles aient été approuvées ou non. Donc je pensais juste que si quelqu'un remplit une demande de congé, alors ils vont mettre la date de début. La fin. C' est, euh sur Ben. Ils doivent sélectionner le type de congé qu'ils demandent. Donc, cela signifie que j'ai besoin d'une liste déroulante pour le type de ceux-ci. Donc, je vais juste utiliser le même innombrable de l'allocation de congé et le mettre juste en dessous , parce que alors ce sont les types de congé sur ce. Je viens d'inclure cette référence manquante. Et puis je vais ajouter quelques attributs à ce que je considère comme requis donc la date de début qui sera certainement nécessaire lorsque la personne demande un congé. Cela inclut cette référence rapidement. Um, l'Indy, ça va certainement être nécessaire. Le puits, c'est tout ce qu'il faut. Vraiment ? Donc, je peux déterminer les employés demandeurs, ou nous allons déterminer que de sorte que l'utilisateur devrait fournir ces informations afin qu'ils n'aient pas à répondre à l'Andi requis. Les huit mesures demandées. Tous ces éléments seront approuvés. Ça n'a pas à l'être. Donc, vous savez, au cas par cas, vous savez ce qui est nécessaire et ce qui ne l'est pas quand vous pensez à l'avenir. Mais à la fin de l'accord, nous pouvons toujours revenir et nous pouvons ajouter Soustraire sur modifier comme nous le pensons comme notre application , il tombe. Donc c'est tout pour définir les modèles de vue, au moins pour non, c'est tout. Hum, non, ce que nous devons faire, il s'est installé pour l'automne supérieur. Donc, comme je disais, on a besoin d'un moyen de se convertir. Les données qui sont fournies dans ce type de classe dans un objet hors de ce verre étapes. Donc, quand c'est une demande de congé va dans. Donc peut-être que j'aurais pu faire un meilleur travail appelé dans cette table, laisser l'histoire. J' aurais pu sauter des demandes, mais nous allons juste travailler avec. Donc, laissez l'historique quand ah demande entre dans cette table sur les employés. Tous ces points de données sont remplis. Ce ne sont pas des points de données. que la base de données reconnaît car il s'agit d'une machine virtuelle et la base de données ne reconnaît que la table d' historique de croyance provenant des classes de données ou. droite. C' est donc ce qu'il reconnaît. L' histoire, pas laisser l'histoire. VM. Donc, cela signifie que nous pourrions manuellement nous asseoir et reconstruire, laisser l'historique, l' objet et la mise, en assignant toutes les valeurs provenant de la machine virtuelle dans le remorquage. La classe de données correspondante. Andi, ce sera une méthode très fastidieuse. Ça marche, mais c'est fastidieux. Et donc nous allons travailler plus intelligemment, pas plus dur. Donc, nous avons un outil appelé Autumn Upper qui va réellement examiner les deux classes que nous avons dit que ces deux doivent cartographier. Ces deux-là ont besoin de trop. Ensuite, il sera beaucoup les propriétés les uns avec les autres. C' est ce que je disais. Vous devez être très prudent et sûr que vous êtes beaucoup dans le cas et beaucoup dans les types de données . Il va chercher des capitaux, notre capital e employé qui demande. Je l'ai dessus. Ça va voir Ok, je devrais quitter l'histoire et je vais partir. History V n'a pas la même propriété. Ok, je vais prendre la valeur et l'assigner, et il fait ce genre de automatiquement. Donc, nous allons juste passer par les étapes, configurant sur. DWI peut aller de l'avant après cela. Non, pour obtenir la partie supérieure de l'automne, nous allons utiliser notre nouveau gestionnaire de paquets get pour que nous puissions simplement passer à notre solution . Explorateur, non ? Cliquez sur dépendances cliquez sur Gérer les nouveaux paquets get, puis si elle craint les terres sur installer Just Goto bro sur. Assurez-vous que vous avez inclus la pré-version cochée et que nous allons rechercher Auto Mahbubur. Donc on va s'en aller. Ces bibliothèques allaient recevoir Autumn Oper et nous allons obtenir des extensions Autumn Oper pour dépendance. Injection ne sont pas si nous allons cliquer dessus. On peut juste glisser la flèche vers le bas une fois. Laisse ça commencer à télécharger. Ensuite, Newgate va faire son truc, récupérer le paquet et le placer dans le panier. Placer à l'intérieur du projet, puis une fois que cela est fait, alors si vous allez à l'installation, vous verrez listé là-bas Donc antic illimité sont effacer la recherche. Mais non. Vous voyez que l'automobile est répertoriée parmi vos paquets installés. Si vous avez abandonné les dépendances et les paquets Goto. Et vous verrez également Autumn Oper listé juste il n'y en a pas. Donc on retourne chez Breaux et je vais chercher Autumn Upper une fois de plus parce que je n'ai pas fini. Donc, tout terme supérieur à l'époque. On cherche celle-là. Donc, nous cherchons des extensions. Injection de dépendance Microsoft sur. Alors quoi ? Tu ne connais pas cette version pour John 7. Une fois de plus, assurez-vous que inclure pré-libération est collé. Je sais que c'est téléchargé. J' ai les deux dans mon projet, donc je peux juste regarder faible construction. Il est toujours recommandé qu'une fois que vous installez un nouveau paquet, il ou construisez pour que vous le sachiez, toutes les références soient en quelque sorte intégrées. Donc juste le changement de contrôle et être et faire une construction rapide et nos bâtiments complets avec zéro flèches et donc nous pouvons aller de l'avant. Donc, non, où nous avons les références que les paquets orteil automne supérieur, Mais non, nous devons laisser notre cour savoir quoi faire avec l'automne supérieur. Donc la première chose que nous allons faire est de créer un petit dossier. Donc, vous savez, nous voulons garder notre noyau soigné. Donc, chaque fois que vous avez un peu de cordes sont de petites classes. J' ai besoin d'hérétique et de discrète. Un dossier. Donnez-lui un joli nom. Donc je l'appelle celle-là. cartes sont bien balayer Zia sur. Ensuite, je veux créer un fichier de classe là-dedans. Quelqu' un pour appeler ce fichier croisé Auto ma brûlure. Bon, pour que ce nom ne s'affronte pas. C' est mon nom pour ma classe. Donc ce nom que ce mot va vraiment planter ? Non, à l'intérieur de cette classe, la première chose que je vais faire est d'hériter d' à l'intérieur de cette classe, la première chose que je vais faire est d'hériter d'un fichier ou d'une autre classe appelée profil. Donc je vais juste faire ça. Et puis une référence chargeur de ce genou mettant toujours notre utilisation automne mon personnel. Il fait référence à notre bibliothèque. D' accord, donc l'automne, une bibliothèque de prison ou la dépendance qui vient d'être ajoutée à travers vous obtenez quelque part le référençant sur. Ensuite, nous allons mettre en place un constructeur pour notre poubelle. Donc peut-être que ce serait un peu déroutant si je lui ai donné le même nom depuis que je lui ai donné. Donc je vais juste changer ce nom orteil ma tige. Donc, au lieu d'appeler nos moulages automne un premier, vous voulez l'appeler ma partie supérieure ? Justo, supprime toute confusion, non ? C' est donc toujours une bonne pratique que, quel que soit le nom du fichier de classe, il nomme aussi la classe à l'intérieur. D' accord, donc je viens de renommer le fichier en mapper point CS sur la classe. Le nom est muh pour Andi sait que je crée sur constructeur. Ensuite, à l'intérieur de ce constructeur, je vais créer les vadrouille qui devraient exister dans notre application. Alors laissez-moi juste en faire un sur expliquer pendant que je vais, quelqu'un pour dire créer tout droit, crochets d'angle ouverts. Et puis je vais voir ce que deux classes devraient cartographier. Donc tu vois, c'est en quelque sorte te dire, tu veux une source ? Je veux une destination, non ? Alors, quelle est la source ? Je peux voir qu'une source serait une classe de données. Alors voyons. Le type de congé est Anita Class. Donc je veux cette baladeuse. Alors. Ensuite, j'ai eu deux classes sont de voir les modèles pour les types de détails lyft laisser le type et qui créent les étapes que je vais faire une off. Donc, je veux que la classe de données de type feuille, qui est ma source, soit mappée à mes détails. Laisser la confiance de type sont désolés et c'est Veum. détails laissent le type VM de sorte que la classe de données, qui est notre source, soit balayée à ma destination, qui est mon modèle de vue, puis comprendre d'inclure toutes ces références afin que tout le monde connaisse tout le monde. Bon, donc, non, non, la vadrouille sait qu'elle devrait créer, hum up ou on va créer une vadrouille entre la source, qui est notre classe de données et la classe de destination sur. Ensuite, je ferme les accolades, puis le demi-côlon. Non, la chose avec les opéras d'automne qu'il fera littéralement source la destination, ce qui signifie que si j'essaye d'obtenir des données d'ici pour stocker ici, alors vous saurez que c'est basé sur la direction. Donc, il a, ah, fonction. Donc, après l'ouverture et la fermeture, très site Express a dit que Et puis je veux appeler une autre fonction appelée carte inverse, qui verra alors il peut être mappé dans les deux sens. Donc, de cette façon, je n'ai pas à faire une nuit et de voir cela à cela et cela à droite, qui devrait dire, laclasse de données, classe de données, le modèle U Motor on view à la classe de données, inverser la vadrouille avec savoir automatiquement que c'est bien, l' une ou l'autre direction est bonne pour moi. Très bien, donc je peux le faire avec les détails et ensuite, ERM au courant de GM. Alors, où les détails sur où. Créer un temps de congé. Donc, nous devrions certainement le faire parce que nous nous attendons à ce que Autumn upper notera une carte de cette classe ultérieure à ce modèle de vue. Nous devons donc voir les modèles ici, et pour chaque modèle de vue que nous avons, nous devrions le faire cette semaine. C' est ce que j'ai dit. Vous pouvez Vous pouvez sortir votre point de vue, mères, d'être très spécifique au type de vous, ou vous pouvez simplement faire un global, donc cela serait fait une fois. Donc ce que je peux faire maintenant, c'est juste dupliquer ces lignes, non ? Toutes les autres cartes pour l'histoire, la répartition des employés. Donc je vais juste faire une pause et faire ça. Et vous pouvez faire une pause ici aussi le jour essayer et le faire avant de reprendre. Bon, donc j'ai fini. J' ai juste dupliqué ces lignes et changé tous les noms de la classe de données sur le modèle de vue sur De a conservé la carte inverse. Donc c'est à peu près tout ce dont nous avons besoin. Et pour toutes les autres classes de données et tous les autres modèles de vue qui seront jamais introduits. On a juste besoin de l'ajouter à cette liste des pings de maman. Donc, l'étape suivante est orteil réellement laisser oh, notre middleware ou application de base donna initialiser l'automne supérieur. Et ces cartes sont allés pour l'application est en cours d'exécution sont donc nous allons le faire en allant commencer à propos du fichier CS et ensuite nous devons ajouter un nouveau service. Laisse-moi juste mettre de l'espace ici. Ils ont donc ajouté ces trois services pour plus de notre présent pour le dépôt. Bon, donc, non, je vais en ajouter un autre, et je vais rencontrer celui-ci pour notre haut d'automne. Donc, je vais dire les services point sur puis je verrai la devise étrange, ma, ma, pour aucun avis l'inter péché a cessé. Et c'est probablement parce que vous devez inclure une bibliothèque pour obtenir cette fonction. Mais laissez-moi juste finir de le taper avant d'y ajouter quoi que ce soit. Donc je vois à l'automne en haut. Ensuite, je vais dire taper, puis entre accolades. Je vais voir le nom de la classe, que nous avions comme marqueurs. Alors rappelez-vous que nous l'avons appelé Ma per qui est fini et c'est dans le nouvel espace ou dans le plein de mes pings. Alors vadrouille er aan den, C'est ce qui va être ici. Donc non, nous devons inclure quelques références que je dois dire en utilisant Autumn Oper d'abord pour que ce téléphone affiché soit reconnu. Très bien, donc nous avons frappé un peu d'un coup parce que nous appelons ou de classe vadrouille er, mais il ne devrait vraiment pas avoir ce nom parce que le mappeur est Noah Conflicting classe, donc je vais l'appeler maps à la place. Donc, je vais revenir à mon fichier, qui est mon supérieur, ce CS, et je vais renommer ce fichier toe maps. Donc, le revêtement avec les studios que si vous renommez le fichier, il vous demandera si elle doit passer par et vraiment dans les classes sous les références à l'intérieur , donc vadrouille éloignée iranienne. Et donc il a automatiquement renommé la classe et le constructeur. Deux cartes pour moi, donc comprenez, pour voir si cela revient à ma startup et à la place je vais dire taper sur vadrouille droit sur . Ensuite, lorsque j'inclue la référence, il me demandera si je veux inclure la référence afin que ce fichier, qui est mon fichier de classe cette fois. Alors passons en revue ce qu'on vient de faire. Nous ajoutons donc un nouveau service, et nous le constatons lorsque vous savez que notre application principale démarre. Nous voulons un service qui ajoute sur l'automne fichier de configuration supérieur dans le type off ou informer ce fichier de vadrouille sur ce fichier de cartes ou classe vient de notre configuration que nous avons fait avec tous les vadrouille. Donc, non, À la fin de cet exercice, lorsque nous effectuons réellement nos opérations avec un modèle de vue sur, nous obtenons des données et nous devons les convertir de la version du modèle de vue aux données salles de classe sur parce que le dépôt honorable ne recherche pas de modèles de vue est à la recherche de classes de données. Nous devons donc convertir les données stockées dans l'objet modèle de vue dans les données de remorquage qui sont stockées dans l'objet de classe de données qui peut être transmis au référentiel et par extension, la base de données. Et donc l'automne supérieur répondra à ce processus facile. Donc, nous n'avons pas vu d'automobile, et en fait, nous étions juste assis pour juste comprendre pourquoi nous avons besoin de modèles de vue et pourquoi nous avons besoin d'Autumn Oper. Ensuite, quand nous installerons nos contrôleurs, alors nous verrons la vraie puissance éteinte les deux. 14. Réviser et ajouter des modifications à GitHub: Hé les gars, dans cette vidéo, nous allons révéler des changements ou travailler jusqu'ici. Onda. Nous allons télécharger notre projet pour se lever. Maintenant, commençons par examiner ce que nous avons fait jusqu'à présent avec notre projet, nous avons mis en place sur les classes de référentiel que nous avons configurées ou les connexions de base de données. Nous avons mis en place quelques modèles de vue. Début de l'Oper d'automne. Nous n'avons pas touché nos contrôleurs et nous n'avons pas encore touché nos points de vue. Mais au moins nous avons fait l'empire à qui est le modèle, qui est une des opérations liées aux données ? Non, c'est toujours bon de garder des cônes relativement courts hors de ce que vous faites. Ce qui signifie que vous implémentez quelque chose, vous l'enregistrez. Le contrôle de la source est conçu pour aider les équipes à collaborer même en tant que développeur individuelpour vous aider à suivre ce que vous faites. Le contrôle de la source est conçu pour aider les équipes à collaborer même en tant que développeur individuel Donc, en gardant cela à l'esprit, lorsque vous apportez des changements majeurs ou que vous implémentez quelque chose de nouveau, vous voulez l'enregistrer parce que tout peut arriver sur votre machine locale ou où que vous soyez en fonction lorsque vous l'enregistrez dans le centre référentiel. Au moins, vous avez une sauvegarde sur les dernières modifications qui ont été apportées. Donc, notre moteur de contrôle de source hors choix est ghetto Bob on dit est une plate-forme cloud et vous auriez déjà créé un compte. Et si vous ne l'avez pas fait, alors vous pouvez juste et je vais juste signer mon lever rapidement. Si vous allez obtenir espoir point com, alors vous recevrez une feuille d'inscription juste ici à la première page. Cela fournit un unique en utilisant votre nouvelle adresse e-mail et un mot de passe et vous êtes dans. Si vous avez déjà un compte, vous pouvez aller de l'avant et que vous vous connectez, puis nous allons créer un référentiel pour notre projet. Non. Une fois que vous vous êtes inscrit sur notre connexion, nous pouvons procéder à Visual Studio Onda. Nous pouvons aller de l'avant et ajouter ce contrôle de source de projet afin que vous ayez deux options pour le faire. Vous verrez dans le coin inférieur droit au contrôle du projet à la source au contrôle de la source et vous cliquez dessus et vous voyez cadeau ou vous pouvez cliquer avec le bouton droit de la souris sur la solution et vous verrez une option. C' est sa solution publicitaire pour le contrôle de la source. Maintenant, si vous ne voyez ni ou que vous ne voyez pas obtient, alors cela signifie que vous devez ne pas charger, obtenir il est généralement livré avec Visual Studio, mais peut-être que quelque chose a mal tourné et vous ne l'avez pas compris, donc vous pouvez toujours il suffit d'aller orteil obtenir tiret s c m dot com ou vous pouvez Google au moins sont bons . Je n'étais pas le feu obtient aussi Dash SCM dot com, et vous pouvez juste aller à l'aube Seigneurs sur, puis juste cocher le Don't Lord. Si vous utilisez Windows hors cours, c'est celui qui est fait pour vous. Mais vous pouvez choisir en fonction de votre système d'exploitation sur. Ensuite, une fois que vous l' avez installé, vous pouvez redémarrer votre ordinateur, puis rouvrir votre projet sur. Ensuite, vous devriez voir que obtenir Icahn comme une option, donc je vais aller de l'avant et cliquer. Obtiens donc au contrôle de la source et je le prends. Et ce qu'il fait est de créer un référentiel local, alors get crée deux référentiels, mais get crée un référentiel sur la machine sur laquelle il est, donc si c'est sur votre machine, alors vous avez I dépôt sur votre machine. Mais alors Visual Studio est également très étroitement intégré, avec des plates-formes d'hébergement de contrôle de source à distance comme la guitare, donc il va le forcer à enregistrer des changements avant de créer trois Paluch localement. Mais alors il est aussi demandé, où voulez-vous créer la sauvegarde de vos mots de corde locale get ? Il a créé une copie locale sur votre cordon afin que vous ayez une copie locale désactivée. Vos modifications sont le suivi local de vos modifications. Mais non, ça demande. OK, voulez-vous le pousser comme vos services div up ? Ou voulez-vous utiliser le bar ghetto ? Un autre type hors obtenir le dépôt distant. Alors il va vous demander ça sur sou en utilisant de la guitare parce que c'est mon arme de choix pour ce tutoriel, quelqu'un à dire publié pour obtenir hub. À ce stade, il peut vous demander de vous connecter. Tu sais, j'utilise à peu près la même remorque. Attachez tout ensemble pour qu'il ne me demande plus. Il sait qui je suis, donc je vais laisser le nom Leave Dash management. Vous pouvez mettre une description. Si vous voulez sur, vous pouvez cliquer sur Publier, Donc, si vous choisissez le référentiel privé, alors les gens ne seront pas en mesure de le voir sur votre profil, donc vous devez ajouter des personnes manuellement sur, alors cela peut engager des coûts si vous avez besoin d'ajouter à beaucoup de gens. Mais alors, si vous le laissez public, tout le monde peut le voir. Donc, bien sûr, vous savez, si votre information sensible voulait public, mais pour le but de ce tutoriel, je veux la laisser publique pour que vous puissiez regarder mon profil, aller à ma guitare et consultez le code source. Si vous avez besoin d'un renforcement en dehors de ce qui est fait dans ces leçons, donc je vais aller de l'avant et cliquez sur publier, et puis il va travailler un peu de magie sur. Ensuite, à la fin, cela va orteil rafraîchir et montrez-moi que le dépôt a été créé avec succès. Andi. Ça me donne un lien vers ces dépôts. Si je clique sur ce lien, alors il sera orteil de Bro le dépôt ungettable avec tout hors de la cour que j'ai écrit à ce jour, Sisi a été créé. Le dernier commit était il y a deux minutes. Si je vais dans le dossier sur lequel je vois tous mes dossiers et fichiers sur lesquels j'ai travaillé , et pour que ce soit un beau cheval de remords, cette version hors de mes tribunaux si mon ordinateur tombe en panne, non ? Non. Ensuite, je peux revenir, lever et obtenir la dernière inversion vérifiée. C' est pourquoi je dis qu'il est important de le vérifier lorsque vous faites des étapes importantes dans votre citation sur. C' est aussi une bonne pratique. Le poulet a appelé. Cela fonctionne parce que si vous travaillez dans une équipe que vous ne voulez pas avoir d'erreur sur, alors vous essayez de vérifier cette époque sur. Alors quelqu'un d'autre vient chercher votre cordon. C' est ce que vous appelez vérifier quand ils arrivent ici. Et puis ils ont des prétendants d'Arisa qui étaient de ta faute, non ? Donc toujours code de poulet que votre rivage fonctionne et ensuite vous avancez. C' est une belle façon de collaborer avec Snow à partir d'ici, et je peux simplement rejeter d'ici. Je peux inclure plus d'informations créer. Je m'ai lu pour que vous sachiez, si les gens rencontrent ce dossier ou ce reportage, ils savent exactement ce que c'est un bateau. Je peux être plus descriptif en ajoutant, eh bien, une description sur la page en haut, donc ce n'est pas une description. Il ne sait pas ce que c'est un bateau. Il peut ajouter un wiki pour que les personnes qui me, vous savez, c'est une plate-forme open source. Alors peut-être que vous créez quelque chose que vous voulez partager avec les gens. Vous pouvez créer un méchant, qui est comme un problème désactivé journalisation problème O r, solution Andi type de documents. Si c'est que vous voulez ajouter plus de personnes, Toby, les collaborateurs sont des contributeurs à votre projet, et vous pouvez aller dans les paramètres et vous pouvez aller à collaborateur. Donc ça. Donc, vous avez mis en place un projet d'équipe. Il a aller à des collaborateurs, et puis vous pouvez simplement les trouver en l'utilisant et à eux. Et puis tout ça, tu ferais partie d'une équipe travaillant sur ce dépôt central. Très bien, donc c'est à peu près comme ça que vous mettez votre cour du studio visuel dans la baignoire. Ensuite, comme nous allons le long et nous avons construit plus de modèles à chaque fois, nous allons nous assurer de vérifier ces changements et de garder ce dépôt opté huit 15. Contrôle de type de l'écriture de l'lire et des actions: Hé, les gars. Dans cette vidéo, nous commencerons à construire notre module de gestion de type feuille, et nous commencerons avec les contrôleurs. Dans cette vidéo, nous allons créer un nouveau contrôleur pour la gestion de nos types de feuilles avant qu'un continuum ne passe un peu de temps à expliquer le fonctionnement des contrôleurs entiers, ou quelle règle ? Le plaidoyer ne le sont pas. Le contrôleur fait exactement ce que son nom suggère qu'il contrôle. Il contrôle le flux entre la demande d'un utilisateur sur le contenu d'un servo. Par conséquent, il est à la barre de toute interaction Web avec votre application. Donc, les projets quand nous l'avons créé sont venus avec le contrôle à domicile sont déjà là et prêts à l'emploi. Et toi ? Nous passons du temps à explorer comment cela fonctionne. Nous voyons que la maison est vraiment le nom de la région. Mais alors le modèle est que nous avons ah nom et puis le contrôleur de mot. C' est toujours un chameau avec Andi. Le contrôleur hérite d'une classe de base appelée Controller, qui est fournie par le projet. Le contrôleur a certaines fonctions qui sont appelées actions sur. Ces actions ont des noms sur la chasse au retour en fonction du besoin. Donc, même si l'index et la confidentialité verront la vue de retour. Ce qui se passe vraiment, c'est que si vous demandez du contenu pour le discours d'index sur le contrôleur personnel que cela a été de frapper cette action et que cela a été de retourner la vue sur, alors ce qu'il fait vraiment quand il est retourné, voir est-ce qu'il va dans le vérifications des dossiers des vues. S' il y a un dossier avec le même nom qu'un contrôleur, donc le nom des contrôleurs est à la maison. Il doit y avoir un dossier appelé Home On. Ensuite, il doit voir de vous avec le même nom index, ce qu'il fait. Il a besoin de voir un fichier, qui est ah point CS Isham du fichier sur. Ensuite, il retourne le contenu de ce fichier sur ce qui est ce que l'utilisateur voit. Donc, pour commencer à créer notre modèle, nous devons mettre en place la foule. Les opérations sont sur la classe de gestion de type feuille sont des tables plutôt, donc la première étape consiste à configurer un contrôleur. Et puis nous allons commencer à configurer les vues, son action dans le contrôleur. Alors commençons. Donc, pour créer un contrôleur, nous faisons un clic droit sur le dossier des contrôleurs, nous allons ajouter. Ensuite, nous voyons en haut de la liste. Nous avons contrôleur, donc nous sélectionnons cela sur, puis on a donné les options souvent contrôleur vide. Donc, vous voyez, Home Home a un certain appelé Nous pouvons l'obtenir vide, ce qui signifie que c'est seulement comme un truc de base l'espace de nom, bibliothèques sur le fait que c'est une classe appelée ce que nous appelons héritant du contrôle. Et puis nous faisons le reste pour pouvoir choisir vide. Nous pouvons choisir un avec lecteur à l'action Donc il vient arrêté avec les actions de base de la foule comme je dis que nous les actions sont ces fonctions sur toute interaction avec l' application est vraiment bondé ici que la création, lecture, mettre à jour nos droits de suppression des données, afin que nous puissions l'obtenir avec le basique mais générique et bien sûr, nous devons écrire le cordon pour cela. Ou nous pouvons aller de l'avant faire le contrôleur NBC avec des vues en utilisant le framer d'entité. Alors quoi ? Celui-ci le fait. Je baisse. Nous aussi. Créez un contrôleur centré autour d'un quatre classes de données, la pièce où nous nous sommes trompés. Nous avons créé des classes de données dans ce cas, laissez le type, et puis il générera toutes les opérations de foule en utilisant l'entité pour votre Donc je vais faire d'abord sur le numéro un pour vous montrer pourquoi ce n'est pas celui que nous allons pour avancer avec. Donc, le à la construction fondamentalement vénéré une application principale dominante que vous n'utilisez pas référentiel et de modèles de vue et toutes ces choses fantaisistes. Ensuite, ce serait l'option que vous allez avec où vous venez de sélectionner ceci. Vous cliquez sur. Ajoutez que dans cette boîte de dialogue, vous sélectionnez la classe de modèle. Donc, vous pouvez dans la liste sélectionner n'importe quelle classe que vous voulez. Andi, dans ce cas, je vais aller avec le type de congé. Donc, c'est le type de laisser provenant de l'espace de nom de données lionisé classe de données sur. Ensuite, je choisis le contexte qui serait l'application Devi contexte Andi. Je n'ai rien toucher d'autre, mais remarquez qu'il génère le contrôle et pour moi, il sait que sa construction d'un contrôleur basé sur la classe de modèle hors feuille. Donc, il est de laisser les types contrôleur. Ensuite, je clique sur ajouter Et quand ce processus est terminé, nous avons un contrôleur avec beaucoup de code généré. Donc, nous avons un contrôleur avec beaucoup de cour et nous avons aussi un nouveau dossier dans nos vues appelé Leave Types of A propos d'un contrôle de types de congé maintenant qu'un dossier appelé Leave Types avec un nombre de fichiers off un pour chaque hors des opérations corneilles sont dans, afin de créer les leads, Détails et index serait avant de lire et d'éditer avant optimiste. Maintenant, si nous regardons le cordon qui a été généré dans ce contrôleur, nous voyons qu'il inclut notre contexte DD d'application, qui, rappelez-vous, rappelez-vous, est comme au-dessus de la passerelle vers la base de données. Je vois qu'il s'initialise. Est-ce juste de la même façon que nous l'initialisons dans ou référentiel ? Et alors que vous continuez à examiner ce qui est là, nous voyons que nous avons une action appelée Index. Mais nous avons un fichier dans nos types de feuilles de dossier vues appelé Index. Donc, pour chaque action qui a été générée dans notre contrôleur que nous avons un fichier de vue correspondant pour cette action. Donc, vous voyez que je veux dire, c'est à peu près fait hors de la cour pour vous créer de voir à l'un est de vous donner le contremaître, et l'autre traite de l'action de soumission. Donc, après avoir rempli le formulaire, puis vous avez cliqué. Soumettez ceci. Http post version off create gère les données erratiques, obtenu et fait toutes les vérifications pré et post qu'il a besoin de faire la même chose peut être dit à propos de l' édition. Nous avons l'éditeur et nous avons le formulaire sur le fichier correspondant, mais nous avons aussi la version post hors de l'action. Assez intéressé pour que l'échafaudage ait fait la majorité de la cour pour vous. Et puis vous vous demandez probablement, alors pourquoi vous embêter avec le dépôt si nous pouvons générer tout à partir du score ? Eh bien, le fait est que oui, ça génère, oui, ça fonctionnera. Mais alors il y a certaines restrictions ou limitations à ce que vous pouvez vraiment faire certaines validations que vous pouvez appliquer parce que rappelez-vous que nous ne voulons pas toucher les classes bêta et l' exécuteur et les validations comme la longueur, et vous connaître certaines petites choses que l'utilisateur devrait voir. Nous voulons créer une sorte d'obstruction en direct entre personne que l'utilisateur ne voit et ce que la base de données éprouve. Donc, c'est pourquoi nous avons les modèles orteil gérer les générations de vues, et nous avons les classes de données orteil gérer l'interaction avec les abeilles de données sur C'est ce que ce modèle est tout au sujet, créant que vivre hors abstraction et maintenir capacité. Donc ce que je vais faire, c'est que je vais juste les enlever. Donc oui, je l'ai généré. Je montrais ton hôte. L' échafaudage fonctionne quelqu'un pour supprimer le contrôleur sur le den. Je vais également supprimer ce dossier de vues. Donc ça n'a jamais existé en ce qui me concerne. Donc la démo est terminée, et non, on va faire le vrai boulot. Donc, je vais revenir aux contrôleurs à droite cliquez sur Ajouter un contrôleur. Et cette fois, je vais juste faire un contrôleur générique avec une bonne action de lecture. Donc il n'y a rien d'hérité dans celui-ci. C' est juste général sur. Nous allons combler les lacunes et générer les vues au fur et à mesure que nous allons, donc je crée cela avec lecteur à des actions comme ajouter sur. Ensuite, je vais lui donner les types de congé de nom sur la troller, alors cliquez sur ajouter donc une fois que cela est fait et nous finissons avec un contrôleur très générique, il n'y a rien de spectaculaire ici. Oui, il y a de la qualité. Donnez-nous toutes les actions qui créent les deux crée faire et c'est etcetera. Mais si vous regardez à l'intérieur d'eux. Tous sont vides. La seule chose qu'ils ont vraiment est la vue de retour. Donc, nous allons, tout d'abord mettre en place cet orteil contrôleur hériter de notre classe de référentiel. Donc, la chose à propos de l'injection de dépendance est que vous ne faites pas référence à la classe elle-même. Mais vous faites simplement référence aux frais inter qui ont implémenté ou que la classe a mis en œuvre. Et puis une autre dimension à cela est que nous devons également faire référence à l'Autumn Oper que nous allons utiliser. Donc je vais commencer par un privé sur, euh, on peut te faire lire seulement, mais je vais juste le faire prier dessus. Je vais dire que je quitte le dépôt de type, et puis, bien sûr, a été de me demander d'inclure la référence pour ce fichier un peu éloigné . Si j'avais un indice sur cette référence, alors je vais appeler ce rapport. Souligner les rapports. Rappelez-vous, une fois que vous avez privé, nous utilisons un trait de soulignement. C' est juste une convention de dénomination sont courtiser convention qui nous aide à la loi, ce qui est ce qui est actuel. Donc je vais le faire lire seulement là, disant que je devrais te faire lire seulement, je le fais lire seulement. Donc c'est pour le sondage sur ça. Je suis juste pour dupliquer cela et je vais inclure je vadrouille er, puis je suis allé appeler cela une ma supérieure sur. Alors je vais faire cette référence. En utilisant également l'opéra d'automne ont été inclus cette référence pour I vadrouille. C' est une démo. Qu' est-ce que l'injection de dépendance est vraiment. Donc, l'injection de dépendance fait simplement référence à un objet, et cela implique ce que les dépendances sont là pour cet objet. Donc je fais référence aux interférences ici. Mais alors cette interface connaît les fonctions qui doivent être appelées, et par extension, elle les appellera à la classe du référentiel. Donc, oui, c'est une bouchée. C' est un peu académique. Mais passons à travers et voyons exactement comment ça marche, est-ce pas ? J' ai donc besoin d'un service constructeur en utilisant la clé. Le requin serait siège sont aan den. Dans ce constructeur, je dois passer deux paramètres, un pour le dépôt et un pour ma mère supérieure. Droit ? Donc, juste de la même façon que nous avons fait le contexte DB. On fait ça, mais j'enlève les traits de soulignement ici. Donc c'est que je laisse le reporter du dépôt et je suis le mappeur supérieur Andi à l'intérieur. Hors de cela, nous saurons initialiser le rapport àavoir la valeur sur le soulignement donc re poison d'avoir la valeur de notre pool de paramètres sur la partie supérieure de l'essaim va avoir la valeur off ou paramètre vadrouille er Et donc nous venons de terminer former certaines parties de l'injection de dépendance dans remorquage, ce nouveau contrôle si éternellement que nous allons faire pour tout rapport dont nous allons avoir besoin. On va devoir faire ces lignes. Donc, dans certains contrôleurs à l'avenir, nous allons probablement avoir besoin de certaines fonctionnalités du dépôt de type Je quitte ainsi que l'employé it dépôt. Nous allons donc devoir les inclure de la même manière pour les initialiser dans notre constructeur. Maintenant, avec cela fait, j'aurais terminé la mise en place initiale de ce contrôleur sur. Il n'y a pas grand-chose à faire dans cette leçon de particules. Dans la leçon suivante, nous commencerons à configurer ou à afficher l'index. Bon, donc dans la prochaine vidéo, nous allons continuer à partir d'ici. Mais si vous avez terminé cela, alors bon travail 16. Affichage Indice de type de l'identification de type l'identification: Hé, les gars, Bienvenue dans cette vidéo, on va commencer à s'asseoir ou à indexer l'action sur la vue pour le contrôleur de type relief. Maintenant, nous avons déjà mis en place ou contrôleur et nous avons inclus. Notre dépendance est sous la forme du référentiel de type feuille et sur le mapper. Et non, nous devons écrire un peu hors cour de sorte que quand quelqu'un brose est au contrôleur des types de feuilles ou de laisser un discours de type à ce module. La première pièce qu'ils vont voir est Index, et nous devons leur montrer quelque chose sur la page d'index. En l'état actuel, nous n'avons aucune vue. Non. Quoi ? Nous n'avons pas de dossier correspondant. Le contrôleur de type feuille est-il activé ? Nous n'avons pas de contenu à afficher. Donc, nous sommes allés toe un code d'écriture que nous allons orteil interroger la base de données, récupérer tous les types de feuilles dans la base de données sur, puis retourner une vue que cela s'il vous plaît tous ces enregistrements, C'est terminé, utilisateur. Donc, la première chose que je veux faire est en fait trouver tous les types de congés. Donc, à l'intérieur de l'action, je vais utiliser mon objet de dépôt sous la forme de trait de soulignement Re tirer sur. Je vais appeler la fonction que nous définissons qui est censée renvoyer tous les types de congé parce que l'index va être une liste des types de congé qui sont dans la base de données . Donc, je vais utiliser Vier pour définir une variable, et j'appelle les types de congé sur. Ensuite, je vais le rendre égal orteil quel que soit le point de rapport et quand je dis de ne pas utiliser avis que nous obtenons toutes les fonctions qui auraient bean défini à l'intérieur de nos dépôts de type feuille , je veux trouver tout parce que je retourne tous d'eux. Alors je vais voir les gens ne le découvrent pas. Donc, quoi que ce soit ce retour sera stocké à l'intérieur des types de congé. Aucune note que cette fonction find all renvoie une collection hors des objets de type leave. Il ne retourne pas les objets type de congé, vue, modèle. Rappelez-vous donc que nous avons traversé le fait que notre vue doit obtenir des objets de modèle de vue, pas les objets de données. Donc non, nous devons mapper ce qui est retourné sous un formulaire à partir de notre classe de données ou de la classe de modèle de vue. Donc, je vais sauver le modèle de feu sur le modèle va représenter la version marquée sur les données jusqu'à présent, Mère va être orteil égal ou vadrouille objet point vadrouille et puis carte je nous fait descendre les données jusqu'à présent, pour définir qui obtenaient cela ou nous avons un ce qui signifie que nous obtenons la classe de données dans cette situation. Mais nous voulons être l'autre, donc nous verrons quelle est la source et quelle est notre destination, ce que nous voulons. La boue, Toby À la fin des résultats cartographiés devraient être à l'dans l'opération. C' est toujours lui sur le dessus. Alors je reçois une liste de ça. Donc, cela revient en fait. Au moins une partie de ma collection. Mais si nous revenons à la définition de la fonction sur, je viens de tenir sur le contrôle et pour déclipped et je suis allé trouver tout et je peux faire un clic droit Ou plutôt laissez-moi simplement aller à mon dépôt de type feuille sur. Nous voyons ici que ou trouver tout revient au moins à droite. Donc je vais voir que je veux que ma partie supérieure de cette serpillère fasse la liste. Ensuite, la liste est hors type de congé parce que c'est ce qui est retourné à laisser les types Il est une liste off, littéralement. Laissez le type activé. Ensuite, je suis allé voir une virgule et puis je veux balayer la liste de la classe de données. Laissez le type toe une liste de notre liste A hors de notre congé tapez l'objet M sur. Souviens-toi aussi. Donc, j'ai créé l'outil sur Dime est allé à utiliser les détails, laisser VM Donc je pense que l'on est bon pour cette situation. Donc, les détails laissent cette VM Ok, Donc c'est comme ça que vous avez défendu son direct la liste des mots, et puis vous ouvrez un crochet oncle, puis vous spécifiez le type de données que la liste devrait avoir, Donc cela peut être après dans cambre de type chaîne. Ou il peut s'agir d'un type d'objet, comme, dans ce cas, laisser le type, qui est plus personnalisé défini pour nous que nous avons créé un mappage à partir d'une liste hors du type feuille de classe de données toe une liste hors de la vue détails du modèle. Laissez le type V M allumé. Ensuite, à la fin de cela, je dois fermer le crochet d'angle initial de over map on. Alors je vais voir quel objet devrait être. Quels sont les objets ? Les données devraient être beaucoup Donc les données proviennent vraiment des types de congé parce que c'est ce est renvoyé de la fonction over, parce que je vais copier cela et le mettre à l'intérieur de ces accolades, puis fermé. Donc non, j'ai un tas de lignes rouges. Je dois passer par Onda. Vadrouille ça. Donc, je suis allé orteil inclure toutes les bibliothèques qu'il peut être vu sur. Puis je l'ai géré. Nous obtenons une terre rouge de plus où il semblait qu'il ne peut pas convertir de la collection I du système No generic I collection à la liste générique du système. Bon, donc j'ai deux options. Je peux soit mettre une liste à la fin de ceci ou parce que je n'avais pas le dysfonctionnement retourne vraiment des collections, même sanglante que pour lister dans la fonction ici. Il retourne vraiment ma collection pour que je puisse soit changer. Je veux dire, je peux toujours utiliser ça pour être juste liste, ou je peux changer ça et honorer ça. Alors listez Andi, ça fera une autre conversion. Donc, oui, ça revient. Je collecte il a renvoyé la liste ici. Puis il est revenu. Il fait que je collecte, et je suis à nouveau le convertir en liste et puis tout est OK ou je peux réellement changer de liste ici orteil collection. Donc, quoi que je sois en hausse, je peux provenir de presque tous les types de données génériques de n'importe quel accord génétique à l'époque. Tant que les oreillons sont définis, alors vous n'avez aucun problème. Donc, je vais juste le laisser ici comme un point à la liste sur qui résout notre problème sur puis savoir que nous avons obtenu les données sur puis nous avons marqué les données. Nous marquons les données et ils les stockaient à l'intérieur des modèles. Si vous survolez le modèle, vous voyez qu'il est vraiment hors liste de type. Détails VM sur C'est ce que nous voulons dépasser nos vues sur les données passées. À notre avis, nous avons seulement besoin orteil ont retourné vue. Et puis dans la brise ouverte, nous mettons dans les données qui devraient être transmises. Donc maintenant ou visualisez une fois qu' il est chargé, il aura accès à toutes les données présentes dans le modèle. Et c'est pourquoi je continue à dire que nos mères de vue beaucoup plus polyvalentes que la classe de données elle-même parce que je peux mettre presque n'importe quelle quantité de données statiques ainsi que l'ennemi plus tard dans mon ancienne classe, Andi, je peux manipuler et maintenir le massage doit être formé avant que la vue ne l'obtient réellement. Donc non, nous devons réellement générer la vue qui affichera les données de ce modèle. Donc, pour générer la vue, nous avons deux options. Nous pouvons aller manuellement et à juste titre prendre soin et ouvrir un nouveau dossier, puis lui donner les types de feuille de nom , puis créer une vue hors cours C'était un grand studio visuel multiple rend facile pour nous. Comme nous l'avons vu avec les échafaudages, c'était beaucoup plus facile. Mais nous avons pensé échafaudage ou sans générer l'ensemble du contrôleur et toutes les vues, nous pouvons les faire individuellement néanmoins, en cliquant avec le bouton droit sur la vision du monde. Et puis nous voyons l'option à la vue sur. Ensuite, à partir de la vue de l'annonce, nous avons défini le nom de sorte que le nom aurait été hérité de n'importe quelle action la vue pour l'action que nous mettons en œuvre, Nous pouvons spécifier un modèle. Dans ce cas, je voudrais une liste. Donc, un index est généralement une liste, donc il va réellement nous donner froid que Juries une table listant tous les enregistrements retournés , ou interroger, nous pouvons routine la classe de modèle ou la classe de modèle aura trop beaucoup de données retournaient. Donc, nos classes de modèle hors détails Laissez le type VM afin que je puisse juste trouver cela dans les détails listeria . Laissez VM allumée. Je peux laisser le contexte db de l'application, puis aller de l'avant et cliquer sur. Et une fois que cette opération d'échafaudage est terminée, nous finissons avec un dossier avec le même nom que notre contrôleur. Les types de laisser les types sur la vue correspondante pour ce que nous venons de générer, qui est index sur. Si nous regardons la mer isation du fichier, nous voyons qu'il semble, eh bien, un peu unique. Mais ce qu'il est vraiment juste un détail en haut avec un lien de création. Donc c'est un modèle, n'est-ce pas ? Ainsi, la liste Tempe nous donne un ange et un bouton de balise pour créer une table avec des colonnes, et ces colonnes sont déterminées par les colonnes disponibles dans la classe de modèle qui a été utilisée pour le modèle. Donc, si je regarde en arrière les détails, laisser les détails, laisser le type V M. C'est tenir sur le contrôle et la personne clic. Ensuite, je vois que nous avions des colonnes sur lesquelles je D nom a créé et, par conséquent, le discours d'index savait qu'il devrait légalement laisser de côté I d sur la liste supérieure. Oui, parce que vous ne listez pas nécessairement toujours la clé primaire lorsque nous affichons des données. Mais il n'a pas à travers le nom sur le être créé sur. Ensuite, il met assez pour chacun. C' est donc une action Reaser qui se passe où elle est pour chaque élément revenant dans le modèle. Donc modèle est un mot clé représentant les données qu'il a correctement obtenu. Donc, j'aurais pu nommer ceci n'importe quoi que je n'avais pas nécessairement besoin de nommer le modèle côté contrôleur. Mais dans la perspective des vues, le modèle de mot-clé avec une majuscule et représente tout d top il coupe. Andi, il sait qu'il a une liste. Si vous regardez en haut, vous voyez, c'est défendre ça. Le modèle est au moins notre que je connaissais, Maribel. Off tapez ce type d'objet, qui est les détails Laisser le type VM. Donc c'est de voir que je sais que j'ai une collection. Et donc pour chaque élément de cette collection, je veux une nouvelle règle avec deux colonnes, une pour le nom sur une pour le D créé ou trois colonnes. Donc, un pour moi, Un pour la création et une colonne dédiée orteil éditer les détails et supprimer les liens. D' accord, donc nous allons juste prendre cela pour un test rapide Exécutez ce pinto passer en mode débogage. J' ai donc cliqué sur Are start on et nous verrons si ce travail arts ou application a été lancé. Et puis je vais aller orteil gérer et cliquer sur les types de laisser. Mais si vous remarquez que dans le coin inférieur gauche est juste sur Astor, parce que nous n'avons vraiment pas mis en place de lien pour cela, Donc je vais juste revenir en arrière et toujours dans le bateau amarré Aller à mon explorateur de solution, trouver mon dossier partagé dans vue sur un Lee Haute. Donc ma page Leo a les liens sur. Donc, nous allons regarder toute la semaine sur la liaison sur le puits, place d'une ancre, parler au contrôle de la redirection de l'orteil et une action particulière dans un contrôleur. Donc nous avons des remorqueurs auxiliaires ici, et nous pouvons juste dire SP Dash, et puis le 1er 1 nous voulons ce contrôleur. Donc, le contrôleur avec lequel nous travaillons est des types de congé, puis je vois SP tiret à nouveau le 1er décembre. L' action sur l'action que je veux est index Donc, en d'autres termes, lorsque cette attaque oncle pour les types de secours est cliquée, l'attente est qu'il va chercher l'action d'index à l'intérieur du contrôleur de types de feuilles sur DSO. Lorsque je rencontre ces changements et enregistre, je retourne à la page Web et actualise, Ensuite, je vais essayer à nouveau. Bon, quand je me suis rafraîchi, j'ai remarqué que le changement n'avait pas été fait. Et c'est parce que parfois vous avez besoin de Vous pouvez avoir besoin de redémarrer un projet ou vous pouvez avoir besoin orteil activer cette chose appelée Rose Erling. Donc, je vais juste aller orteil et activer le lien du navigateur Droit sur. Je vais aussi juste redémarrer mon moteur d bateau juste rafraîchit tout indépendamment et tous les changements que j'ai faits devraient être reflétés. Très bien, donc le projet est rafraîchi et je vais aller de l'avant et grandit encore une fois pour laisser des types sur ce temps, le lien est en place et nous y allons. Donc, non, où sur la page qui aurait les données. Donc, nous regardons la table avec une colonne pour le nom et une colonne pour Did Created sur avis . Tous ont créé ce genre à partir de Kate. C' est littéralement la façon dont on l'a écrit en classe. C' est ainsi qu'il est présenté ici, ce qui n'est pas nécessairement souhaitable. Mais c'est ce que c'est, et quelqu'un pour vous montrer comment nous pouvons modifier le modèle de vue orteil gérer ce genre d'expérience . Je suis et je n'ai pas à le faire manuellement dans le fichier de vue. Mais il n'y a pas de données car nous n'avons pas encore ajouté d'enregistrements. Si je pouvais créer de nouveaux, alors cela va orteil donné erreur, car alors il a cherché la vue de créer à l'avis en disant qu'il ne pouvait rien trouver à l'intérieur n'importe où appelé Crée que CS HTML. C' est parce que vous n'avez pas encore généré ces téléspectateurs, donc au moins nous savons que cela fonctionne si je fais un point d'arrêt. Donc, je vais revenir dans mon projet pour revenir dans le contrôleur en allant définir un point de rupture à la première ligne de nos actions d'index, Comprendre, pour rafraîchir que quelqu'un payé pour cliquer sur le lien à nouveau, puis il va heurte les points de freinage. C' est juste qu'il s'allume. On vous voit ici où ? Ok, il frappe le point de frein et ensuite il entre dans les coûts de la fonction. Je vais utiliser F 11 orteil, faire un pas à pas dans ce qui se passe. Et donc il va en remorquage. Notre classe de référentiel, elle appelle trouver tout sur. Ensuite, il va utiliser cet accord que nous avons écrit orteil interrogate pour voir s'il y a des types de feuilles . Et si je vois qu'un comté zéro, il n'y avait pas de types de congés à apporter. Donc, je vais continuer avec 11 et puis il sort de la classe d'affiche de nervures remonte à la manette. Aucun type feuilleté dans le contrôleur a toutes les données dont il a besoin sont connues dans ce cas. Et puis sur ma partie supérieure va en action alors si je fais juste si 11 nous voyons qu'il fait la cartographie et puis il revient de vous. Et donc je fais juste f 5 pour continuer et ignorer toutes les autres briques sur. Ensuite, il recharge la page afin que nous puissions voir que tout fonctionne comme comment nous avons câblé le travail orteil . Maintenant, je vais vous montrer comment vous pouvez faire des ajustements sur le modèle de vue qui affecteront attente. Ce jeu se fait dans la vue. Donc, je suis allé quitter le mode de débogage parce que vous pouvez changer certains appelés en mode de débogage. Je ne peux pas changer de tribunal. Ainsi, le cordon du modèle de vue est parmi ceux que vous pouvez trouver difficile à changer en mode débogage. Donc, je vais aller plus loin pour laisser le type VM allumé. Ensuite, je vais ajouter un attribut sur la propriété créative de l'acte sur. Alors celui-ci va être affiché sur alors ce plaidoyer n'est pas avoir une accolade et puis je peux voir le nom est égal orteil et puis je vais dire acte créé, donc remarqué que je vais à je vais mettre un espace ici parce qu'il venait ou Camel K est juste de la même manière. Donc j'ai dit, ce nom de jeu égal a fait l'espace créé. Donc, il semble plus convivial pour le lecteur, quelqu'un rafraîchir les orteils. Je vais faire ces modifications en allant en mode débogage à nouveau et voir quelle différence cela a fait dans l'affichage. Bon, donc notre application est ouverte. Nous frangères de laisser des types et puis vous remarqueriez que l'impression est différente. L' étiquette est différente, donc c'est ce que nous pouvons contrôler les étiquettes ou ressentir dans nos vues sans avoir à le faire manuellement, car vous pouvez imaginer si nous avons 10 vues qui utilisent ce même modèle de vue pour ces 10 vues que vous devez passer par et le modifier manuellement. Nous utilisons donc le modèle de vue. On le change juste une fois. On dit juste que quand on vous montre, il se montre comme ça. Très bien, donc même le nom de nom est un peu générique. Je peux probablement mettre un nom d'affichage hors type de feuille, identifier ou laisser le nom de type. Quoi que ce soit, je veux les mettre. C' est ce qui sera réellement rendu dans la vue à l'utilisateur. Très bien, c'est ainsi que les modèles de vue fonctionnent avec les vues et facilitent la maintenance. Bon, donc juste un bref résumé de ce qu'on a fait. Nous avons mis en place notre vue d'index où nous avons utilisé ou l'injection de dépendance orteil faire un carré B deux b appelé, et nous avons utilisé le bras supérieur pour balayer les données provenant de la base de données à la structure du modèle de vue . Et puis nous avons généré la vue basée sur le modèle de vue passé dans les données, et nous avons vérifié qu'il a frappé la base de données, obtenu les données sont connues dans ce cas sur fait l'opération comme prévu, Dans la vidéo suivante, nous allons travailler à travers nos actions de création sur. Ensuite, nous allons commencer à créer des données de sorte que la prochaine fois que nous regardons la liste hors types de congé dans la base de données, alors il y aura des données Toby affichées. 17. Créer une photo de l'ordre de l'image: Hé, les gars dans cette vidéo vont travailler à la mise en place ou créer une action pour nos types de congés , manette et modèle. Dans la vidéo précédente, nous aurions déjà mis en place ou index, où nous avons tiré pour tous les enregistrements dans la base de données sur Ben les a retournés, généré la vue qui les montrerait hors cours. n'y a rien dans la base de données, c'est pourquoi nous savons quand faire la création afin que nous puissions commencer à créer des enregistrements et voir que nous interrogeons la base de données. Donc, je vais descendre à Meyer, créer une option sur, puis ce que je vais faire est de générer une vue basée sur le modèle de valeur de congé de création. Donc, je vais juste revenir à mes modèles et aller à mon modèle de vue de type feuille et le Ici, nous avons la création de type de congé VM sur. Tout ce dont il a vraiment besoin est le nom parce que nous avons le nom, nous allons être générés une fois qu'il sera inséré dans la base de données sur. En outre, nous serons responsables de veiller à ce que nous avons fourni créé. Mais nous voulons que l'utilisateur reçoive une batterie où tout ce qu'il a à fournir est un nom pour le type de feuille qu'il crée. Donc, je vais revenir à ma manette sur je vais générer Faites-vous quelqu'un dirigé le mot vue, cliquez sur Ajouter une vue. Et puis cela implique déjà qu'il crée que le nom de la vue doit être créé car il connaît l'action sur aller choisir un modèle. Créer andan. La classe de modèle que je vais utiliser est la machine virtuelle de type create leave. Donc, comme je l'ai déjà dit, vous pouvez soit créer un modèle de grande vue, puis vous passez du temps à nettoyer la ferme ou quelle que soit la vue que vous générez. Ou il peut passer du temps à créer plusieurs modèles de vue spécifiques à chaque vue que vous avez l' intention d'avoir. J' ai donc le modèle de vue de type leave sur. Je vais laisser tout le reste tel quel et cliquez sur Ajouter. Ensuite, cet échafaudage génère que peu tout droit, donc nous et époque coïncidente où il semble qu'il y avait le peu ne pouvait pas être généré parce qu'il nécessite une clé primaire sur elle doit être définie. Donc, par cette logique, nous ne pouvons pas utiliser ce modèle de vue particulier ou cette idée derrière le modèle de vue pour créer cette vue , alors soyez prudent lorsque vous choisissez les sensations lorsque vous les crachez, vous devez inclure la clé. Donc, sur la base de ça, je vais juste aller de l'avant avec les détails. Laissez le type VM parce que celui-ci avait un attribut clé et je vais aller de l'avant et cliquez à nouveau sur Let It Scaffold la vue. Alors j'espère que vous apprendrez cette leçon que vous savez que vous devez faire attention aux sensations. D' une manière générale, échafaudages ont hâte d'avoir une clé primaire. Donc, basé sur cette logique, mon approche initiale d'avoir le modèle de vue détaillée différent du modèle de vue de type créer est erronée. Donc, ce que je vais faire est juste de les condenser quelqu'un pour supprimer l'idée des types de création . Je suis juste en train de modifier mes modèles de vue ici sur. Je vais ajouter l'attribut pour le nom ci-dessus requis ici sur. Ensuite, je vais enlever le nom spécial sur les détails type de congé de ligue, donc hors cours, si je fais tout ça, alors je vais devoir passer par l'orteil en cours après réfracteur la cour. Donc, partout où j'ai référencé des détails, laissez le type VM. J' ai besoin de savoir le renommer toe leave type VM et visual studio va le rendre facile pour moi en choisissant de simplement renommer Ces références appartiennent à mon projet. Donc, si je retourne à mon contrôleur, alors vous voyez que je connais le type de congé VM et plus de détails Laisser le type VM Aussi dans mon dossier de pings ma , les modifications ont été faites donc non, Je n'ai plus un crée. Je peux enlever cette ligne et j'ai juste une ligne pour mon type de congé VM Ok, donc , en train de courir, nous allons retourner à votre contrôleur pour de l'huile. Désolé. Donc nous venons de créer notre création sur vous. Je vais juste passer à ma vue de création sur Regardez-le à nouveau. Je vois ici, c'est lyft VM, même si nous l'avons créé avec des détails Une fois de plus, studio visuel a réfracté la cour pour nous. Je vais enlever cette ligne. Je n'ai pas besoin de cela chacun pour mentir spécifiant sont déclarant quel est le type de données qu' il est construit sur le dessus. Mais c'est la création sur vous remarquez que c'est vraiment juste nous donner une ferme. C' est de voir qu'on a Ah, eh bien, c'est une forme bootstrap. Donc photobox je ne suis pas sûr si c'est un sondeur, mais nous le verrons dans quelques-uns. Donc, quand on se forme, on a, ah, un résumé de validation. Donc, il y a des erreurs avec le modèle. Ensuite, nous pouvons les imprimer en haut ici que nous avons sur l'entrée pour le nom. Donc nous avons le SP 4, um, tag helper, ce qui nous permet essentiellement de voir. Ok, tu veux une entrée ? Quel point de données du modèle utilisé pour générer ces modèles ? Voulez-vous cette entrée pour ? Donc, je veux une entrée pour le nom. Je veux aussi sur l'entrée pour qu'elle soit créée. Donc on va devoir faire quelque chose. Et surtout avec le créatif, parce que ce sera un DEET sur. Je ne veux pas que les utilisateurs mettent dans la main libre DEET. Donc, nous allons mettre un sélecteur d'acte manuellement pour contrôler la valeur qui va dans pour être créatif. Bon, donc si nous revenons à notre plaquette de formulaire, remarquez que nous avons un autre type d'aide, c'est son action SP égal à créer. Donc, c'est b action égale créer va orteil. Une fois que nous cliquons sommet regarder en remorquage ou contrôleur et ventilateur créer. Donc, nous avons créé, nous avons une autre création avec l'attribut http post, qui est en fait le va être celui qui reçoit et traite les données qui proviennent de notre action de soumission dans la création. D' accord, donc la première chose qu'on veut faire est de regarder notre travail. Donc, je vais juste passer en mode débogage. Je vais regarder notre créatif, d'accord ? Donc, pour accéder à notre page de création, nous allons aller à la gestion des types de congés et ensuite cela nous conduirait au discours d'index. Et puis à partir de notre page d'index, nous pouvons cliquer sur créer un nouveau lien, qui est déjà câblé pour conduire à la page de création. Et donc nous avons ou créer la page. Donc, nous avons notre champ pour le nom et nous avons le champ pour l'acte créé. Donc, comme je disais plus tôt que ce serait une heure de date si contextuellement le frère ou sait qu'il devrait mettre une forme de sélecteur de date à l'intérieur hors du contrôle. Mais le côté inférieur en utilisant le sélecteur de date de l'oreille boroughs est que chaque pros il a sa propre version d'un sélecteur de date. Vous voulez donc de la cohérence entre les expériences utilisateur afin que vous ne vouliez pas simplement le laisser comme ça . Et une personne utilise le chrome. Un autre utilise le bord, et ils voient deux choses différentes. Donc, nous allons insérer ne sont que des sélecteurs de sorte que tout le monde voit la même chose, qui , à long terme, si vous êtes si vous devez soutenir cette application, fonctionnera mieux pour vous sur se produit lorsque nous cliquons sur Créer. Donc, je vais juste aller aux pieds, aller en studio visuel rapidement et définir un point de rupture à la deuxième action Créer sur Den je vais orteils. Tout d'abord, cliquez sur créer, puis vous remarquez que ce sont des champs obligatoires. Et c'est parce que nous avons spécifié dans le modèle de vue qu'ils sont nécessaires quelqu'un pour mettre vacances Onda et je vais essayer de mettre quelques bits en utilisant le sélecteur de date ou ayant le changement . Il va juste encore, et puis je vais cliquer sur créer à nouveau. Ok, donc en fait besoin de spécifier l'heure aussi dans ce contrôleur de temps de date afin que vous puissiez voir le danger est là si nous laissons juste parce que nous n'avons vraiment pas besoin de temps ou nous ne voulons vraiment pas que les utilisateurs mettent cela dans tout de toute façon, donc je vais aller de l'avant et cliquez sur Créer des hits. Le point de rupture que j'ai configuré sur la deuxième fonction de création. Donc, une fois que nous cliquons sur créer à partir du formulaire, il va frapper la fonction post, puis nous ne devons pas faire nos vérifications de poste et assurer que toutes les données sont saines et masser c'est sur. Ensuite, envoyez-le à la base de données. Et puis si tout est réussi, alors nous lisons Arat orteil sur la liste. Sinon, alors nous attrapons des erreurs et les avons remis en conséquence. Donc, c'est pourquoi nous avons une création en haut sur celui-ci est que je reçois dans la voie de la création avec le poste quelqu'un pour quitter le mode de débogage sur. Ensuite, on va écrire un tribunal. Donc la première modification que je vais rencontrer est avec notre date de création. Donc j'ai dit que ça mettrait un sélecteur de date. Mais la réalité est que je ne veux pas qu'un utilisateur voit la création qui est à nos fins d' audit, quelqu'un pour supprimer complètement ce contrôle. Donc, nous avons juste le champ pour le nom. D' accord. Le jour où je vais rencontrer ce bouton, donc nous utilisons des boutons bootstrap. Donc d'abord, où il est dans le contrôle de formulaire de contrôle de classe, qui est, Ah, classe bootstrap pour vous savez que les bords arrondis que j'ai vus dans la zone de texte. Si nous regardons la plage qui affiche la flèche, nous avons également un booster classes comme danger de tiret de texte. Cela nous donne les prises rouges que nous avons vues venir. Donc, ne pas ici pour le bouton que nous avons BT et Bt et Dash primaire qui nous donne un bouton bleu sur. Je veux que ce bouton bleu remplisse tout l'espace. Je vais dire battu bloc de tableau de bord, et puis cela rencontrera l'étirement du bouton d'une extrémité de l'écran à l'extrémité extrême sur l'autre écran sur. C' est donc une forme très simple. Andi, c'est tout pour le formulaire, au moins pour l'instant. Nous pouvons donc recevoir ces changements. Non, nous devons contrôler ce qui se passe après un sous-ensemble a eu lieu à l'arrière du contrôleur, je sais, va modifier sur les actions de post http. Donc, tout d'abord, je sais quel type de données je veux sur les données que je veux. Venant de mon formulaire est hors type congé de type VM. Donc, je vais juste m'assurer que le paramètre qui est dans mon option Creed causé est type de congé de type, et je vais appeler ce modèle. Je peux appeler la date à laquelle je peux l'appeler n'importe quoi est de libérer un paramètre. Donc non, tout ce que je fais concernant les données qui viennent d'être soumises sera stocké à l'intérieur hors modèle n'est pas activé. Ensuite, je suis allé à la transaction sur capture sur erreur. Donc c'est, euh, du sang de cordon qui dit que je vais essayer quelque chose, et si ça marche, c'est bien. Si ça ne marche pas, alors c'est ce que je veux faire. C' est ce qu'est la capture d'essai. Donc, je vais voir Tout d'abord, l'état du modèle est ce qu'il est donc l'état du modèle serait comme un état qui littéralement le modèle est dans son sens. Les données qui arrivent une fois que j'ai soumis étaient toutes les données requises réellement fournies. Et si ce n'était pas le cas, alors qu'est-ce que je veux faire ? Quelqu' un à dire, Si alors j'ai cette chose cette propriété disponible pour moi, appelez l'état du modèle sur, alors il a une propriété ou une distribution était comme une classe statique sur elle a une propriété appelée est valide. Donc ça revient un lingot. Donc, c'est essentiellement de voir si c'est valide, alors que voulez-vous faire ? Donc, je vais en quelque sorte retourner ça, et je vais dire si ce n'est pas valide. Bon, donc je vérifie. Si ce n'est pas évalué, alors je veux juste retourner la vue parce que j'aime vérifier le mauvais scénario d'abord et prendre des mesures avant de traiter les bonnes choses. Droit. Donc, je vais dire si ce n'est pas valide et que le signe d'exclamation est ce qui le rend pas bien , alors. Je veux vraiment juste revenir vue. Andi, je vais aussi inclure le modèle dans ça. Donc, quelles que soient les données qui ont été apportées, si elles n'ont pas été évaluées je vais retourner la vue, et je retourne les mêmes données qui viennent de venir dans la vue que je retourne le feu sur. Alors si ça n'est pas aigu, veut dire que tout était bon. Ensuite, regardez l'étape suivante. Ensuite, je vais dire que vier type de congé est égal à, um version de ces données de Lyft I V m toe la classe de données de type feuille. Je vais juste dire un mappeur de soulignement et ensuite appeler la force sur cette carte. Alors je vois que je veux partir. Tapez le type de congé de classe de données. C' est ce que je veux. Mais ce que je veux être lui à la hauteur de ça, c'est le modèle. Très bien, donc le modèle représente sur l'objet hors quitter vmc. Je vois juste ma partie supérieure. S' il vous plaît balader ce modèle cet objet hors laisser via dans ce type de données Et puis une fois que vous avez fait que le mappage du magasin à l'intérieur du type de congé sur Puis une fois qu'il est stocké à l'intérieur du temps de congé ma prochaine étape est d'appeler le rapport. Donc, je vais appeler mes points de pré-sondage sur son orteil aller Avoir une fonction appelée créer quelqu'un à passer dans mon objet nouvellement balayé hors type de laisser dans le remorquage, créer et puis rappelez-vous que créer est vraiment retourner un lingot, qui signifie que si cela n'a pas été couronné de succès, je peux prendre une autre action. Donc je vais juste avoir une autre fonction. Un autre très glancy est le succès va être égal à ce que cette fonction appelée retourne alors je vais voir si ce n'est pas le succès signifie si son succès revient. Si c'est une fausse valeur, alors l'action que je veux prendre va de soi. Ajouter en cas d'erreur à l'état du modèle. Donc modestie, ou vraiment représente ? Eh bien, il a une propriété qui est une collection d'erreurs qui peuvent être affichées. C' est pourquoi nous avons la section du résumé des erreurs ici, non ? Donc, je vais ajouter Donc avec l'état de la mère quelqu'un pour voir un modèle états erreurs pensées ou ajouter modeleur ou autre sur. Alors je vais définir Eh bien, laisserais la clé vide, mais je vais définir une Mme C'est quelque chose qui a mal tourné. Ça veut dire que quelque chose s'est mal passé dans l'opération. y a pas eu de changement de rose. Même si nous avons eu le modèle, nous avons obtenu les données, nous les transmettons, puis nous les transmettons dans la fonction create. Et il a fait ce qu'il a fait à la base de données. Mais aucun changement n'a été fait, et nous voyons que quelque chose s'est mal passé. Et puis si quelque chose s'est mal passé, alors nous voulons retourner la vue une fois de plus avec les données. Bon, donc maintenant nous retournons la vue avec les données, mais cette fois avec une ère supplémentaire pour l'affichage sur. Ensuite, si cela n'est pas exécuté, cette musique va jusqu'au retour où il redirige orteil l'action appelée index, qui est notre moins Non, j'ai manqué une étape où je n'ai pas fourni de valeur pour la date a créé. Donc ce que je vais faire, c'est que je vais voir après la cartographie. Ensuite, je vais orteil dire laisser point de type qu'il est créé est égal orteil sur. Ensuite, il suffit d'appeler le temps Dot sait que chaque fois que l'opération a été exécutée, chaque fois qu'il arrive à ce point dans la cour, il devrait attribuer le temps et le temps hors du serveur. Cette application est hébergée sur en tant que valeurs qu'ils ont créées, puis procéder à la soumission à la base de données. C' est donc le cas lorsque j'ai dit que nous n'exigeons pas que l'utilisateur le fasse, nous allons le fournir. Nous pouvons faire tout ce que nous voulons faire avec le modèle et toutes les données qui sont transmises entre le formulaire à la base de données. Nous contrôlons tout cela à l'intérieur de l'action avant de l'envoyer à la base de données. Non. Une autre chose que nous devons faire est de modifier le modèle de vue afin que vous auriez remarqué qu'il était nécessaire, même si j'ai la configuration requise sur le nom, et je n'ai pas besoin de configuration. Au fil du temps où nous nous sentions sur le formulaire, cela nécessitait en fait la journée. J' ai donc besoin de répondre à cette valeur de jour. Silas notable. Il est un point d'interrogation pour une journée, ce qui signifie que sur le modèle de vue Lovely ne va pas me presser orteil fournir une valeur pour elle sur. Je peux fournir une valeur pour cela à tout moment que je vais donc juste aller de l'avant et appuyer sur F cinq, qui est un cookie pointu pour démarrer le mode de débogage. Ensuite, nous verrons ce que le travail en a besoin ou l'application est que je vais commencer par mettre un point de rupture à notre oh, il est déjà là, donc nous allons laisser cela là et ensuite nous allons continuer et passer par notre droite. C' est donc nous allons passer par l'application afin que nous cliquons, gérer, laisser les types, puis nous cliquons, créer de nouveaux et puis pour notre formulaire, et vous pouvez voir que même le mettre Bt et Block. C' était un plus petit mais c'est un plus grand mais non. Mais il doit y avoir quelque chose d'autre qui le limite à l'espace pour que nous puissions modifier l'esthétique plus tard. Mais nous avons juste besoin de fournir Ah nom quelque part pour dire vacances, puis cliquez sur créer sur puis le mode de débogage sont R D Bug. Notre point de rupture. Désolé est frappé donc je peux passer la souris sur la variable en mode débogage et vous voir exactement ce qu'il y a dans une variable. Donc, si je survole un modèle, alors je vois que j'ai les trois attributs Avoir I D, qui est zéro il a créé, ce qui n'est pas le nom Onda, qui a la valeur vacances que nous venons de mettre dans la ferme. Quelqu' un ne peut pas vraiment passer à travers et voir ce qui se passe ? Donc, je vais juste utiliser F 11 et puis ça va. Donc notre premier contrôle où il est est l'état du modèle évalué sur. C' est vrai, donc cela signifie que cela ne sera pas exécuté. Donc, si 11 va passer ça, si la déclaration, alors ça va aller dans mon accord supérieur. Donc, il va orteil cartographier les données à l'orteil les données de temps de feuille. Classez le type de congé à la recherche. Il est hors type de données laisser, tapez sur, défier, développer. Ensuite, je vais voir qu'ils ont créé a une valeur générique parce que le moins sur la conception, il doit avoir une valeur. Le i. D zéro et le nom sont vacances. Donc, nous voyons que les données qui sont venues en tant que machine virtuelle de type feuille n'est pas mappé avec succès dans Juste laisser taper la classe de données. Ensuite, nous avons fourni l'heure réelle de la date. Non. Donc aucun n'a créé a à cette date sur. Si je regarde à nouveau l'objet, alors je vois que toutes les propriétés sauf je d ont maintenant des valeurs. Et bien sûr, je serais plus facile parce que je me mets une fois qu'il est créé. Ensuite, nous passons au terrain de la cour où il a été soumis à la base de données. Donc, nous passons au dépôt et il l'ajoute et ensuite nous passons à notre mer de changements. D' accord, alors, si on regarde les changements, on voit que c'est un. Donc, il nous montre qu'au moins un changement a été fait Donc cela va retourner vrai sur dso sont positivement les retours de classe. Vrai aussi Et donc notre vérification pour voir, sinon le succès Le succès est vrai, donc ce n'est pas loin. Alors, il saute sur cette déclaration sur va directement orteil Ari direct. Donc je vais juste appuyer sur F 5 à ce stade, puis le laisser lire Arat. On y va. Non, nous voyons que nous lisons à partir de la base de données, et nous venons de soumettre des données à la base de données et c'est excellent. Non, ce que nous devons faire est de modifier ou de configurer ou de modifier les détails et supprimer les fonctions, et puis nous sommes sur un bon rouleau. Donc je vais juste quitter le Bogan serait ici. Je vais enlever ce point même, savoir que nous sommes sûrs que cela fonctionne le mode de débogage kill, et ensuite nous passons en revue ce que nous avons fait. Donc, nous avons mis en place notre création vous en générant ou en visualisant en fonction du modèle de vue sur lequel nous aurions mis en place. Ensuite, quand nous soumettons, nous avons mis en place l'action http post pour l'action de création correspondante sur nous l'avons mis en place pour recevoir des données sous la forme de feuille de type V M. Et puis nous vérifions pour nous assurer que tout était évalué donc comme je l'ai dit, les validations peuvent être effectuées à partir du modèle de vue. C' est là que les annotations de date et les attributs entrent en jeu. Ils ont vérifié ces annotations de données et se rendent compte que tout va bien. Ensuite, il est retourné sur la carte des orteils à notre modèle de données d'origine. Transférer le détail également sur Ben soumet à la base de données et ensuite, fois la soumission réussie, il retourné sont redirigés plutôt vers le discours d'index, nous montrant toutes les données. C' est ce qu'on a fait pour essayer la prise. Nous C'est juste un bon moyen de gérer les erreurs. Donc, pour le catch, je vais faire quelque chose comme ce que nous avons fait pour le succès où je vais juste ajouter une erreur d'état de modèle pour voir si quelque chose a mal tourné et nous allons retourner la vue avec les données. Très bien, donc cela signifie que si une exception a été levée, peut-être que la connexion à la base de données a été interceptée ou qu'il y a eu une occurrence anormale pendant que l' opération se produisait. C' est là que la prise entre vraiment en jeu. Ensuite, la façon dont vous gérez Eros détermine que les utilisateurs entiers perçoivent votre application. Donc, si vous avez la gracieuse où vous venez de dire, eh bien, eh bien, quelque chose s'est mal passé. Mais voici un formulaire à nouveau alors peut-être l'utilisateur, si vous mieux que de voir juste une grosse erreur méchante cracher des choses qu'ils ne comprennent pas vraiment. D' accord, donc 18. Modification de type de l'écriture l'ordre l'ensemble l'ordre l'ensemble l'ordre de l'ordre: Hé, les gars, dans ce Écoutez, nous allons continuer nos développements en configurant ou éditant la vue maintenant similaire orteil sur, créer des actions que nous avons obtenu et nous nous sommes opposés pour créer. Donc, nous avons aussi un get sur ah post pour cela. Andi. C' est le même rationnel Nous obtenons les données en retour de vous avec le formulaire qui serait notre formulaire d' édition. Et puis une fois que vous cliquez sur le bouton qui soumet le formulaire ou quelque chose est les changements qui ont probablement été faits dans le formulaire, puis nous allons à la poste pour faire tout ce qu'il faut que nous devons faire pour nous assurer que nous obtenons le panier résultats. Non, s'il vous plaît sachez que pour l'action get pour l'action edit, nous avons un paramètre que nous recevons dans le formulaire off i d. Donc, il a besoin d'en obtenir, je dévaluerai qu'il utilisera toe, identifier l'enregistrement qui doit être édité. Donc, si nous revenons à notre fichier d'index ou vue d'index, vous remarquez que pour les liens d'action qui ont été générés sur, nous pouvons nous concentrer sur l'édition que nous avions le bouton d'édition sur elle passé dans quelque chose dans ce écrit I d s B helper dans ce numéro, Un petit assistant tire nos attributs et il est s routes B I d. Et il est passé dans l'élément que je d. Donc rappelez-vous, élément ici représente les éléments qui viennent dans la collection des enregistrements en cours de rendu dans cette vue. Nous éliminons donc tous les types de congé activés pour chaque règle générée ou pour chaque élément qui se trouve dans cette collection. Les types hors feuille généraient une règle sur. Nous mettons son nom et la date de création, ainsi que trois boutons, dont chacun appellera une détection d'action différente dans le I. D ou la valeur de clé primaire pour cette règle. Donc, ce que nous devons faire est de nous assurer que nous utilisons que je d toe Fitch, l'enregistrement particulier qui doit être édité une fois que vous cliquez sur Modifier sur un rouleau. Maintenant, la première chose que je voudrais faire avant d'aller de l'avant avec ceci est notre plutôt, la première chose que je veux implémenter à l'intérieur de cette action est un contrôle pour s'assurer que tout ce que je dévalue est transmis, qu'il y a effectivement un enregistrement dans la base de données pour cela je dévalue. Et donc ce que je veux faire est de modifier le référentiel pour les types de feuilles. Je vais retourner aux pieds mon dépôt de type feuille sur. Je vais implémenter une nouvelle fonction. En fait, je vais le mettre dans le dépôt basé car il peut être utile à travers tous les dépôts, héritant d'un dépôt abeilles. Donc je vais inclure un autre fils de téléphone sur celui-ci va être un lingot sur ce que je vais dire est existe. Donc, ce conseil et va juste dire oui ou non, est-ce que l'enregistrement avec cette idée existe sur ce est prendre en ordre sur puis hors cours. Si je le mets dans les bières du dépôt et que je sauve, cela signifie que tout ce qui hérite du Repository Bs a besoin de l'implémenter. Et donc je dois revenir à mes classes de référentiel et je vais commencer par le dépôt de type leave et vous voyez qu'il y a une erreur là-dessus, disant que je dois implémenter le référentiel pour obtenir ma fonction is existe et je le fais juste pour le deux autres. Très bien, il existe dans tous les postures. Laisser l'historique ainsi que laisser un emplacement sont donc une fois de plus, une fois que vous mettez quelque chose dans l'interface, vous devez vous assurer que vous avez implémenté dans la classe héritante. Donc maintenant ma prochaine action serait de configurer le dysfonctionnement dans le contexte hors des types de congé . Donc, je vais prendre cela sur je vais sauver notre ou 12 sont existent, va être égal orteil DB. C' est pourquoi l'objet db est activé. Je vais voir les types de congé, et la fonction que je vais utiliser cette fois est que tout point tout va retourner un oui ou non, mais alors il retourne oui ou non en fonction de certaines conditions. Donc, si je dis juste que tout, juste comme ça va fondamentalement juste revenir s'il y a un enregistrement à l'intérieur de cette table. Donc, si vous voulez vérifier si une table est vide, c'est un bon moyen rapide. C' est vide ou pas vide. Donc, s'il y a des enregistrements et qu'il retourne true, il y a des enregistrements. S' ils sont connus qu'il retourne suit, il n'y a pas d'enregistrements, mais plus précisément, je veux savoir s'il y en a avec cette particule. Je dois utiliser ce que nous appelons une expression lambda sur dso à l'intérieur de ces accolades , je vais orteil invoqué par Lambda Token. Je l'appelle une variable lambda parlant alarmée quoi que ce soit que vous voulez utiliser. Mais cela peut être tout ce qui peut être w peut être sortie peut choisir vous Q est le plus fréquemment utilisé. Une fois que vous avez sécurisé dans la plupart des exemples pour les expressions lambda que vous pouvez ne jamais voir sur, alors j'ai égal sur le degré pour ensuite signer. Alors je vais voir sont égaux et flèche. Donc c'est comme une flèche. Je suis confus, migré et en moins de dire parfois. Alors pardonnez-moi, mais nous avons à vous et puis une flèche sur. Ensuite, je veux voir un mignon qui donc Q incarne n'importe quel objet qui est à l'intérieur de cette collection et donc je peux avoir accès à toutes les propriétés que n'importe quel objet pourrait avoir, y compris le I D. Donc, je dis juste, est il n'y a aucun objet dans la collection hors types de congé qui a un I D. C'est orteil égal l'idée étant transmise à travers le périmètre ici, donc je dis juste que je d sur. Puis une fois que j'obtiens un résultat pour cela, comprendre, pour revenir existe. Donc, que ce soit vrai ou faux, il va juste le retourner sur. Tout ce qui appelle cette fonction obtiendra une valeur de retour sur true ou tombe. Donc maintenant que vous avez écrit les tribunaux ici hors cours, vous pouvez juste le prendre et répliquer dans les autres fichiers du dépôt sur. Je vais le faire rapidement. Étaient cette copie en paix, puis assurez-vous de changer la référence de table par rapport à la plus rapide C'est l'histoire. Certains nous pouvons laisser des histoires. S' il y en a avec cela, je dois faire la même chose pour les allocations de congés sur, alors c'est fait. Bon, maintenant que nous avons mis cette fonction dans notre dépôt, nous allons retourner à notre contrôleur, et ensuite nous allons rencontrer une modification de notre autre modification au fur et à mesure que vous construisez . Il va donc avoir besoin de savoir s'il y a un enregistrement avec idée avant d'essayer les façons dont il est temps de faire n'importe quelle opération. Donc, c'est vérifier s'il y a un dossier avec ce que je d. Alors rappelez-vous que j'ai toujours dit le pire cas ou le mauvais cas en premier. Donc je vais dire si ce n'est pas le cas, si cela évalue les chutes et ce que nous voulons faire est de retour et alors nous avons une bonne fonction ici que nous pouvons revenir. Ce n'est pas le téléphone. Donc, nous savions utiliser des sites Web et obtenir cette époque quatre ou quatre lorsque vous cliquez sur un lien sur pour obtenir une ère pas appelé. Et c'est ce que cela va générer pour nous. Et nous donnons en retour, pas appelé ou un 440 Donc, l'utilisateur , Bien sûr, vous pouvez personnaliser cette expérience un peu plus, mais pour cette situation, nous sommes juste garder simple. Donc, s'il n'y a pas de dossier avec cela, je d, alors nous revenons ne sont pas appelés. Sinon, nous voulons orteil obtenir le type de feuille. Donc, je vais appeler un type de congé est égal à re tirer point sur. Ensuite, je vais trouver orteil par I d. Donc vous voyez, nous avons mis en place le cadre déjà sur. Nous trouvons l'enregistrement avec le I d. qui est passé dans le paramètre ici. Maintenant, notre vue doit être configurée avec notre modèle de type de congé VM ou View. Donc, comme nous l'avons fait pour créer et toute autre vue que nous avons configurée, nous devons faire une carte quelque part pour sauvegarder. Notre modèle est égal à sur la partition. Mapper points vadrouille sur. Ensuite, nous nous étouffons pour laisser le type VM. C' est le type de données étaient mappage toe sur l'objet qui était mappage à ce type de données est le type de laisser activé. Ensuite, nous pouvons fermer que sur le modèle DSO ne va pas incarner les données qui ont été copiées à partir de , ou classe de base de données ou un orteil de classe de données. Notre classe de modèle de vue. C' est savoir le modèle sur. Ensuite, nous retournons la vue avec les données dans le modèle. Alors sachez que j'ai fait ça. J' ai validé que nous n'avons pas eu un mannequin sur lequel je suis. Nous essayons de ne pas perdre de temps ou de la force de recherche de Fetch et moi D. Puis, après très bien qu'on ait eu le dossier qu'on lui a demandé, on balayée sur le modèle. Je sais que nous retournons la vue avec des modèles, donc non, nous avons besoin des vues réelles que je vais faire un clic droit pour ajouter la vue, puis je vais sélectionner le modèle pour cela, donc nous voyons que nous avons un modèle pour cela. Il sur la classe de modèle qui va être utilisé est le type de congé V. M. Donc je trouve cela dans la liste. A cette époque, je vais mettre des opiacés de Leo. Donc c'est généralement de l'opiacé. Rappelez-vous que nous avions passé un certain temps à mettre en place un Leo PH plus tôt. Andi. Il sera fondamentalement toujours orteil par défaut un afin que vous puissiez aller et spécifier en allant toe en cliquant sur ce bouton ellipse sur, puis aller dans les vues sur Andi partagé. Vous pouvez trouver le petit donc nous n'avons qu'un, mais vous pouvez avoir plusieurs Eos. Je vous montre juste que si vous avez plusieurs mises en page, vous avez peut-être différents modèles qui fonctionnent avec. Ensuite, vous pouvez sélectionner la mise en page que vous voulez que cette vue particulière ait pour qu'il n'y ait pas de mal à la sélectionner. C' est leur par défaut de toute façon, parce que le seul que nous avons, et il est également configuré dans le fichier de démarrage View. Mais ensuite, nous allons de l'avant et cliquez. Ajouter, puis c'est des éraflures sur la vue. Ok, donc maintenant nous avons notre point de vue et je vais juste nettoyer, enlever ceci chacun pour remorquer. Alors on peut juste y jeter un coup d'oeil. Et nous nous rendons compte que cela ressemble à plus créer vue. Nous obtenons un formulaire et nous obtenons des entrées pour notre texte, qui sera le nom et l'entrée pour la date créée, ce que nous ne voulons pas. Donc, je vais juste supprimer cela parce qu'ils ont créés ne devraient pas être modifiés. C' est ça, Onda ? Une autre chose que je veux souligner cependant, est la présence hors de cela ? Donnez ça Désolé cette entrée. Désolé, cela a un type de caché sur. Nous remarquons que c'est S p pour I. D. Donc, la chose est, nous devons suivre l'i d hors de l'enregistrement parce que la seule chose que le contrôleur sait est ce que la vue lui envoie. Donc, si nous devions supprimer cette ligne avec les entrées, l'entrée cachée pour I D. Parce que je n'ai pas besoin d'afficher la clé primaire à l'utilisateur quand ils modifient l' enregistreur. Mais alors nous avons il a caché. Mais si nous le supprimons complètement du formulaire lorsque nous cliquons, soumettons ou sauvegardons dans ce cas le contrôleur quand il frappe la vente aux enchères pour le poste TTP, il n'aura pas que ce modèle n'aura pas cette idée. D' accord, donc vous voyez qu'il est prêt pour avoir un I d ici, mais c'est par défaut. Mais la façon dont nous l'avons éraflé une fois qu'il est là comme un champ caché, il sera inclus dans l'ensemble du modèle sur les assises de dissuasion qui est retourné. Et donc pour le contrôleur de types de congé sur, je vais juste voir si le changement que je veux dire ici et je vais juste aller orteil modifier un peu le bouton. Donc c'est sauver. Je vais me voir. Cette sauvegarde des changements sur je vais aussi rencontrer ce Bt et le succès Donc Bt et le succès nous donne un bouton vert au lieu d'un bouton bleu qui est battu et primaire en plongée. Aller également rencontrer celui-ci bt et bloquer quelqu'un pour quitter ou modifier la vue ressemblant à ceci pour non s'ils sont dans leurs ajustements pour les rencontrer plus tard. Mais je vais maintenant me concentrer sur l'action de post pour l'édition, quelqu'un pour supprimer les paramètres par défaut qui ont été générés pour nous et nous pouvons utiliser le même type de promesse que nous utilisons dans l'action de création d'hôte. Donc, je vais juste remettre en arrière le type de congé VM et l'appeler modèle sur puis dans l'essai. La première chose que je vais faire est de valider que les données étaient vitales, validées les données blessées. Donc, je peux en fait juste prendre ceci si la déclaration Andi Otik retour parce que c'est le même chèque. Je vérifie que plus l'état est évalué parce que peut-être nous avons édité le formulaire que je mettrais dans un nom de type feuille vide. Par conséquent, lorsque nous cliquons sur Soumettre, nous devons toujours nous assurer que l'état du modèle est valide. Si ce n'est pas le cas, nous venons de retourner la vue de la même manière, et elle retournera la vue d'édition avec toutes les données qui ont été mises dans. Ok, donc après avoir dégagé cet obstacle, on peut juste faire la guerre Ah, beaucoup hors cour de ce qu'on a fait avec l'action de création. Donc, je peux encore une fois prendre le type de congé. Andi, je peux Muppet Box me rappeler que cette ligne est en train de la cartographier. Certains ont juste inter emprunté cette ligne quelqu'un pour le balader du type feuille VM toe laisser le type ou classe de données et le stockage dans cette variable sur, alors je n'ai pas besoin de modifier la date créée parce qu'ils ont créés ne devraient jamais être modifiés parce que qui est défini quand c'est la période et ne change pas à nouveau. Mais alors je peux dire le succès du virus. Donc, je vais juste aller jusqu'à présent, est donc le succès est égal à ou rapport points sur. Ensuite, nous avons créé une fonction qui a dit le sur puis bien qu'il s'attende sur l'entité ou certains objets hors type de congé, que nous avons ici. Donc vous voyez, nous passons le type de congé dans notre fonction d'opiacés sur. Ensuite, nous allons vérifier. Si ce n'est pas le succès. Ensuite, nous allons aussi retourner ou voir, et nous allons aussi ajouter une erreur d'état de modèle, certaines seulement mentales. Encore une fois, empruntez cette terre de corde et mettez-la là-dedans. Andi, ça devrait être ça. Donc, si elle réussit, alors il redirigera magasin dans l'expérience nous montrant à nouveau la liste. Et bien sûr, vous pouvez toujours changer où lire Eric. Donc, si vous avez un particulier volé à l'esprit et vous pouvez toujours changer l'action de redirection orteil et vous pouvez même voir lire Eric toe sur l'action dans un contrôleur différent si vous le souhaitez. Mais je vais juste modifier la zone de capture. Aussi, mettez dans cette erreur d'état du modèle Onda retourne la vue avec des données sur. Donc, cela compléterait la plupart de ce que nous devons faire pour nos actions et elle. Donc, je vais juste aller au débogage et nous pouvons tester. Très bien, donc nous allons ne jamais obtenir ou modifier les types de congé de page à l'aube sont dans l'expérience. On va cliquer dessus. Donc, si vous regardez dans le coin inférieur gauche, vous voyez le lien en cours de génération. Laissez les types le barre oblique il coupe un. Donc, ce désir représente le i. D associé à cette règle ainsi que que que je dévaluerai qui va être passé en remorquage. Notre action. Très bien, donc je vais juste revenir en arrière Cliquez sur Modifier et l'attente est que le premier va charger avec les données pour ce type de congé articulaire. Donc, si je change cette idée dans le lien sur, disons 10 donc je n'ai qu'un seul enregistrement. Évidemment, il n'y a pas de type de congé avec une idée de 10 et j'appuie sur Entrée. Ensuite, on se fait flèche. Donc c'est que pas appelé. Appelé leur exécution parce que, Eh bien, il en a cherché un avec 10 et ne l'a pas trouvé. Et donc il a retourné ce téléphone. Donc, bien sûr, il peut mieux gérer cette expérience si vous le souhaitez, mais je vais juste au sérieux et revenir en arrière la vue d'édition avec un sur. Alors je vais voir des congés de vacances. Je change le nom de Vicky, fiston. Les congés annuels ne sont pas et puis j'ai cliqué, enregistrer les modifications sur. Ensuite, il va frapper le poteau. Soumettre les modifications à la base de données, puis si vous remarquez la date de création, a été réinitialisé. J' ai donc dit que nous allions rester à la date créée parce que cela ne devrait jamais changer. Cependant, parce que cela est arrivé et je vais juste mettre un point de rupture sur cette action de post afin que vous puissiez voir exactement ce qui se passe. Je vais le mettre dans cette ligne, accord, donc je vais recommencer à éditer, et je vais juste voir si elle change pour que vous puissiez voir ce qui se passe exactement avec cette valeur de date. Donc, quand je passe le curseur sur le type de feuille, vous voyez que cette valeur de date se réinitialise parce que je ne le mets pas dans le contrôleur, Mais je ne le suit pas non plus dans l'édition. Donc c'est quelque chose que j'ai besoin de camionner. Ce que je vais faire, c'est que je veux sortir du bateau amarré. Ensuite, je vais retourner dans la vue pour ça. C' est sur dso qu'ils sont créés est quelque chose que je n'ai pas besoin d'afficher, mais j'ai besoin de suivre. Donc, je vais traiter cela créé de la même façon que je traite l'i d. Je n'ai pas besoin d'afficher l'i d à l'utilisateur. Cependant, j'ai besoin de le faire par camion pendant un montage. Donc, je vais juste dupliquer cette ligne, et puis je veux voir que je veux une forme cachée, um, des éléments pour elle créée. Ok, donc j'ai raté des vacances, donc je vais partir seul pour en créer un autre sur Ben. Nous verrons exactement comment cela fonctionne, donc je vais revenir en mode débogage, créer un nouveau vic, laisser le type activé, puis éditer, et puis nous voyons que la date créée est suivie. D' accord. Quelqu' un pour en créer un et je vais appeler celui-ci congé de maladie, puis créer. Non, c'est éditorialiste, et je vois qu'il a une meilleure valeur créée par date. Je vais l'éditer sur le pied, peut-être enlever le mot laisser, puis enregistrer les modifications sur. Ensuite, nous allons atteindre le point de rupture. Et quand je survole, vous allez voir qu'il a créé la valeur est la routine. Donc, nous savons toujours la date créée valeur. Deuxième nous. Allez-y et continueuse. Je vais supprimer le point de rupture. Continuez. Ensuite, vous voyez qu'il routines les données. Donc, chaque fois que vous avez des données ou que vous avez un objet que vous voulez mettre en routine certains éléments hors de la nature de notre relation de modèle et de vue et des points de données, qu'est-ce qui est suivi ? Qu' est-ce qui n'est pas suivi ? Vous pouvez toujours créer des sensations cachées qui conserveront les données entre les deux au moment de les servir en cas besoin. Donc je vais bien, nous devons mettre en place nos détails et supprimer quelqu'un orteil a orteil. Eh bien, je vais supprimer les congés annuels et je vais le créer à nouveau, alors ça devrait être correct après ça si nous arrivons à le modifier, donc dans la leçon suivante, nous allons définir les détails que vous étiez quand nous avons cliqué, détails seront conduits à une page qui montre juste les détails sur tout ce qui est nécessaire, il est sur lequel nous voulons mettre l'accent sur les orteils. 19. Configuration laissez des détails de type type laissez des laissez des détails: Hé, les gars. Dans ce Nissen sera la mise en place ou la vue des détails dans notre modèle de gestion de type feuille pour mettre en place ou voir les détails. On aura juste besoin de faire quelques vérifications. Vous voulez vérifier si l'enregistrement qui demandait des détails existe réellement sur, alors ? Si c'est le cas, alors nous procédons à l'obtention des données sur. Rendez la vue afin que nous commencions d'abord par faire une instruction if if if et ils appelleront notre objet de rapport qui existe. Donc, nous allons vérifier s'il existe, et puis cela reviendra. Vrai si elle existe, je veux revenir ou je veux vérifier. Si elle va Toe sûr existe aussi et il s'attend à un périmètre sous la forme d'un entier. Donc nous le passons. Le I D va vérifier si cet enregistrement existe du tout, ou s'il n'existe pas, alors nous voulons juste revenir, pas téléphoner. Donc, affinera cette expérience plus tard. Ensuite, si cela n'évalue pas ou si cette instruction de pièce n'est pas exécutée, ce que nous voulons faire est obtenir var type de congé va être égal à plus de rapport point trouver par I d. Donc, nous allons trouver ce type de congé particulier par son I d sur. Ensuite, nous allons créer une autre variable. Appelez le modèle sur celui-ci. Nous allons stocker les versions de balai ou appeler ma partie supérieure, pas vadrouille. Alors on est en train de balayer le boeuf. Tapez la classe de données dans la zone de remorquage. Laissez le type V. M. Donc, je dis laisser le type V M sur. Ensuite, nous passons l'objet qui stocke ou dita sur. Alors sachez que nous avons ce modèle que nous connaissons. Il suffit de le passer au-dessus de notre point de vue. Donc, l'étape suivante serait de scuffled Cette vue basée sur ce type de feuille VM basé nous Certains juste indirectement vue goto vue de l'annonce. Choisissez le modèle sur dans ce cas, nous voulons les détails sur. Ensuite, nous choisissons la classe d'eau, qui va être laisser le type V M allumé. Alors tout le reste peut rester tel quel. Et puis nous cliquons. Ajoutez-y, alors. Allô ? C' est pour générer la vue. Bon, donc non, notre vue est générée et, comme d'habitude, comprendre, effacer cette étiquette 84 sur leur nous pouvons juste jeter un coup d'oeil rapide à ce qui est affiché Donc nous avons un BT et D onglets eso comme d'habitude. Vous savez, nous pouvons modifier cela mais je comprends le laisser comme modèle par défaut. Mais c'est ce que nous obtenons en tant que point de vue. Donc, nous obtenons un nom paisible pour puis nous avons un affichage pour et si vous remarquez, il utilise Lambda Expressions touristiques. Je veux que le nom d'affichage de l'aide HTML pour la fonction qui va afficher le nom et le nom qu'il y a vraiment laissez-moi trouver mon modèle. Donc, le nom là qui parle est vraiment nom d'affichage. Alors rappelez-vous ce que nous avons dit Cet hommage pour la date créée où nous avons dit que le nom devrait être battu espace créé. Donc, ce que cet assistant fait vraiment, c'est qu'il dit me donner le nom qui est spécifié comme le nom quatre pour les attributs dans le modèle. Très bien, donc nous obtenons le nom de n'importe quelle propriété appelée nom il y a dans ou laissez le type VM sur . Mais alors il obtient la valeur réelle. Donc, ce n'est pas afficher la valeur et nous disons affichage pour donc nous pouvons réellement juste envelopper ce bloc entier hors réserve prend à l'intérieur de tout ce que nous voulons dans une balise P dans un haut H un ou H cinq. Quoi qu'il en soit ils veulent faire, nous pouvons en fait simplement envelopper tous nos HTML sont possédés les balises d'aide pour obtenir le genre de contenu hors tout. Vous vouliez bien paraître. Donc, de la même manière, il obtient le nom d'affichage pour et la date créée sur. Ensuite, il affiche le créateur de bits réel, puis souffler. Nous voyons que nous obtenons un lien donc sur n'importe quelle page et il passe mon modèle. Donc, nous savons qu'une fois étaient en cliquant dessus, il s'attend à ce que les orteils aient une valeur pour le i. D. Donc, nous passons plus modèle cette idée comme un paramètre sur. Ensuite, il a également un bouton juste pour revenir à l'index, qui est étiqueté comme retour à la liste. Donc je vais rapidement exécuter ceci et nous pouvons jeter un oeil au discours de détails. Très bien, donc à partir de notre page d'index, je vais juste cliquer sur les détails et ensuite nous allons regarder naviguer vers les détails de l'élément avec le I D à, et c'est à quoi ressemble le discours des détails. Donc le nom dessus est malade, puis la date a créé son espace créé parce qu'il affiche le nom sur ce peu de détails afin que je puisse voir que c'est une chose très simple. C' est très, euh, simpliste, comme je viens de le dire, mais on peut le modifier comme on le désire. Si je clique sur Modifier, alors il redirigera vers la hauteur d'édition. Retournez à la liste. Il revient à l'index. Donc, il est toujours une bonne règle de suivre lors de la conception d'une page Web où vous pouvez accéder à n'importe quelle page à partir de presque n'importe quelle autre. PH. C' est une bonne règle empirique, d' accord, donc juste par l'échafaudage des vues, on se rend compte qu'ils nous aident avec cette règle. Où si je suis sur la page d'édition sur, je veux revenir à Index. Je n'ai pas forcément besoin de revenir ici et de reprendre ça. Mais il y a un lien droit. Ils sont accessibles pour revenir à la liste. Si je suis sur le discours de détails sur, je veux le modifier ou revenir à la liste, je peux faire l'un ou l'autre, donc c'est un bon orteil de règle. Continuez, puis, à partir du discours d'index, je peux toujours aller pour en créer un nouveau Donc c'est tout pour non sur notre discours de détails. La prochaine chose que nous allons faire est de travailler sur nos fonctions de suppression. 20. Désir une fonction de suppression de type police l'l'l: Hé, les gars, dans ce Écoutez, nous allons configurer les actions de suppression dans notre contrôleur. Non, par défaut ou code généré par le contrôleur. Donnez-nous pour supprimer des actions. Nous avons un accès à obtenir et un qui agit comme le poste. Donc à peu près comme get c'est plus comme ça va nous donner un écran de confirmation. Êtes-vous sûr de vouloir supprimer l'enregistrement sur lequel vous cliquez simplement sur supprimer et qui va nous donner comme oui ou non ? Si nous sélectionnons oui, Ensuite, il est divers élégant. Agissez comme un formulaire. Soumettez, puis les attentes que nous transmettons à la publication sur, puis exécutez la suppression dans cette action hôte. Différentes personnes abordent la suppression différemment. Donc, certaines personnes pratiquent ce qu'elles appellent une suppression douce où elles ne suppriment pas réellement l' enregistrement de la base de données. Ils l'ont mis dans un état d'activité qui supprimerait un peu plus de personnalisation de notre cour. Andi, certaines personnes viennent de supprimer. Donc, en ce moment, je vais juste faire la suppression de base comme un projet se développe. Alors peut-être qu'on verra la nécessité de faire une élite douce à la place. A peine pour non, je vais juste mettre en place la vue pour l'action de suppression pour obtenir l'action, et puis je vais mettre en place la logique pour le post-traitement. Donc maintenant, vous auriez fait à la fois le créateur et la suppression, donc vous serez familier avec le get sur le post. Donc, si vous jetez un oeil à ce qui est attendu, cela ressemble beaucoup à ce que nous avons fait avec notre fait. Et il va tellement littéralement juste copier tout ce que nous avons fait pour l'édition sur. Je vais juste le coller à l'intérieur de la suppression. Donc, nous vérifions si l'enregistrement qui est transmis existe sur supprimez simplement cette ligne supplémentaire . Si elle n'existe pas et que nous retournons l'erreur non téléphonique si elle existe, qui signifie que cette instruction n'a pas été exécutée. Il a été sauté. Alors, on veut que les orteils le trouvent à mon tour. Ensuite, nous voulons que les orteils renvoient ces données. Donc, nos vues je suis juste vue contractuelle sur la vue de l'annonce goto et puis cette fois ou modèle est supprimé. Donc, ils ont un modèle pour l'élite. Sur comme d'habitude sur les données sont nos classes de modèle laisser le type VM activé. Ensuite, nous cliquons sur Ajouter sont donc la vue que nous obtenons semble très similaire. Tore delete view Comprendre pour supprimer ce H pour la balise afin que nous obtenons supprimer et il nous donne un message. Très sûr que vous voulez supprimer cela hors cours. Nous pouvons changer le libellé comme nous le désirons. Ensuite, il nous donne les détails de n'importe quel enregistrement est sur le point d'être supprimé, et ensuite ils nous donnent n'importe quelle forme où il cherche l'option. Supprimer. Il a l'élément caché pour le i. D. Off l'enregistrement qui est affiché sur. Alors il est vu Voulez-vous soumettre ? Donc, il est dit supprimer. Je vais juste dire des enregistrements de leader de valeur qui changent le texte dans le bouton sur son déjà Bt et danger, qui est un bouton rouge. Donc, cela fait Bt et tableau de bord comme d'habitude sur, alors nous avons un dollar à la liste. Donc, si vous obtenez ce feu et que vous le regardez, quelques remords sur le fait que vous le supprimez, alors vous pouvez toujours revenir à la liste et revenir à la liste si vous changez avis. Donc je sais que nous avons mis en place la vue. Non, nous avons besoin de mettre en place la logique derrière l'exécution des suppressions. Je veux juste emprunter le cordon de nos actions de poste existantes parce que vous réalisez que nous faisons beaucoup de choses. C' est le même modèle. Vraiment. Donc d'abord, je prends le modèle. Eh bien, je ne vais pas prendre le modèle parce que vraiment, n vraiment, il ne passe que sur I d Donc, avis ou forme dans cette situation ne passe que sur I d sur. C' est les seules données que nous pouvons attendre de la forme qui est en train d'appeler notre post http. Donc, dans l'hôte d'élite, je vais vraiment me lancer dans Idee. Je ne vais pas passer de mannequin. Donc, pour que le modèle soit passé, je devrais passer par le biais effectivement remplir ce formulaire avec tous les éléments, comme ce que nous aurions vu dans le Créateur et le formulaire d'édition. Onda, on n'a pas besoin de faire ça. On a juste besoin de l'idée. Donc je vais vous montrer tout entier avec juste l'idée à nouveau, toujours opérer. Donc, dans la suppression, nous passons dans le i D. Mais alors ça me donne une erreur. Oh, oui. Donc, cette zone est parce qu'il semblait qu'il ya déjà une fonction Action résultats delete. Je ne peux pas avec cela c'est accepter un périmètre dans mon compte de la fonction mère de la mer et de type retour. Même nom avec le même permis. Donc je comprends, orteil mis dans le modèle. Mais c'est vraiment en vain. C' est juste la distinction entre l'action de suppression post sur la suppression get. Bon, donc ce qui va se passer ici, c'est que je vais voir Eh bien, le modèle va être vide de toute façon, donc ça ne fait pas grand-chose à propos de nous attendre au moins le I. D. Alors sachez que J'ai l'idée. La première chose que je dois trouver est l'entité. Donc je vais sauver notre type de congé est égal à andi. Rapport. Objet ancré. Trouver par i d. Parce que supposé où je peux vraiment l'identifier dans la base de données sur dso Non, c'est l'entité que je vais être le leader. Donc, la prochaine chose que je vais faire est que je vais sauver Ire est le succès est égal à souligner re pull points. Et puis nous avons eu une fonction de suppression qui attend sur le type de congé de type périmètre d'entité , qui est incarné par les résultats retournés par find par I d sont sur. Ensuite, nous le mettons dans cet appel de fonction, alors nous pouvons faire notre estime et voir si elle a été supprimée avec succès. Et je vais juste emprunter ça une déclaration d'un bloc existant. Donc, si cela n'a pas réussi que le retour sur, mettre dans une zone l'état du modèle sur, nous n'avons même pas besoin de mettre l'air dans l'état du modèle. Vraiment ? Parce que nous ne validons pas l'état du modèle puisque tout ce que nous récupérons, c'est l'idée. Quoi qu'il en soit, il n'y a pas de résumé de validation de Riel placé nulle part ici. Donc, si elle n'a pas été supprimée avec succès, alors nous venons de retourner la vue avec le modèle. Sinon, nous redirigeons vers notre index. Je suis également appris à vérifier si ce que je d ou l'enregistrement existe, donc je vais voir avoir obtenu le type de congé, je vais mettre dans une déclaration if sur, disons, disons, congé si le type de congé est équivalent à savoir. D' accord, donc ça veut dire qu'il a un I. I. Il l'a regardé. Alors rien n'a été retourné, donc c'est toujours vide. Ensuite, nous venons de rentrer, pas de téléphoner. C' est une chose similaire à ce que nous avons fait jusqu'à présent. C' est légèrement différent à cause du sol éteint. Entier était assis record quoi ? En fin de compte, c'est le même effet net. Donc, vous savez qu'il y a plusieurs façons de monter sur la cour et la situation. Vous devrez peut-être l'écrire différemment. Donc c'est un moyen de s'en sortir. Implémenter je supprime une autre façon dont vous pouvez implémenter une suppression est en faisant tout dans juste l'action get. Donc, quand la personne clique, supprime, alors nous faisons juste la recherche à l'intérieur de la get faire la suppression, puis rediriger Donc nous n'aurions vraiment pas ah vue de confirmation. Mais nous avons juste sur l'action qui agit la suppression, puis redirige l'index. Mais bien sûr, vous voulez mettre vos chèques pour vous assurer que cette personne est absolument sûre qu'elle essaie de supprimer cet enregistrement. Vous voulez vous assurer que vous mettez en offensive en paix contre toute erreur de l'utilisateur. Bon, alors vérifions et voyons comment ça marche et je suis juste en train d'aller aux pieds. Eh bien, s'il y a une erreur dans le catch try, alors je vais retourner la vue avec le modèle. Aussi, tout à coup, mettez ça. Et puis je suis allé dans le débogage plus que tester la chaleur. Bon, donc nous sommes à Index et nous testons sur la fonction de suppression. Donc les vacances laissent ce genre de foiré parce que la grande valeur créée n'a aucun sens . Nous en tant qu'êtres humains. Donc, je vais supprimer celui-ci, et puis je vais le créer à nouveau. Donc je vais cliquer, supprimer, et puis il va afficher l'écran de confirmation. On y va. Donc ça nous montre les détails. Êtes-vous sûr de vouloir supprimer cela sur puis le grand bouton rouge qui dit Supprimer l'enregistrement ou sur le point de Liston ? Encore une fois, nous allons réparer toutes ces esthétiques, mais pour non, juste comme conduire à enregistrer sur. Ensuite, il redirige l'index, après avoir supprimé l'enregistrement des données, être avec succès. Donc je vais juste passer dans une foule pleine pour que nous puissions être sûrs que tout fonctionne. Donc, je vais créer un nouveau étaient une carte sur. Je suis allé au congé de vacances Recréer et puis je dis, Créer sur. Ensuite, nous voyons que nous sommes sensés que ce soit pour nos congés annuels. Je vais aussi faire ou éditer malade parce qu'il devrait dire congé de maladie et pas seulement six quelqu'un pour dire congé de maladie et puis enregistrer les changements sur. Ensuite, nous vérifions que notre fonction d'édition fonctionne si nous cliquons sur les détails et je suis juste en cliquant sur le milieu , donc il ouvre les détails dans deux onglets différents. Donc on voit les détails du congé de maladie, et on voit les détails des congés annuels. Nous sommes donc assurés que les détails fonctionnent sur. Ensuite, nous venons de vérifier que la suppression fonctionne. Maintenant, je vais modifier un peu notre fonctionnalité de suppression, et je vais prendre tout le besoin pour qu'il aille à la hauteur de confirmation, puis nous supprimons à nouveau. Ce que je vais faire, c'est mettre un petit message de confirmation. Donc, si la personne clique sur les pistes, elle verra notre pop up leur demandant. Sont-ils sûrs sur Alors s'ils cliquent sur oui, alors il se poursuit. S' ils cliquent sur non , rien ne se passe. Mais il ne serait pas navigato orteil un tout autre p juste la chemise Ascari si vous êtes prêt à supprimer. Donc, je veux revenir à mon accord sur je suis toujours en mode débogage. Je ne vais pas sortir de Debunk plus sur. Je vais aller à ma vue d'index. Donc, je trouve Index et puis je vais modifier le comportement de mon bouton de suppression. Donc, à l'intérieur de l'oncle bascule pour supprimer, je vais mettre dans un script Java une fonction appelée sur clic. C' est donc un événement si peu clair. Ecbc. Je voulais faire certaines choses que je dis sur Click is Equal toe Et puis je voudrais juste, comme, insérer du code JavaScript à l'intérieur de ces guillemets afin qu'il fasse quelque chose quand il est cliqué. Donc quand il fait que je voulais revenir et puis je suis allé voir confirmer sur alors. C' est ce qui va montrer la boîte papa alors confirmer va appeler une boîte pop-up. Mais je veux un message dans cette boîte à bulles que je vais définir. Vous êtes sûr de l'être ? Vous voulez commencer à supprimer cet enregistrement. Donc, nous demandons à l'utilisateur Êtes-vous sûr de vouloir supprimer cet enregistrement ? C' est là qu'ils cliquent. Supprimer. C' est la question juste là, sur la Peach. Bon, donc c'est le changement. Numéro un, les deuxième chaînes, je vais devoir sortir du mode débogage parce que non, je vais changer le comportement de nos actions, quelqu'un pour faire tout à l'intérieur de la mise en marche . Je vais supprimer la vue de retour et puis confirmer, Donc je vais sortir du livre plus que fait ces changements. Maintenant, on l'a déjà vu avec juste l'idée. Nous pouvons en fait obtenir le dossier que nous voulons et manipuler comme nous le souhaitons. Donc littéralement. Tout le noyau qui est mis dans cette fonction de post http aurait pu être mis à l'intérieur de la get. Donc ce que je veux faire, c'est juste enlever tout ça où je trouve mon je me suis. Alors je vérifie si ce n'est pas allumé. Puis j'ai essayé la suppression, et puis je redirige, je vais enlever tout ce tribunal, en fait, en fait, juste remplacer ce qui est déjà écrit à l'intérieur par ce tribunal. Donc, quand je clique sur le bouton Supprimer, il va frapper cette action. Il sait que l'idée va le trouver par I D. Il va vérifier si c'est petit sur le retour un 404 Si elle est allumée alors va voir que je veux essayer et supprimer et puis nous allons vérifier si elle a été réussie. Si cela n'a pas réussi, alors il n'y a pas de vue que je revienne. Au lieu de cela, je peux retourner l'une de ces fonctions intégrées. Donc je reviens, pas appelé. Ici. Je vais retourner quelque chose comme de mauvaises demandes, qui est une flèche 500 qui est, vous savez, assez populaire quand quelque chose ne va pas. Donc je vais juste rendre notre corps demandé. Donc, si vous essayez de le supprimer et que quelque chose s'est mal passé, alors nous recevons la demande de corps sur. Ensuite, nous redirigeons l'index. Donc, en faisant ces changements, je peux simplement supprimer ceci Si je veux ce que je veux le laisser là, je ne veux pas le supprimer en allant en mode débogage et tester cette nouvelle fonctionnalité de suppression . Donc, pour tester la pensée d'aller créer Ah, un nombre aléatoire va appeler ce test sur create on puis nous allons tester si nous pouvons le supprimer en une seule fois. Donc, quand je traite les pistes, nous obtenons notre pop up. Êtes-vous sûr de vouloir supprimer cet enregistrement ? Donc, c'est que confirmer la boîte de dialogue étant déclenchée par notre code JavaScript sur. Ensuite, je clique sur OK. Ensuite, il va agir et rediriger, donc c' est presque comme si rien ne s'était passé. Mais l'enregistrement n'est pas manquant, donc ce ne sont pas les pages qui sont nombreuses. Rafraîchir sur l'enregistrement est devenu manquant, et même si je rafraîchis vous remarquez, Où est la base de données à nouveau ? Sur elle ne revient pas. Donc, c'est un bon moyen propre de faire une suppression sans aller à une toute autre page. Juste pour poser la question, Etes-vous sûr de vouloir le faire avec ça ? Nous avons terminé nos opérations de foule dans les prochaines vidéos. Nous allons modifier l'apparence et l'impression que nous allons changer. Maintenez les détails de modification et supprimez les liens. Regardez, en modifiant l'ensemble ou les vues. Ce ne sera pas, juste quelques réglages. Il suffit de le rendre un peu plus attrayant sur le bas. Nous en aurons fini avec l'esthétique, et ensuite nous allons vérifier nos changements pour obtenir parler 21. Ajouter une table de données de type laissez et des icônes géniales de polices: Hé, les gars, bienvenue à une autre leçon de cette séance. Nous allons mettre en œuvre huit notes a pour notre page d'index sur. Nous allons mettre en œuvre quelques icônes. Vous savez, suffit d'ajouter un peu plus de style à nos pages Jusqu'à présent, juste pour passer en revue le travail que nous avons fait jusqu'à présent, nous avons terminé les opérations de foule pour nos types de feuilles. Nous avons fait sur la page d'index où nous listons tous les types de feuilles actuellement dans la base de données . Nous avons créé notre forme de création et comprendre les orteils ouverts chacun dans son propre top. Nous avons fait notre suppression ou des détails sur notre à elle. Nous avons donc notre forme de création, simple mais élégante. Partout où modifier le formulaire sur. Nous pouvons également voir les détails et nous voyons que nous pouvons cliquer sur Supprimer sur Dit il va nous promettre . Sommes-nous sûrs ? Et puis si nous cliquons sur OK, alors la suppression se produira réellement. Donc, si la foule terminée maintenant ce que nous voulons faire dans ce Tu Toro est changer la façon dont le look et se sentir hors de la table. Donc vous voyez la table. C' est statique, c'est littéralement juste sur la table html. S' il y a 100 enregistrements et cela semble simple. Non, parce qu'il n'y en a que deux. S' il y en avait 10, vous atteindriez probablement à mi-chemin de la page s'il y en avait 100, vous finiriez par faire défiler. Donc nous allons mettre en place huit par table. Nous sommes le nombre inchangé. Eh bien, la table de données va transformer la présentation des enregistrements nous donnant la pagination . De plus, la recherche n'implémente pas une recherche. Non, on va juste mettre dans la table de données et ensuite on pourra l'affiner au fur et à mesure. Mais au moins, nous aurons la table de données là de sorte que lorsque d'autres enregistrements commencent à entrer, nous faisons du mal à craindre que la pointe ne va juste continuer à ajouter des règles et que cela devra faire défiler. Finalement, Body ajoutera en pagination de sorte qu'il montrera peut-être 10 enregistrements sur le premier discours et ensuite nous devons aller à la deuxième payé pour la prochaine 10 etcetera, etcetera. Nous allons également ajouter quelques styles à nos liens un c créer nouveau. C' est juste un maillon de lit. Modifiez les détails, lead. Ils sont tous juste que vous savez, jouer des liens sera ajouter quelques styles et aussi importer des icônes dans notre application pour ajouter un peu plus de flair à l'apparence et à la sensation. Non. Avant de commencer toutes cesactivités merveilleuses et passionnantes, activités merveilleuses et passionnantes, je veux juste retourner au studio visuel sur le point, quelque chose de vraiment rapide. Donc, plus tôt, j'aurais mentionné que, vous savez, en mode débogage, si vous apportez une modification à la page d'origine, alors les changements seraient reflétés. Si vous venez d'actualiser, vous pouvez ne pas avoir cette expérience, et vous auriez activé le lien du navigateur sur Toujours pas eu cette expérience. Donc studio visuel fait réellement la chose de l'école où l'on héberge réellement le site Web dans un. un.Dans une très petite version hors services d'information Internet sont s comme exprimé sur elle vous permet de lancer effectivement application indépendante hors le bateau, l'humeur sur faire des changements et rafraîchir et les voir. Donc, par exemple, je ne suis pas en mode débogage en ce moment, mais je vais aller voir mon frère et lancer l'application sur. Je peux aller de l'avant et cliquer sur créer nouveau sur vous voir que le pH a changé. Je vais mettre dans un type de test cliquez sur créer sur l'application qu'il a été créé. Donc, je fais tout ce mode de débogage indépendant sait que l'inconvénient est que si je mets un point de rupture, alors il ne pourra pas s'arrêter au milieu du processus et me permettre réellement de voir les variables et effectivement démystifier le application. Donc, vous savez, quand nous faisons peut-être des changements de conception, vous savez, l'utilisateur interfère les changements, alors cette méthode serait probablement plus rapide où, surtout si vous avez deux moniteurs, vous Ayez le frère d'un côté, n'importe quel tribunal de l'autre côté. Vous avez fait la modification votre rafraîchissement. Vous voyez exactement ce qui se passe quand vous faites d'autres modifications, la cour et la logique, et vous voulez réellement déboguer l'accord pointu en C. Ensuite, vous voulez probablement le faire en mode débogage, donc vous avez à mes pensées. Vous pouvez les utiliser comme bon vous semble. Donc, pour cette session, nous allons utiliser la version Broza Link hors débogage sur. Nous allons juste faire quelques changements visuels sur nous juste os entre studio visuel sur notre application dans le navigateur. Maintenant, avec tout ce qui dit, allons au téléphone. Donc, je suis sur un site Web tables de données point net sur. Vous pouvez voir qu'il s'agit d'une avidité interactive avancée. Et voici un exemple de ce que vous pouvez attendre une fois que vous l'implémentez, il est gratuit. Les directions pour commencer sont à gauche. Ils disent que vous devez inclure deux fichiers, un pour CSS et un pour G. Maintenant, si vous les regardez, vous remarquez qu'ils sont en fait des liens Web. Si je clique juste dans le CSS sur la copie et si j'ouvre un nouvel onglet et colle, alors vous remarquez qu'un fichier apparaît dans le frère. Alors, ce sont quoi ? Parce que CD et liens CD et assuré pour le réseau de diffusion de contenu sur ce que les gens font est place off, exigeant que vous ne chargez pas le fichier CSS dur comme, Oh, nous avons le fichier CSS bootstrap dans notre application, par exemple. Et d'autres y vont, vous assurez quoi ? Je veux dire, donc dans w w nous avons le CSS Désolé. Dans lib, nous avons le bootstrap sur un CSS indistinct, et nous avons le feu réel ici. Donc, au lieu d'exiger que nous ayons le fichier physique sur la machine, ce qu'ils font est l'héberger sur Internet et j'ai perdu juste intégrer le cordon via leur hébergement Donc une fois de plus, la première étape est toe embed sont d'inclure le CSS ou le lien vers le fichier CSS dans notre cour. Certains veulent retourner au studio visuel sur find hourly, ancienne page. Donc, je descends aux vues partagées sur la mise en page ouverte alors, dans notre page Leo, nous trouvons l'époque où les fichiers CSS ont été inclus quelque part pour l'inclure sous les bootstraps. Donc, j'ai dit cela avant que cette commande compte lorsque vous incluez CSS et JavaScript déposés. Donc, vous vous assurez que, vous savez, bootstrap est probablement en haut parce que beaucoup de choses héritent beaucoup d'autres frameworks héritent de bootstraps. Fichier CSS. Donc je suis juste que je viens de contrôler de sur dupliqué ce fichier sur. Ensuite, je vais juste remplacer l'air treff toe bootstrap avec CD et lien. Donc, ce que cela fait est lorsque la page Leo rend, elle inclura la référence au feu CSS que nous venons de voir à travers notre navigateur sur. Ensuite, ils disent aussi que nous devons inclure un fichier Js sur végétate ce lien Js et puis je allé faire une opération similaire où je vais descendre à la section JavaScript sur. Je vais juste dupliquer cette ligne avec les sangles de coffre. Encore une fois, je le mets après Jake où je le mets après bootstrap. Ensuite, je vais juste remplacer ce lien par le CD et Link. Je sais que nous les avons inclus. La prochaine directive est d'appeler une seule fonction sur, donc nous allons devoir écrire du JavaScript pour obtenir cette carte de fonction. Donc je vais juste copier ce bateau, retourner au pied de notre studio visuel et aller à notre pièce d'index parce que notre discours d'index a la table que nous aimerions transformer en table de données. Et pour rappel, je vais revenir à l'application. Et c'est ce pourboire dont je parle. Donc cette table a besoin de ressembler à cette démo que nous voyons ici. Donc, je vais inclure je fais référence à cet extrait de JavaScript. Mais la première chose que je vais faire est de le donner sur i d. Donc, je vais dire que je d. Et si vous êtes familier avec chaque similaire, alors vous savez qu'une idée est comme une identification unique où pour tout élément HTML quelqu'un à dire que je d est égal à Et je vais juste appeler cette date TBL. Donc, après avoir étiqueté notre table avec les données i d tbl allaient juste aller au bas de la page. Et nous allons créer une section pour les scripts. Non. Dans notre page de mise en page, vous remarquerez que le, vous savez, dessous de tout l'inclusion de tous les fichiers de script, nous avons une section où nous voyons des scripts de section de rendu. Donc ça nous permet orteil en Stan. Elle a mangé une section où nous pouvons mettre JavaScript cour si besoin est. Donc, pour ce faire, je vais dire à la section des signes, et puis je vais devoir spécifier le nom, qui est des scripts. Donc, si on regarde en arrière, c'est des scripts de nom, puis on ouvre des vêtements, accolades, puis à l'intérieur de ces accolades. Non, les droits de week-end sont JavaScript. Donc, je comprends d'ouvrir une section de script et puis je vais accélérer le cordon venant du site Web. Donc, je vais juste corriger le formatage un peu ici pour qu'il soit là maintenant, à l'intérieur de cette requête g A. Donc, c'est Jake inquiétude à l'intérieur de ce bloc, Ce qu'il fait est de voir que je suis à la recherche d'un élément avec le i d. Donc ce hashtag et Jake ou er en JavaScript en général signifie vraiment intime avec ce que je d. Et puis tout ce qui vient après le hashtag est le i d qu'il cherche. Donc, parce que cette table données TBL est celle que je veux convertir dans la table de données, je vais m'assurer que je vois hashtag TBT l données pas table de données. Donc, cela appelle notre fonction, et cette fonction est appelée à l'intérieur de notre fichier que nous sommes des tables de données loin que nous venons d'inclure. On y va. Donc le danger, y compris cette référence après que nous avons appelé notre Jake ou notre dossier, c' est que ça va donner une infirmière et trouver un dysfonctionnement parce qu'une fois de plus, séquence compte. Donc, une fois que nous avons fait toutes ces activités, nous voulons le voir pour que vous puissiez voir qu'une fois qu'une famille pour voir s'il a un astérisque, ils peuvent voir si vous pouvez construire si vous voulez. Je vais juste utiliser le changement de contrôle et s et ce que cela fait est qu'il semble tous les changements, donc autant de faits que vous avez ouverts sur notre changement de contrôle non sauvé dans sont sauveront tous parce que nous changeons client face au tribunal, ce qui signifie javascript sur HTML, nous n'avons pas besoin de construire. Donc, si vous faites c changements brusques, alors vous devez construire pour vous assurer que tout le monde sait ce qui se passe. Si vous apportez simplement des modifications visuelles , l'enregistrement est OK. Mais maintenant, je vais revenir à notre application, puis je vais me rafraîchir, et cela pourrait prendre un certain temps après l'actualisation. Alors tu devrais voir quelque chose qui ressemble à ça. Si vous ne voyez pas quelque chose qui ressemble à ceci, alors vous avez probablement quelques références manquantes sont des références égarées qu'ils peuvent toujours faire un clic droit, aller à inspecter. Et puis j'espère que vous utilisez probablement plus cruel était la plupart des navigateurs modernes ont la console de toute façon, alors, le conseil serait probablement montrer un tas d'erreurs en surbrillance en rouge. Donc si vous avez ces erreurs, il peut les partager avec moi, et je peux vous aider à les surmonter. Si vous ne recevez aucune erreur et que vous avez une console propre comme je le fais et que vous avez accepté d'être affiché comme il se doit. Alors tu es sur le bon camion. Vous savez ce que cette cupidité vous permet de faire est alors que vous pouvez juste commencer par D créé tout droit, presque sans effort. Commencez par des noms autant de colonnes que vous le pouvez. Il vient par défaut avec le démarrage. Il vient avec la pagination. Comme je l'ai dit, donc je n'ai que trois dossiers et ça dit montrer 10 blessures. Donc, si j'avais 20 ans, il aurait un âge que la page 2. Andi. Je peux même changer un certain nombre de disques que j'ai l'intention de voir sur la première pêche, non ? C' est donc un très C'est une très belle façon d'obtenir une belle table interactive le jour, même inclure une petite fonction de recherche. Mais vous devez travailler un peu plus dur pour obtenir ça. Oh, ils sont royaux. Il fonctionne dès la sortie de la boîte. Ça marche. Donc, même lorsque nous regardons la liste des employés, vous savez que vous pouvez simplement cliquer sur Rechercher, trouver celui que vous voulez. Donc c'est une belle mise en place a battu une grille Andi que nous allons passer à l'activité suivante . Sachez où nous rendons nos boutons un peu plus attrayants. Alors sachez que j'en ai fini avec les tables de données. Je vais fermer cet onglet. Ensuite, je dois à d'autres types disponibles ou ouverts à moi. Donc, nous allons utiliser des fonds génial pour donner de la vie à notre application avec quelques icônes. Droit ? Donc, je dois aller au sommet ici. J' en ai un, qui est bootstrap cdn dot com slash fonds. Génial sur j'en ai un autre qui est amusant. Impressionnant point com slash l'icône 4.7 points ou barre oblique. Donc, je veux expliquer exactement ce que je fais à l'intérieur, et je vais commencer par celui avec l'icône So fun. Impressionnant fournit, vous savez, belles, icônes propres que nous pouvons simplement intégrer droite question mâle. Tout ce dont nous avons besoin est un fichier CSS, et puis nous pouvons simplement intégrer l'icône Donc un signe plus pour l'annonce, peut-être crayon à la recherche icône pour elle. Quel que soit le but, ils ont une icône pour presque toutes les situations. Le site est agréable et propre, mais vous verrez où ils vous exhortent à passer à la version cinq. Donc, je suis sur quatre. Restez à être spécifique 4.7 parce qu'avec 4.7 est la dernière version que quatre avaient à offrir et la version quatre est beaucoup plus facile à régler hors de la boîte que le feu de la version. Donc je vais rester avec 4.7. Ah, beaucoup sur les applications modernes utilisent encore 4.7, et ils ont encore de bonnes icônes que nous pouvons utiliser pendant un certain temps. Donc on utilise. Encore une fois, 4.7 sur les icônes sont comme répertoriées. Andi, je veux dire, presque pour n'importe quelle occasion tu as un Nikon si tu veux. Je conduis suggère e-mail. Ils donnent votre enveloppe si vous voulez quelque chose pour la base de données. Si vous voulez quelque chose pour l'information, ils ont des icônes pour presque tout. Et si vous avez une idée en tête, vous ne connaissez pas nécessairement le bateau icône. Vous avez une idée que vous pouvez toujours rechercher. Plus que probablement le nom de l'icône est beaucoup ce que vous pensez, donc vous pouvez toujours filtrer assez facilement. Donc, comme je l'ai dit, nous avons vraiment juste besoin d'un fichier CSS pour utiliser la police. Impressionnant. Andi, ils vous donnent le fichier CSS à télécharger. Vous pouvez réellement obtenir le fichier CSS à travers le site Web, mais alors, si vous venez de financer Google Awesome 4.7 CD et ensuite vous êtes conduit à décider Bootstrap CD dans On, ils vous donnent le lien Cdn qu'ils hébergent afin que nous puissions simplement utiliser le Cdn au lieu d' obtenir un fichier physique et d'essayer de l'intégrer dans nos applications. Donc ils disent, Tout ce que vous avez à faire est de cliquer dans cette section et il est copié dans le presse-papiers sur. Ensuite, je vais quitter la direction, retourner à mon Léo ou Paige. Ensuite, j'ajoute un nouveau CSS pour quelqu'un orteil à celui-ci sous toutes les autres références. Donc, je viens de faire le contrôle être dupliqué cette ligne pour le fichier CSS de la table de données. Et puis je remplace ce lien par ce CD dans. Donc, tout comme avec l'exemple des tables de données, si je dis que Cdn Lincoln rythme dans le navigateur et le bro de lui, alors vous verrez que c'est juste un gros fichier CSS. Et la raison pour laquelle ce fichier CSS semble si mélangé et compliqué si vous ne savez pas déjà est que c'est ce que vous appelez les hommes. Si je l'unification est vraiment enlever tous les espaces blancs tous les personnages vraiment amusants et était espèces et lignes de frein. Pour moi. Le fichier en taille plus petite car un ordinateur l'aime comme ça. Ça semble déroutant pour les ordinateurs humains. Absolument aucun problème à lire ceci. Très bien, donc c'est juste un tas d'étoiles et de manger style à peu près nous donne sur l'icône, donc il faut référencer l'étoile icône que nous aimons sur. Ensuite, nous pouvons l'intégrer à notre époque, donc je vais revenir en arrière, après avoir inclus la feuille de style sur. Ensuite, nous pouvons retourner à la page d'index dans. On peut faire quelques changements. Les orteils sont des liens Commençons donc par nos liens de création. Donc j'ai un oncle remorqueur qui va juste ajouter des cours à ça. Donc c'est une étiquette d'oncle d'avion. Et quand je dis classe égale, vous voyez que l'intelligence vous donne, ah hôte entier hors classes bootstrap qui sont disponibles. Donc d'abord, je vais faire en sorte que ça ressemble à un bouton. Donc je vais juste dire Bt et donc bootstrap le suit. Fais un lien. Un oncle tug ordinaire ressemblait à un bouton, donc j'ai dit btm sur puis je voulais être un lien bleu, quelqu'un pour dire BT et Dash Primary. D' accord, mais je veux un signe plus, donc ça va ressembler à un bouton bleu qui dit créer. Mais alors je veux, genre, un signe plus avant que les mots créent de nouveaux. Donc je veux aller financer Awesome sur. Ensuite, je vais chercher et voir s'ils ont un signe plus sur vous voir qu'ils ont plus et plus près cercle et ils ont différentes variations sur un plus sont quoi ? Je vais y aller avec un simple. Donc, je vais cliquer dessus alors. Ce qu'ils font est de me donner la cour d'intégration donc je ne le fais pas Si vous pouvez voir quelqu'un zoomer un peu aujourd'hui, vous pouvez probablement voir le cordon un peu mieux, donc je peux juste copier ce bloc de texte. Retournez à mon cordon, puis placez-le à l'intérieur de l'ANC au sommet. On a donc le remorqueur d'ancre. Ensuite, nous avons le texte à afficher à l'intérieur de la balise de cheville sur la fermeture, Quelqu'un pour le mettre à l'intérieur de la zone de texte. Donc l'étiquette de la cheville non a ce que je remorquais, qui fait référence à Effie sur F A plus. Donc ces cours viennent de plus. Père CSS, nous venons d'inclure pour le plaisir. Génial, non ? Donc F A et F A plus. Ensuite, nous avons créé de nouveaux quelque part. Stand pour mettre l'espace entre l'icône Andi ou mots créer de nouveaux. Et puis je suis allé à contrôler le décalage pour voir la mise en page des excuses ajustables sur le discours d'index à ce sujet, je vais revenir à mon application et juste rafraîchir pour voir les changements. D' accord ? Et c'est un début. Nous avons donc un index et nous avons créé de nouveaux Andi. En fait, je veux changer le texte. Index va Index ne me dit pas quelle page ? Amman. Oui, je sais que c'est l'index, mais nous allons avoir beaucoup de pages d'index. Ils veulent probablement être quelqu'un spécifique pour changer les bâtons. C' est un changement mineur, mais l'objectif rial ici était d'obtenir le bouton pour regarder un peu plus. Tu sais, la pop un peu plus. Donc, nous vous avons créé sur. On a ce petit signe plus là. Ensuite, je vais faire les mêmes changements pour toute suppression, suppression et détails. Donc, je retourne à mon cordon. Tout d'abord, laissez-moi changer dans les types de congés supplémentaires et probablement mettre comme un chacun sont. Donc, c'est abrégé pour les règles horizontales. Cela met une petite ligne là sur savez-vous, un peu de séparation et puis nous avons ou créer un bouton et puis je peux faire défiler et puis nous avons ou éditer sur la suppression et les détails. Donc d'abord, ils vont juste copier la classe. La directive de classe. Cela signifie que le bouton du lien ressemble à un bouton. Donc, je vais juste accélérer que dans chacun d'eux puis, Sur la base de l'opération, nous pouvons changer la couleur. Donc oui, primaire. Mais peut-être que je vais mettre un avertissement parce que je veux qu'Eddie soit orange. Je veux des détails. Peut-être pour être un succès. Vert. D' accord, en fait, je vais le retourner. Je vais partir, nous battre primaire, et puis je vais changer, créer le succès des orteils. Donc, créer va être un bouton vert avec un signe plus, et ce sera des détails d'avertissement. Ce primaire et supprimer va être un danger, ce qui serait un bouton rouge. Donc, si je veux dire ces changements rapidement, économiser sur juste faire une re rapide fraîche juste pour voir ce qui se passe. Que nous devrions les voir ressembler à des boutons. Bon, on y va. Donc, nous avons tout il détails supprimer sous le bouton de création vert qui dans la texture sur Behar sur les règles. Donc, tu sais, je veux dire, c'est mon petit style. C' est moi qui garde les choses simples. Vous pouvez avoir d'autres idées, sorte que vous pouvez personnaliser votre application et utiliser vos propres couleurs comme bon vous semble. Mais si vous comprenez ce qui se passe jusqu'à présent, alors vous êtes sur la bonne voie. Donc, pour l'édition, je vais utiliser un crayon quelque part pour retourner financer. Génial sur. Alors je vais chercher quelque chose comme un crayon. Peut-être que si je tapais le mot, ils auraient quelque chose pour moi. D' accord. Donc, j'ai juste tapé le mot edit, et ils m'ont donné un tas d'icônes qui suggèrent d'éditer. Donc, je vais utiliser un simple crayon. Donc, cette utilisation crayon, je peux cliquer dessus. J' ai le même contact visuel avec une classe différente cette fois. Un pour le crayon. Andi, je vais aux pieds. Ajoutez ceci au bouton d'édition sont activés, puis pour plus de détails. Je vais utiliser un dans son intégralité. Je peux. Alors je reviens, puis je vois en quatre. Donc, je cherche dans quatre heures. Puis ils me donnent des infos. Donc, je veux dire, vous pouvez aller et venir, et venir et rapide et copier et coller. Ou vous pouvez simplement réaliser que quel que soit le nom qu'ils vous donnent, c'est essentiellement le nom de la classe. Donc je connais cette info si je veux que ça soit simple en quatre. Je veux des infos, un bureau, un cercle. Donc, pour entrer en avant, affirmez que peut réutiliser le même Doug que j'ai Effie sur. Ensuite, j'ai Effie Dash dans un cercle de quatre tirets. D' accord. Sur le cercle Espo, Cercle incorrect. D' accord. À ce moment-là, pour le danger. Je vais simplement insérer ou surfer ou supprimer. Je vais insérer une autre fois, et je pense que pour supprimer sont je pense qu'ils ont une icône appelée corbeille. S' ils ne le font pas, alors on a laissé le pied. Retournez sur. Confirmé que je vais aussi prendre tous ces bars. Alors, les barres, laisse-moi faire la boîte. Vous pouvez voir ce que je veux dire par les barreaux. Ce sont les barres. Ces lignes sont des tuyaux que certains appellent l'impact. Donc je les retire de l'écran. Donc, nous avons éditer les détails sur chacun, a son icône tout sur un espace sur. Alors j'économise sur. Ensuite, je vais y retourner et vérifier si ce que nous faisons fonctionne. Très bien, donc nous voyons ici que l'édition a un détail de crayon car j'appelle et supprime a la corbeille . D' accord. Mais alors, je ne sais pas, peut-être que les boutons ont l'air un peu verbeux pour moi. Donc, je pense qu'une utilisation typique s'ils voient le crayon et l'orange, ils déduiront probablement que c'est à elle. S' ils voient juste le je suppose probablement qu'ils voient plus d'informations. Et s'ils voient la corbeille, cela implique la suppression, surtout compte tenu du codage couleur de chaque bouton. Donc je vais juste modifier la médecine des orteils parce que je n'aime pas les mots là-bas, et je vais juste laisser l'icône. Alors je vais retourner dans mon oncle remorquer. Je vais juste briser la ligne pour que vous puissiez voir exactement ce qui se passe à l'intérieur de mon oncle remorqueurs. Donc je mets juste une étiquette de cheville et je prends tout le mot supprimer de mon orange . Mais l'ancien éditeur sur alors pour les détails que je prends sur les détails du monde sur je suis juste en utilisant l'icône pour des informations sur puis juste de la même façon que je veux prendre tout le mot supprimer sur le bouton rouge sur. J' utilise juste la poubelle. Donc je veux dire, encore une fois, votre propre style va entrer et vous pouvez le personnaliser comme vous le souhaitez. Mais c'est ainsi que je veux mon discours d'index. On dirait que je vois ça. Et puis je vais rafraîchir une fois de plus l'art, et là ça a l'air un peu plus propre. Et donc nous avons juste le crayon, les infos et supprimer Andi. Je veux dire, cette colonne avait un religieux avoir des mots. Je vais juste mettre les tâches de titre là. Donc pour les actions, oui, ce sera de l'action. Donc, pour mettre ce hit de titre, rappelez-vous que nous avions dans la table, nous avions les en-têtes de table et nous avions le nom d'affichage pour le nom où la date a été créée, puis où ce vide sur ce vide représenté sur MT. Table tête hors pour la colonne avec les actions que je suis littéralement juste aller orteils étaient au mot actions sur alors qui serait genre complète les changements que nous faisons. Et on y va. Donc je vais partir avec une suggestion. Donc, lorsque nous configurons la table de données et que nous définissons la table de données Section 4 de script, s'il vous plaît sachez que chaque fois que nous avons un pitch d'index parce que chaque fois que nous effectuons des opérations de corsage pour une classe de données particulière, notre table nous allons terminer haut avec la mer et quatre vues Tout l'indice de temps créer des détails sur l'a-t-il ? Non, Cela signifie que chaque fois que vous allez probablement vouloir que la table de données soit sur discours d' index rendus à ce moment-là. La façon dont nous l'avons fait ici, c'est que vous allez devoir le faire chaque fois que vous avez un discours d'index . Maintenant, ce que vous pourriez faire est dans le fichier Js. Donc, dans notre mise en page, Page faisait déjà référence au fichier Js que nous aurions obtenu en tant que partie du modèle sur qui est à l'intérieur de w w root Js sur le site que Js vous pourriez mettre la cour javascript ici sur. Ensuite, vous pourriez être assez discipliné pour savoir qu'une fois que vous êtes, vous savez, vous avez un discours d'index, et que vous voulez que quelque chose soit une table de données que vous appelez. Je dirais DT pour les données. Désolé. Données tibiales. Non, le côté inférieur possible est que vous ne pouvez avoir qu'un seul élément à ce moment-là avec une idée. Donc, si vous avez plusieurs tables sur la même page que vous voulez être la table de données de la table Evita Désolé, alors vous allez devoir modifier la cible de remorquage de cordon, chacune d'entre elles va de l'avant. Cependant, je peux écrire ce script une fois, et je vais juste enseigner cette section sur, mettre à l'intérieur hors site dot gs une fois pour que je puisse l'écrire une fois et ensuite être assez discipliné pour savoir que chaque fois que j'ai un je vais m'assurer que je donne à la table le i d t b un plus tard afin qu'un côté Jesse inclus, ce qui sera toujours parce que c'est dans la page de mise en page de toute façon, alors cette table avec ce i d sera automatiquement une table de données. Donc j'ai juste fait ce changement, et puis je vais juste me rafraîchir sur le spectacle que c'était toujours le travail. Très bien, donc les rafraîchissements ne le font pas et nous avons encore ou table de données. Et cette fois, je déplace la cour directement à l'intérieur de l'orteil de vue sont le fichier JavaScript qui est référencé par le pas bas laïc. Je me souviens des pages de mise en page qui régissent vraiment tout ce que nous voyons au moins juste ? Non. Donc c'est tout pour les modifications à ces deux vues Sont ces quelques vues que je pourrais profiter de cette occasion pour vous dire que lorsque nous allons à la page de création sur, nous voyons qu'il prend déjà une partie de la page si vous vouliez qu'il prenne plus ou tout de la douleur. Donc, vous voyez que la page s'étend vraiment de cette marge, orteil cette marge vers la droite, accord, donc vous pouvez utiliser cette ligne pour décaler la jauge où elle commence et s'arrête. Mais alors cela ne prend qu'une partie de l'espace. Donc, en fait, ce qui se passe, c'est que dans le créatif toi et moi allons juste le trouver rapidement. Les types de laisser créer il utilise un appel de classe diff. MD quatre. Ainsi, dans bootstrap, vous pouvez définir la largeur de votre page entière en utilisant cet appel directive ou classe MD. Plutôt. Donc si je voulais qu'il prenne ça va d'un orteil. 12. Désolé. Ah, ouais, 12 ans. Donc je prends un avant. C' est ce que je troisième de l'espace potentiel. Si je l'augmente sur mourir, économisez, économisez, alors je retourne juste en arrière et me rafraîchir. Ensuite, vous voyez que tout le contenu prend plus de place. D' accord, on. On y va. Donc, ce n'est pas l'enlever des 12 colonnes potentielles. Cela signifie entre l'endroit où la zone de texte et les boutons s'arrêtent à droite. La plus grande marge qui était de 12 espèces sur le pétrole. Quatre espaces plutôt sur comptabilisés ne sont pas pris en compte. Donc, les gens qui ont des formes que civière à la croix Parfois, ils ne appellent juste MD 12 ou parfois logistique qui donnent. Ils ne dérangent pas les orteils spécifient et un bas les contrôles pour simplement sentir l'espace entier. Donc je le change à 12 et on voit qu'il remplit tout l'espace. Andi, j'ai dit que Bt et les blocs du bouton remplissent tout l'espace. Non, nos liens de liste de bataille semblent toujours morts. Je vous mets au défi de finaliser façon créative de mettre en place vos liens de bataille dans l'intérieur vues individuelles pour créer des détails d'édition sur ce que les leaders qui ont une vue plus. Mais je vous mets au défi de trouver une belle façon créative orteil représenter la liste de bataille sur n'importe quel autre lien qui pourrait sembler clair. 22. Réviser et ajouter des modifications à GitHub: Hé, les gars, dans cette leçon, nous allons vérifier nos changements dans notre contrôle de la source. Mais avant d'entrer dans cela, je veux juste résumer ce que nous n'avons pas fait la leçon précédente, qui est où nous avons modifié les liens pour regarder, vous savez, un peu plus vif à quelque part couleur des pages sur Guy vous a laissé avec un réellement entrer certains styles dans le remorquage. Les boutons et, vous savez, être créatif. J' ai donc pris le défi moi-même, mais je n'ai pas fait trop. Tout ce que j'ai fait était bien pour la page Modifier. J' ai ajouté du style. Un battement a commencé à revenir à la liste sur cette plage dans le style serait Bt et Dash décrit tableau de bord secondaire. Donc, si vous vouliez plus de références pour les étoiles de boutons et ce qui est possible, alors vous pouvez toujours vérifier toutes les sections de boutons de notre documentation de bootstrap. Donc, il y a des points bootstrap sur com, alors vous savez, dans la documentation, il suffit de chercher des composants sur les boutons directement sur. Donc, ils vous montrent chacun de vos options. Vous avez Andi secondaire primaire chaque tandis que le nom dans chaque bordure est fondamentalement la classe et la couleur que vous pouvez attendre. Donc, vous avez en quatre différent de primaire. Donc, en fait, j'aurais pu utiliser ou aurait dû utiliser des informations à la place hors primaire pour les détails . Donc je vais juste me voir ce changement rapidement. Donc c'est quelque chose que j'ai embauché du changement pour moi. Donc, tout ce que je dois faire pour les détails au lieu de dire beaty et primaire S A Bt et dash info sur DSO, il est boucher rend facile à cette couleur d'annonce et puis ils ont un autre ensemble où ils disent contours vendus. Vous obtenez le contour des couleurs et vous voyez le bouton complet lorsque vous survolez. C' est ce que j'ai fait pour mon dos. Mais je l'ai fait en ligne et vous obtenez une couleur quand vous survolez. Carte. Je l'ai fait pour ça. Je l'ai fait pour plus de détails. Aussi sur Di l'a fait pour traiter, mais et quatre créer. J' ai eu le bouton pour créer comme Bt et Block. Donc je viens juste de faire une liste, battant aussi bloc et je vois qu'ils ont juste pris plus d'espace, vous savez, vous savez, plein avec hors de l'une ou l'autre ligne. Donc ce sont les changements que je vous ai fait problème. Huit autres changements et j'ai hâte de voir ce que tu as fait. Mais l'objectif de cette vidéo est de vérifier nos changements. Non, Comme nous avons été le long depuis que nous avons ajouté ou projeté pour le contrôle de la source avec chaque père que nous avons modifié, vous avez remarqué qu'il y a une tiques rouges. Donc, certains ont des cadenas et d'autres ont des hérétiques. Le cadenas signifie qu'il a été activé n'a pas été modifié depuis la dernière version qui a été ajoutée au contrôle source. Le Reddick veut dire qu'il a été voulu. Donc, si vous venez de planer, vous voyez se terminer à elle. Cela signifie que certains éditeurs créés sur elle sont en attente d'une vérification dans le dépôt. Il n'a pas été enregistré dans le contrôle source en tant que fichier modifié. Donc, en d'autres termes, si je devais perdre ce projet en ce moment, si mon projet si Michel Butor désolé, écrasé, alors tout ce que j'aurais fini que tout avec une tique rouge aurait été perdus sont ces changements seraient perdus parce que je sens de les vérifier dans le contrôle de la source. Donc ce sont ceux qui hérétiques. Vous remarquerez également certains avec des avantages verts. Et ceux qui voient en attente à So. Le signe plus est que depuis la dernière version du projet. Ce fichier a été ajouté. Quoi ? J' ai été modifié ou pas. Je veux dire, il a été ajouté. Je ne sais rien de ce dossier. Donc, le mécanisme de suivi local sur l'ordinateur, qui est le moteur get que nous aurions mis en place initialement ce mécanisme de suivi local voit que je connais la version précédente du projet. Sur ceux-ci sont le changement que vous avez moi. Vous devez me laisser les stocker pour que si vous devez récupérer votre jeûne de moi, j'ai des dossiers sur eux. Donc, comme je l'ai dit, si je devais tout perdre en ce moment, tout avec un hérétique et chaque plus vert serait perdu. Ensuite, je devais aller récupérer la version qui a été vérifiée pour la dernière fois dans le contrôle de la source . Donc, dans cette vidéo, je vais juste vérifier ou changer. Nous avons apporté un certain nombre de changements. Nous avons ajouté des opérations de foule pour nos types de secours. Sur nous avons ajouté des modèles de vue. Nous avons ajouté Autumn Oper. Nous changeons quelques interfaces et ajoutons de nouveaux fichiers en cours de route. Et non, on doit s'enregistrer, alors vérifiez. Je peux distraire les solutions. Rappelez-vous que la solution est au sommet de l'arbre, l'Irak, la solution sur. Ensuite, je vais voir commit bien que l'écran de la comète va me dire qu'ils sont 18 Changements dépenser Tout droit sur. Alors ils demandent un message. Non, le message doit être descriptif pour deux raisons. Si je développe cela par moi-même, quand je commet un changement, vous savez le cordon. Je veux me rappeler ce qui a été fait dans cette version que j'ajoute au contrôle de la source. Cela a un double but. Parce que non, si je travaille dans une équipe, alors quelqu'un qui vient après que j'ai commis un tribunal peut regarder mon message d'engagement et déduire le genre de travail que je viens de mettre sur ce que c'est. Je suis en train de vérifier. Donc, dans cette section, vous savez, ils en ont vraiment besoin. Et j'ai dit juste que tu étais descriptif. Donc, je vais voir que j'ai laissé des dépôts de type. Andi a ajouté. Peter tables, Onda fonds des icônes impressionnantes. Bon, pour que je pense que ça résume tout ce qu'on a fait. Nous avons ajouté des dépôts. Oh, et je vais dire et grossier donc nous avons ajouté, laisser les dépôts de type et brut sur une table de données sur les icônes de fonds génial. Maintenant, quand tu cliques sur Comète, ça va la comète des orteils. Localement, ça ne va pas le pousser à se lever. Ça va commencer localement, donc pour tout faire. Une fois, j'utilise juste la flèche vers le bas et je dis Commit tout et couler donc je vais le faire localement. Effectuez toutes les modifications ici sur. Ensuite, vous vous connecterez pour obtenir de l'espoir sur. Ensuite, poussez tous les changements pour obtenir de l'art. Et une fois que cela est fait, vous devriez voir synchroniser avec succès les paiements entrants et sortants. Donc, il fait deux choses. Il effectue une synchronisation où si vous vérifiez au tribunal après que quelqu'un d'autre l'a fait , alors il ne chargera pas la dernière version qui est dans le contrôle source sur, puis à vos modifications. Donc, il sorte de s'assurer que c'est que s'assure qu'il y a la parité dans le cordon en tout temps et dans votre cour. Donc, encore une fois dans un scénario d'équipe, lorsque plusieurs personnes font des modifications à la même application, une fois que vous faites cette synchronisation, il pousse les changements d'air, ne charge pas les changements d'autres personnes Donc, à ce point, si quelqu'un d'autre faisait des changements sur la construction d'un autre modèle Autumn pendant que je traitais ces types, une fois que j'ai fait cette synchronisation, alors j'aurais leurs changements qu'ils auraient. Mes changements sont donc je suis allé pour obtenir le haut, et je suis juste très bien que les changements que j'ai faits sont présents sur. Vous pouvez voir et laisser la gestion dans le dossier. Je vais voir le message de comète ajouté type de congé. Donc, si vous tombez dessus. Mais c'est le dernier commit, qui a été fait il y a une minute. On peut toujours voir l'histoire. Tout le comité que vous voyez, c'est six engagements en tout. Si je clique sur six commits, alors cela me montrera l'historique de tout ce que j'ai fait. J' ai fait quelques fichiers de projet que j'ai créés le lisez-moi sur le dernier ou le plus récent. Un que j'ai fait était toujours d'ajouter les dépôts de type congé. Le dernier que je viens de faire sur elle a également fusionné la marque afin que je puisse regarder les branches dans une autre conférence. Je ne veux pas que les orteils entrent dans les branches dans ce particulier à Tora, mais à la fin de la journée, nous avons vérifié dans notre source marqué pour se lever sur. Notre équipe a accès au cordon s'ils en ont besoin. 23. Aperçu de l'authentification ASP.Net Core Core Authentication: Hé, les gars, bienvenue à nouveau. Écoutez, nous allons faire une visite de SP .net Cores Identity fonctionnalités ce que je dis. Fonctionnalités d'identité Identité est l'ensemble de fonctionnalités ou la bibliothèque qu'une vitesse sur son noyau utilise pour gérer l'authentification ? Utilisateurs d'Andi Jusqu'à présent dans notre application, nous avons fait un peu de travail. Nous avons mis en place les mises en page dans une certaine mesure. Nous avons mis dans le football quelques fonctionnalités de foule pour les types de secours où nous pouvons ajouter des types de congés. Supprimer les types de congé, les modifier. Onda les examine. Non, je suis sûr que vous êtes probablement sur le point de recevoir ces leçons et de penser, Eh bien, je suis sûr que dans un système de gestion des congés, ce ne serait pas si ouvert pour quelqu'un d'être capable d'entrer et de gérer le type de feuille. Quelque chose comme les types de congé devraient être réservés pour peut-être un utilisateur admin et les noix Mimi sont des utilisateurs réguliers de la même manière. Nous avons l'intention de mettre en place des fonctionnalités, demander un congé et, par extension, par extension, gérer les demandes de congé, ce qui signifie les approuver ou les rejeter. En outre, les employés gérés et ces fonctionnalités suggèrent en quelque sorte que les utilisateurs doivent être dans différentes catégories, non ? Quelqu' un doit être capable d'une journalisation, ce qui signifie que sur un concours qui existe quelque part pour eux de mettre mon nom d'utilisateur sur le mot de passe et de réellement s'authentifier contre ce que nous savons. Donc, ce que nous saurions est ce qui est dans la base de données les informations pour n'importe quel utilisateur donné dans la base de données. Quelqu' un entre et met l'information, puis nous vérifions que les informations qu'il a fournies sont correctes. Ensuite, nous leur accordons l'accès, que ce soit à l'ensemble de l'application ou à certains aspects hors de l'application. Donc, dans cette vidéo, nous allons passer en revue ce qu'il faut pour réellement configurer la fonctionnalité de connexion, permettant aux gens de s'inscrire dans notre application grand, leur permettant effectivement d'accéder à l'application ou de la rejeter. Non. Lorsque nous avons créé cette application, nous avions indiqué que nous voulions la créer avec des cônes utilisateur individuels. Support sur DSO parce que nous avons sélectionné ces options dans notre menu principal dans ou assez barre. Avant de commencer à mettre d'autres liens, nous avons remarqué que nous avions un journal dans Link Onda Register Ling. D' accord, donc ils nous ont donné le mensonge le cadre sous-jacent pour que cela se produise et donc la fonctionnalité est là une chose que nous devions faire était d'exécuter une migration initiale, qui est l'endroit où nous avons réellement déployé les tables qui étaient nécessaires pour cette prendre en charge. Donc, vous savez, avant non, peut-être qu'on aurait eu un orteil. Et quand je dis avant, non, Dans les versions précédentes hors framework dotnet sur la programmation dotnet dwell et dans la plupart des autres applications, vous devez réellement vous asseoir et construire vos tables utilisateur et, vous Tu sais, habille toutes ces choses. Ce qui s'est passé, c'est qu'ils nous ont donné le cadre. Donc nous avons juste dû exécuter quelques commandes sur elles ont été créées pour nous, et nous pouvons en tirer parti. Ensuite, ils ont un certain nombre de fonctionnalités pour des raisons de sécurité et que nous pouvons tirer parti, en plus d'améliorer comme nous le jugeons bon. Mais alors le fait est que c'est un système de connexion assez robuste qu'ils nous donnent hors de la boîte, et nous voulons juste avoir une meilleure compréhension de cela avant de commencer à modifier. Maintenant, retour dans Visual Studio, je suis allé à mon explorateur d'objets SQL Server sur. N' oubliez pas que si vous ne voyez pas cette douleur nulle part, vous pouvez toujours cliquer sur Afficher. Ensuite, vous seriez en mesure de le sélectionner à partir de la vue, et ensuite vous pouvez le faire glisser orteil n'importe quelle section de la fenêtre de Visual Studio, vous vous sentez plus à l'aise avec elle étant que je l'aime au feu gauche. Donc, je vais juste faire noir. C' est de ce côté, Andi. Je suis allé dans SQL Server que dans mes locaux. Slash db local m s instance de base de données SQL Sur base de données Laissez la gestion comme c'est le nom de pour base de données sur. Ensuite, je vous montre juste qu'il y a un nombre de tables off ici avec le nom SP qui point net ou plutôt le il fait semblant que les noms des tables sont prétendus avec s être prochain. Très bien, donc tout cela aurait été inclus dans cet exercice de migration initial où nous avons scufflé sur les tables de base de données pour commencer. Maintenant, toutes les tables jouent une certaine forme de rôle dans la gestion de nos utilisateurs. Donc, je suis sûr que vous pouvez déduire que s utilisateurs P Net est l'endroit où les utilisateurs sont stockés sur Si nous développons cela et regardons simplement les colonnes, vous voyez que nous avons un I D. qui identifie de manière unique n'importe quel utilisateur. J' utilise le nom et l'adresse e-mail sur Nous avons le mot de passe hush sur le numéro de téléphone. Et puis, lorsque nous construisions nos modèles, nous avons créé un modèle d'employé qui héritait de la classe d'utilisateurs réseau SB sous-jacente sur. Nous l'avons étendu en ajoutant un peu plus de fusible que nous jugeons nécessaire pour notre système. Mais le fait est, hors de la boîte, nous avons obtenu de discriminateur orteil I d ou de I D pour discriminer. Bien que l'échelle standard avec nos bibliothèques d'identité, nous avons également SP net roll. Donc, la table des règles à peu près l'histoire. Le nom, um et va normaliser le nom et je d sur d d'autres données. Donc, ce qui est vraiment important est le nom et je me déplace en disant que c'est le plus important entre Ayman Nom normalisé parce que c'est le nom hors de la règle est un administrateur ou est-ce un rôle d'employé ? C' est un superviseur ? Ou, vous savez, différentes applications ont des niveaux différents en dehors des utilisateurs, et c'est ce que nous appelons des règles. Ainsi, les règles elles-mêmes sont stockées dans cette table, car vous ne voulez pas créer d'utilisateur puis attribuer une règle. Et peut-être que vous épelez administrateur actuellement à cette occasion, et puis vous vous retrouvez avec la même règle avec des variations différentes. Donc nous commençons juste surgi une fois sur. Ensuite, nous avons une autre table importante appelée est être des règles utilisateur net. Donc c'est, si vous savez, base de données bien. C' est une relation beaucoup à beaucoup parce que vous avez beaucoup d'utilisateurs sur. De nombreux utilisateurs peuvent incarner de nombreuses règles car vous pouvez avoir sur un administrateur qui est également un employé, sorte qu'ils devraient avoir plus d'une règle. Donc, pour éviter toute duplication dans l'une ou l'autre de ces tables, ils ont créé une autre table qui rencontre, euh, peu à mi-chemin, qui est l'ESPN. C' est le rôle de l'utilisateur stable, où il stocke l'utilisateur i D et l'idée de rôle. En d'autres termes, si je suis un utilisateur sur je suis un employé et les employés rôle I D alors l'enregistrement est utilisateur net . Rose va ressembler à l'utilisateur I d. Un avec la règle I d à. Si vous êtes peut-être un superviseur sur l'administrateur des armes à feu, alors vous allez avoir deux entrées dans l'idée d'utilisateur et leur I.D. I.D. était cinq. Donc, nous sommes sortis 5 à 1, qui est administré et cinq orteils trois, qui est superviseur. Quoi qu'il en soit, c'est là que nous créons l'association entre je l'utilisateur Andi, il est Onda. Pour cette vidéo, ce sont les trois. Plus important encore, c'était sous trois tables sur lesquelles je vais me concentrer pendant que nous comprenons exactement comment les authentifications utilisateur fonctionnent, pas revenir à notre application. Notre première expérience est toujours de créer un utilisateur, Donc, quand nous parlons de créer un utilisateur, c'est vraiment l'enregistrement. Vous allez sur facebook dot com pour la première fois. Vous voulez enregistrer votre création littéralement. J' utilise un enregistrement à l'intérieur du registre de Facebook si littéralement, quand vous allez à Facebook et un type qui forme et cliquez sur vous inscrire, tout ce qu'ils ont fait était de rester cette information de l'écran, mettre dans une base de données comme celle que je viens de montrer . Vous le mettez dans un utilisateur stable sur. Ensuite, ils sont faibles vous pour vous connecter, et chaque fois que vous mettez votre nom d'utilisateur que vous avez spécifié et ce mot de passe, tout ce qu'ils font est de rester cette information et de vérifier s'il y a un enregistrement dans l'utilisateur stable qui en fait, que j'utilise le nom qui ressemble de cette façon, Ana Pastor, qui ressemble comme ça. Ils vous disent oui, c'est correct. Voici les informations. C' est incorrect. S' il te plaît, Dragon, c'est littéralement tout ce qui se passe sur DSO. Une vitesse sur elle le rend juste si facile pour que je puisse littéralement aller orteil enregistrer sur. Je peux fournir une adresse e-mail et je vais utiliser Ah, une adresse e-mail légitime, quelqu'un pour en mettre une sur mes adresses électroniques moins utilisées. Et je vais mettre un mot de passe. Donc le mot de passe que je mets est le mot mot de passe. Et puis je suis allé à Click Register. Donc, quand je clique sur m'inscrire correctement, c'est donc spécifier que mon mot de passe doit répondre à certaines normes, et c'est très bien. Nous pouvons être les standards donc hors de la boîte. Vous voyez qu'ils nous disent en quelque sorte la force de mot de passe qui est requise. Donc la force des postures qu'ils disent que je dois sur ces un maïs non Mary non alphanumérique. Donc, en d'autres termes, je dois avoir une majuscule. un Je dois avoiruncaractère qui n'est pas un chiffre ou, ah, où est notre lettre ? Donc je vais mettre le signe pour, vous savez mot de passe s W O R d Andi. Ils ont dit que j'avais besoin d'un numéro, alors je vais en mettre un. Donc c'est un P majuscule au panneau. S S W O R D un. Je ne veux pas réessayer. D' accord, alors il passe à une page appelée Confirmation du registre et ensuite ils nous donnent un petit message disant que nous n'avons pas vraiment d'expéditeur de courrier électronique enregistré, donc vous pouvez lire les docks de Seo pour le configurer, qui sera fait plus tard. Mais normalement, ce serait un e-mail, mais ils nous donnent Ah, comme un féroce un sentiment donc en anglais standard. Dans le cas où cela ne signifie pas grand-chose pour vous lorsque vous êtes en train de signer pour la plupart des sites Web ces jours-ci , ils ne peuvent pas voir la paix. Vérifiez votre adresse e-mail pour confirmer votre identité. Lorsque vous allez à l'e-mail, voyez généralement un e-mail de leur part. Où était le lien sacré ? Alors vous êtes officiellement enregistré. C' est tout ce qu'ils disent. Que nous avons besoin de configurer quelque chose qui va réellement déclencher un e-mail qui fait quelque chose comme ça. Mais en attendant, voici le lien que vous auriez obtenu dans l'EMEA de toute façon. Une fois de plus, nous pouvons le faire. C' est un jour plus tard. Mais continuons simplement avec la confirmation ou l'enregistrement. Donc, nous cliquons ici pour confirmer. Puis ils disent OK, confirmez l'email. Alors ? Donc, je suis retourné à ma page d'accueil et non, je peux essayer de me connecter. Donc, quand je clique sur brancher, je vais mettre dans l'e-mail que je viens d'utiliser sur le mot de passe, qui est p au signe. Désolée. Capital P à l'extérieur S O R d un. Dans le cas où il y a dans le même mot de passe que moi sur. Ensuite, je viens de cliquer sur connexion puis vous voyez qui ont été aimés être et remarquez que non, le texte dans le ici qui dit se connecter et enregistrer Non change le bonjour ? Quelque chose, qui est mon adresse e-mail. Andi, ils ont un bouton logo. Donc, si je clique sur longboats évident que je mettrais fin à la session. Mais juste en étant ici, ils savent que je ne suis pas connecté. Maintenant, je vais retourner dans Visual Studio, retourner dans notre base de données et je vais vous montrer les changements qui se sont produits quand nous avons fait ce processus d'inscription. Donc, dans les utilisateurs d'arachide s comprendre à droite, Cliquez sur cette table et puis je vais vous enregistrer des données. Et puis cela, Lords, ce PN de données montrant toutes les données dans la base de données et en particulier tous les utilisateurs dans la base de données depuis les utilisateurs SB Net de stocker les informations de l'utilisateur sur Si vous faites attention , vous remarquez que le premier vrai a réellement dans les informations pour cet utilisateur vient de créer le nom d'utilisateur est Lone Crusader 1989 à Gmail ou le même e-mail que j'ai tapé. Normalisation normalisée signifie généralement qu'ils apportent dans le remorquage une norme. Donc, si vous l'avez écrit dans des cas mixtes, ils vont tout faire en majuscules, vous savez, vous savez, tout comme je me sens en sécurité au cas où, euh, vous savez, différentes personnes taperaient certains des bits d'information différemment. Donc, là, en normalisant son à une norme pour réduire les erreurs. Um, l'adresse e-mail est la même qui la normalisent pour que vous puissiez regarder à travers tout ça, voyez-vous, email confirmé est vrai. Donc, quand nous n'avons pas cliqué sur le lien, cela aurait été tombe sur. Tant que c'est pour nous, cet utilisateur ne pourrait pas se connecter. Mais alors, parce que nous cliquons sur le lien ou sur une situation normale, L'e-mail aurait été envoyé orteil la partie d'enregistrement sur. Ensuite, ils penseraient que l'e-mail il changerait alors ce drapeau à true. Donc, tout cela est construit dans son propre hors de la boîte sur littéralement. C' est tout ce que ces grandes entreprises avec des systèmes d'enregistrement qui semble si avancé et robuste, lui demandant de confirmer e-mail. C' est tout ce qu'ils font. Ils ont, ah flaguer sur vous. Cliquez sur ce lien. Ce drapeau n'est pas changé. Donc quand tu essaies de te connecter, ils disent, garçon, tu dois changer ce drapeau. Bon, donc nous avons un email Confirmé est vrai. Nous avons ce que vous appelez un mot de passe a et comprend pour développer cette colonne, et nous allons passer du temps à examiner les valeurs qui y sont contenues. Alors rappelez-vous que mon mot de passe était en majuscule P au signe S S W o R d un qui est en anglais ou quelle que soit la langue dans laquelle nous sommes. Mais c'était sur Avenue, une combinaison de lettres, un chiffre et un caractère. Non, regardez ce qui est stocké dans notre base de données. Un. Vous ne devriez jamais stocker les mots de passe en texte brut. C' est dangereux parce que si quelqu'un a accès à la base de données et a vu votre mot de passe juste Louis pour dire le mot vrai, il pourrait juste voir votre mot de passe, alors c'est un risque clair pour la sécurité. Ils savent qu'ils ont assez d'informations pour aller de l'avant et accéder à vos cônes. Donc, chaque fois que vous stockez des mots de passe et que cela est universel pour tout système ou tout développement bloqué que vous utilisez, créez toujours ce que nous appelons un silence. Maintenant, hors de l'emballage, le cadre d'identité Oh, sont mis en place des bibliothèques. Cette fonctionnalité a effectivement masqué le mot de passe de sorte que vous n'avez pas à faire beaucoup plus de travail après avoir demandé à la personne pour le postured, peut-être appliquer une norme. Mais alors le stockage de celui-ci est pris en charge par la fonctionnalité. Très bien, donc ce silence vous ne pouvez jamais dire quel était mon mot de passe à l'origine en regardant ce bloc de texte qui se déplaçait là-bas. Autres colonnes qui sont pour cette vidéo, aux fins de cette vidéo. Moins important, garçon du système simultané de timbre de sécurité. Nous avons un numéro complet, heu, champ onder quand il n'a pas été confirmé. Donc, nous voyons quatre nombre et nombre complet confirmé chute. Alors cette scène que vous pourriez construire dans une fonctionnalité où vous envoyez un SMS au numéro quelque chose commence comme ce que certaines plates-formes de messagerie font. Hum, alors vous pouvez passer à autre chose et vous voyez que tous ces autres champs ne sont pas là vraiment savoir parce que, Eh bien, l'enregistrement utilisateur a été créé sur la base des informations qui ont été données sur la batterie. La ferme n'a pas demandé la date de naissance être jointe. Prénom, taxe sur le nom. Je sais assez que ce était nécessaire au moment de l'inscription. Donc, bien sûr, en modifiant notre application, nous pouvons soit exiger l'information en modifiant le formulaire en veillant à ce qu'elle soit soumise à la base de données. Ou nous pouvons, vous savez, mettre en place une interface que nous pouvons réellement, hum, demander cette information à une date ultérieure. Mais à la fin, hors d, nous voulons garder notre inscription simple pour ce système. Bien sûr, on regarde dans le trou. Nous pourrions le modifier plus tard, mais dans le but de cette liberté, vous voulez la garder simple ? Nous avons besoin est un nom d'utilisateur et un mot de passe ou une adresse e-mail et un mot de passe, et vous voyez ici qui ont été utilisés dans l'adresse e-mail comme nom d'utilisateur. Aussi, c'est aussi quelque chose que nous voudrions probablement modifier parce que j'utilise le nom Ne crie pas toujours le mot de passe. Désolé, j'utilise le nom parce qu'il glisse toujours e-mail. Nous voulons donc modifier ceci, que nous leur permettons d'entrer un nom d'utilisateur, entrer un e-mail sur un mot de passe, puis ils sont dans le système. Maintenant, si on clique sur bonjour. Si vous passez la souris sur le bloc de texte qui vous dit bonjour, vous remarquez que la main apparaît, ce qui suggère qu'elle est cliquable directement sur. Quand nous faisons cela, nous voyons que nous avons, ah, gérer sorte de tableau de bord, et vous voyez probablement un message disant Merci d'avoir confirmé votre email. C' est bon, mais tu verras tout ça. Et à partir de là, vous serez en mesure de voir le profil de l'utilisateur ou l'utilisateur qui fait du lobbying Plutôt peut voir leur profil. Ils peuvent consulter leur e-mail et probablement faire une mise à jour. Ils peuvent changer leur mot de passe en insérant le mot de passe actuel et en introduisant un nouveau. Il prend en charge deux facteurs. L' authentification, bien sûr, devrait le configurer correctement. Ensuite, ils vous permettent de visualiser les orteils, faire une sauvegarde de vos données personnelles et également de supprimer votre compte. Je vous montre tout ça parce qu'une fois de plus, toutes ces choses sont hors de la boîte. Tout ce que vous avez à faire est d'avoir une appréciation pour l'ensemble Ils travaillent sur, puis modifier. Mais la construction initiale qui fonctionne n'est pas là parce que Microsoft voit Obtenons ces petites choses que tout le monde veut sortir du chemin et se concentrer sur les choses qui comptent vraiment . Donc ils vous donnent ça hors de la boîte, et ils disent, d' accord, accord, eh bien, si vous avez besoin de modifier, alors allez-y. Non, nous avons regardé les vues, les modèles et les contrôleurs tout ce temps. Andi, je t'ai montré ça au tribunal. Si vous vouliez voir et comprendre de retour à Visual Studio, revenir à la solution que si nous voulions voir les contrôleurs que nous pourrions toujours aller voir le contrôleur sur le contrôleur a provoqué l'action. On sait quand il l'a causé. L' action d'index va rechercher l'index de vue sur. Ensuite, on va voir l'index. Nous devrions être assez à l'aise avec le concept hors que par non, Mais si vous jetez un oeil plus profond, vous remarquez qu'il n'y a pas de contrôleurs qui ont mentionné les utilisateurs. n'y a rien ici qui ait quelque chose à voir avec les utilisateurs. Pourtant, si nous regardons le lien, il suggère qu'il y a une section intitulée Identity on a Count et gérer si nous savons quelque chose d'autre que sur le Lincoln. D' autres vont à laisser le type, puisque c'est celui que nous avons construit quand nous disons que les types de congé slash vont chercher le contrôleur appelé types de feuilles. Si nous cliquons sur un lien comme si nous cliquons sur edit, alors nous savons qu'il cherche le contrôleur appelé Leaf Types, et il cherche l'action, appelé et puis cela passe le permis à. Donc, le fait est que sur la base du lien, nous pouvons régler les cotisations où exactement au tribunal, ces actions sont prises, donc je peux facilement trouver que Oh, ça appelle l'action Modifier, qui est mettre l'outil en marche. Ensuite, il retourne la vue que nous savons que nous pouvons trouver à l'intérieur du dossier de vues sur. On peut facilement le regarder. Non, encore une fois, le fait est que la structure d'identité n'est pas là où vous pouvez trouver les vues. Onda. Je peux passer du temps à le regarder. Oh, vous pouvez mettre la vidéo en pause et regarder à travers et me dire si vous les trouvez, mais ils ne sont pas aussi facilement identifiables sur. C' est parce qu'ils n'ont pas créé une structure comme cette structure de contrôleur de vue de modèle que nous créons. Ils ne l'ont pas fait pour les caractéristiques d'identité. Maintenant, vous pouvez être sur quelque chose si vous faites une pause, puis vous avez commencé à chercher vous-même. Et puis si vous êtes allé dans des zones sur des zones étendues, vous verrez qu'il y a un dossier ici appelé Identité sur. Puis l'identité à l'intérieur. Vous avez des pages, mais alors vous n'avez qu'une richesse payée de vous commencer, ce qui est seulement dire quelle mise en page il devrait utiliser. Vous pouvez avoir plusieurs mises en page, mais c'est quelque chose pour un autre jour. Mais le fait est que c'est tout ce que nous voyons suggérer qu'il y a une caractéristique d'identité quelque part. Donc je suis comme un dernier acte pour cette vidéo. On va construire de l'avoine. Toutes les pages ou autres ont des fournisseurs Visual Studio avec accès à toutes les pages qui sont utilisées à l'intérieur de la gestion des identités. Très bien, donc vous pouvez juste faire ces quelques étapes et ensuite vous avez toutes les pages et ensuite nous pouvons commencer nos formulaires de modification de magasin et toute notre logique fonctionne. Donc, tout d'abord, je vais orteil droit Cliquez sur les zones sur puis je vais cliquer. Ajoutez alors et vous ne le faites pas. Ce n'est pas forcément des époques, mais juste. Cliquez sur puis voir de nouveaux articles éraflés. vois, c'est ce que nous avons fait Controller, Tu ne cours pas cette fois, nous te faisons l'objet éraflé Donc nous clique sur nouvel article puis cela va nous demander ce que nous voulons vivre ? Et puis dans ce côté, nous verrons l'identité. Il vous suffit donc de cliquer sur l'identité, puis de cliquer sur. Ajouter alors va faire un peu de travail. Ensuite, ils nous donnent cette boîte de dialogue où il y a dire Ok, nous sommes sur le point d'ajouter l'identité Quelle FAZ voulez-vous afin que nous puissions sélectionner vous savez un par un lequel nous voulons sur une fois que nous les sélectionnons, alors ils nous seront fournis Mais alors je suis Je vais juste dire que je les veux tous Donc je vais juste cliquer sur override off vite Donc les fichiers sont implicites, pour ainsi dire et je vois implicite parce que nous n'avons pas de visibilité sur eux, donc ils sont implicites qu'ils sont là. Donc ils disent qu'ils veulent remplacer l'impliquer rapidement avec le jeûne physique. Donc je dis que c'est fini dans tous les dossiers. Donnez-moi une attaque rapide physique et voir sur modifier, comme je le souhaite. Ensuite, ils vont dire, OK, OK, quelle est la classe de contexte de données ? Nous savons que nous avons le contexte Application DB comme contexte. Russ sur. Ensuite, nous pouvons juste aller de l'avant et cliquer sur. Nous n'avons pas besoin de fournir d'autres informations sur. Ensuite, nous allons faire un peu plus de travail sont de sorte que pourrait avoir pris un certain temps. Mais une fois que c'est fait, vous obtenez cette belle salope avec un me lire, vous laissant savoir que le soutien a été ajouté. Andi, si vous avez besoin de faire d'autres choses, alors ils vous disent que vous pouvez ajouter ces lignes à votre fichier CS point de départ. Mais si je regarde dans mon début de ce fichier série et je verrais qu'ils sont déjà là, j'ai déjà mon approche d'une autorisation d'authentification. Toutes ces choses étaient là avant, donc ils te font savoir que tu peux le faire au cas où, non ? Mais nous l'avons déjà, donc nous pouvons simplement enlever ça et ensuite continuer. Maintenant, si nous regardons à notre gauche à l'intérieur des pages à l'intérieur de l'entité et des zones, alors nous verrons que nous avons un tas de nouveaux fichiers. Et si nous avons expliqué les comptes, nous voyons que nous avons beaucoup sur les nouveaux tarifs. Chacun de ces nouveaux incendies correspond à une vue que nous verrions lorsque vous faites une option liée à l'utilisateur sont des opérations liées à l'utilisateur. Donc, par exemple, nous avons fait une inscription. Sache juste. Donc, si je clique sur le registre, alors vous voyez qu'il vous donne le tribunal pour le formulaire d'inscription. Ils vous demandent l'e-mail, ils vous demandent le mot de passe, puis vous demandent de confirmer le mot de passe directement sur. C' est ce qui nous a donné ce formulaire d'inscription à l'époque. Une autre chose à noter est que nous n'avons toujours pas de contrôleur, donc vous vous demandez probablement, OK, donc je vois l'extrémité frontale ou voir le HTML et je vois sur le formulaire est, vous savez, être rendu. Que se passe-t-il après avoir cliqué sur Envoyer ? Alors rappelez-vous qu'avec nos modèles NBC, NBC Selon quand nous frappons, Soumettre il a causé, mais le contrôleur et ce que nous faisons après que vous cliquez sur soumettre, nous aurions spécifié à l'intérieur d'un contrôleur. y a toujours aucun contrôleur nulle part ici pour tout ce qui est lié à l'identité. Et c'est parce que ces vues utilisent donc les vues d'identité utilisent quelque chose appelé rasoir Pages. Donc, Onda, avec ça, je vais clore ce chapitre, et ensuite on pourra y plonger un peu plus. Mais je veux juste avoir une idée de ce qui se passe. Donc, nous avons notre registre que CS html. On sait que c'est une vue, non ? Et nous regardons et nous voyons ça. Mais si nous regardons de près, nous voyons qu'il ya ah correct à gauche, ou ceci est la flèche qui suggère qu'il ya quelque chose d'autre attaché orteil la vue. Donc, si je compare cela avec les vues que nous avons, donc je suis juste retourné dans mon dossier de vues sur je regarde les types de feuilles vues et vous remarquez que ces utilisateurs juste si vite, il n'y a pas de correct à gauche. n'y a rien d'autre. Ces vues ne correspondent qu'à ce qui est dans le contrôleur sont, Mais dans cette situation, cette vue, qui est le même front HTML et vous savez raisel front end. Il a en fait un fichier d'extension étendue C tranchant qui est en dessous. Donc, quand j'élargis et élargis quelqu'un de ces discours qui ont été générés, vous voyez qu'il y a un fichier C pointu en dessous. Donc si je vais dans le registre pas sensationnel, alors je vais commencer à voir un tribunal qui ressemblerait à ce que nous avons fait entre nos modèles où nous avons construit une classe. Donc cette année, j'ai une classe publique et je l'appelle modèle d'entrée sur. Je fais quelques propriétés avec certaines notations de données spécifient les validations. Andi, je fais aussi quelques fonctions où je vois se faire poser Onda. D' accord, donc encore une fois, je ne vais pas plonger dans les profondeurs. Je vous laisse juste savoir que quelle que soit la logique qui régit le comportement de la page d'enregistrement en dehors de l'extrémité frontale est en fait fait fait à l'intérieur du fichier CS point qui est joint au fichier de vue. Donc, dans la prochaine vidéo, nous allons aller de l'avant et modifier le registre sur le journal informe 24. Personnaliser la page et le processus d'inscription et le processus: Hé, les gars de cette vidéo vont passer l'enregistrement. Donc, dans notre vidéo précédente, nous sommes allés de l'avant et nous avons tout arraché sur les pages liées à l'identité. Nous avons également regardé la page de registre où nous avons vu que cette vue avait le formulaire ou ce fichier, qui est enregistré à CST Channel, était la vue qui avait le formulaire pour les importations de courriels et les mots de passe sur. Ensuite, nous avons remarqué qu'il avait aussi, comme, comme, un code derrière un fichier sous la forme d'un fichier C tranchant ou d'une classe C tranchant, que je nous charge pour contrôler le flux de l'application. Non, nous allons passer du temps et comprendre exactement se passe ici. Et puis on aura une meilleure compréhension. Tenez le travail des pages de rasoir. Donc ces air appelé pages rasoir, où le C Sharp Court est directement attaché au fichier quelques. Bon, alors allons-y section par section. Donc, nous savons que la section use est où nous incluons toutes nos bibliothèques. Nous ouvrons notre espace de noms, qui est notre projet. C' est la structure de dossier qui descend à la plus rapide que les époques pensée identité, pages sombres et vous voyez qu'il correspond qui sont CoNed sur. Ensuite, notre dossier est à l'intérieur de leur dossier de maïs. C' est l'espace des noms. J' ai une classe, et on l'appelle modèle de registre. Donc, par non, vous devriez être familier avec quand nous disons modèles nous entendons modèles de vue. Nous voulons dire que les classes qui sont conçus spécialement pour la vue particulaire sur la vue est conçu orteil interagissent avec les propriétés étant abandonnées sont servis directement par la classe en question ou le modèle de vue en question sur cette vue particulière modèle hérite de la classe basée sur ah appelée modèle de page. Donc modèle de page est intégré dans la vitesse sur un noyau sur notre classe dans cette situation hérite de lui, qui lui permet de certaines choses que nos modèles de vue régulière ont probablement pas fait . Ou nous n'avons pas eu la nécessité de le faire parce que nos fonctionnalités répandent plus l'avoine que dans la cour derrière pour la vue directe. D' accord, alors on va de l'avant et on en initialise un peu. Notre dépendance l'est, et nous connaissons déjà l'injection de dépendance. Donc, nous avons des dépendances sur parce que les gestionnaires d'utilisateurs de gestionnaire de signature. Donc, ces deux sont très clés pour nous aider à obtenir certaines fonctions orteil interagir avec la base de données utilisateur et les données utilisateur au fur et à mesure que vous allez. Nous avons l'enregistreur donc plus longtemps Il suffit de garder rayé de ce qui se passe À quel moment nous avons la suppression du centre de messagerie sur le constructeur de tournée, qui initialiser est chacun de ces dépendances est sur. Ensuite, nous passons à une propriété. Donc, nous voyons ici que nous sommes la propriété appelée modèle d'entrée. Andi Input modèle est une classe sur son entrée de propriétés, puis nous le voyons comme une annotation de données qui achète la propriété. Donc acheter une propriété dit essentiellement que si si quelque chose est dit dans la classe ou oui , nous avons le modèle, est-ce pas ? Donc, si quelque chose est qu'ils ont dit dans un modèle sur nous donnons la propriété d'achat, il donne fondamentalement la visibilité de la vue sur cette propriété. Donc, dans cette situation, nous disons à la vue qu'il devrait avoir de la visibilité sur une classe appelée entrée sur. Ensuite, si nous nous déplacons sur l'entrée est hors du type Désolé, un objet appelé entrée sur son hors du modèle d'entrée de type de classe. Sur nous avons un euro de retour, que je vais entrer dans le but hors éventuellement sur. Nous avons une liste des alternatives d'authentification sont la journalisation externe. Donc c'est si nous pouvons oublier, comme lié et Facebook et tous ceux que vous connaissez, Google. Toutes ces autres solutions d'authentification unique peuvent être intégrées, et nous pouvons les ajouter à une liste, mais nous n'y entrerons pas aujourd'hui. Donc, si je passe à autre chose, vous voyez que la chose suivante est l'implémentation ou la définition du modèle d'entrée. Donc, nous avons implémenté le modèle d'entrée implémenté ici, et il est implémenté dans le type dans le formulaire objet souvent appelé input shore. Mais alors la définition de notre modèle d'entrée de classe est écrit ci-dessous. Donc, le modèle d'entrée est une classe sur. Il a les propriétés qui sont désossés orteil la forme. Donc je vais à des os entre la forme sur le modèle, euh, loin être là. Donc, nous voyons que nous avons les propriétés, e-mail, e-mail, mot de passe et confirmer mot de passe. Vous voyez que chacun d'entre eux a une notations qui parlent des validations orteils qui doivent être effectuées. Donc, nous voyons que c'est nécessaire. L' e-mail est obligatoire. Il est supposé être une adresse e-mail ainsi validée en tant que telle. Ainsi, vous pouvez valider en fonction du type de données une adresse e-mail juste là. Vous pouvez voir que c'est censé être une adresse e-mail. Sur ça. On peut voir que le nom d'affichage est un génie. Je peux facilement changer, disons, adresse e-mail. Je ne veux pas afficher le nom pour être juste un e-mail. Donc, ce joli nom, rappelez-vous, est ce qui est affiché sur le formulaire comme l'étiquette de l'entrée pour n'importe quelle propriété il est défini pour ou au-dessus. Maintenant, si je retourne à mon fichier de vue et jette un coup d'oeil, je vais voir ici que j'ai la section pour l'e-mail dessus, car l'étiquette est avant d'entrer cet e-mail. Rappelez-vous donc que dans O. P, une fois que vous avez un modèle, nous pouvons accéder aux propriétés publiques en utilisant simplement l'opérateur point. Donc, j'ai entrée comme modèle ou nous avons le modèle d'entrée comme étape de classe, et ensuite nous avons la propriété. C' est l'os de la forme étant entrée. Donc, l'entrée est notre objet hors type modèle d'entrée, ce qui signifie que nous pouvons dire entrée que l'entrée e-mail que l'entrée pastored qui confirment le mot de passe sur nous pouvons faire tout cela sur le formulaire. Donc non, il dit que c'est l'étiquette de la propriété email à l'intérieur d'un objet de quatre entrées. Et je veux aussi une entrée pour cette propriété semblent aussi sur la validation. Et puis il fait la même chose pour le mot de passe et la même chose pour confirmer Posser, qui signifie que si nous devions ajouter plus à ce formulaire, tout cela pour dire que si vous vouliez ajouter plus à ce formulaire que nous devrions revenir arrière à notre modèle d'entrée sur ajouter des propriétés supplémentaires au formulaire pour obtenir plus de détails là-dedans. Donc je vais juste continuer, voir que peut-être sur quelle référence mes employés. N' oubliez pas nous avons des employés comme classe de données sur les employés. En outre, orteil toutes ces propriétés ici. En regardant en arrière, je vois ce qu'il nous faut d'autre. Alors peut-être que quand quelqu'un s'inscrit, je veux qu'ils indiquent au moins leur date de congé. Notre lemina l'a utilisé après ça. Utilisez leur impôt I d. Très bien, Donc, lorsque vous vous inscrivez, vous devez mettre dans votre adresse e-mail en mettant un mot de passe fiscal I d onda. D' accord, tu sais quoi ? Utilisons le prénom, le nom, puisque c'est assez commun. Donc nous voulons que le prénom sur le nom de famille soit éteint, quelqu'un qui s'inscrit quand il est au point d'inscription. Droit ? Donc, en utilisant simplement cet exemple, je vais revenir à inscrire SCS associationnel point c sur. Ensuite, je vais ajouter ces deux propriétés orteil le modèle d'entrée, donc je vais voir requis parce que j'exige que vous mettiez votre prénom. Andi. Je vais voir que le type de données attendu ici. Je ne suis pas sûr si la chaîne de type de données va être aussi stricte compte tenu du fait que les secondes qu'un type de données pointe, alors il listerait. Oh, le type de données sur lequel il prend en charge. Ils sont dedans. Euh, donc tu vois, il y a pas mal de Denham pour le temps de données que cela permettra, mais je pense que d'accord, il y a des bâtons pour que je puisse juste dire du texte pour spécifier que, vous savez, textes devrait être ce qui va dans ce champ quand il le valide sur. Ensuite, je peux définir un nom d'affichage. Donc, dire l'affichage sur le nom est égal à sur celui-ci sera le prénom. Bon, donc c'est mon 1er numéro. Donc, ce sont les notations de validation ou de détail qui vont passer dans la validation. Mais alors j'ai besoin de la propriété elle-même. Alors, c'est une chaîne d'accessoires. C' est le prénom, , à tort, et il parle aussi vite. Donc baignoire à cordes d'abord en personne. Entrez sur DSO Nous avons ajouté le prénom et l cette copie tout cela parce qu'il est bon d'être très similaire pour le nom de famille. Bien que le changement soit le nom d'affichage pour durer sur le nom de la propriété également au nom de famille. Donc non, je viens d'ajouter à se sentir orteil le modèle. Donc, pour autant que la station CIA ou la View le sait, il peut prendre en charge deux champs supplémentaires. Donc, non, j'ai besoin d'écrire l'orteil du cordon, les ajouter à la forme. Donc je vais juste repousser les limites. Je vais prendre tout ce bloc qui est tout ce groupe déformé pour e-mail. Je vais le copier, puis je vais juste l'ajouter deux fois juste au-dessus. Mais alors le 1er 1 va être point d'entrée Premier nom sur l'entrée est pour l'entrée. Ce prénom sur tout ce groupe de formulaires est relatif au prénom sur. Alors le 2ème 1 sera pour le nom de famille. Donc tout ici est relatif. Le nom de famille que je connais. Vous voyez que le formulaire d'inscription a juste pensé un plus grand non, vous avez des sentiments pour le prénom, le nom famille sur l'e-mail. Ah, mot de passe sur avoir besoin de confirmer le mot de passe. Si vous aviez besoin de l'utiliser, vous pourriez l'utiliser si vous voulez mettre d'autres choses qui pourraient mettre dans d'autres choses. Je vous montrerai plus tard pourquoi l'adresse e-mail finit par l'utiliser. Mais le fait est, si vous ne vouliez pas que quelqu'un leur spécifie que je l'utilise, alors vous pourriez en fait juste que j'ai la propriété avec la validation requise ou, vous savez, tout ce qui est préféré comme un pour ce champ sur. Ensuite, assurez-vous qu'il est représenté à l'intérieur du formulaire. Je vais aussi orteil, hum, changé cette salle beauté et tableau de bord primaire pour bt et tableau de bord. Juste, tu sais, des changements mineurs. Mais moi, la fin du diacre. Peu importe. Et puis, si vous regardez plus bas dans le formulaire, vous voyez la section où ils le permettent s'inscrire auprès d'un autre service. Donc parce que cette liste que je vous ai montré plus tôt à l'intérieur de notre modèle sur la ligne il est il n'y a rien dans que les ascenseurs. Rien ne va là-dedans. Donc, il y a un peu d'estime et c'est en cours d'exécution, ce qui veut dire que si la liste est vide, alors montrez ce message. Si la liste moins n'est pas vide que le bouton producteur par entrée dans cette liste, droit,de sorte que droit, vous pouvez imprimer contextuellement ne sont pas imprimer HTML ou tout ce qui est basé sur des conditions différentes en utilisant simple si autre en utilisant, vous savez, très C court à la recherche. Bon, donc je vais enregistrer ces changements. Je peux juste faire le contrôle shift et s pour enregistrer tous les changements. En fait, je me sens mieux faire une construction quelqu'un pour contrôler le changement, être si maintenir le contrôle et le décalage et exprimer être sur faire une construction. Non. Après une construction réussie, nous sommes sûrs que nous n'avons pas d'erreurs. Et je vais juste mettre un point de rupture à l'intérieur de notre classe de modèle ici, donc je vais faire défiler vers le bas jusqu'à l'une de ces fonctions sur Ensuite, je vais mettre un point très sur la fonction get, et je suis allé mettre un point de rupture sur le post on. Donc, nous avons ungh ETS. J' aurai un remède là-bas, un évier sur nous avons sur le post face. Donc, je vais juste mettre ces points là et ensuite je vais démystifier plus et voyons exactement ce qui se passe, d' accord, accord, donc maintenant nous sommes en mode débogage. Essayons d'enregistrer un utilisateur, donc je vais cliquer sur m'inscrire sur Ben. Il va pause orteil, et puis studio visuel a été pour éclairer dire que tout ce que vous avez touché un point très. Donc, vous voyez, quand je clique sur m'inscrire, ce qu'il fait est de charger. Il appelle cette fonction, qui est juste dire, Définissez un retour votre et configurez la liste Loggins externe afin que cette liste soit initialisée ici dessus il obtient d'un service qui saura si nous avions configuré une journalisation externe ne sont pas ce que nous n'avons pas, donc c'est vide, mais le retour que vous êtes est fondamentalement comme si vous êtes debout, disons que vous êtes sur amazon dot com sur vous étiez sur le discours du produit. Mais il a dit : Oh, Oh, vous voulez vous connecter ou vous voulez vous inscrire ? Désolé. Vous cliquez donc sur Enregistrer pendant que vous êtes sur la vitesse du produit. Vous remplissez le formulaire et vous êtes inscrit et ils vous connectent automatiquement. Mais ils vous reviennent orteil le discours du produit. C' est un but hors retour que vous êtes. Oh, donc le retour que vous êtes, je vais être défini contextuellement en fonction de vous savez où il est, quelle enchère vous inscrivez à partir de maintenant. Alors c'était donc la page sur laquelle il était quand vous vous êtes inscrit. La raison dit, Equals et tout est que c'est juste dire que si aucune valeur n'est fournie et le faire, non,c' non, est tout ce qu'il dit. Donc, si aucune valeur n'a été fournie à l'intérieur de cette variable, alors c'est par défaut. Mais ça devrait être non. Donc, en l'état actuel, nous obtenons une valeur sans retour. Retournez votre URL sur un Loggins externe vide, loué, mais ce n'est pas qu'il sait qu'il va à la vue, Donc il ne revient pas de vous ou quoi que ce soit parce que c'est appelé qui est en cours d'exécution derrière la vue de toute façon. Non. Quand nous regardons notre écran, nous voyons bien, nous avons le prénom le nom de famille l'adresse e-mail le mot de passe sous le Posser confirmé sur nous voir sur le côté ici où ils disent cela. OK, tu te souviens de cette déclaration ? S' il n'y avait pas de services d'exploitation forestière externes, alors affichez cela, Madame que pas d'eau, d'eau, quoi que ce soit qui est affiché là aussi. Donc, non, je peux aller de l'avant et remplir ce formulaire. Donc, je vais dire utilisateur test, c'est le prénom nom et je suis allé voir un test sur email que com sait que l'email n'a pas besoin d'être un legit parce que, eh bien, il ne va pas envoyer un email de toute façon, sur puis le pasteur, je vais utiliser le même mot de passe p au signe S S W Apple rd un sur aller réutiliser cela sur. Alors je vais enregistrer Non d'abord. Ensuite, je vais faire une erreur dans le pastorat et confirmer le mot de passe. Je clique sur m'inscrire. C' est valider et voir la confirmation du mot de passe qu'ils le transmettent sur la confirmation . Ne fais pas beaucoup. Andi, si tu regardes notre modèle, tu verrais que c'est le message qui a été envoyé. Donc ils ont vraiment Ah compere gitano t montrer que c'est correct. Je compare juste quelle que soit la valeur qui va dans cela avec la valeur qui va orteil, laquelle d'une autre propriété qui dans ce cas est un mot de passe. Donc, notre mot de passe de propriété et puis les annotations de données est comparer mot de passe, qui est cette propriété avec cette propriété sur puis l'Aramis. Ce devrait être le pasteur et le pasteur de confirmation. Ne pas beaucoup si droit Il n'y a même pas soumission à la poste et de savoir si elle est valide ou non, est juste me dire qu'ils ne font pas beaucoup. Très bien, sur DSO, je vais aller de l'avant et re taper d'une manière que c'est beaucoup savonneux. A San Évalué A Bort a gagné de la même manière. Si je n'ai pas mis dans la valeur du prénom, cela me dit que c'est nécessaire parce que j'ai spécifié les données sur la notation qui dit nécessaire . Donc, tout dans le formulaire est requis sur DSO en remplissant tout le formulaire, il vous invitera automatiquement, fondamentalement en même temps. Donc, contrairement aux contrôleurs où il a orteil, allez à l'action post, puis vérifiez si elle est valide, puis revenez avec un message. C' est comme si c'était charger le modèle entier et le consommer et vous faire savoir sous Fly que, Hey, vous êtes dans le fils de Violet hors Ce que le modèle voit, les valeurs sont faibles pour être Donc prénom, dernier nom adresse email sponsorisée. Tout est en ordre. Je clique sur l'inscription et puis nous avons frappé la prochaine pause. Les points sont les suivants. Point de rupture ici est dans le post sur nous voyons ici que bien, nous allons passer à travers et regarder ce que chaque ligne fait si bien, le retour que vous religieux étant mis en fonction de ce qui est passé dans. Donc, voir si c'est si ce n'est pas vide, que je veux la valeur. S' il est vide, alors il suffit de les renvoyer à la page d'accueil à peu près. C' est tout ce qu'il semble. Les Loggins externes. Vous savez qu'ils sont déjà vides, quelqu'un pour juste asseoir un autre point de rupture. Et une chose cool est que vous pouvez utiliser F 11 pour aller ligne par ligne, mais je n'ai vraiment pas besoin d'aller à ces deux lignes parce qu'elles n'ont aucune valeur pour moi. Donc, je peux définir un autre point de rupture ailleurs, puis je peux juste appuyer sur cinq, et il continuera au point de rupture suivant pour que l'IRA jaune vous montre quel point de rupture ou quelle ligne est-ce ? Donc j'ai enlevé ces deux-là et nulle part. À ce point de rupture, vous pouvez également passer le curseur sur la ligne et cliquer sur cette icône sur. Ensuite, il exécute juste l'exécution à cette ligne exacte de toute façon, donc nous avons plusieurs options de débogage ou de détruire votre cour pendant que vous allez le long. J' ai passé sur Model State. Il fait la vérification. Je vais juste faire un 11 et ça dit que c'est valide, donc ça se déplace vers le bas en remorque. Le oh, c'est là. Donc l'état du modèle est valide est il évalue à vrai, Alors ce qu'il fait, c'est me donner de ah var. Les utilisateurs de notre utilisateur qui est une nouvelle variable sont de nouveaux objets. Donc viers un très grand mot que vous pouvez utiliser pour voir. Je veux une variable. Je ne sais pas quel type de données il pourrait être. Alors donne-moi juste une variable. Andi. Il supposera que c'est serré en fonction de ce qui est assigné. Donc, si j'ai dit Vier Nome, Andi a dit, égal qu'il sait que c'est une inter facette de dôme de fer est égal orteil ouvert guillemets sur mettre dans une phrase que Gnome n'est pas une chaîne. C' est donc le soutien du mot Varty. Lorsque vous n'êtes pas sûr du type de données que vous attendez, vous pouvez enregistrer ire sur DA un nom de variable sur. Alors il le fera. Il supposera que ce type d'objet par la suite. Donc je vois ici. Cet utilisateur var est égal à un nouvel utilisateur d'identité. Andi passait l'utilisation de lui sur Ceci est toute la valeur du nom d'utilisateur finit par être l' adresse e-mail parce qu'il transmet le nom d'utilisateur comme entrée. Cet e-mail sur l'e-mail que l'entrée de cet e-mail. Maintenant, il n'y a plus de sensation pour le nom d'utilisateur. Si vous en aviez mis quelques-uns pour le nom d'utilisateur, alors vous dites simplement utiliser le nom est point d'entrée d'égalité Quel que soit le champ d'un e-mail mutuel est égal à l'entrée que l'e-mail Sauf si vous modifiez cette notification de nom de propriété qui crée l'utilisateur avec seulement ceux qui propriétés. Mais nous avions une autre propriété morte dans l'ancien prénom et nom de famille. Nous devons donc modifier notre tribunal pour nous assurer que lorsque nous créons cet utilisateur d'entité, il connaît le nom d'utilisateur. E-mail. Prénom Onda nom de famille après avoir fait tout cela, il passe dans le possible. C' est un crée une autre variable appelée résultats sur. Ensuite, c'est le moniteur de l'utilisateur, Doc. Créez un chant afin qu'il passe dans cet objet utilisateur que nous venons de créer via l'identité. Um, l'utilisateur d'identité qu'il transmet dans cet objet ainsi que le mot de passe que nous venons d'entrer. Cette fonction vous enlèvera à peu près le hachage du mot de passe et l' insertion dans la base de données sur toutes ces choses merveilleuses sur Dennis. Si le résultat a réussi. Signifiant, avons-nous créé avec succès cet utilisateur dans le U dans la base de données, alors j'aime qu'il a été créé. Donc, log EA a été créé bon sur, puis génère le cordon. Alors tu te souviens de ça ? Nulle part faire des trucs de confirmation par email. Donc on va générer cet accord. Hum, et ensuite il fait les fonds nécessaires. En général, c'est tout ce tribunal, puis il l'envoie à la page e-mail de confirmation. C' est donc une redirection. Donc, le pH de confirmation est allumé. Ensuite, il va sur orteil impliqué le service de centre de messagerie, que nous n'avons pas configuré sur. Envoyez cet e-mail à n'importe quel e-mail qui vient d'être fourni avec le texte confirmez votre e-mail. S' il vous plaît confirmer votre identité en cliquant sur le lien dans le corps de l'e-mail qui étaient sièges du Sénat envoyant une étiquette de cheville avec un lien vers tout ce qui vient de générer comme le cordon de confirmation dans ce bloc hors cour Ici dans ce bloc. Bloc froid. J' ai l'air désolé. D' accord. Non, après qu'il ait fait tout ça, il vérifie. Ça ne nécessite pas vraiment de confirmer, euh, compte Andi. Si c'est le cas, lisez Eric à la page. Donc, c'est en fait une option. On peut désactiver quelqu'un pour vous montrer tenir pour l'éteindre. Mais je vais toujours configurer l'expéditeur pour qu'on puisse vérifier Holter. On peut l'éteindre. Donc ça colle. Est-ce qu'il est allumé sur nous ? Si elle est activée, alors nous voulons rediriger orteil ce discours, qui est un autre papiers d'identité que nous avons eu dans la bagarre avec cette adresse e-mail sur alors Sinon, nous voulons juste aller de l'avant et se connecter à la personne . Donc c'est ce que le directeur de la dédicace a à voir avec vos incisions . Si vous vous connectez à des routes de journalisation, ce dysfonctionnement de point du gestionnaire de signature qui bloque cet utilisateur sur DSI est persistant, est activé. Ensuite, nous redirigeons les orteils où que vous veniez. S' il y avait un lien du tout affecté, s'il y a des flèches, alors nous spécifions les flèches qui sont générées sur. À la fin de tout cela, nous retournons la page. Non, c'était une bouchée. Euh, je veux dire, la cour est assez simple. C' est un peu très oui, c'est simple. Si vous suivez la séquence, vous pouvez en quelque sorte l'avez-vous vu ? Faites attention aux noms des objets et aux noms des fonctions. Vous pouvez déduire ce qui se passe, et c'est mort parce que créer un évier. Je vois l'utilisateur. Je suis sûr que vous pouvez comprendre que cela crée l'utilisateur avec le mot de passe, non ? Coller Est-ce que ça a réussi ? Est-ce que ça a réussi ? Ensuite, il fait ce que vous savez qu'il est censé faire comme il se passe. D' accord, quelqu'un pour aller de l'avant sur les continents, en fait, juste par erreur. Mais j'ai cliqué sur le bouton de lecture sur cette ligne. Donc, si je clique juste sur ce bouton de lecture, vous voyez, saute juste le bout de la ligne, il s'exécute juste comme il va le long. Donc, tout ce qui est pris en charge sur est fait, et si vous voulez juste voir ce qui se passe à une ligne particulière, il va juste se déplacer le long. Mais à la fin, ce n' est pas fini. Il ne s'arrête plus pour moi de déboguer. Ensuite, vous voyez que nous redirigeons vers ce discours, vous voyez plus vite pour confirmer votre heure d'appel, Justin, pour confirmer. Et je vous remercie d'avoir confirmé votre email. Donc, c'est la page suivante sur laquelle il passe une fois que cela est confirmé sur. Ensuite, je veux sortir du bateau amarré, puis nous allons regarder la base de données et je suis juste interagir avec la table et vous enregistrer des données sur. Ensuite, nous en voyons un autre. Oh, je l'avais déjà ouvert. Donc, si vous avez déjà ouvert, vous pouvez simplement cliquer sur ce bouton d'actualisation apparaître et puis il va réexécuter que sélectionner souci sur re afficher les données qui est là et nous voyons ici savoir que nous avons aux utilisateurs. On a des tests maintenant. Nous venons de créer, et nous avons connu Crusader sur avis que nous n'avons toujours aucun prénom ou nom de famille pour qui que ce soit. Donc, je vais modifier la cour pour qu'ils aient été assurés que le fusible supplémentaire est effectivement poussé à la base de données. Avant de faire cela, je vais supprimer l'utilisateur de test. Je viens de le créer. Je vais juste le supprimer afin que je puisse réutiliser cette adresse e-mail Onda intégrée est également une validation que vous ne pouvez pas réutiliser et l'adresse e-mail vous utilise. Eh bien, oui, j'ai même ajusté l'utiliser si elle existe déjà. Donc, toutes ces validations sont déjà intégrées. Donc non, je vais revenir à ma cérémonie de rasoir enregistrée au CSE Schimmel ce fichier CS et ensuite je vais modifier notre création à partir de l'identité des utilisateurs sont conditionnels. Lit dans l'utilisateur dit, utiliser le nom email sur Non, je veux dire virgule quand je dis venir. Je vois tout sur l'autre fusible potentiel qui viennent de la base de données aussi, Mais alors remarquez l'utilisateur Identity n'a pas les craintes supplémentaires que j'ai créées quand je mets dans l'employé. Donc, quand je regarde des champs supplémentaires que ce sont tous les champs par défaut, je ne vois pas le prénom ne voit pas le nom de famille sur. Je peux juste ramener la classe de données des employés où l'utilisateur d'identité étendu, et j'ai fait ces carburants orteil que je n'ai pas utilisé, vraiment . Je les ai ajoutés à la table, mais pas à la classe. Conseils à l'utilisateur. Donc, en créant un nouvel utilisateur d'identité, il ne sait pas vraiment à ce sujet parce qu'il s'agit de parties détachées des employés. Donc, ce que je vais faire, alors, est au lieu de créer un nouvel utilisateur d'identité, je vais créer un nouvel employé alors hors cours, je vais devoir apporter les inclusions après l'exécution qui est en cours d'exécution le fichier, et je vois de nouveaux employés sur le nom d'utilisateur e-mail avis ou les titres parce que les employés ne connaissent pas le fusible utilisateur d'identité l'utilisant sur l'e-mail lorsque j'appuie sur une virgule, j'utilise des espaces de contrôle pour voir la liste. Ensuite, je vais remarquer que je vois tout hors de l'identité, utiliser leurs champs en plus, mes champs supplémentaires pour les employés. Donc, je vais dire aussi, le prénom est égal aux points d'entrée. Prénom sur. Ensuite, je vais voir le nom de famille est égal aux entrées point nom de famille, accord, et je comprends de respirer le lion afin que je ne l'ai pas trop hors de l'écran. Très bien, donc cette forme de cour un peu. Donc maintenant, j'ai un nouveaux employés en cours de création et rappelez-vous, employés étend l'identité utilisateur soas, faras Tout ce qui nécessite l'utilisateur d'identité est concerné. Les employés ressemblent à un utilisateur d'identité. Donc je crée un nouvel employé et que je passe dans l'évier A. Créer. Et si vous regardez dans le si vous discrète, survolez, créez un puits, puis regardez ce qu'il nécessite, vous voyez qu'il nécessite un utilisateur d'identité. Je passe un employé. Encore une fois, il étend l'utilisateur d'identité. En ce qui concerne créer un évier ISS est concerné. Il obtient un objet qui ressemble assez à l'utilisateur des îles, il a plus de problèmes. Je vais supprimer mes points d'arrêt. Puisque nous savons comprendre ce qui se passe dans ce post face fonction, je vais faire une autre inscription. Certains juste inter enregistrer tous les changements sur. Ensuite, je vais faire une autre inscription et puis nous voyons la fonctionnalité complète. Non, cette fois, je ne vais pas aller dans le débogage plus comme je l'ai déjà dit. Ce que je vais faire, c'est utiliser les liaisons aériennes de mon frère. Donc, cette flèche de rafraîchissement à côté du bouton étoile comprendre de cliquer sur ce Dawn Iro Andi Tout d'abord , besoin de l'une des filles Airlink, si vous ne l'avez pas déjà fait donc je vais cliquer sur tableau de bord Erling de bro, qui affiche ce tableau de bord à gauche. Eh bien, à mes droits, ça peut l'amener ailleurs sur votre écran. Mais je veux te sauver, mon frère. Monsieur. Maintenant, quand vous faites cela va réellement lancer une version rapide hors. Je m'appelle Eyes Express, qui est un peu intégré dans le studio visuel, mais alors il sera en fait héberger Ah, scène votre site Web sans que vous soyez dans D deux Morneau une fois de plus, si vous êtes dans ce plus si vous faites tout ajustement, vous pouvez suivre vos changements de la façon que vous pouvez Lorsque vous êtes dans les gens plus défensifs, Rick points dur. Donc, je vais aller de l'avant et je vais vous réutiliser la même adresse e-mail Andi utilisateur test et certains n'utilisent pas leur fin de la militariste sur. Ensuite, le mot de passe est le même pasteur p au signe assistant de l'organisation sur. J' utilise juste un mot de passe parce que je ne veux pas avoir trop de pasteurs et je ne me souviens pas que vous savez qui est lequel. Alors non, je vois. Prénom, nom E militaristes. Oh, non, j'ajoute les autres et les attentes que lorsque je clique sur m'inscrire et que je suis inscrit, quand je regarde dans la base de données, je devrais voir que j'utilise un enregistrement avec le prénom sur le dernier nom. Donc, quand je clique sur m'inscrire, il passe à l'illustration de confirmation. Et oui, nous savons tout ça. Nous cliquons ici, Toe inscrivez-vous sur, alors nous ne pouvons pas aller et vérifier dans la base de données. Je vais ramener Visual Studio toujours pas en mode débogage. Mais je vais aller à mon explorateur d'objets sur Regarder dans ma table. Je crois que je l'ai déjà ouverte. Oui, je le sais. Et puis quand je clique, actualiser puis il me montrera l'enregistrement pour l'utilisateur nouvellement créé, qui est l'utilisateur test sur le prénom. Le nom de famille a des valeurs. Donc, pour tout ce que nous voulions entrer, nous pourrions juste, vous savez, modifier notre cordon d'enregistrement et nous assurer que nous comptons pour cela. Vous remarquerez également que dans la discrimination de voir les employés par rapport aux conseils à l'utilisateur, sorte que discriminateur attire réellement quelles classes sont basées classes utilisées pour créer ces enregistrements utilisateur. Donc, il sait que l'utilisateur d'identité est la classe dans cette situation parce que c'était une classe par défaut . Mais nous l'avons modifié et savons que nous créons des employés. Est-ce que vous créez des enregistrements est dans la classe des employés au lieu de désactiver. Donc, cela signifie que vous pouvez réellement avoir différentes classes par type d'utilisateur sur. Vous pouvez facilement discriminer, qui est qui, basé sur le discriminateur. Mais c'est plus une classe d'écoute que réelle. C' est comme pour les rôles sont quelque chose comme ça est juste de voir Oh oui, cette classe de base a été utilisée pour cet enregistrement sur. Alors peut-être que c'est plus facile pour toi de t'occuper de carrière. Non, pour les conditions d'inscription ou l'exigence qu'à la fin de notre inscription, nous envoyons un repas. Je vais orteil désactiver cette fonctionnalité en allant orteil au début de point CS Donc il est venu activé pour moi. Je ne suis pas sûr que ce soit incapable pour toi. Si ce n'est pas le cas, alors c'est bien. Mais si c'est pour toi et que tu veux tromper Lee, alors on peut voir que nous supprimons cette ligne. Donc, lorsque nous nous arrêtons sur les services d'identités par défaut qu'à l'identité par défaut, l'utilisateur d'identité sur vous pouvez changer de cette façon. Tu n'es pas obligé et je veux. Mais nous pourrions changer cela l'employé ou toute autre classe abstraite, mais je laisse les valeurs par défaut aux valeurs par défaut. Droit. Mais puis pour les options. Je ne veux pas de ces options. Vous pouvez ajouter beaucoup d'autres options. Vous pouvez simplement dire que les options de virgule sont. Ensuite, ils vous montreront en quelque sorte les autres options qui sont à votre disposition. Désolé. Euh, eh bien, en fait, je devrais réfractionner la cour. Désolé. Donc, vous pourriez avoir plusieurs options. Vous commencez juste l'expression Lambda Options dans le nu. Ouvrez le devis. Désolé. Breeze. La course est ouverte et proche. Ensuite, avec chaque option, il provoque le point-virgule et les options Anisa sur. Ensuite, vous voyez un point et vous serez en mesure de voir les autres options que vous pouvez prendre et de spécifier une force de mot de passe à partir d'ici. Vous savez, si vous voulez exiger des majuscules, minuscules, caractères uniques ou vous vouliez simplement être simple. Vous pouvez appliquer cela à partir de ce niveau. Vous pouvez définir le temps par défaut sur le nombre d'avoine Tarlac désactivé Parfois. Vous savez que cela pourrait limiter tant de choses à partir de ce point ou permettre tant de choses à partir de ce point. Donc, une des choses qui est activée est l'option d'avoir le compte de confirmation de besoin est vrai. Cela signifie qu'ils doivent confirmer qu'ils passent par l'e-mail. Je vais juste désactiver que nous avons fait un peu de travail sur, donc je vais désactiver cela sur. Nous ne serons pas confiants que le service de messagerie au moins ne sait pas Donc non. Lorsque quelqu'un s'inscrit, il n'a pas besoin de confirmer à nouveau son adresse e-mail sur DSO. Nous devons probablement retourner à notre registre sur l'ICD et quelque chose qui reflète encore ce gène . Donc, nous avons ici que la personne est prête à agiter. Ensuite, nous avons que nous envoyons l'e-mail. Donc, si nous désactivons le besoin de l'e-mail que nous n'en avons pas besoin en dehors de cette école, en fait, le seul appel qui doit arriver après que la personne ait réussi à faire du lobbying est le fait que nous allons les signer puis les redirige parce que tout ce qui sera à part sur le plus long mis, sont les plus aveugles. Mais tout en dessous plus est orienté vers l'envoi de cet e-mail, les rediriger vers la page, les faire cliquer sur quelque chose à confirmer. Tout ça disparaît si on permet juste à la personne de s'inscrire. Donc je vais prendre le contrôle de tout ce bloc de la cour. Andi, je vais juste prendre toute cette brise droite. Ce qui va arriver, c'est que lorsque quelqu'un s'est enregistré avec succès, il y avait simplement se connecter, puis retourner à leurs répétitions d'eau qu'il y avait sur. Je vois que savoir que l'enregistrement, hum, bloquer la cour semble ce que plus simple quelqu'un d'orteil teste le sel et je suis allé m'inscrire à nouveau. Très bien, donc je suis en train de ressentir tout ce formulaire et d'essayer d'utiliser la même adresse e-mail, et ça me dit que c'est déjà pris. Donc une fois de plus, cette validation est là pour, genre, le nom d'utilisateur et, bien, c'est sur l'utilisation de lui. Pas nécessairement sur l'e-mail, mais je laisse cela pour plus tard, donc je vais voir un test au point de test com, et nous utilisons le CMP au signe S W O R d un l'aide au signe de l'déjà un, puis nous cliquons sur inscrire et puis nous observer que nous allons détroits orteil permis dans les états une redirection à la page d'accueil sur Nous ne sommes plus être ainsi. Il n'était pas nécessaire de s'inscrire au moment de la confirmation. On s'inscrit juste et on est connectés. C' est donc tout ce que nous pouvons faire pour simplifier notre expérience de personnalisation ou d'inscription. Tout le monde va vouloir une expérience différente pour ses utilisateurs. 25. Fonctionnalité de connexion: Hé, les gars, dans cette vidéo, on va juste regarder à travers le journal fonctionnel. Nous ne ferons aucune modification ni trop de travail. Je veux juste que nous ayons une idée de ce qu'est vraiment un processus de connexion. Non, je suis sûr que Way tous utilisent des systèmes. Je veux dire, vous avez probablement connecté à une forme de système pour être capable de consommer cette vidéo très sur DSO Vous êtes familier avec le fait que pour vous connecter à un système, vous devez fournir quelques noms, certains uniques, identifier l'air pour vous, puis fournissez un mot de passe qui, bien, si l'un ou l'autre est dans les cartes, ils rejetteront vos tentatives d'accès au système. Maintenant, en termes plus simples ou en termes, parler de, vous savez, tout le flux entre le formulaire et la base de données et la logique entre ce qui se passe vraiment , c'est que vous mettez un nom que vous mettez dans un mot de passe, vous cliquez, entrez quelque chose collecte vos informations sur, puis vérifie. Si ce nom sur ce mot de passe existe dans les données abeilles. Et c'est ce que nous voulons voir exactement, euh, notre application, tout notre noyau noir net nous aide à accomplir ce genre de fonctionnalité. Donc, je suis déjà aimant ici comme test ce test en commun avec le Click Lago. Et puis nous sommes de retour à la case 1 où nous avons la journalisation et l'enregistrement. Nous avons donc déjà quelques utilisateurs dans le système. Je vais juste cliquer sur Connectez-vous puis sur notre écran de connexion. Ils nous demandent notre email et notre pasteur, et une fois de plus nous avons accès à la paix de connexion afin que nous puissions personnaliser cela. On peut supprimer ça si on veut. On peut changer l'étiquetage. On peut agrandir nos boîtes de texte, plus gros. Quoi que ce soit nous voulons faire. On peut le faire, mais pour non, je ne dérange pas trop l'esthétique. Je me concentre juste sur la fonctionnalité. Donc, quand nous fournissons un e-mail et je suis allé voir un test un point com sur, puis je suis allé à empêcher un passeur Duchesse p signé S S W O R d un sur. Ensuite, je clique sur ce qui va se passer, et je parle de la cour. Je ne suis pas en mode débogage, mais je comprends pour parler de la cour et nous regardons notre fonction ensemble. Donc je trouve des blogs et je regarde la cour derrière ou les Rays sont le tribunal, le dossier des Rays of PGE. Donc je vais juste ouvrir ce dossier et ensuite nous allons examiner ce qui se passe ensemble. Donc, nous voyons que nous avons un modèle. Il hérite du modèle de page où l'initialisation de guerre est, et puis le truc d'injection qui se passe là-bas que nous avons ou modèle d'entrée. Donc ils essaient de garder le même nom qu'ils traversent. n'y a rien de spécial dans le modèle d'entrée de nom. Il essaie de garder le même nom pour qu'il n'ait pas l'air trop confus. Mais il pourrait appeler ceci un modèle de journalisation et un autre à l'appel PGA. Il a publié un modèle, etcetera, etcetera, mais bien sûr, vous ne pouvez pas faire cela parce qu'ils ont déjà ça. Donc, je suis juste pointer, ou que l'utilisation hors modèle d'entrée à la fois dans la connexion et la page d'enregistrement. Ce n'est pas un mot clé, Percy. C' est juste que c'est ce qu'ils appellent la classe. Donc, nous avons nos modèles et nos propriétés qui sont désossés à la forme, puis à l'intérieur du modèle d'entrée, nous voyons ici que nous avons ah, champ pour l'e-mail, ce qui est nécessaire, et il est hors type adresse e-mail, ce qui signifie qu'il doit être un format d'adresse e-mail. Nous avons également notre mot de passe requis, et puis nous avons quelque chose qui est un lingot pour Se souvenir de moi ou pas sur obtenir il rend la page à peu près. C' est ce qu'il fait. C' est vrai, dit Return. Vous êtes si ce n'est pas des messages d'affichage RMT si besoin être configuré. Le retour Euro Sino tiff, Si quelque chose, sorte que vous pouvez avoir un processus de journalisation propre, il essaie d'effacer tous les cookies qui pourraient être là, puis sur le poste. C' est là que le travail se fait vraiment. Donc, une fois que je clique, soumettez ou je pourrais obstruer le formulaire. Il déclenche l'action de post, qui définit ensuite le retour. Earl valide l'état des données. C' est la validité des données qui sont soumises, puis il continue à voir les résultats est égal à la signature du gestionnaire de mot de passe ancré signer un lavabo donc la signature postured va passer et vous pouvez simplement passer le curseur sur la fonction et ensuite vous obtenez un indice de ce qu'il exige. Donc, il a vraiment calme besoin du nom d'utilisateur sur le mot de passe pour se connecter. Donc, il voit « Donne-moi ». J' utilise le nom, donne-moi un mot de passe, donne-moi une brute et donne-moi un lingot. C' est ce qu'il demande Donc, nous transmettons l'e-mail parce que nous utilisons l'e-mail comme nom d'utilisateur, au moins par défaut. C' est ce que c'est. Donc, sauf si nous changeons son sous formulaire d'inscription et changer la logique et nous n'avons pas besoin de changer cela, mais l'entrée par e-mail, pas par e-mail sur la saisie le mot de passe sur puis ils demandent, Voulez-vous vous souvenir de moi ? Donc, c'est ce qu'ils veulent dire par persiste que je persiste l'information de cette personne même après qu'ils ferment le navigateur. Doivent-ils revenir et être encore connectés ? Donc à moins que vous ne pensiez, souvenez-vous bien de moi, tout ce que vous décidez qui est mis sur. Ensuite, il indique que le verrouillage en cas d'échec est vrai. Donc, cela signifie que si quelqu'un vient transférer, se connecter ou jamais échoué tentative de journalisation et le verrouiller correctement. Donc, alors cette fonction prend vraiment vos hachages d'informations est postured parce que rappelez-vous, notre pasteur ne stocke pas la façon dont nous l'orthographe ou nous l'identifierons sur un morceau de papier qui n'est pas si certaine base de données. Donc, cette fonction est responsable de la transformation des données en remorquage. Quelle réforme est nécessaire, Vérifier par rapport aux enregistrements dans la base de données sur, puis voir oui ou non sur. Alors c'est ce qui est stocké. Donc, les résultats sont stockés et il a un drapeau. Est-ce qu'il a réussi ou pas ? Donc, si c'était réussi, ça veut dire que la personne était aimée d'être là. Pas redirigé orteil sur la page d'accueil. Tout va bien, alors. Si le si vous savez, basé sur le tout sortir des résultats, alors différentes actions peuvent être prises, et c'est à peu près qu'il se connecte orteil. Ensuite, plus tard, ils ont effectivement cette fonction sur les postes et la vérification. Email, qui signifie , Um, ce qui signifie, Um,c'est similaire est toujours vu sur la page d'inscription, où il envoie une vérification pour confirmer vos cônes. Si vous essayez de vous connecter avant d'avoir confirmé leurs cônes, alors ils peuvent déclencher cela. Donc tous ceux sont là pour une utilisation hors cours que nous pouvons prendre ou ce que nous ne voulons pas sur personnaliser ce que nous voulons, vous savez, dans une particule loin Mais la fondation est déjà dit Il est compris confirmé que la connexion fonctionne en cliquant simplement sur Ouvrir une session. Ensuite, l'expérience est que nous sommes redirigés. accueil de Tore sur. Nous pouvons voir que nous sommes clairement connectés car ils nous identifient par notre nom d'utilisateur ou , dans ce cas, l'adresse e-mail. Quelle que soit la valeur stockée dans la section Nom d'utilisateur, c'est ce que le Nord a. Si je clique, puis nous allons au-dessus des orteils, gérer puis gérer les aloes une mise en place ou un profil. Donc tous ceux de nouveau, nos pages que nous avons accédé oh sur nous savons que le profil a beaucoup plus à elle que simplement utiliser un nom et un numéro de téléphone, pas votre Continuer à utiliser le droit de nom sont libérés par défaut. Ils disent que vous ne pouvez pas changer votre utilisation de lui, mais nous pouvons changer toutes ces choses différentes. On va juste voir le profil sur moi. Il suffit de le trouver pour qu'il soit dans la gestion. Donc, nous devons aller dans la gestion et puis je peux trouver la vue du profil, que je suis désolé, peut-être que je cherche le mal, donc il est l'index slash de l'argent sont donc c'est vraiment une barre oblique de cône gérer sur rappelez-vous que le premier discours que vous voulez Seigneur est habituellement Index. Donc, je dois juste trouver le fichier d'index. On y va. Et c'est notre profil. On le voit ou on l'utilise sur le numéro complet si on va dans la cour derrière. Ensuite, si nous voulions le profil complet de l'utilisateur, alors nous aurions orteil mis plus de propriétés à l'intérieur du modèle qui est désossé à la vue, puis un plus bas encore, en fait, vous savez, sont soustraient du profil de la personne pêcher sur ce qu'ils peuvent et ne peuvent pas changer. D' accord, et voyez ici où ils ont mis le drapeau. Désactiver. C' est donc littéralement tout ce qui désactive cette entrée pour l'utiliser. Ils ont juste dit : Handicap. Je peux enlever ça sur. Ensuite, je charge l'utilisateur pour être en mesure de changer leur profil sont nom d'utilisateur changeur. S' ils ont besoin d'orteil, alors sur la poste, ce qui signifie que cette personne a soumis quelques changements. Ensuite, nous pouvons nous assurer que nous comptons sur les modifications qu'ils ont apportées à leur profil. Maintenant, en tant que dernier acte, je vais juste vous expliquer ce qui se passe ou ce à quoi ressemble la cour pour l'en-tête . Six sur. Ok, donc c'est utiliser la page de Léo semblait différente de celle que j'ai. Je vais juste y retourner et y retourner. Onda, je vais juste vous faire découvrir le noyau qui régit ce qui se passe dans cette section. Lorsque lorsque nous sommes aimés dans ce que nous voyons et quand nous sommes aimés, tout ce que nous voyons sur qui est disponible à l'intérieur des vues partagées comprennent l'effondrement des orteils, sont des zones complètement et descendent aux vues que partagées sur. Ensuite, nous pouvons regarder sur la journalisation partielle, donc sont longs, impartiaux. Fondamentalement, il hérite de la signature CME et utilise un gestionnaire que nous avons vu sur. Ensuite, ils disent juste, si le gestionnaire de ponçage, c'est connecté. Donc, c'est comme une vérification à voir est leur actuel est qu'ils sont sur la session utilisateur active en ce moment . S' il y a une session utilisateur active signifiant que quelqu'un s'est connecté, alors je veux afficher dans suffisamment de barre Ah, lien toe la gérer sur le texte. Bonjour à l'utilisateur point Identité ce nom. Donc, quel que soit le nom d'utilisateur Quelle est la raison pour laquelle la colonne de nom d'utilisateur de cet utilisateur qui est aimé être C'est ce qui sera imprimé à la suite de ce que je peux changer tout cela si je ne veux pas dire bonjour. Je voulais juste dire le nom d'utilisateur. C' est très bien. Hum, et il y a aussi le bouton de chèvre de loi que lorsque nous cliquons sur verrouillage, aller à juste posté logo Pass, qui Termini sa décision sur s'il n'y en a pas. Donc, c'est s'il y a beaucoup de la session sur, alors celle de l'autre. Ils disent que Donnez-moi le lien de registre et donnez-moi le lien de journalisation. C' est essentiellement tout ce qu'il y a pour se connecter. Une fois de plus, vous pouvez personnaliser votre expérience si vous avez besoin d'aide. Vous savez que vous avez une idée particulière en tête et que vous n'êtes pas sûr. Exactement. Tenez exécutée. N' hésitez pas à me laisser une ligne et être heureux de vous aider 26. Ajouter des rôles par défaut et l'utilisateur Admin: Hé, les gars, dans cette vidéo, nous allons mettre en place quelques valeurs par défaut, quelques règles par défaut. Onda par défaut, utilisateur admin. Le but d'avoir ces valeurs par défaut serait que lorsque nous avons notre application il certaines règles qui seront là sur nous voulons nous assurer qu'au moins un utilisateur va créé parce que si nous finissons de développer ici et ensuite nous le déplacons à un environnement frais avec notre première base de données. Le fait est que lorsque l'application est lancée en cours d'utilisation pour créer certaines choses dans la partie supérieure de la base de données afin que bien, nous pouvons avoir une certaine authentification et quelqu'un avec une fonctionnalité de fonction donc deux de ces règles seront administrateur et emploient un an sur. De plus, nous voulons nous assurer que nous avons gagné au moins un utilisateur administratif parce que, nous voulons nous assurer que nous avons gagné au moins un utilisateur administratif parce que, quand tout le monde s'inscrit,il devrait s'inscrire en vertu d'une règle des employés. quand tout le monde s'inscrit, Non, juste un rappel rapide. Notre rôle définit essentiellement qui vous êtes dans le système. Qu' est-ce que c'est que vous pouvez le faire un administrateur que ce rôle implique, ou ce nom de rôle implique que cette personne devrait être capable de faire Chaque chose est, vous savez, choses administratives dans le système, Utilisateur Onda. Eh bien, nous savons ce qu'est un utilisateur. J' utilise un bruit personnel dans, Donc, la règle identifie ce que cet utilisateur peut et ne peut pas faire dans le système. Donc, une fois de plus, nous voulons avoir sur les employés et un rôle d'administrateur sur aussi au moins un utilisateur administratif . Donc, pour commencer, nous allons sauter en studio visuel sur. Ensuite, nous entrerons dans notre classe de démarrage. Nous allons donc commencer cette série et ensuite nous devons apporter quelques modifications ici. Donc, ce que nous allons faire, il a mis en place ce que nous appelons une graine de classe de semences est quelque chose que c'est un terme qui est utilisé pour décrire ce que vous faites à une base de données lorsque vous configurez des valeurs par défaut. Donc, en insérant des données par défaut dans la base de données, nous appelons cela semer la base de données ou mettre des choses sans réellement passer par les mouvements hors du système. Donc nous forçons les données à entrer dans le système, et c'est ce que nous allons mettre en place maintenant. La première modification que nous voulons faire est en heures fonction de configuration des services. On veut trouver la ligne. C' est un service. C' est notre identité par défaut sur papa dans un travail différent ? Nous devons donc ajouter un mensonge supplémentaire à cela. Je mets juste un peu de place. Ensuite, après la partie où il ajoute l'identité par défaut et dit utilisateur d'identité, nous passons à la ligne suivante et puis je dis point sur alors ce que je veux ajouter est des règles. Donc, je vais ajouter quelques représentations. Quatre règles. Alors je dis d'ajouter des règles. Aan den. La classe par défaut pour était sorti de l'identité est les règles d'identité. Désolé, il règles d'identité et puis j'ouvre et ferme des parenthèses sur. Alors j'ai peut-être besoin d'inclure quelque chose ici pour me débarrasser de cette ligne rouge. En fait, ce que j'ai ici est une erreur d'orthographe. C' est donc une règle d'entité, pas des règles d'identité. Désolé pour ça. Donc, nous avons à l'entité utilisateur et nous avons la règle d'identité. Très bien, donc nous ajoutons cela aux services quand nous lançons ou par défaut dans le moteur. Nous nous assurons juste que les règles seront lancées aussi. Donc, après avoir fait cela, nous allons passer à notre fonction de configuration pour comprendre, pour respirer ces lignes parce que je vais ajouter d'autres lignes à ce Parlement. Une liste sur ce que j'ajoute. Le 1er 1 Je vais juste après la fin. Si je mets des virgules, je vais ajouter le gestionnaire d'utilisateurs et ensuite je vais ouvrir mes sous parenthèses. Et en cela, je passe dans les classes d'identité pour les utilisateurs sur lesquelles, par défaut, j'utilise Identity User. Donc, je vais orteil réutiliser l'identité utilisateur ici, donc quelle que soit la valeur par défaut. Donc, si vous êtes plus avancé que vous n'auriez probablement des changements à l'employé ou à n'importe quelle classe de données que vous utilisez toe over ready, alors c'est très bien. Mais quelle que soit la classe que vous allez, réutilisons simplement la classe sur laquelle j'utilise Identity User. Je vais appeler ce gestionnaire d'utilisateurs et puis j'ai utilisé Come off on, puis la ligne suivante va être roll. Ma nature a été sous les crochets et puis je suis tastique en passant dans les règles d'identité et il suffit copier et de coller cela sur. Ensuite, ce sera le gestionnaire de règles. Très bien, alors nous avons ces deux nouveaux paramètres à l'intérieur off ou configure fonction. Non, ce que nous devons faire après avoir terminé ceci est mis en place. Ah, je vais mettre en place une classe statique, notre classe qui va être appelée à l'intérieur ou configurer la fonction pour que nous puissions définir la fonctionnalité ici. Mais c'est une bonne pratique de garder cette cour aussi propre que possible. Donc, tout ascenseur volumineux ou tout cordon supplémentaire qui n'est pas nécessairement simplement disparaître initialisation. Vous devriez probablement mettre quelque part ailleurs et ensuite simplement l'appeler dans cette fonction ou dans cette source, commencer à propos du fichier CS. Donc je comprends d'aller de l'avant et de passer à mon projet dans l'Explorateur de solutions, n'est-ce pas ? Cliquez sur mon projet, et je vais ajouter une classe sur. Je vais appeler ça des données de semences. Donc, créez ces données de base de classe , d' accord, donc pas conscient de notre classe, la première chose que je vais faire à cette classe est de la rendre statique. Donc, en C pointu, quand nous faisons de nous une classe statique dans les moyens que nous pouvons appeler les éléments dans le château. Les propriétés sont les fonctions sans avoir à initialiser un objet hors de cette classe. Donc, je vais l'afficher dans quelques uns. Quoi exactement ? Je veux dire, mais rendons ça statique, alors je vais avoir, ah, statique publique. Donc, une fois les classes statiques, alors tout le reste à l'intérieur doit être statique. Donc, si vous avez une formation, il faut commencer. Nous avons une taxe foncière, soyez statique, mais j'appelle cette fonction graine sur. Puis, à l'intérieur des paramètres pour cela, je prends du biscuit. Les deux mêmes permis que je viens de mettre en place dans les startups. Comprenez, Koba, et copiez-les. Donc, avez le gestionnaire d'utilisateurs sur le gestionnaire de rouleaux. Je les copie juste en tant que paramètres à l'intérieur de la fonction de graine sur. Ensuite, je suis allé orteil ouvrir et fermer divers et puis hors cours, je dois aller de l'avant et inclure tous les espaces de nom manquants. Donc je suis juste pour contrôler le point sur apporter tous les espaces de noms manquants sur. On y va. Bon, alors c'est ce qu'une fonction. Mais alors j'ai deux autres fonctions que quelqu'un orteil en a un. C' est un utilisateur de graines et un qui dit des règles de semences. Donc, je suis vraiment juste dans copier cette ligne parce que je ne vais pas taper dit à partir de zéro. Mais je vais vous expliquer ce que sont exactement les changements. Donc celui-ci n'est pas rappelé les utilisateurs de semences sur celui-ci va seulement voir le paramètre pour les gestionnaires d'utilisateurs. Je retire juste ce moniteur de rôle de l'original et nous ouvrons et fermons. Accrochez-vous. Ensuite, je peux simplement répéter cette étape ci-dessous. Mais celui-ci s'appelle des rouleaux de graines sur. Ensuite, celui-ci n'a pas le gestionnaire d'utilisateurs. Mais celui-ci a le gestionnaire de rôle. Donc, à la fin de cet exercice, vous devriez avoir un morceau de formulaire appelé Seed, qui a, avec le gestionnaire d'utilisateurs et le gestionnaire de règles périmètre un appelé utilisateurs de semences. Ce qui ne prend que le gestionnaire de l'utilisateur autoriser er sur un appelé rose de graines. Cela ne prend que le paramètre roles. D' accord, non, commençons par la mise en place de nos règles. Donc, je le fais de cette façon parce que nous voulons que les règles existent avant l'utilisateur. Donc, le jour, c'est le flux logique. Donc je le fais juste comme un flux logique. Cela n'est pas vraiment nécessaire pour aller dans cette direction. Je fais juste que c'est un flux logique. Alors installez-vous ou ressuscitons. Donc, nous avons déjà identifié que nous avons besoin des utilisateurs admin et les utilisateurs admin seront ceux qui ajoutent supprimer les types de congé qui laissent allocations, Um, approuver ou rejeter les demandes de congé et ainsi de suite, nos employés seront ceux qui viennent se connecter et demander un congé et peut-être regarder leur profil et ne pas être leurs propres profils, des trucs comme ça. Donc, nous avons besoin de règles une fois de plus, administrateur sur les employés. Donc, la première chose que je veux faire, vous voyez si je veux vérifier si la règle existe, parce que si la règle existe, alors je n'ai pas besoin de la créer. Et après la première fois, le rôle va exister. Mais ce n'est pas comme si j'allais me voir ça. Que cette classe ou écrire ce score, le mettre dans le démarrage, faire, le faire, créer les règles, puis le sortir du démarrage. Je vais le laisser au démarrage. Et ça veut dire que si je l'exécute 20 fois, je ne veux pas que cette règle soit créée 20 fois. Donc ce que je vais dire, c'est que si la règle n'existe pas, alors créée d'accord, donc chaque fois qu'elle s'exécute, ça va dire, Oh, Rolexes ne va pas bien ? Je m'en fous. Alors si ça ne veut pas dire, c'est peut-être une nouvelle base de données. Ah, système frais là-bas. n'y a rien dans la base de données au départ. Ensuite, il va aller de l'avant et le créer. Donc c'est ce que c'est un pauvre semis. Et quand vous êtes à votre cœur correctement, vous pouvez, vous savez, continuer, continuer, contourner beaucoup de redondances et de faux pas. Donc, où hiver à ce correctement et voir si pas gestionnaire de rouleau. Un gestionnaire de règles de notification est ici l'objet qui passait dans le gestionnaire de règles de paramètres ancré sur. Ils allaient utiliser une fonction du gestionnaire de règles. Nous voyons donc que nous avons un certain nombre de fonctions. Quoi ? Celui qui m'intéresse pour cette opération est le rouleau existe. D' accord, donc il est de voir, si pas rouleau existe qu'un évier et puis je vais ouvrir mes parenthèses sur le paramètre que je passe. Vous savez, la valeur en passant dans cette fonction est ah, chaîne avec Eh bien, le nom éteint, le hors les règles. Je vérifie si l'administrateur de la publicité de la liste existe, alors on va mettre l'intimidateur dans la balle réelle. Et pour cela, je dois dire pas résultat. D' accord, donc tout ça va retourner un booléen en disant, Est-ce que ça existe ? Oui ou non ? Mais alors je ne le force pas. Je ne vérifie que si ce n'est pas le cas. Si elle n'existe pas, alors l'action que j'ai l'intention de prendre est de créer une nouvelle règle. Quelqu' un pour sauver la colère. Le rôle est égal à nouveau sur la règle d'identité DSI. Donc, le cycle lorsque nous créons, j'utilise un utilisateur d'identité Web. Lorsque nous créons un rôle, nous avons un rôle d'identité, et puis je vais initialiser ce nouvel objet en passant un nom sur le nom va être égal au rôle que je suis intéressé à créer, qui est administrateurs. Nom est égal à administrateur, puis utilisez un point-virgule. Donc, je vérifie. Si cela n'existe pas, Alors je veux créer un nouvel objet de rôle appelé Administrateur, qui a supprimé ce cynique. Je crée donc un nouveau rôle appelé Administrateur. C' est juste l'objet. Maintenant, j'ai besoin d'agir réellement la création. Donc l'action, la création que je vais voir des points de gestionnaire de rouleaux créer, pensez-vous ? Et puis je passe dans le rôle sur qui le fait. Donc, fondamentalement, cela signifie que si l'administrateur de rôle n'existe pas, puis créer leur ancien sur, alors je vais faire la même chose, donc je vais juste copier ce bloc sur. Je vais faire la même chose pour les employés ont augmenté. Alors faites déjà le chèque. Si vous prenez ceci, je suis juste en train de changer cette fois de l'administrateur à des employés sur. Je vais m'assurer de créer un rôle appelé employés sur. On s'en occupe juste comme ça. Donc, non quand il s'exécute, quand ce bloc hors cour ou dysfonctionnement est appelé au démarrage, il va voir s'il n'y a pas d'administrateur d'appel de liste créé. S' il est connu appelé Employés créés pour autant de règles que nous pourrions avoir besoin, nous pouvons faire des blocs similaires hors cour. Non, j'ai besoin de voir l'utilisateur admin. Donc, je vais écrire un bloc similaire hors cour à nouveau. Je vais voir si le gestionnaire d'utilisateur je me souviens d'utiliser les gestionnaires l'objet que nous avons utilisé en passant et le département er quelque chose si le gestionnaire d'utilisateur a ancré sur cette fois j'utilise une fonction différente, donc je ne veux pas voir est existe. Mais je vais essayer de trouver. Eh bien, je suis allé essayer de trouver par nom. Très bien, alors trouvez mon nom sur Ils utilisent le nom que je donne à mon nom par défaut. L' administrateur est littéralement juste à moi. Donc, tout l'utilisateur admin, les utilisateurs admin par défaut veulent juste parce que Acme sur, Ensuite, je vais devoir dire ce résultat. Mais alors les résultats cette fois ne me donnent pas un tyran. Et il retourne en fait l'utilisateur. Donc, pour vérifier, si j'ai obtenu l'utilisateur ne sont pas. Je vais juste dire si le résultat est non. Donc le 1er 1 rendait un lingot. Cette fois, je suis sur des objets sous voir Ai-je eu un objet complet ou la jambe ? Objet éternel. Donc, si j'ai un objet null, cela signifie que le nom ne prend pas ceci ou aucun utilisateur avec ce nom n'existe. Donc, je vais orteil sauver notre utilisateur est l'égalité nouvelle sur nous sommes en train de créer. J' utilise cet utilisateur d'identité amusant puis l'utilisateur T Andi, ouvrez mes accolades sur Puis je suis en train d'initialiser le nom d'utilisateur. Eh bien, j'ai toujours dépensé l'identité à tort. D' accord, alors laissez-moi réessayer. Donc si je contrôle l'espace maintenant, j'ai mon intelligence. Je peux voir le nom d'utilisateur est égal à sur je suis assis l'admission de nom d'utilisateur sur. Ensuite, je vais définir aussi l'e-mail Donc e mail est égal à ID Mean à l'hôte local, certains arbitraires. J' ai eu un mail méchant. Je veux dire, ce n'est pas, tu sais, c'est utilisateur générique. Donc c'est mon objet. Et puis je peux fermer ou désolé, utiliser le cynique et et finir sur. Alors j'ai besoin de les créer. Donc, je vais sauver nos résultats. Est-ce que les points de gestionnaire d'utilisateur égal orteil crée que vous pensez ? Andi, si vous vous souvenez de quoi que ce soit du processus d'inscription lorsque nous créons un évier, nous devons transmettre un utilisateur et un mot de passe. Donc, je vais passer l'objet utilisateur que nous venons de créer, euh, euh, qui est l'utilisateur d'identité. Vous pouvez voir le pneu allumé et ensuite vous dites virgule. Alors on s'attend à une chaîne. Cela va être les passants que je suis vraiment, vraiment juste va garder les pâtes est simple à droite, le mot de passe avec un p commun donc ajouter un moyen sur mot de passe sur, alors je suis je veux les résultats. Je vais dire des résultats de points. Alors nous voyons stocker les résultats de cette opération s'il vous plaît. Dans cette variable après que nous l'avons obtenu hors de l'opération. Non, on doit vérifier. qu'il a réussi ? Ne sont pas si je vais voir si le résultat est réussi. Ensuite, nous voulons que Toe ajoute cet utilisateur aux règles. Alors laissez-moi ralentir et résumer un peu. Donc, vous comprenez exactement ce qui se passe où vérifier s'il y a un utilisateur par le nom d'utilisateur admin. Si quelque chose revient alors c'est faux parce que nous vérifions si c'est non. Donc, si quelque chose arrive, mais alors ce n'est pas le savoir. De toute évidence, rien ne se passe ici. Si rien ne revient et nous obtenons non, alors nous voulons initialiser sont créer un objet hors type utilisateur d'identité appelé utilisateur sur. Nous passons l'administrateur en utilisant lui dans une adresse e-mail pour cet utilisateur et ils allaient essayer de créer cet utilisateur. Maintenant, si cet utilisateur a été créé avec succès avec le nom d'utilisateur désactivé, ajoutez-moi dans ce cas et un passeur de bâtard hors cours. C' est juste moi qui écris et essaye de garder ça simple. Vous avez probablement mis d'autres valeurs, mais le fait est que nous vérifions si cela a réussi. Donc, si cela a été réussi et nous trouvons que sont basés. Si le résultat a réussi, alors nous devons attribuer à cet utilisateur toe notre rôle parce que nous venons de créer l'utilisateur. Et nous avons vu que nous pouvons créer des utilisateurs. Mais il n'y avait pas d'association avec une règle, du moins pas avant. Non. Donc, non, je crée cet utilisateur sur. Je vais m'assurer que lors de la création de cet utilisateur, il obtient un Scient ou quelqu'un pour dire, gestionnaire d'utilisateur point étrange de règle, hum sur. Ensuite, j'ajoute cet utilisateur, donc il passe l'objet utilisateur sur le rôle que j'ajoute des problèmes. Il est administrateur va avec l'administrateur, roule bien sûr. Vous voulez vous assurer d'écrire ce mot correctement parce qu'il cherche ce nom. Il ne va pas essayer de créer une règle pour s'adapter à ce que vous y mettez. Donc, s'il n'y a pas de monde par l'administrateur de nom, probablement pour obtenir une flèche, Mais nous savons que la façon dont l'hiver à la cour est que l'administrateur existe le plus avant l'utilisateur soit créé, non ? Donc, après cela, nous voyons juste des poids de points, qui va essentiellement à l'application juste. Assurez-vous que cela se termine avant que beaucoup d'autres ne puissent arriver. Bon, Aan den, sachez que nous avons deux fonctions configurées. Nous devons les mettre à l'intérieur de quatre fonctions principales, qui est ce qui va être appelé, qui va ensuite appeler ces deux. Donc, une fois de plus, les rôles existent le plus avant que l'utilisateur ne soit créé. Je vois donc les règles des semences d'abord. Aan den. Eh bien, il attend un paramètre de type gestionnaire de rôle sur la valeur de la variable, principalement le gestionnaire de route, que nous aurions défini dans ce, um, paramètre avant. Non. Donc, je vais juste passer les rouleaux de graines de valeur et passé dans Roll Manager a un objet. Et puis sur la mer Rose, je vais dire les utilisateurs de graines sur. Ensuite, je transmets la valeur utilisée leur gestionnaire. Non. Avec tout cela fait, nous avons une étape de plus, qui est pour moi le point de démarrage CS Appeler cette fonction sur. Bien, évidemment au démarrage. Donc, nous devons ajouter le tribunal qui causent cette fonction sont ces fonctions définies dans notre fichier de démarrage et cela sera fait à l'intérieur de la fonction de conficker sur. Nous le ferons après la mise en place, ou les services d'authentification et d'autorisation sont mis en place. Mes bruits alors ce que je vais faire est d'appeler la classe statique. Donc une fois de plus, une classe statique lui permet de juste l'appeler pour que je puisse dire seed, c'est, euh, qui est le nom de la classe statique sur. Alors, voyez ça amarré. Et puis j'ai accès à toutes les fonctions que je peux parce que ce que je veux vraiment juste semences. En fait, ce que je vais faire, c'est moi aussi privé. Donc, j'ai juste fait les deux fonctions que je n'ai pas besoin d'appeler de nulle part ailleurs privées. Donc, je veux dire les utilisateurs de graines et de graines de rose privée Andi Well, graine est publique. Donc, quand j'appelle semences de semences saura qu'il a accès à la semence est apparu et les utilisateurs de semences. Donc, je viens d'appeler seed aan den comme paramètres. Il s'agit d'un gestionnaire d'utilisateurs et d'un gestionnaire roulé, et nous avons accès à ceux de nos matérialistes de cabinet. Dans notre fonction de configuration, les soldats au-delà de l'outil surveillent les objets qu'ils attendent. Donc elle n'est qu'une grande chaîne de marguerites. Donc nous les avons juste injectés jusqu'à l'appartement une liste ici pour que nous sachions que nous pouvons avoir accès alors nous sommes Daisy, les enchaînant à notre fonction statique que nous avons mis en place, qui va ensuite les transmettre à les fonctions qui les requièrent. Maintenant, l'attente quand j'exécute sur bond lancer mon application est que lorsque je vais dans la base de données, je devrais voir deux règles. Et je devrais voir que j'utilisateur appelé admin Onda au moins une entrée dans la table des rôles utilisateur montrant que admin est affecté à la particularize All right. Donc, je suis allé en mode débogage et j'ai eu cette erreur et il voit quelque chose sur moi qui démarre une autre opération sur la même menace. Donc je vais sortir du bateau amarré. Je vais réfractionner la cour. Je vais plutôt attribuer les résultats de la variable. Donc je vais juste sauver nos résultats est égal à sur. Ensuite, je vais dire, créer Ihsan cruel sur, puis obtenir les résultats. Donc, juste de la même façon. En fait, réalisez que parfois il est plus stable quand vous juste au résultat, ou vous obtenez le résultat, même si vous n'avez pas à l'utiliser après. Donc on va juste faire avec ça sur. Nous allons essayer à nouveau. Andi mesure sur le degré de succès que si le facteur est que Roe manager pas créer un évier passant dans le rôle qui a été pressant un peu hors cour. Non, je vois le vieux virus est égal à ce même bloc hors cour résultats que quelqu'un orteil exécuter une fois de plus et voyons. Très bien, donc cette fois ou l'application lancée avec succès. Mais vérifions si quoi pour les données a été créé Certains remontant dans mon projet allant dans mon explorateur d'objets Escalon sur. Alors je vais m'étendre. Eh bien, ce sont des utilisateurs de cacahuètes. Tout d'abord, Andi, je pense au top Open déjà. Donc juste une re rapide fraîche sur. On a dû aux utilisateurs. Maintenant, nous en avons trois. Andi, je suis ici à les regarder et je vois que ce moyen n'a pas été créé, sont laissez-moi quelque chose a probablement mal tourné avec la cour et nous pouvons revenir en arrière. Mais je ne vais pas juste vérifier si les règles ont été créées, alors je regarde juste dans le ESPN, c'est Rose Stabler sur. Eh bien, accord, donc au moins nous avons eu nos règles de rôle administrateur et employés si bien, si l'utilisateur n'a pas été créé et je suis sûr que l'utilisateur et l'Association de règles n'ont pas été créés, donc je ne vais pas m'embêter à y aller mais venez hors du mode livre sur Nous pouvons revérifier notre battement de graines Ah, configurer nos gars. J' ai donc mis un point de rupture à l'intérieur de la fonction des utilisateurs de graines sur Ben. J' ai exécuté l'application à nouveau sur fait un pas à travers. Donc, en utilisant F effort, je franchis chaque ligne hors cour et je vois l'erreur hors de mon chemin. Le problème est avec le mot de passe. Donc, les résultats. Si je survole les résultats, alors il va me dire que cet objet me dit qu'il a échoué parce que le pasteur besoin de non alphanumérique. Donc j'essayais quelques malaises de mettre un simple passeur. Mais il applique la règle selon laquelle il nécessite un mot de passe complexe. Donc je vais juste mettre un mot de passe complexe et ensuite nous ne devrions pas avoir de problème après ça. Donc, je vais juste retypé cette dernière saison P au signe S S W O R D un sur. Ensuite, je vais encore exécuter sur. Ensuite, nous devrions voir notre administrateur Onda l'affectation à la règle d'administrateur. Très bien, donc c'était faible mort, sans erreur, puis regardons en arrière dans nos tables de base de données, donc je m'attends à voir l'utilisateur. Donc, la série de la partie supérieure s'ouvre. Donc, quand je rafraîchis, je devrais avoir quatre utilisateurs. Ici, nous continuons, nous avons sur l'utilisateur admin, aan den nouvellement créé. Si je regarde dans les règles d'utilisateur réseau SP, rappelez-vous qu'il s'agit d'une table. C' est quel rôle l'utilisateur a. Il va avoir une référence de l'i d pour le rôle et une référence à l'i. D pour l'utilisateur. Bon, donc c'est à quoi ressemble le rôle que j'ai joué. Et c'est à quoi ressemble l'utilisateur i d par rapport à leurs deux pour des chaînes complexes . Mais ce sont les idées. Donc, essentiellement, si je veux faire des utilisateurs existants appartenaient à un rôle particulier, alors je vais devoir trouver que les utilisateurs i d. Donc, je devrais revenir aux utilisateurs s arachides sur Disons que je voulais faire le utilisateur t à s que je veux que cet utilisateur soit dans le roll off employés donc après prendre l'employé I d. Et je vais juste le faire et couler l'année I D et le mettre dans la règle I D colonne sur. Ensuite, après aller et mettre cet utilisateur, mettez-les là dedans et mettez-le à l'intérieur. Implore la colonne utilisateur i d et puis je peux descendre. Donc, une fois que vous avez déménagé, il s'engage à passer à la base de données afin que vous puissiez insérer manuellement des enregistrements dans la base de données. Alors je vais le faire. Je vais faire de tout le monde les employés. Nous avons donc déjà configuré Adminis un administrateur. Je viens de dire que ce 1er 1 comme le dessous d'un employé va aller de l'avant. Le changement n'est pas une raison pour laquelle je fais cela manuellement. Est-ce qu'ils existaient avant que le rôle n'existe. Très bien, donc le simple si j'ai existé avant que le rôle n'existe signifie qu'il n'y a aucun moyen que je puisse vraiment revenir en arrière et dire, hum, qu'ils sont ce que Rose sont je fais manuellement parce qu'il n'y a pas d'autre moyen pour moi. Toe les associer, au moins pas encore aurait à être tableau de bord Lota qui sont plus proches associer l'utilisateur la règle que nous voulons. Donc, je le fais manuellement, ce qui est clairement impossible parce que nous mettons en place un système où les gens devraient pouvoir venir et s'inscrire à l'inscription devrait être unique aux employés. Donc il y a un peu de soleil ou une hypothèse sûre. Je sortirai du mode débogage, et je viens de m'assurer que tout le monde qui n'est pas qui était dans le système n'est pas sur le rouleau des employés sur cela. Nous avons les règles d'administration. Donc, encore une fois, la prochaine fois que le système fonctionnera, il ne créera pas, recréera l'utilisateur administrateur ou recréera les règles car elles sont déjà là et nous mettons nos contrôles. Non, j'étais en présence de voir qu'il n'est pas pratique de demander aux gens de s'inscrire, puis retourner dans l'entrée de la base de données et de les affecter à notre rôle. Donc, je vais modifier ou cordon d'enregistrement quelqu'un de retour dans les zones et retour dans nos pages de compte et trouver ou enregistrer cordon qui a pris en retard sur aller modifier ce processus d'enregistrement où il crée l'utilisateur. Donc nous venons de le faire, il a construit un objet utilisateur sur. Ensuite, il a créé l'utilisateur sur. Ensuite, il a dit que si la création a réussi, alors faites quelque chose mais c'est exactement ce que nous venons de faire dans nos données de voir. Nous avons construit sur l'objet pour notre utilisateur. Nous avons créé l'utilisateur sur, puis nous avons dit si c'était réussi que nous voulions ajouter à la règle afin que nous puissions retirer ce bloc du tribunal ici, le mettre dans notre logique d'enregistrement. Donc, je vais dire, si l'enregistrement si l'étape de création a réussi, alors je veux ajouter à la règle sur, alors je dois changer le type d'objet parce que nous sommes la dépendance, injection ou nous avons la dépendance ou un objet représente le moniteur utilisateur autre quelqu'un à utiliser cet objet gestionnaire d'utilisateurs sur lui a la même fonction à pour rouler. Cela va prendre le même utilisateur parce que nous sommes cohérents avec notre nom, est-ce pas ? Donc, vous êtes cohérent au sein d'un moi à travers l'application. Il peut utiliser les mêmes noms à plusieurs endroits et déplacer le quartier avec facilité. Certains hivernaux attribuent cet utilisateur à la règle, pas à l'administrateur, mais aux employés. Donc, chaque fois que quelqu'un s'inscrit les a assignés à la règle des employés sur, alors nous pouvons avancer avec tout ce qui s'est passé d'autre. Alors ils peuvent être signés à nouveau et encore une fois aller de l'avant. Lorsque les gens s'inscrivent, vous supposez que vous êtes dans une route particulière et pensez à tout autre système lorsque vous vous inscrivez pour vous, aussi, ne ferait jamais l'erreur, donnant à notre utilisateur régulier sur ajouter le rôle moyen par accident ou quelque chose comme ça. Ils savent que quand vous étiez dans ce formulaire, vous allez être un utilisateur régulier. Donc, nous le savons dans notre application. Lorsque vous vous inscrivez via notre formulaire, vous serez employé. Étaient semis sur admin sur. Ensuite, on peut mettre en place un orteil de mécanisme. Ajouter plus de publicité signifie peut-être que nous le jugeons bon, mais pour non, nous avons un utilisateur administrateur, et nous avons le potentiel d'avoir autant d'employés dans le système que nous pourrions avoir besoin. Et avec cela fait, nous ne configurons fondamentalement pas les quatre lignes et les utilisateurs par défaut sur. Nous avons également mis en cour de sorte que les utilisateurs non par défaut, vous savez, les utilisateurs ad hoc, les utilisateurs qui se marient que n'importe quel point auront toujours un roll off par défaut employés. Alors ensuite, où vont mettre en place certaines autorisations pour voir que si vous êtes un administrateur que votre menu, moi ressemble à ceci. Et si vous êtes un employé que vos nombreux peuvent ressembler à cela aussi, si vous êtes un employé, vous n'avez pas accès aux choses administratives sur les orteils. Un administrateur ne devrait pas pouvoir demander un congé, vous savez, des choses comme ça. Donc, dans la prochaine vidéo, nous allons mettre en place les autorisations Parool. 27. Contrôler l'accès utilisateur avec une autorisation de rôle: Hé, les gars dans cette vidéo vont chercher à configurer l'accès basé sur des règles. Non, pour un contexte. Avec notre application, nous avons quelques options. Nous avons la possibilité de faire une demande de congé, et nous avons également quelques options administratives où ils peuvent régler, croire les heures, attribuer les congés, attribuer les congés, les congés et gérer les employés. Non dans une application réelle. Et les employés ne devraient jamais avoir une entreprise qui gère ces choses administratives dans le système et cela de la même façon. Et l'administrateur ne serait probablement jamais demander un congé sur DSO. Nous voulons restreindre en fonction des Turow que nous avons, qui sont admin sur employé, ce que chaque 11 voit dans le menu et deux peuvent réellement accéder. Donc, cette vidéo est axée sur la façon dont nous pouvons autoriser l'accès à certaines parties de l'application en fonction, eh bien, que vous aimiez ou non. En outre, en fonction de votre règle, la première chose que je veux faire est de mettre en place plus de contexte à un menu marqué. Donc, quand quelqu'un l'obtient cet écran, s'il n'est pas connecté, il devrait probablement seulement voir la maison. Et oui, nous savons où que vous jouiez à la page d'accueil, c'est bon. Mais à la fin, on ne veut pas qu'ils soient capables de se lever. Cliquez sur Demander un congé, donc même s'il est affiché, ils ne devraient pas être en mesure de procéder à une demande d'autorisation ce jour-là. Connectez-vous. Nous n'avons pas encore été dit les fonctionnalités, mais a toujours été mis en place ensemble Nous pouvons, ou regarder comment nous pouvons restreindre l'accès indépendamment. En outre, si la personne n'aime pas être et encore plus si elle aime, mais qu'elle n'est pas un administrateur, nous ne voulons pas qu'elle ait accès ou visibilité sur les options de gestion dans l' application. Donc, ce que nous allons faire, c'est commencer par mettre en place des autorisations. Ou un filtre orteil saura-t-il ce qui est affiché dans le menu ? Et quand de retour dans Visual Studio, si nous allons modifier le menu que nous devons modifier notre page de mise en page parce que c'est là que notre menu est défini ou assez de barre sur ? Ensuite, vous voyez ici que nous avons le puits Dave, nous commençons par la barre de navigation remorqueur et nous avons notre bouton, et ensuite nous avons nos liens. Donc c'est le 1er 1 qui est à la maison. Le 2ème 1 qui est applicable pour congé alors cette section où nous voyons que seul un administrateur devrait jamais voir cela dans leur menu. Donc orteil contextualisé cela nous pouvons probablement référencer sur Le Guin page partielle sur ce genre de nous donne une idée de ce qui est possible. Donc, lorsque nous ne sommes pas authentifiés, lorsque quelqu'un n'est pas aimé dans l'application, il ne verra qu'un lien indiquant s'inscrire et un lien qui est un cône lorsqu'il est enregistré ou qu'il fait du lobbying. Désolé. Puis ils voient la mer dans la même section Un lien qui dit bonjour. Tu l'utilises sur un autre lien pour la loi, chèvre. Le fait est que ceci, si la déclaration est, gère ce qu'ils voient quand alors la condition est que quelqu'un est connecté ? S' il y a alors affiché le message bonjour et le bouton logo sinon afficher la journalisation et l'enregistrement afin que nous puissions adopter ce genre de logique sur l'utiliser pour déterminer dans notre application ce que la personne verra sur la barre de navigation quand ils y arriveront. Donc, la première chose que nous voulons faire est de réutiliser ce Si les instructions je vais juste orteil, copiez ceci et collez-le de sorte qu'il voit si le gestionnaire de signature qui est connecté à l'utilisateur. Et puis vous voyez que le gestionnaire de signature a une ligne rouge parce que nous avons besoin d'une bibliothèque pour que le gestionnaire de signature fonctionne. Mais avant de faire cela, je vais dire qu'ils si la personne est connectée, alors ils ont besoin de voir ce bloc, qui est le côté de la liste déroulante va fermer l'instruction if. Donc cette déclaration est ouverte. Accrochez-vous. Nous fermons l'accolade. Donc si la personne s'est connectée, alors nous allons imprimer l'écran, d' accord ? Non, le responsable de la signature a encore une fois une ligne rouge. Si je retourne à me connecter impartialement et que je fais un peu plus attention que je me rends compte qu'au-dessus de là , y compris certaines bibliothèques utilisant la bibliothèque d'identité sur injectaient également le gestionnaire de signature et les gestionnaires d'utilisateurs. Je vais juste copier tout cela à partir du journal en partie, et puis je vais coller les orteils dans la mise en page en haut de la fosse. Nous incluons donc ces bibliothèques dans la mise en page. Sa mise en page a en fait accès aux objets pour le gestionnaire de signature et le gestionnaire d'utilisateurs. Et puis quand je baise seul, nous voyons que la ligne rouge a disparu parce que non, la demande que les bibliothèques sont des prisons. Donc, cela veut dire une fois de plus que l'utilisateur s'est connecté, puis a affiché quelqu'un orteil retourner à mon frère et tester ce tribunal. L' attente est que lorsque j'actualise cette gestion ne devrait pas être affichée parce que je ne suis pas signé ici. Très bien, donc après avoir rafraîchi, nous nous rendons compte qu'il n'y a pas beaucoup d'options pour l'argent, donc pour savoir qu'il y en avait une. Mais à cause de l'introduction ou de la déclaration, il n'y en a plus. Et puis je vais aller de l'avant et me connecter, puis j'ai en amour. Nous voyons que de nombreuses options ne sont pas disponibles. Donc c'est tout ce que vous pouvez, vous savez, déterminer ce qui a permis d'être utilisé ou voit sur votre écran par rapport à ce que je ne suis pas aimé dans l'utilisateur. Non, nous avons dit que nous voulions seulement que les personnes qui n'ont pas le rôle d'administrateur puissent le voir . Donc, en ce moment, cet utilisateur est hors du rôle des employés parce que nous avons mis en place cette règle avant sur dso cette personne alors que même lorsque cette personne se connecte là-bas ne devrait vraiment pas voir l'option à gérer. Donc, je vais encore avoir les pieds un peu plus de la cour. Donc, nous vérifions si la personne aimée est sur ? Ensuite, nous allons devoir faire une autre vérification et voir si les points utilisateur est en règle sur. Ensuite, nous allons spécifier la règle que nous vérifions. Donc c'est un condamné qui nomme ça comme une convention de fonction. Juste quand vous voulez vérifier est dans quelque chose ou quelque chose de l'Est, c'est juste quelle que soit l'action. Donc, nous vérifions si l'utilisateur est dans la règle et la règle que nous vérifions pour sa visite du ministère de l'annonce . Si l'utilisateur est un administrateur, puis nous ouvrons et ces accolades et rappelez-vous que va avec les instructions, tout ce qui est à l'intérieur des brises, tout ce qui va obtenir l'action. Donc on a juste fait ce bloc, on l'a mis à l'intérieur. Donc si quelqu'un aime être sur, s'il est administrateur, alors nous vérifions. Ensuite, nous imprimons ceci. Donc, s'ils ne sont pas administratifs et clairement ce serait imprimé. Donc, quand je sauve cela et retourne à la page et actualise, l'attente est qu'ayant été aimé en tant qu'employé, cette option de gestion disparaîtra dans le menu sur Douala. Nous sommes donc toujours connectés en tant qu'employé. Mais il n'y a pas d'option de gestion car nous ne sommes pas des administrateurs. Laisse-moi essayer encore une fois. Je vais adorer les bateaux, puis je vais me connecter à nouveau et cette fois en tant qu'administrateur. Donc je vais dire ajouter méchant à la fumée. Tout un truc. Allez, le P extérieur ssw rd on, puis connectez-vous. Oh, mon Mais ce n'est pas dot com. C' est l'hôte Loca. Je pense que je devrais changer ça. Je vais probablement obtenir une erreur de validation. Laisse-moi essayer encore une fois. P au signal S S W O R D un. D' accord. Donc, je suis désolé. J' ai configuré mon utilisateur admin avec un peu off mix up. Donc le nom d'utilisateur que je vais faire en une adresse e-mail. Donc, en ce moment, je suis dans la table des utilisateurs réseau SB dans la base de données, et je vais juste aller de l'avant et dire que j'ai été à loca hosts dot com, Donc, afin de changer cela, donc nous allons devoir faire une configuration parce que j'étais un peu complaisants dans les unités , donc je vois juste que nous devrions avoir admin à loca host dot com que le nom d'utilisateur sur puis ce même nom d'utilisateur ou adresse e-mail que l'utilisateur faible normaliser près de notre capsule sur alors nous connaissons les adresses e-mail. Je veux dire à l'hôte local dot com sur l'adresse e-mail normalisée est locale. Hôte est admet hôte local dot com Donc, nous pouvons juste faire ces changements et soumettre. Peut-être que tu n'as pas ce problème. Je le fais. Donc, si tu m'as suivi au thé, alors je vais juste te montrer pour essayer ça à nouveau. Donc, admin à l'hôte local dot com avec notre mot de passe et il y a été enregistré affaire sont. Donc j'adore cet administrateur sur Dwell. L' option de menu n'est pas là, et je suis sûr que c'est parce que j'étais une erreur d'orthographe quelque part, et c'est ce que j'ai. J' ai eu beaucoup de traître donc Adminis Street ou sur. Ensuite, je vais juste à moi que Jian sauver et puis rafraîchir et après un rafraîchissement, maintenant nous voyons ce que nous attendons. Donc, l'utilisateur admin voit les nombreuses options que l'employé n'a pas pu voir sur cet utilisateur aimant ou pas aimant. Encore plus n'a pas pu voir non. Restreindre le menu est une chose. Mais alors, si vous êtes intelligent, vous savez, si vous êtes un attaquant intelligent ou quelqu'un qui attaque l'assistant pourrait être intelligent. Ils peuvent prêter suffisamment d'attention pour se rendre compte que chaque fois qu'ils vont à quitter les types, les lynx, hôte local ou tout ce que le lien est slash leave types. Maintenant, je vais juste faire une expérience et te montrer quelque chose avec cette personne pour copier ce lien où je connais cette fille. Je vais adorer bateau et pendant que nous limitons la visibilité, donc ce n'est pas l'amour d'être utilisateur sur, nous limitons leur capacité à cliquer sur le menu et cliquer sur les types de congé. Mais alors, s'ils faisaient attention et qu'ils y allaient directement, alors ils auraient toujours accès, ce qui est toujours indésirable. Nous ne voulons pas que quelqu'un qui n'est pas connecté orteil accès à cet écran, même s'il tape indirectement le lien. Il y a donc un autre niveau de protection que nous pouvons ajouter afin que nous puissions revenir à notre projet. Et cette fois, nous allons ajouter cette protection à la manette. Donc, nous allons aller aux contrôleurs aller laisser les contrôleurs de type allumés. Ensuite, pour le contrôleur de temps de congé, nous pouvons ajouter une annotation de données qui lui est autorisée. Non, laisse-moi juste mettre ça en perspective. Je peux voir autorisé directement sur une action, et je vais le faire. Autoriser. Tout va bien. Ensuite, j'inclurai la bibliothèque manquante sur. Ensuite, cela dira en fait que si quelqu'un essaie de Bro à cette action ou obtenir la vue associée à cette option, il devra se connecter avant d'y arriver. Quelqu' un pour répondre à ce changement, enregistrer, puis revenir à notre page, puis rappelez-vous que lorsque nous avons juste une barre oblique, les types de congé sont vraiment charger l'index. Donc, quand je rafraîchis ceci, alors vous allez commencer à voir l'écran de connexion et puis le retour que vous êtes un lien va commencer à avoir du sens où il est réellement stocké. Quel est le retour que vous êtes, c'est ce que le but est. Quand j'essaie directement chez Bro de laisser des types, ça m'a amené à l'écran de connexion, donc c'est ce que le discours autorisé fait pour vous. Il dit que si vous avez dit ce truc sur une vue ou une action à l'intérieur du contrôleur lorsque cette vue est demandée, alors la personne a utilisé pour se connecter pour continuer. Maintenant que la blessure est que lorsque vous le définissez sur l'action, vous allez devoir vous asseoir sur chaque action à l'intérieur du contrôleur si cela est désiré, parce que s'ils ne devraient pas être en mesure de voir l'index, alors ils ne devraient vraiment pas être en mesure de voir tous les détails. Sont nos créer quelque chose sur, par la façon dont nous si nous sommes attention une fois de plus, nous saurions que si nous disions barre ici est un exemple tel qu'il slash un que Oh, eh bien, je n'ai rien avec I d un faire. Je l'ai peut-être aussi. OK, on y va alors. Je peux toujours avoir accès à cela sans être authentifié du tout. Donc... moyen plus simple de configurer l'authentification pour l'ensemble du contrôleur, car tout ce qui est types de congé associés ne doit pas être accessible par quelqu'un qui n'est pas un administrateur. Quelqu' un pour prendre ce remorqueur autorisé et je suis l'hiver à la place. Mettez-le en haut de la création de classe pour le contrôleur de types de congé. Donc, vous avez la ligne. C' est sa classe publique. Quel que soit le nom du contrôleur. Andi, tu vas mettre cette annotation de données d'autorisation au-dessus de ça. Ce que cela fait est de dire que tout ce contrôleur et tout son contenu et tout ce qu'il était effondré en appuyant sur ce moins Signe tout le contenu de ce contrôleur. Chaque action doit être ce que vous devez être autorisé pour avoir accès à toutes les de ces actions. Donc, quand je fais ce changement et enregistrer et puis aller et rafraîchir, je remarque où je suis juste rafraîchissant l'écran d'édition, toujours pas authentifié. Ensuite, je reçois cet écran de connexion. Et même si j'essaie un autre, 1 peut être désolé que ce soit dans mon presse-papiers. Si j'essaie, laissez-moi essayer de supprimer cela et dire que les types de congé de barre oblique sur gars ont essayé de faire quelque chose comme créer afin que je puisse aller slash créer. Il va toujours demander que je me connecte avant de pouvoir aller de l'avant. Non, laisse-moi me connecter. Et juste pour prouver que cela fonctionnera. Donc, je me connecte en tant qu'employé, être en dehors de ssw rd un et puis je me connecte sur leur Non, j'ai accès à l'écran de création sur ce est toujours faux, Donc je veux dire, nous construisons à la hauteur. Donc, c'est toujours faux parce qu'en tant qu'employé, je ne devrais vraiment pas être en mesure d'accéder aux types de création pour congé. Je ne devrais pas pouvoir accéder à quoi que ce soit pour les types de congés ou tout ce qui est administratif. Donc non, nous devons mettre quelque chose d'autre sur notre autorisation pour spécifier qui il est autorisé à obtenir l'accès et qui dans ce cas signifie la règle. Donc, je peux juste ouvrir les courses sur le mot autoriser. Et nous voyons que dans le tennis, en nous soutenant que nous avons trois options à ajouter. Nous avons des systèmes d'authentification des politiques et nous avons des règles dans cette situation. Nous voulons des règles, quelqu'un pour dire des règles égales. Ensuite, la règle. Et j'ai divulgué la brèche. Contente que vous le fassiez plus tard sur la règle selon laquelle nous autorisons à interagir avec tout ce trouve à l'intérieur. Ce contrôleur est ajouter visite du ministère, quelqu'un pour moi, cet ajustement et Seve Et puis je vais retourner être connecté en tant qu'employés, et je vais me rafraîchir et puis vous allez voir que nous nous entendons à l'écran. Wow. Mieux encore, on n'a même pas eu l'accès. On a eu un accès refusé. Nous n'avons même pas eu la sucette à l'écran parce que ça veut dire que vous n'aurez pas à avoir l'occasion de vous connecter. Tu n'es pas un orteil de charge. Accédez à cette ressource, d'accord ? Donc si j'agissais en tant qu'employés, je voulais le faire, mais j'étais du tout j'ai accès ce soir. Ils ne sont pas après la loi Chèvres sur, puis connectez-vous à nouveau. Et puis cette fois en tant qu'administrateur. Alors rappelez-vous que c'était de changer d'administrateur à l'hôte local dot com sur notre pasteur. Cela être attribué un peu sarpy en dehors évalué de l'organisation un, et puis je suis connecté. Ensuite, je vois mes nombreuses options, et puis je peux franger's librement à mes options administratives. D' accord, donc c'est tout. Nous pouvons donc opter pour notre propre, vous savez , en limitant l'accès à certaines parties de leur application pour certaines personnes. Donc, juste pour résumer, la première chose que nous avons fait était de regarder l'ensemble du point de vue du HTML ou de la perspective Razer pH, nous pouvons restreindre ce que quelqu'un voit. Donc, même s'il s'agit d'un cas où vous vouliez que le bouton Supprimer s'affiche pour une certaine règle, mais pas pour un autre rôle que vous savez qu'un employé peut afficher, mais qu'il ne peut pas modifier et supprimer. Mais alors un administrateur peut vraiment et vraiment seulement besoin de nos déclarations sur. En fait, je vais juste ouvrir la vue d'index pour le type Leave. Puisque c'est celui que nous avons, je vais vous montrer qu'on a la cheville. Il affichera le bouton d'édition, un pour les détails et un pour la suppression. J' ai juste besoin d'une déclaration if, tout comme celle que nous avons utilisée dans Leo pour le menu sur. Je dis, Si l'utilisateur est amour être, si l'utilisateur est dans le rôle, alors ils peuvent le faire, puis imprimer cela d'autre. Imprimer quoi que ce soit d'autre, d' accord, donc cela signifie que je pourrais dire OK, imprimer les détails, mais peu importe, Mais si la personne est à moyenne, puis afficher l'édition Onda supprimer. C' est ainsi que nous pouvons contrôler ce que chaque ligne voit de la vue. Non, pour le contrôleur, vous savez, restreindre simplement en fonction de ce qu'ils peuvent voir sur Click ne suffit pas, parce que si quelqu'un fait attention aux filles, ils peuvent probablement toujours essayer de Bro est directement sur la page où ils sont intéressés par Andi, peut-être par Alicia. Donc, afin de bloquer les douves, nous nous assurerions simplement que nous autorisons si la personne avant de simplement le limiter à enregistrer étant des personnes et nous disons simplement autoriser. Donc, pour le contexte, quand vous essayez d'aller sur quelque chose sur Facebook et de manger un peu à nouveau, c'est tout ce qu'ils ont vraiment. Ils ont juste quelque chose qui est un accès autorisé. Donc, cette rencontre la personne doit se connecter alors si vous êtes peut-être avec un ami et vous avez vu qu'ils avaient l'accès administrateur orteil quelque chose. J' ai fait attention au comte, et puis vous rentrerez à la maison et vous essayez avec votre connexion, vous pouvez obtenir l'accès. Alors peut-être que vous n'êtes pas dans la règle dans laquelle votre ami est. Donc, le fait est que vous pouvez le restreindre en fonction de la règle en disant accolade ouverte autorisée, définissant la ou les règles afin que vous puissiez toujours dire des virgules sur autant de règles que vous savez que vous pouvez avoir. Donc, dans ce cas, je veux vraiment seulement que le rôle d'administrateur ait accès à ce contrôleur Andi, comme nous l'avons été, les charges sont prédisent leurs autres contrôleurs auxquels seul l'administrateur devrait avoir accès , et ils vont être d'autres contrôleurs si bien quand je suis allé restreindre, mais seulement quelqu'un qui est amour être devrait nous avoir accès à. C' est donc tout pour apprendre à restreindre l'accès des utilisateurs à certaines parties de votre application et contextualiser ce que chaque règle utilisateur voit. 28. Réviser et ajouter des modifications à GitHub: Hé, les gars, bienvenue dans cette vidéo, nous allons juste passer en revue tous les changements que nous avons faits dans notre projet jusqu'à maintenant sur le contrôle de nos changements pour se lever. Non, juste un rappel. Si nous regardons dans notre Explorateur ou expert en solution, nous verrons que nous avons des fichiers avec des cadenas bleus. Cela signifie que depuis la dernière fois qu'ils ont été enregistrés dans le contrôle de la source, ils n'ont pas changé notre ils n'ont pas été modifiés. Et puis nous en avons certains avec des signes proches, ce qui signifie qu'ils ont été ajoutés, Ils sont complètement nouveaux fichiers sur, ils ne sont pas dans le contrôle de la source. Et puis on en a avec des tiques rouges. Et ceux-ci signifient vraiment qu'ils ont une version dans le contrôle de la source sur ces moyens hérétiques que les changements apportés à ces fichiers ne sont pas encore engagés dans le contrôle de la source. Donc, c'est ce que nous allons faire sur ce qui va être un processus très simple. Nous avons juste un clic droit sur notre solution. Nous cliquons sur commit, nous donnons ensuite un message de validation pour nous rappeler que nous voulons que notre message soit propre et, vous savez, simple que possible. Pour que quelqu'un qui vient le long puisse comprendre. Alors j'ai écrit une petite dame. Vous dites juste que j'ai mis en place l'utilisateur par défaut Rose et l'administrateur sur modifié le processus d'inscription. Donc c'est mon message de bande dessinée. Et puis après avoir fait ce message, je ne fais pas la flèche et dis « Commit tout et couler » et puis ça le fera. mise à jour de mon dépôt local ici sur la machine sur a également poussé les changements pour obtenir de l'espoir. Et encore une fois, si vous travaillez dans une équipe, alors il ne chargera pas le dernier, hum, projet qui est là que vous pourriez ne pas avoir. D' accord, on. Une fois que ce processus est terminé, vous pouvez toujours aller juste pour vous faire sauter. Allez, vérifiez que le poulet a été fait avec succès. Donc sur le Greep. Oh, je vois que la direction des derniers comités là-bas si j'y vais. Alors c'était le cas. Montrez-moi ce qui a été, vous savez, modifié à la suite de ces validations ou n'importe quel dossier, tout fichier qui a été archivé avec ce comité aura ce message de validation à côté de lui . C' est ça. Donc, le lendemain matin, vous commencerez à construire sur le module de gestion des employés, et nous verrons comment cela se passe. Alors c'est tout. Nous avons vérifié nos modifications et nulle part prêt pour le prochain défi. 29. Vue de l'ensemble de module d'allocation: Hey, les gars, on va commencer un nouveau modèle ou une application, et ce sera pour le congé. L' allocation pour ce modèle permettra d'activer une nouvelle application déchirée de section. Nous avons donc notre top géré, qui n'est accessible que par les utilisateurs admin sur pour le congé. Les allocations vont lister tous les types de feuilles, que nous avons déjà une interface à créer. Donc, nous avons tous les types de feuilles ici que nous pouvons créer. Mais alors, pour chacun qui est créé, nous allons orteils, faites-les lister dans les allocations de congés sur. Ensuite, nous aurons des boutons dédiés qui configureront le nombre de jours de congé que chaque employé dispose pour chaque type de congé. Maintenant, l'astuce est que nous allons devoir apporter des modifications à la base de données. Nous allons devoir modifier la table des types de feuilles parce que je veux être en mesure de définir un nombre par défaut de ces types de congé. exemple, Par exemple, il est normal que vous obteniez 10 jours de congé de maladie chaque année. Il est également standard que vous obtenez 15 jours de vacances chaque année, etcetera. Donc, lorsque le type de feuille est créé, nous devons permettre à l'utilisateur de mettre ce nombre de jours de congé par défaut pour ce type de feuille. Ensuite, pour l'allocation, nous allons devoir apporter des ajustements à notre table de données existante. En outre, parce que vous voulez définir cette allocation de type de congé pour une période sur apparaît serait pour l'année civile. Donc, nous allons ajouter deux nouvelles tables de base de données de magasin, une pour les types de feuilles toe set, le nombre de jours de repos par défaut sur un autre pour la période pour les allocations de congés de sorte que lorsque nous affectons ce type de congé allocations Onda, les utilisateurs, il dira que c'est pour la période hors de l'année où il est installé, et nous allons automatiser le déclenchement de cette jetée. Donc, sans plus, je le fais, hum, dans la prochaine vidéo, nous allons commencer à travailler sur les modifications de base de données qui allaient être faites sur. Nous allons construire ce modèle progressivement 30. Module d'allocation - Modification de base de données: Hé, les gars, bienvenue dans cette vidéo va commencer à faire des ajustements à nos classes de données et ensuite nous allons migrer. Ces changements dans les bases de données devraient être une courte vidéo. C' est vraiment juste pour montrer qu'au fur et à mesure que nous développons une application, nous voulons dire , vous savez, changer la façon de penser Gene. Nous voulons mettre en œuvre quelque chose qui a des répercussions sur la structure sous-jacente de la base de données sur les ASM qui utilisent les tribunaux. Tout d'abord, il est vraiment facile de modifier notre base de données au fur et à mesure que nous avançons. Il suffit de le garder aussi opté huit que possible avec nos objectifs à l'époque. Donc, notre objectif pour cette leçon particulière est d'ajouter orteil à d'autres champs. Vais-je sentir sa table ? Donc je dois dire à quelqu'un trouver que je me sens à mettre dans chacun dans la table de type feuille. Nous allons ajouter un nouveau champ, et c'est pour un nombre de jours de congé par défaut. Donc, je vais juste dire public sur, puis je vais voir sur puis je vais dire jours par défaut. Très bien, donc ce sera le numéro de ces quand nous créerons un congé. Lorsque l'administrateur crée un type de congé par défaut, il s'agit du nombre de jours de congé. C' est la norme pour n'importe quelle personne. C' est une valeur de base. Hum, quand vous allouez le congé, non, vous pouvez le faire au cas par cas. Pour dire que vous savez, les règles commerciales dicteraient que les gens qui sont dans l'organisation depuis plus de cinq ans aient probablement cinq jours supplémentaires pour l'eau. La valeur de base est que vous savez, vous ne pouvez pas juste aimer ça, mais c'est pourquoi je mets cette valeur de base. Est-ce que c'est pour ces champs de dire que, vous savez, au moment de la création d'un type de feuille ? C' est le nombre de ces qui est standard pour ce type de feuille. Donc, nous allons ajouter qu'aux données T la classe de données et la classe de données est une fois de plus dans le dossier de données sur nous trouvons la particule qui est laissé, tapez sur. Nous ajoutons la propriété sur, puis la suivante que nous ajustons est l'allocation des congés. Donc, pour l'allocation des congés, nous avons déjà le nombre de jours de congé. Andi, ce n'est pas redondant. Je suis en train de définir le nombre de jours dans l'allocation aussi, parce que rappelez-vous, cela pourrait être une valeur calculée au cas par cas. En outre, nous voulons que ce nombre toe soit modifié ou au moins refléter. Quand quelqu'un demande de congé aura besoin de ce nombre orteil faire un certain maître, Montrez-leur combien de jours ils ont vraiment contre ils font dur, droit, Mais l'allocation ou laisser être stocker le nombre de jours de congé que AARP articulaire a sur un type de feuille particulier sur. Alors ce que je vais ajouter à cela est une période sur cette période une fois de plus indiquera que Eh bien, je suis j'appelle un point. Je suis période va vraiment être une fin qui représente l'année. Cela est donc en cours d'enregistrement en 2020. C' est donc une toute première période qui sera entrée dans le système. Donc, la période de 2020 quand je localise le congé, tout le monde est allé pour obtenir cela clairement pour le Pier 2020. Quand il sera 2021, le système sera mis en place d'une manière qui, je veux dire, nous pourrons l'automatiser plus tard. Mais la façon dont je construis le savoir est que quand ils cliquent, allouer, laisser type qu'il devrait vérifier est là sur l'allocation pour un employé pour une période particulière qui est apparu dans lequel. Non, s'il y en a, ne recommencez pas. S' il n'y en a pas, alors appliquez. Donc, si nous le faisons une fois pour 2020 que les employés ne devraient jamais obtenir une autre allocation Inter pour la période de 2020. Cependant, si nous le faisons en 2021, alors cet employé qui l'avait pour 2020 saura obtenir une nouvelle allocation pour 2021. Tout sera recalculé sur. Encore une fois, les règles métier peuvent déterminer peuvent être utilisées pour déterminer le nombre réel de ceux-ci par rapport à la valeur de base. Donc j'ai passé toute une série d'explications, mais je montre juste la justification des modifications que je fais. Je ne veux pas que ce soit un autre tribunal. Je veux que nous comprenions exactement ce qui se passe sur la raison pour laquelle je fais les changements afin que vous puissiez le voir d'une manière différente. Tu veux dire, tu sais, avoir une autre façon de penser si tu te sens libre de partager ça avec moi. Mais pour non, j'ajoute ces deux sentiments pour ces raisons particulières. Alors sachez que j'ai ajouté ces frais. J' ai un certain nombre d'ajustements pour moi. Sinon, d'abord, j'ai besoin de mettre à jour la base de données réelle. Rappelez-vous que nous aurions déjà eu la base de données générée. Si je passe à l'Explorateur d'objets SQL une fois de plus, si vous ne voyez pas cela, les panneaux sont n'importe où sur votre écran. Vous pouvez toujours aller à la vue sur le trouver. Explorateur d'objets SQL Server sur. Ensuite, si je hiérarchise dans la base de données, qui est la gestion des congés, alors vous verrez que j'ai déjà ces tables et que les types de congé sont bien, il n'a pas la valeur par défaut ces colonnes que je viens d'ajouter. Très bien, donc il a un bras trois sens, et c'est moins par défaut. Donc, évidemment, j'ai besoin de mettre à jour cette base de données afin qu'elle n'ait pas d pour ceux-ci. Donc, pour ce faire, nous allons à notre paquet. Consul Package Manager Console. Désolé sur. Si vous ne voyez pas cela dans le menu de base, vous pouvez aller à des outils sur vous. voyez, vous obtenez le gestionnaire de paquets, puis vous pouvez dire la console du gestionnaire de paquets. Donc c'est ce que vous mettez le pied sur cet outil. Ensuite, vous pouvez ajouter une migration. Donc, chaque fois que vous faites un ajustement à votre base de données, vous voulez dire le fichier ? Vous savez, vous avez fait des ajustements des classes de données et vous devez ajouter une migration. Onda. J' ai traversé ça. Ce que je fais encore. Chaque fois que vous ajoutez une migration, vous obtenez un nouveau fichier. Ce genre de dépeint les changements. Donc, lorsque vous ajoutez la migration, vous voulez mettre un petit message. Leur orteil représente en quelque sorte les changements que vous avez faits. Non. Si quelqu'un vient après 56 mois de vos migrations, ils reprennent ce projet, peut-être même du ghetto bar. De quoi à un groupe source de moteur. Ils peuvent facilement exécuter une commande qui examinera d'abord toute la migration et construira la base de données selon la dernière ou la dernière norme. C' est donc un bon moyen de suivre les modifications que vous effectuez, et vous pouvez toujours supprimer les migrations. Vous pouvez toujours annuler les modifications que vous avez apportées, mais c'est un bon moyen de suivre toutes les modifications que vous apportez à votre base de données. Donc, ajoutez la migration et puis je dirai, ajouté e jours de faute. Onda ici sont tout droit, donc je vois ajouté par défaut. Ceux-ci et pair de ceux-ci sont les deux choses ont ajouté une entrée de presse. Il fait de la magie où il construit le projet sur Une fois que cela est terminé, nous verrons la construction du message a réussi et que nous pouvons supprimer la migration par son nom. Mais plus important encore, si vous regardez dans cette migration, voyez-vous qu'il y a un nouveau fichier de migration qui reflète cela hier soir ? Super. Donc nous venons d'ajouter à droite, alors c'est la première étape. Étape deux ou bien, ce sera l'étape deux. La première étape apportera une modification. Étape deux est d'ajouter la migration sur toe enfin, bien que la mise à jour de sécurité de base de données sur la base de données Dash, et vous pouvez en fait juste pour arrêter l'instruction complète automatique et puis vous appuyez sur Entrée sur . Ensuite, il construira une fois de plus le projet sur def. Tout va bien, alors vous verrez des messages de succès sur. Ensuite, l'ultime preuve de succès est de revenir à la base de données, d' actualiser les objets de données, puis de rechercher et de vérifier que les nouveaux champs ont été ajoutés aux tables respectives. Donc je vais dans les tables allant dans les types de congés, forage vers le bas dans les colonnes sur. Ensuite, vous voyez les jours par défaut qui ont été un peu réussis de la même manière pour les allocations de congés . Vous verrez qu'il y a un nouveau champ appelé période. Aussi, le dossier de la migration a peut-être ouvert pour vous où ils montrent toutes les modifications si horribles pour moi. Donc vous voulez dire que vous pouvez passer du temps orteil, vous savez , apprécier cela, mais il est généralement généré pour vous sur Si c'est sans erreur, alors vous avez vraiment aucun problème. Donc, je peux supprimer que les prochains changements que je veux faire, hum, entourent les modèles de vue. Rappelez-vous donc que les modèles de vue modélisent littéralement la classe de données. Nous pouvons ajouter et enlever les sensations comme bon nous semble. Mais pour le type de feuille V. M. M. Non, je dois m'assurer que j'ai une représentation pour les jours par défaut, et je dois également m'assurer qu'il est nécessaire que quelqu'un dise nécessaire que je vais mettre dans la propriété sur je viens d'écrire correctement et appuyez sur arrêté deux fois dans jours par défaut. Rappelez-vous cette année, vous devez faire correspondre le cas sur beaucoup le nom de sorte que l'automobile mappe proprement sur. Je vais également mettre dans d'autres validations comme je vais définir une autre annotation de données sur, et je vais l'appeler plage. Donc, la plage me permet fondamentalement de valider un champ numérique, et cela prend ah beaucoup de moment de maximum. Donc le minimum est un, mais ça n'a pas de sens. L' autre type de congé avec zéro D sur le maximum est peut-être Oh, non. Il ne devrait y avoir aucun type de congé de plus de 25 jours. Bon, donc je veux dire, tu peux le mettre. Vous pouvez l'utiliser avec un grain de sel basé sur les règles de l'entreprise et les directives que vous avez données hors cours. Vous devez le gérer en conséquence sur. Ensuite, je vais mettre en ondes un message signifiant de sorte que le message d'erreur no sera ce qui est affiché lorsque ces plages ont violé. Donc, le message d'erreur est S'il vous plaît entrer. Ah, le nombre estimé. Bon, donc quand ça va, tu sais, violé ces règles, alors tu verras le message. Veuillez saisir un numéro valide. Donc, c'est la machine virtuelle de type feuille, puis juste de la même façon pour l'allocation de congé off. En outre, je veux mettre un nom d'affichage correct avis surround, jours par défaut comme une chose de cas de caméra. Donc, je vais mettre dans un affichage sur le nom sur puis le texte que je veux afficher est nombre par défaut de ces. Donc le nombre par défaut est désactivé. C' est de voir ce que tu sais quoi ? C' est juste l'étiquette qui sera imprimée sur le formulaire que le type de congé Veum est utilisé sur l'allocation des congés. VM ont déjà quelques choses ici. Euh, quelqu'un pour modifier ça. Laissez l'allocation v m. Je l'aurais créé avec une chose particulière à l'esprit, mais je vais le modifier. Mais à la lumière de ce que nous faisons, je vais faire les mods suivants d'abord avant le nombre de jours de congé je vais les pieds. D' accord, eh bien, je vais revenir à ça. Donc je vais enlever le remorqueur Onda requis. Je vais aussi ajouter ah, propriété quatre période I Une fois de plus, P route représente cette année civile. C' est l'allocation est valide. Quatre. Bon, donc on a fait une petite marche. Je peux construire ce projet et puis nous verrons si nous avons des problèmes avec les modifications que nous avons faites jusqu'à présent sur la base de l'ancien message de mise et voir qu'il a réussi. Donc, je n'ai pas d'erreurs. Et donc nous avons fini avec toutes les mises à jour de base de données, au moins pour non. Donc, dans la prochaine vidéo va commencer à concevoir la vue 31. Module d'allocation - Créer un affichage Créer de créer une vue: Hé les gars, dans cette vidéo, nous allons créer sur la mise en place de la fonctionnalité qui est nécessaire pour soutenir ou laisser l'allocation. Cependant, avant d'entrer dans tout cela, je vais juste apporter quelques modifications à un code existant, à savoir les vues qui sont là pour soutenir les opérations de foule pour les types de congé. Non, si vous vous souvenez, nous avons juste mis un nouveau champ dans les types de congés, et c'était pour le nombre par défaut de jours de congé. Ce que je veux faire, c'est refléter cette nouvelle valeur. J' ai donc mis à jour le modèle de vue, mis à jour la classe de données et la base de données et tout. Mais nous devons réellement montrer cette valeur à l'utilisateur. Donc, si je reviens aux vues existantes à ce sujet, vous savez, vous pouvez le faire de deux façons, vous pouvez soit essayer de régénérer toutes les vues, ce qui, pour moi, est ennuyeux , vous savez , vous savez. Chaque fois que vous faites un changement, il après région eri la vue ou vous pouvez simplement apprendre à le modifier. Donc, si vous avez une appréciation pour l'ensemble, le tribunal est une interview qu'il peut juste modifier parce que vous avez modifié votre modèle de vue. Vous avez besoin de nouvelles données pour afficher les données que vous souhaitez supprimer. Si vous savez simplement comment changer le composant visuel, qui est la vue, alors vous pouvez, vous savez, fléchir un peu plus facilement. Donc avec tout ce qui dit, je commence par la vitesse de l'indice. Donc je veux sur la liste. Ne connaissent pas Alicia dans le nom aux dates auxquelles le type de feuille a été créé. Personnellement, je pense que nous pouvons nous passer de la date créée. Je l'utilisateur qui va voir la liste hors. Laisser des impôts ? Non, quand il n'a pas besoin de savoir quand le type de piste a été créé, cependant, le numéro par défaut de ceci pourrait être utile. Donc, ce que je vais faire est de remplacer ce champ par défaut est tout droit. Alors nous allons obtenir le nom d'affichage pour le nom, que nous n'avons pas mis de meilleure notation pour cela. Donc ça va juste voir le nom sur. Ils obtiendront le nom d'affichage par défaut. Ceux-ci et moi revenons juste en double, vérifiez le modèle de vue et assurez-vous que je renverse du rouge. Obtient le nom par défaut avant cette casse de chameau Désolé qui est correcte sur. Ensuite, nous aurons l'affichage pour sur au lieu d'afficher la grande création que je vais afficher les jours par défaut sur tout le reste peut rester le même. Notre tableau de données pour les types de feuilles le sont aussi. Vous allez juste avoir le nom sur le nombre par défaut de jours de congé pour ce type de congé ? Non. De la même manière, j'ai besoin de le montrer sur l'édition parce que maintenant est-ce que c'est qu'il garde la date créée et l'idée. Ça les cache, bien sûr, bien sûr, mais j'ai besoin d'un moyen pour qu'ils puissent faire un changement, non ? D' autant plus que c'est après le fait. Parce qu'on vient d'ajouter ça. Donc, heureusement, nous n'avons créé que trois. Nous pouvons revenir en arrière et juste éditer les trois sur Mettre dans la nouvelle sensation qui est là, c'est nécessaire. Donc, je vais juste si copier cette section qui nous donne la zone de texte sur, comprendre pour le coller, ils ne veulent pas dire que c'est avant les quatre jours à la place. D' accord, , alors, tout ce qui dit nom. Je vais juste le faire voir avant ça. Bon, maintenant nous avons deux zones de texte. Un pour le nom, un pour les jours par défaut. Tout Iskander moi dans la même chose. Je vais passer aux détails pour les détails. Je peux conserver la date créée parce que je veux dire, ceux qui seraient un détail. Donc, je vais juste copier tout sur la grande pâte de bits créée. C' est à dupliquer ça. Mais je vais changer un d'eux en jours par défaut. Donc, vous voyez, faire des modifications est relativement facile. Je veux dire, vous avez le cadre, vous savez, la valeur que vous voulez afficher. Vous avez l'accès au modèle sur le modèle, vous donne accès à tout ce qui se trouvait à l'intérieur de la classe de modèle de vue que vous auriez définie. Alors je vais voir ça. Et puis la dernière modification que je vais faire est sur la création sur cette modification est très similaire à l'édition. Donc, je l'ai déjà fait sur l'édition aux modifications et créer sont réellement identiques. Donc, je vais juste copier cela sur, piecé dans la création sur dso lorsque nous créons un type de feuille, nous avons le nom sur la valeur par défaut est que nous devons fournir et nous devons fournir les deux parce que les deux sont remorqués comme nécessaire. Très bien, donc avec ces modifications apportées sont entrés dans l'application. Et non, je regarde mon inexpérience. Je vois que tout le monde est à zéro. Eh bien, ça va être là parce que quand la base de données a été mise à jour, Andi annul valeur. Ce n'était pas une charge. Ensuite, on a dû le mettre. Il est difficile de mettre une valeur par défaut, qui est zéro. Donc, une fois de plus, nous avons déjà dit que zéro n'est pas une valeur acceptable dans la pratique. Donc, du côté utilisateur, nous aurions ajouté la validation de la plage pour voir 1 à 25. Mais à partir de la base de données, vous savez, c'est un côté client ou c'est le côté de l'interface utilisateur de la validation. Ce qui se passe dans la base de données peut être une histoire différente. Quoi qu'il en soit. Nous aurions ajouté la fonctionnalité orteil modifier quelqu'un pour simplement cliquer sur Chignon du milieu. L' édition de ces outils pour les vacances, même le test de congé de maladie n'est pas pertinente. Quelqu' un à tester ? Pas d'appui sur la suppression. Cliquez sur OK, puis cela fera son truc. Mais je vais passer à éditer pour le nombre de jours et de préavis parce que le numéro que je reçois ce sélecteur de numéros que je ferais réellement habiller. Cela me dit que je dois entrer un nombre valide donc c'est vraiment validant que le nombre doit avoir du sens. Donc on a dit que 10 était, Ah, assez bon pour les congés de maladie. Enregistrer les changements sur sou est allé à passer à l'autre. Modifier sur les congés annuels Disons que le nombre standard de jours de congé dans cette organisation est 15. Donc, en le faisant modéliser comme ça, vous savez, chaque organisation peut aller définir ses propres jours par défaut en fonction de ses règles métier . Il est comprendre que les orteils ferment les fenêtres excédentaires. Et puis on y va. Donc, laissez-moi juste rafraîchir cette fois de plus pour refléter les valeurs réelles loin de 10 et étaient 15. Et puis quand nous allons créer de nouveaux, nous obtenons le nom et avant là. Donc je vais appeler ça sur le congé de maternité sur le numéro par défaut pour le congé de maternité est ce qu'on a fixé comme les notes 25. Alors disons 25. Ça fait environ cinq semaines. Cela pourrait être plus que cela pour qu'il puisse voir non, que ma validation peut avoir besoin d'être ajustée parce que si c'est 50 jours dans une organisation et cela ne peut clairement pas être 25 et basé sur ma validation, 50 n'est pas un nombre valide. Donc vous savez, vous devriez sentir leur application selon les règles métier que vous utilisez ou vous adhérez à quelqu'un pour créer ce nouveau type de congé sur DNO. Nous avons trois types de feuilles étaient le congé de maternité. On a un congé de maladie. Nous avons des congés annuels , donc pas que nous ne faisons pas de modifications. Les orteils sont de type feuille. Travaillons avec cette concentration. Désolé pour la création de la vue pour l'allocation. Donc, la première chose que je vais faire est de créer le contrôleur pour l'allocation de congé quelqu'un orteil en arrêtant cela parce que je veux prendre ma retraite. C' est que je vais craquer les contrôleurs Goto ajouter contrôleur. Nous allons créer ce lecteur de contrôles NBC à l'annonce Action Slick quand appeler son contrôleur d' allocation de congé et nous cliquons sur ajouter Une fois que nous avons le contrôleur, alors je vais juste faire mon injection de dépendance régulière en incluant notre vadrouille sur parti sur nos personnes de type feuille ainsi que notre rapport sur l'allocation des congés. Donc, juste l'expedite, son comprendre pour aller plus de laisser des types sur. Alors je vais emprunter. Donc d'abord, je suis avec le bar autorisé parce que, eh bien, c'est en fait standard, donc on devrait l'avoir fait. L' auteur est au-dessus du contrôleur. Rappelez-vous que nous autorisons les administrateurs à interagir avec tout ce qui se trouve sur ce contrôleur. Alors je suis au restaurant pour prendre ces références. Ensuite, je vais les ajouter en haut de la manette, puis en utilisant simplement mon point de contrôle Ajouter des références manquantes. Donc, ayez le dépôt de type de congé et j'appellerai le cygne. Ive re tirer sur aller dupliquer que sur aller appeler celui-ci. Je laisse l'allocation, certains référençant le dépôt d'allocation je quitte sur celui-ci est laisser I rapport de localisation. Donc, je vous montre vraiment le fait que vous pouvez avoir plusieurs dépôts dans un contrôleur. Ce n'est pas nécessairement que si le contrôleur est appelé pour une certaine chose, alors vous ne pouvez utiliser les opérations do pour cela parce que je vais impliquer les types de congé et je vais également apporter des modifications sur la table d'allocation de congé. Et donc tous les deux dépôts. Donc, je suis juste, vous savez, mettre en place le contrôleur sur le constructeur ici pour changer tous les objets. J' ai donc une représentation hors du référentiel de type feuille sur le référentiel d'allocation de congé. Je veux dire, je ne parle pas de ces changements. J' essaie de les faire assez vendus pour que vous puissiez voir ce qui se passe, et ils sont assez simples. C' est vraiment juste copier et coller. Et je suis littéralement juste ajouter un bout de ligne les dépôts qui étaient déjà référence à partir des types de croyances sur. Si j'avais la seule ligne dans la déclaration ici, alors j'ajoute qu'une terre au constructeur sur puis hors cours pour faire représentation pour elle dans le corps. Donc je ne répare pas les lignes rouges. C' est juste que je change les références du trimestre d'abord. Donc, sur le score, le rapport de congé sera égal à congé. Rapport. Ici, nous avons sur le score. Affectation des congés, re pull étant égal à l'allocation des congés. Ondulation sur DMA. Per est heureux campeur. On n'a rien à changer à propos de ma partie supérieure. D' accord, euh, vas-y. Donc, le soulignement provenant de la référence de la déclaration doit être égal à celui sans soulignement provenant de l'instructeur. Et puis je suis allé changer le nom du constructeur. Bien sûr, Toe dit réellement laisser contrôleur d'allocation. Donc c'est notre constructeur. Je l'ai juste conduit dans des lignes différentes au lieu d'avoir une longue ligne sur. Ensuite, je vais juste utiliser mon contrôle ancré sur la référence tout ce qui manque. Donc, nous devons référencer mon supérieur sur aucun ordre n'est restauré notre univers. Donc nous avons tous les quatre. La dépendance est, au moins pour non. Alors, pour la page d'index, les pages d'index vont vraiment charger tous les types de feuilles comme je l'ai dit. Mais je vais y mettre une petite touche du côté de la vue. Bon, donc je vais littéralement copier cette école parce que c'est ce que je veux. Comprenez le fragmenté. Bon, donc et puis, Évidemment, ce n'est pas un rapport, donc c'est un rapport de congé que nous allons appeler pour trouver tous les types de feuilles sur. Alors je vais faire référence à la feuille. La meilleure classe utilisant le point de contrôle sur laisse également le point de contrôle du modèle View inclure ces références. Je peux supprimer cette ligne sur le retour de la vue, donc j'obtiens tous les types de feuilles, puis je les stocke dans le modèle, les ayant mappés. Ensuite, je vais créer la vue quelqu'un orteil à juste titre que vous cliquez à la vue, trouver le modèle qui est la liste parce que je voulais vraiment être une liste sur. Je vais utiliser le type de feuille V m. Donc, je trouve juste la feuille que VM voulait cette classe de contexte de données. Je l'efface, ne référençant pas les bibliothèques de script sur DA Il suffit de penser à l'annonce. Donc, ce que nous allons faire est de modifier ce modèle, est-ce pas ? Donc, je vais sortir cette création parce que je n'ai vraiment pas besoin de cela. Je vais retirer la colonne I. D ainsi que les jours par défaut et il a créé. Je n'en ai vraiment pas besoin. Donc, c'est que j'ai fait allusion au fait que nous pouvons avoir plusieurs modèles de vue utilisés pour différentes choses. Ils voient si nous avions construit un modèle de vue spécifiquement pour cela que cette modification serait nécessaire parce que j'aurais pu générer cette vue basée sur cette bouteille de champ sans l' ajout d'années. Mais c'est ce que c'est, Andi. Je veux dire, c'est vraiment six de 1/2 douzaine de l'autre. Nous aurions pu faire le modèle de vue et mettre dans le monde. Il y a juste été mis dans le travail ici donc nous sommes juste en train de retirer tous les faits. Donc, ce que je veux vraiment, c'est juste la même table répertoriant chaque type de feuille sur. Ensuite, je vais laisser un bouton d'action que je prends sur tout ça. Je vais juste en laisser un sur le but. Ce Barton est orteil. Je vais mettre le texte. Donc, c'est Ah Reza sur l'aide de balise html ici. Bon, donc ça nous donne un lien d'action. C' est le texte que je vais dire Allouer les employés orteils. Andi, je veux dire définir congé comme action que je voulais appeler alors le paramètre à passer sera sur je vais prendre tous les commentaires. Ce sera un i d sur le i d à passer sera I TEM que i d. Donc je tend que les idées venant du modèle sur. Rappelez-vous que notre modèle est basé sur une liste hors congé type VM. Donc, pour chaque type de feuille, on va se lier orteil que je d à ce bouton. Donc, quand nous cliquerons sur ce bouton, il va voir Appeler dire ceci. C' est ce qui est le sprint à l'écran. Ce qui va appeler le contrôleur Andi, ça va passer dans cette valeur appelée Idee Onda. Nous faisons ce que nous devons faire à l'intérieur de la manette ou vraiment, les actions. Ça appelle ça l'action. Désolé. Donc, de retour dans notre contrôleur d'allocation des congés Ah, on peut créer un modèle, euh, vente aux enchères personnalisées. Droit ? Donc on en a généré un avec un tas d'options, non ? Tout ça, les Kurdes sont générés, mais je peux juste créer une seconde littéralement juste public parce que je veux une action qui, vous savez, a un nom spécifique, et cela fait probablement quelque chose de spécifique que les autres ne font pas. Certains l'appellent s'asseoir, partez. Tout va bien, alors. Set leave est conçu pour prendre le paramètre int appelé I d. Donc, en fait, je vais juste peindre une image pour vous, puis je vais vous montrer pourquoi je vais créer un autre modèle de vue et pourquoi c'est toujours une bonne idée. Donc, je veux réellement un modèle de vue qui va dire le nombre d'enregistrements qui auraient été mis à jour après l'exécution de cette opération. Ce serait bien si je charge juste ce modèle de vue retourné la même vue ainsi que la valeur. Alors je suis allé y retourner. Ensuite, je vais aller à laisser allocation v M Onda. Je vais l'appeler, donc je vais créer un nouveau cours public sur. Je vais l'appeler créer. Laissez notre machine virtuelle de localisation activée. Alors celui-là va se mettre aux pieds. Ayez ah propriété rompu. temps sur va dire numéro mis à jour sur puis cela. Ça va aussi avoir. Ah, liste hors feuille de type V EMS. Droit. Donc, il va dire laisser le public VM allumé. Cela va être liste hors feuille de type VM. Donc maintenant, nous allons faire quelques modifications sinon Donc. Ah, ce que nous allons faire Savoir que nous avons qui savait quoi ? Ceci est le modèle de vue qui va être utilisé. Ce que je vais faire, c'est modifier le tribunal contrôleur existant. Donc, ici, nous avons eu le temps de feuille v ems, et puis j'ai dit que le modèle est égal orteil ce. Comprendre ? Dire, euh, types de congé cartographiés sont égaux orteil la liste hors type de feuille pour laisser cette véhémence. Rappelez-vous que nous chargeons le modèle pour être le moins hors Lyft IBM école de la base de données . Non, je fais juste une autre variable sur. Alors je vais déclarer que le vrai modèle est égal à Onda. Je vais mettre cette mère à l'égalité d'un nouvel objet. Type Off, Créer une machine virtuelle d'allocation de congé Tout droit, activé, puis. Allocation des congés. Veum a deux propriétés. L' un est le type de congé activé. Je devrais l'appeler types de laisser parce que c'est une liste. Donc, c'est le type de secours, donc d'accord, j'aime être très clair avec mes étiquettes, et les variables sont dans, donc les types de congé sont égaux à la taxe de feuille de vadrouille. Très bien, Plusieurs types de croyances est une liste hors feuille de type VM. Donc, nous obtenons la feuille Times de la base de données les mappaient de la classe de données à la classe de modèle View, qui est ce qui est référencé au lieu de l'intérieur du modèle de vue que nous venons de créer. Et puis ce que je fais est de passer ce modèle de vue créent sur l'instance de ce modèle, lui donnant la valeur par défaut de ce qui vient de la base de données. Onda, je vais mettre le numéro mis à jour pour être égal à zéro. D' accord, cela ne prend pas de réponse cynique que les revenus cyniques après la brise sur, alors je vais revenir vue avec le modèle. Donc, mon point de vue a déjà été généré pour être une liste sur son héritage du type Lyft I V. M. Et c'est tout ce qui, donc je vais devoir faire quelques modifications. Sinon, ils vont être des incohérences de données. Donc, tout d'abord, modèle ne peut pas être sur d'innombrables hors type de congé VM. Il doit être une instance off crée allocation de congé. Donc, je vais juste supprimer les innombrables mots-clés ainsi que les crochets d'angle. Sur. Je veux changer est de laisser le type, donc je crée une VM d'allocation de congé une fois que je ne le fais pas. Une fois que j'ai fait ça, tu verras des erreurs. Donc, non, je vais devoir modifier l'endroit où il cherche cette liste parce qu'il regarde le modèle. Donc, cette fois puisque le modèle est créer une machine virtuelle d'allocation de congé, la liste doit provenir de la propriété, quelqu'un pour dire que les types de congé. Donc, une fois de plus, j'ai créé un nouveau modèle de vue appelé Create Leave Allocation Veum, qui contient la liste hors vue types ainsi qu'une autre propriété et autant d'autres propriétés que nous médium nécessaire, mais que est ce qu'il a sur. Ensuite, ce sera le modèle de notre page d'index. Mais alors, pour notre liste utilisaient cette liste à l'intérieur de ce modèle. Donc, à l'intérieur hors modèle, je suis en fait ce que je vais faire. Enlevez simplement ça. Je n'ai pas besoin de lister le nom de la vue. Les types de congé comprennent pour lire les types de congé de texte statique. Donc, les types de laisser n'est pas vraiment le point focal il. Donc je ne fais que lister les robinets de congé. J' ai juste une table avec une colonne qui est ses types de congé sur une autre colonne qui est peut-être comme action ici et puis à l'intérieur de la rose réelle. Je vais avoir le nom hors du type de feuille ainsi que le bouton d'action, qui est le Allouer les employés Toe sur son appel. L' ensemble d'action laisser passer dans tout le milieu de I d. Donc de retour dans le contrôleur, nous pouvons commencer à construire ou quoi ou mettre congé. Ancien Soleil va vraiment le faire quand sont certainement fonction vient en premier, alors nous devons trouver le type de feuille. C' était rapide. Donc nous passons dans le I D des types de feuilles. Je vais sauver notre type de congé est égal à Et puis j'appellerai mon rapport de congé, qui s'appelle un ascenseur comme un devrait vraiment l'appeler rapport de type de congé. Mais je vais trouver par i d et ensuite je suis passé que je dévalue. Donc non, j'ai le type de feuille. Mon prochain objectif est de définir le nombre désassocié à ce type de congé orteil chaque employé qui est dans le système, quelqu'un pour sauver les employés de la colère égale sur. Alors je sais, vais voir que j'ai besoin d'une autre dépendance parce que pour obtenir les employés qui sont vraiment utilisateurs, il y a, ah, ah, bibliothèque ou une fonction intégrée dans l'identité. Appelez le gestionnaire d' utilisateurs . J' aurais regardé le gestionnaire d'utilisateurs quand nous avons regardé la date d'ensemencement, et je vais juste sur leur rapidement et nous voyons ici que nous avons gestionnaire d'utilisateurs, donc je suis en fait juste aller orteil rapidement. Copiez ceci alors. Je vais manger injecté en tant que dépendance dans ce projet. Donc, sur Anethe mapper astride privé lecture seule. Donc je le montre tout ce que vous allez faire, vous allez réaliser tout ce que j'ai besoin de ceci ou de n'importe quelle opération. Et c'est ainsi que vous allez vraiment de l'avant sur Mettre dans la fonctionnalité parce que vous pouvez planifier. Mais vous n'évaluerez jamais vraiment tous les scénarios dès le départ, donc je vais juste inclure ça sur. Je vais faire le même putter d'injection de dépendance, et nous allons faire référence à ça. Notre déclaration et puis je vais appeler l'instance à l'intérieur du contrôleur Certains de ce copier-coller pour accélérer ce processus. Andi, vous ne copiez pas sur la paix vous aide vraiment à voir si le temps, tant que vous comprenez ce que vous faites, vous n'avez pas à passer beaucoup de temps à retravailler correctement. Donc maintenant avoir le gestionnaire d'utilisateurs. Je sais que j'ai la dépendance. Pour que je sache. Appelez l'objet gestionnaire d'utilisateurs et dites point sur puis nous avons deux fois hors utilisateurs. Nous avons ceux qui sont dans la liste des employés. Nous en avons dans les minéraux de l'annonce. Je veux vraiment juste des employés, non ? Donc, je vais dire point de gestionnaire d'utilisateurs sur puis je peux dire obtenir les utilisateurs dans le rôle de sorte que vous voyez, obtenir les utilisateurs en rouleau, puis à l'intérieur de cette fonction Appel. Il attend le nom du rôle comme une chaîne soc employés parce que c'est la règle que je veux sur. Ensuite, je dis point sur les résultats. Donc, après dit pas résultat, effectivement obtenir la liste des employés et puis cela revient et je liste, qui est juste un autre type hors location. C' est une collecte des employés du système. Non, ce que je vais faire, Sachez que le temps de la feuille qui est en question et ont les employés en question. Je ne vais pas parcourir tous les employés et configurer l'allocation en conséquence. Donc, pour chaque employé qui est ici, je vais créer à l'entrée dans l'allocation des congés si vous vous souvenez de ce que notre objet de répartition des congés . Nos données. Ouais, eh bien, ce qu'il a besoin de ressembler, c'est que cela est aussi généré. Nous mettons le nombre de jours de congé, qui provient du type de congé que nous avons mis dans la date créée, que nous déterminons à partir du contrôleur. Nous avons référencé les employés par i d, ce que nous obtenons parce que nous connaissons la collecte des employés, nous avons le type de feuille I D sur. Nous allons déterminer la période, qui est, si c'est si on clique sur le bouton pour savoir que l'année où il est cliqué est la période correcte ? Donc, ce que je vais faire est de voir pour chaque route de service pour chaque et pressé deux fois, et cela a généré ça. Et puis je peux juste dire m dans les employés. Donc, ce n'est pas moi qui passe. Je ne sais pas combien d'employés sont là, donc je, pour chacun est un bon lubrifiant rapide à passer par le premier au dernier sans avoir besoin connaître le numéro Droit sur. Alors je vais voir quelque chose comme var. L' emplacement est égal à nouveau, et je me souviens que nous ne voulons pas utiliser nos classes de données trop souvent ou au moins à ce stade, nous utilisons notre modèle de vue et ensuite nous mappons quelque part pour dire nouveau laisser I emplacement VM sur, puis utilisez mes accolades pour faire le initialisation. Je vais juste mettre le cynique sous à partir de non sur Alors pour le premier objet ou la première propriété dont j'ai besoin. n'y a pas d'artère particulière Après dit ces propriétés, vous pouvez le faire dans n'importe quel quartier. Donc, a créé va être temps mort pas savoir virgule prochaine employé de la propriété I d Sowden mis employés ce que je dirais le I d droit. Donc employé i d être stocké dans la base de données sera point vide sur les députés provenant de cet objet. Donc, il est dit pour chaque hors de cet objet dans cette collection hors des objets. Donc, cela signifie que chaque fois qu'il s'exécute, vous pouvez accéder à ces données d'itérations via cette propriété, juste au cas où vous n'êtes pas familier avec pour chaque boucle, donc emp dot Et puis je peux obtenir le i d. vous pouvez accéder à ces données d'itérations via cette propriété, juste au cas où vous n'êtes pas familier avec pour chaque boucle, donc emp dot Et puis je peux obtenir le i d. donc j'ai obtenu que les employés je d alors le type de congé i d en question est égal orteil I d. Parce que vous savez qu'il vient du paramètre. C' est une idée à laquelle on a affaire. Alors nous allons de l'avant et nous voyons à nouveau des virgules. Nombre de jours de congé sera égal à toe la valeur par défaut dissociée avec le type de feuille Donc nous disons type de congé. C' était plus tôt récupéré des points sur. Nous disons que la valeur par défaut est bien activée. Ensuite, nous c virgule sur quelle autre propriété avons-nous besoin de définir ? Nous avons aussi besoin de définir la période et ensuite la période serait l'année afin que je puisse voir quelque chose de temps d'idée que je ne sais pas. Mais alors je veux seulement les années que j'ai dit pas à nouveau et juste récupéré la valeur de l'année, qui est en effet et en fait, un entier. D' accord, pas hors cours. Si j'appuie à nouveau sur revenir, vous verrez qu'il y a d'autres propriétés. Mais le fait est que ces propriétés n'apparaissent pas dans la base de données. Je n'ai pas à les mettre. Même si je les mets, nous allons devoir retourner à la classe de données et donc ils seraient ignorés de toute façon, donc je les laisse tranquilles. Donc, ce que cela fait encore une fois, c'est qu'il récupère le type de congé pour lequel étaient des allocations assis . Il va récupérer tous les employés sur. Ensuite, il va dire pour chaque employé, créer une allocation. Non, je vois déjà une sorte d'écart dans cette logique parce que si je clique malade cinq fois, cela va créer cinq affectations différentes pour les mêmes employés de série chaque fois. Donc, ce que je voudrais faire est une sorte de mettre sur si déclaration, comme un peu de contrôle pour dire, OK, j'ai un employé ou j'ai la collecte sur alors pour cet employé, y a-t-il une allocation pour ce type de congé pour cette période déjà s'il y a, alors ne faites rien autrement continue. Je peux m'asseoir sur la déclaration à l'intérieur de ceci et dire quelque chose comme, si et puis ici nous pouvons devenir créatifs. Je peux soit retourner dans le dépôt d'allocation de congé et mettre en place Ah, fonction de rapport complet pour ce qui, je pense, serait préféré. Donc, je vais laisser la déclaration if si la déclaration est nécessaire. Mais j'allais écrire que tu as dit ici. Mais je pense que la mer pour nous serions juste de créer la fonction de dépôt Quelqu'un à aller plus pour quitter un dépôt d'emplacement va d'abord, je vais trouver le contrat en congé, rapporte le dépôt d'allocation sur. Alors je vais voir quelque chose comme chèque. Je regarde ton fils et je vérifie que l'allocation va prendre un périmètre des unités, laisser le type I D. Andi. Il va aussi prendre un employé I d. et ce serait comme une chaîne. Donc string employer e i d. Oh, et ce retour, ce serait des lingots. Ce sera donc des lingots. Vérifiez un emplacement sur puis hors cours. Si je fais cela dans les interférences, alors après avoir été implémenté dans la classe de référentiel réelle, donc je vais juste implémenter des interférences sur. Alors si je vérifie l'allocation, j'ai besoin de quelque chose à voir avec les employés, ce qui signifie que je dois récupérer cet employé. Eh bien, je n'ai pas besoin d'un manager. En fait, je ne sais vraiment pas, alors Oh, et je vais aussi passer dans la période, donc je vais voir bien, non, non, je ne peux pas le déterminer à la volée. Je peux le déterminer à la volée. Je suis désolé. Il y a tellement de façons de faire ce truc qui a frappé. Je réfléchis à haute voix. Voilà ce que je vais faire. Donc, pour cette fonction sur, je prends sur les stagiaires soulager type I D et un employé de chaîne I d. Très bien, donc à l'intérieur ici, je vais sauver notre période est égale orteil le temps Je ne sais pas l'année de Doc. Alors que la fonction s'appelle, je sais avec quoi Pierre et nous travaillons. Ensuite, je vais voir le retour, alors je peux appeler une fonction qui est déjà ici, qui est peut-être trouver aussi tout va déjà exécuter la carrière pour obtenir toutes les allocations de congé dans les points système sur. Alors je peux voir que nous sommes quelqu'un pour créer des expressions lambda. Donc, cette fonction find all renvoie une collection ou partout où vous retournez une collection avec sa liste A sur Mary, vous pouvez utiliser Lambda Expressions pour le filtrer quelque part pour voir où q ancré sur aller vérifier si l'employé I d. Est égal à celui qui arrive. Donc, si l'idée de l'employé dans ce dossier est égale à l'employé entrant, je suis accord, alors je peux créer plusieurs conditions à bord. Donc, où cet employé I d dans le dossier est égal à celui entrant. Andi, le type de feuille des enregistrements Acuna laisser type I D est égal au type de feuille I d venant de notre périmètre Onda. Une fois de plus la période que vous point point point point est égal orteil la période que nous venons de mettre au-dessus de cette ligne à droite sur ma gauche côté inégal ici certains voir trouver tout. Donc je reçois toutes les allocations de congés, mais je veux qu'ils soient tous Ces conditions sont remplies que l'idée de l'employé existe avec ce type de feuille I d dans cette période. Et puis la ligne rouge est là parce que cela renvoie une collection qui répond à ces critères sont ce critère. Donc ma fonction est d'attendre un taureau. Alors je peux juste dire point tout pour que tout va juste dire, Y a-t-il quelque chose dans cette collection ? Oui ou non ? C' est tout ce que je veux vraiment. Alors filtrez la collection, et dites-moi si vous avez des dossiers. Alors nous venons de retourner oui ou non pour cette opération. D' accord. Donc là, il y aura, pourrait jamais dans cela en plusieurs lignes. Mais je vous montre juste les expressions Po off lambda et je vais désespérer la terre que chaque arrêt complet pour que vous puissiez le voir, vous savez, peu plus défini. Très bien, donc avec l'on peut avoir autant de tantes, comme toute votre équipe de préparation avec Anson. Ou tu peux faire ça avec ça. Étaient la déclaration là-bas. Alors on est du poulet. L' allocation quelqu'un pour voir cela et ensuite retourner à notre contrôleur quelque part pour fermer tout ce qui n'est pas absolument nécessaire. Donc, de retour dans le contrôle et est allé voir si sur ce que je veux dire rapport d'allocation de congé ancré. Vérifiez l'allocation sur alors, pour l'emplacement Cheka. Je passe dans le type de feuille I d qui arrive à travers les paramètres que je d puis je vais aussi passer dans imp dot i d en tant qu'utilisateur ou les employés que je suis sur. Alors je vois si c'est vrai, alors je veux casser. C' est inexact, veulent réellement continuer si bref serait mettre fin à la boucle. Qu' est-ce que continuer dirait juste Ignorer cette itération. Donc, s'il y a une allocation pour ce congé, j'ai décidé avant que cette opération ne sera exécutée qu'au cours d'une période donnée. Alors on va juste sauter cette itération. Si elle revient sur cette condition n'est pas remplie, alors il va de l'avant et créer l'objet d'allocation de congé. Alors on a besoin de quelqu'un pour sauver notre congé. Un emplacement est égal à, puis nous appelons notre mapper points vadrouille sur. Ensuite, nous pouvons en fait simplement baladage et voir l'objet de destination. Donc, nous mappons à l'objet de destination hors. Laissez un endroit. La classe de données de l'objet qui était mappé dans cette direction est un emplacement. Très bien, donc je veux dire que j'ai fait beaucoup de choses ici, ça peut être. J' espère que vous avez fait attention. Si vous avez des difficultés en cours de route, hésitez pas à me contacter, vous aider. Mais, tu sais, c'est une sorte de ce qui se passe quand tu construis. Ces systèmes d'entreprise ont orteil appelé pour ces différents scénarios sur vous devez être flexible parce que tout peut changer dans l'entreprise du criminel peut changer sur les exigences de l' entreprise sans relâche et les règles de l'entreprise sont littéralement juste un tas de quatre boucles et un tas. Si des déclarations aux bons endroits, c'est ce que vous obtenez. Les résultats dont vous avez besoin, même après cette année, le tribunal peut toujours ne pas être aussi parfait que vous en avez besoin . D' accord, donc encore une fois, euh, itérant tous les employés vérifiant s'ils ont déjà une allocation pour la période sur s'ils ne sont pas debout, nous construisons un objet à partir du modèle de vue type. Ensuite, nous mappons l'objet à la classe de données sur. Alors nous économisons. Non, nous ne disons pas désolé, nous ajoutons. Donc, je dis, laissez un rapport de localisation, créez sur. Ensuite, je vais passer l'objet d'allocation de congé dans certains créant cette allocation tout droit, et puis, après toutes ces créations le font, il va créer pour chaque employé. Il crée ces allocations. En fin de compte, tout cela a besoin d'une direction pour aller, que ce soit pour retourner une vue ou qu'il va juste rediriger vers l'indexation d'un index redirigé juste ventilé. Et j'emprunterai la cour à notre contrôleur des types de congés. Nous voyons que vous pouvez dire, Rediriger l'option sur vous pouvez lui donner un nom. Quelqu' un orteil. Copiez ceci sur. Je vais voir Rediriger vers l'index. Ce que je n'ai pas fait était de mettre à jour le numéro mis à jour, et je vais vous défier de le faire. Ce que je n'ai pas fait était de mettre à jour le numéro mis à jour, Alors je vais le faire. Je vais fournir le code source. Mais je vous défie orteil faire là où vous allez prendre un comptage hors de la maison plusieurs fois ce Lupron à peu près sur puis ajouté au modèle. Et puis lorsque vous redirigez, vous avez passé cet objet modèle dans l'index sur. Ensuite, vous affichez ce numéro sur le discours d'index, sorte que cela sonne comme une bouchée. Mais je pense que nous avons fait le gros du dur travail dans cette vidéo. Encore une fois, nous avons ajouté un tas de logique métier à l'arrêt réel. Ah, emplacement. Il y a plus de logique que nous pourrions ajouter où nous pourrions au cas par cas, déterminé ensemble le long de Cet employé a été avec l'organisation. Euh, parce que nous avons un objet commun à l'intérieur de l'objet de nos employés, ce qui nécessiterait en fait un peu plus de modification. Mais je ne veux pas être submergé par trop. Une fois, cela a été calme et l'activité. Donc, dans cette activité, nous avons examiné l'utilisation de plus d'un référentiels. Notre dépendance est à l'intérieur. Contrôleur articulaire, nous avons cherché à créer un modèle de vue personnalisé sur. Nous avons cherché à modifier une page pour faire exactement ce que nous voulons. Donc, comme un acte final, nous allons juste aller dans de bateau amarré sur le test Notre nouvelle fonctionnalité. Quelqu' un a dit un rapide, ah, point de rupture ceci l'action et ensuite nous allons tester notre application. Quelqu' un va laisser des allocations. Oh, je dois mettre en place et vous avez juste mis les liens tous et je vais mettre le lien à l'intérieur du Seigneur quelqu'un pour sortir du débogage amarré. Revenez à la solution, trouvez la vue partagée. La mise en page sur pour celui lié à laisser des allocations, comprendre de copier sur un existant sur, puis collez-le ici sur. Ensuite, ce contrôleur est Laisser une touche basse Sean. Affectation des congés, pas affectation des congés Logiciel semblant être très prudent avec ce printemps. Revenons donc en mode débogage et en Australie. Bon, StarLink travaille. Donc tu vois qu'on peut faire un peu de raffinement, non ? Nous avons ajouté, vous savez, des bootstraps style Starling pour ajouter des styles et enlever cette barre ce tuyau. Mais je laisse ça pour plus tard. Je vous laisse pour embellir votre page, mais plus important encore, quand vous êtes sur le lien que vous voyez dans le coin inférieur gauche, c'est l'appel set congé ou set voitures qui partent avec le type de congé I D. En paramètre n'est-ce pas ? Donc, pour un congé de maladie, hum, avec un clic, employés d' Allocator, et ensuite résisté est allumé parce qu'il a frappé le point de rupture sur. Alors c'est l'idée. Quelqu' un orteil sauter devant Lyon 54 à quel point il commence le pour chaque boucle aan den. C' est avoir tous les employés. Je suis juste passé sur les objets des employés. Ils voient que nous sommes trois employés. Ce sont donc les trois utilisateurs qui sont dans le rôle d'employé dans la base de données. Très bien, sur, il a déjà le type de congé sur tous les détails et les besoins pour ce type de feuille, qui serait la valeur par défaut. Est etcetera, etcetera sur sou, en fait, en fait, juste aller orteils. 32. Module d'allocation - Liste des employés: Hey, les gars, dans cette leçon, nous allons continuer notre modèle d'allocation de congé sur ce que nous allons faire est de configurer vues de remplacement ou la fonctionnalité de surajout, qui signifie que nous devrions permettre à l'utilisateur administrateur de voir l'employé, affichez les allocations et modifiez l'allocation sur une base individuelle au besoin. Donc, nous allons mettre un peu notre propre travail en mettant cette fonctionnalité. Mais avant de continuer avec cela, je veux juste orteil apporter présent à vous les modifications que je veux dire à l'écran. La dernière fois que nous avons fait cet écran d'allocation des congés, tout ce qu'il y avait là était juste l'orteil du lien. Le Lee, les employés de l'Allocator ne le feront pas. Vous pouvez voir que c'est un bouton vert. Au moins, il devient vert quand je survole. Donc, ce que j'ai fait a été ajouté la classe bootstrap, et j'ai également ajouté l'icône cinq ou l'avant Awesome. Désolé, je n'ai pas pu orner le bouton pour ce crayon. Je partage juste les modifications de la cour que je veux dire, le cordon original aurait été un e-mail chaque jour à notre aide. Donc, nous avons les aides d'estimation, et ensuite nous pouvons avoir la possibilité d'écrire plus de HTML natif avec quelques, vous savez,aides de remorquage vous savez, en cours de route. Donc, je vais juste comparer pour que vous puissiez voir exactement ce que l'un ou l'autre a pu accomplir . Non pour le lien d'action que nous aurions déjà eu jusqu'à ce point. Ce que j'ai fait était Atacama sur DSI nouveau à nouveau sur puis démarrer une nouvelle section dans ce bloc de lien d'action hors cour et ajouter un avis de classe. Les classes à signe égal orteil et puis j'ai été en mesure d'ajouter la classe de taureau. Cela aurait donné le bouton vert, et c'est bon. Mais alors je voulais le crayon dedans et il y aurait eu quelques limitations en utilisant le lien d'action qui a été généré pour nous. Alors je change. Ça devrait au terrain d'ancrage correspondant où nous avons le même puits, c'est une attaque d'oncle qui nous donne un lien. Nous avons mis dans les mêmes classes, le Bt dans, mais l'utilisation de l'été Bt et le tableau de bord décrit succès. C' est pour ça que tu sais qu'il est blanc jusqu'à ce que tu le survoles. Il devient vert, non ? Donc c'est Bt et le tiret décrit, bord réussi. Donc, pour chacun des boutons avec ce succès Le primaire blessé que vous avez sur Oland Alternative. Donc, si vous ne voulez pas décider des coliques et utiliser l'ancienne ligne et puis j'ai l'action SP qui est mis avis de congé qui aurait correspondu avec ce que nous avions dans la section action off pour le lien d'action sur alors avoir SP Dash Road Dash i D, qui est la valeur de route qui doit être passé dans l'ensemble Laisser l'action pour qu'il calcule la piste sur qui aurait été représenté ici où nous avons dit nouveau andan dans les idées de section égal à l'agir Cela s donc C'est vraiment le même tribunal. Sauf que j'ai été capable d'insérer que je remorque pour cette icône passant dans les classes géniales fonds qui sont nécessaires pour ce crayon. C' est donc une comparaison côte à côte. Ce que l'un ou l'autre froid aurait donné on aurait donné le vert solide et le vert solide serait l'action. Lincoln remarque qu'il n'a pas de crayon que je suis accordé. J' aurais pu l'obtenir pour regarder en ligne si je le voulais, mais le fait est, je ne pouvais pas avoir cette icône de fonds Awesome là-dedans et puis c'est ce que j'ai fait pour obtenir ce fonds . Icône impressionnante. Bon, donc je veux dire, je te montre juste au cas où tu voulais l'essayer toi-même. Non. Comme je l'ai dit pour ce matin, ce que nous allons faire est de voir les employés une liste des employés de l'entreprise sur. Ensuite, ils seront en mesure de voir les allocations que cet employé particulier a à ce moment-là et si Mme ou même supprimer. Maintenant pour ce matin. Je retourne à mon contrôleur d'allocation des congés Onda, continuer dans la même veine. Nous allons non seulement utiliser les actions par défaut qui ont été générées, mais nous allons créer beaucoup de nos propres actions qui ont accompli ce que nous voulons. Donc, la prochaine action serait de mettre en place une vue pour la liste des employés. Droit ? Donc, je vais créer une nouvelle action sur, puis je vais voir l'action. Eh bien, je vais créer de l'action en voyant les résultats de l'action publique sur. Ensuite, je vais appeler cette liste d'employés et ensuite la liste des employés va littéralement le faire. Dresser la liste des employés, n'est-ce pas ? Donc, pour obtenir les employés, je vais sauver nos employés est égal à Andi pour obtenir les employés dans le système. Je vais juste réutiliser ce tribunal semble que je peux littéralement dire cette ligne parce que je vais l'utiliser à nouveau. Bon, donc vous voyez que beaucoup de cour se répètent en cours de route, mais ensuite, fonction de la façon dont vous écrivez, vous pouvez le modifier une ou plusieurs fois en fonction de votre architecture. Donc, en utilisant le modèle de dépôt qu'il voit juste était pour nous de maintenir le code sous-jacent et simplement répéter les références au cordon, rendant les modifications et la maintenance plus faciles sur le chemin. Donc, nous avons nos employés égaux à l'utilisateur manager, retournant tous les utilisateurs dans la règle de l'employé sur. Alors ce que nous voulons faire est de serrer ces quelqu'un pour sauver notre modèle est égal à, et ensuite nous allons le voir amarré Oper et serpiler dessus. Ensuite, je peux juste dire que je veux balai orteil ce type de modèle. Je peux voir une liste sur, puis ouvrir la balise de liste ont été mis dans le type et le type ici est employés le M. Donc, nous avons fait le modèle de vue juste pour les employés sur. Ensuite, je vais passer dans les employés de valeur. Donc une fois de plus, je suis inquiet pour tous les employés dans cette règle sur. Ensuite, je suis juste en train de les balayer à ma classe de modèle de vue sur. Ensuite, je vais retourner la vue avec le modèle étant passé et puis fermer cela. Donc, quand cette action est appelée, il va amener tout ce qui va chœur pour tous les employés sur dmat eux au modèle de vue. Donc, je suis avec générer de, vous savez, appelé employés de liste, et j'ai orthographié les employés à tort ici pour que les employés d'accord, donc je droite Cliquez sur vue goto vue annonce sur aller choisir le modèle. Liste des modèles. La classe de modèle va être employés VM sur alors. En règle générale, lorsque nous utilisons des modèles de vue, nous n'avons vraiment pas besoin de la classe de contexte de données afin de pouvoir l'effacer. Ensuite, je vais cliquer sur ajouter. Donc, dans nos vues créées, nous pouvons faire des ajustements mineurs. Nous pouvons mettre l'espace pour les employés de liste à ce stade. Je ne veux pas que quelqu'un puisse créer un employé, quelqu'un pour supprimer l'orteil de référence ce lien sur ce que je peux juste affiner les en-têtes pour la table, donc je ne veux pas i d Je ne veux pas Eh bien, pour notre contexte sont les Jusqu'à présent, j'ai utilisé le nom d'utilisateur et l'e-mail comme la même chose. Ils ont la même valeur, donc je n'ai pas besoin des deux, mais vous pouvez conserver les deux, mais je n'ai pas besoin des deux. Donc, ce que je me demande vraiment au moins, c'est l'email. Je n'ai pas besoin d'un numéro complet pour être répertorié dans la liste. Peut-être que je peux battre les détails d'un employé, mais je le fais sur le prénom et le nom et je veux réellement que avant de voir les e-mails, je suis juste en train de réorganiser mes en-têtes pour la table comme je le vois bon. Droit. Je n'ai pas besoin de voir l'impôt sur la date de naissance et je peux laisser la date jointe. Eh bien, je peux le laisser. Je peux le creuser. Je vais l'enlever, en fait. Je m'attends donc à voir le prénom, nom et l'adresse e-mail des employés. Donc, bien sûr, si je suis rarement les en-têtes, alors j'ai vraiment besoin de réorganiser le héros ou les colonnes dans les règles qui sont générées à la volée, donc ils ont besoin de s'aligner pour que cela ait du sens . Donc, je suis en train de supprimer ce qui n'est pas pertinent pour être I d. Nom d'utilisateur a enlevé une trop de lignes. Bien sûr, Là, nous voulons le prénom et le nom au-dessus de l'adresse e-mail un mouvement ceux là sur puis tout sous l'adresse e-mail jusqu'à ce que la colonne d'action est considérée comme excédentaire. Donc, pour l'action relie les actions de temps permettant à ce en ce moment implique peut-être de voir les détails de cet employé. Donc, je vais me débrouiller. Non. Donc, quand ils cliquent sur le lien de détails, ils vont voir toutes les informations pour cela. Employés. Vous connaissez tous ces baumes supplémentaires, informations que nous venons de retirer sur les employés. Ils seront tous inscrits sur la liste, ainsi que tous les congés alloués à ces employés. Donc je ne veux pas qu'ils puissent éditer quelqu'un pour prêter ce serment. Et je ne veux pas que quelqu'un supprime à coup sûr. Je vais juste bouger ce bar. Alors, comme je l'ai dit, je veux me rencontrer. Mes détails ne sembleraient pas similaires. Toe le bouton des employés Allocator que je vous ai montré au début de la vidéo. Donc tout ce que je vais faire est d'aller sur cette page, copier cet accord et de revenir, coller pour que je puisse juste supprimer cela, ou je peux m'engager à tote et contrôler en maintenant le contrôle et la personne. Casey, c'est un tribunal rapide pour commenter. Donc, je vais juste modifier ceci où l'action cette fois va être. Détails. Onda a écrit, i d reste le même, qui est l'élément que je d Alors rappelez-vous que c'est un rituel de quatre en passant par chaque élément dans le modèle et le modèle est une collection d'employés basés sur le modèle de vue, um, type de théâtre rouge. Donc, pour chaque élément, je suis juste lier ce particulier je d avec chaque employé orteil cette chaîne. D' accord, je vais changer ça. C' est donc la vue. Les détails sont peuvent juste être des détails. D' accord, sur le stylo. Donc je ne veux pas de crayon. Au lieu de cela, j'irais probablement avec le bouton de recherche. Donc, l'icône de recherche de l'artiste plutôt So recherche. D' accord, donc pour cette recherche. Non, je n'ai pas mémorisé ça. Chaque fois que j'ai besoin de quelque chose, je retourne à la documentation et en trouve une qui correspond à ce que je veux. Donc ce qui va nous donner, comme un petit bouton de loupe. Donc la prochaine chose que je vais faire, c'est que je vais me lier dans la couche. PH j'ai, ah lien ici pour les employés afin de gérer et les employés. Je vais configurer ce contrôleur sur l'action de jour quand configurer ces attributs. Je vais juste enlever chaque F sur. Ensuite, le contrôleur serait l'allocation des congés sur l'action cette fois serait la liste des employés. Donc, quand je clique sur les employés, c'est aller à la liste des employés. Je fais ça bien. Non, plus tard, on pourra l'affiner. Mais je fais cela en ce moment parce que j'ai déjà que beaucoup sont des éléments et je suis en train créer cette fonctionnalité ici. D' accord , alors. Je vais également rencontrer cela dans une table de données pour le transformer en une table de données. Je regarde juste en arrière ce que j'ai fait avec les types de congés. Certains veulent aller là-bas, ont fait le T. T. B des données. Donc je copie ça. Donc, vous voyez, quand vous le faites une fois. Si tu te souviens que tu l'as fait. Tu as juste besoin d'aller dans une référence à la cour que tu as déjà travaillé sur Andi juste que tu sais, euh, c'est déjà là. Dites, utilisez-en. Donc Oh, oui, j'ai déjà inclus ce script qui change quoi que ce soit avec les données i d T. T. B O dans une table de données. Donc littéralement, c'est tout ce que j'avais besoin de faire à cause de tout mon effort dans la cour juste au I d égal les données du tibia . Maintenant que j'ai fait tout cela, je vais exécuter ou simplement aller dans mon lien de navigateur, lancer le navigateur sur, puis nous allons évaluer nos changements jusqu'à présent. Bon, donc si vous avez une flèche Pidge, c'est très parce que vous aviez déjà Broza Link ouvert sérialiser. Il ne prend en charge qu'une seule instance, donc si vous l'avez déjà ouverte, la deuxième fois qu' il essaie, cela va se sentir. Mais de toute façon, je l'ai déjà ouvert ici, donc il y a peu d'employés de gestion sur. Ensuite, nous allons avoir une petite erreur, donc c'est juste évaluer l'ère. Et puis je vous dirai exactement ce qui se passe ici. Donc d'abord menti, disant qu'il y a une erreur de mappage entre les employés et les employés. VM Andi Il y en a. Cela nous fait savoir qu'il existe des configurations pour les employés et les employés. Veum. D' accord, mais alors, non, ils voient plus tard. Ne pas qu'il ya tellement manquer beaucoup entre SB dot net utilisateur d'identité core. Andi Laisser la gestion de l'argent est que le M que les employés VM Plus précisément, il nous dit qu'il ya un problème mappage de la liste des employés VM sur le modèle de porte employés. Revenons à la cour pour voir exactement ce qu'on a raté. Donc, si nous revenons à l'action des employés de la liste sur, nous examinons de près les types de données renvoyés, alors nous réalisons que les employés du bar, qui reçoit tous les employés, reçoivent en fait, ah, le temps de données appelé Identity User. Et si vous vous souvenez Identity User est ce type de données basé que dot net core nous a donné pour représenter n'importe quel utilisateur dans le système, droite, Donc, nous récupérons l'identité utilisateur, mais nous cartographions les employés de la machine virtuelle et si nous revenir à nos cartes, donc je vais balayer la soudure et les cartes, et puis nous voyons ici que nous ne comptons pas pour les employés MV mappage utilisateur d'identité orteil Mais nous sommes sur le mappage pour les employés savent un certain nombre de choses qui jouent. Et je vais juste vous expliquer cela parce que nous allons apporter quelques modifications et je vais tout expliquer au fur et à mesure que nous allons avec les employés. Rappelons que les employés de la classe de données et moi tenons juste sur le contrôle et le clic, donc il va passer à la classe qu'il hérite de l'utilisateur d'identité. Donc, alors vous voyez probablement bien, donc si elle hérite de l'utilisateur d'identité sur, nous l'avons utilisé de façon interchangeable dans l'intrigue dans le passé. Pourquoi est-ce un tel problème ? Non. Eh bien, quand nous avons initialisé sur la fonctionnalité d'identité dans notre application, nous l'aurions initialisé avec l'utilisateur d'identité et non avec les employés. Donc, si nous regardons de très près les données qui reviennent lorsque nous faisons en fonctionnement, comme simplement retourner au contrôleur comme si tous les employés sont tous les utilisateurs dans la règle sur son retour sur l'utilisateur d'identité, cela signifie que c'est retourner tout sauf le prénom sur le nom de famille, et la date jointe sur la taxe i D, qui sont toutes choses que nous avons ajouté par la suite par l'ajout ou classe de données de l'employé. Donc, en d'autres termes, lorsqu'il est utilisé des données lors de l'utilisation, utiliser un gestionnaire, n'est-ce pas ? Non, car il a été initialisé pour être utilisé avec l'utilisateur d'identité. Aucun de ces champs ne reviendra, ce qui est un problème pour nos employés de liste, parce que nous essayons de lister le prénom, le nom et l'e-mail. Et c'est un problème plus important parce que nous ne prenons pas en compte pour mapper l'utilisateur d'identité à n'importe quelle machine virtuelle de l'employé du modèle de vue. Donc, cela va allumer un peu de réfractaire dans notre cordon sur son seul naturel, parce que vous commenceriez par la valeur par défaut. Mais vous en voulez plus. Vous devez comprendre et apprécier les changements que vous devez faire orteil faciliter le plus ainsi en petits mots sur savoir, en utilisant juste l'identité utilisateur était parfaitement bien sur nous nous rendons compte que nous avions besoin orteil voir les données supplémentaires, qui est dans la catégorie des employés. Donc, ce que nous devons faire est d'initialiser sur la fonctionnalité d'identité à partir, ou de démarrer le fichier de nazi. utilisation de notre classe de données d'employé sur elle sera complètement acceptée, parce que les employés, en tant que classe de données, incarne déjà tout ce qui est à l'intérieur de l'utilisateur d'identité sur certains. D' accord sur ce qui nous intéresse en ce moment, c'est ça et ensuite certains parce que nous avons toutes les identités là-bas déjà. Donc, je vais faire un pas à pas. C' est toujours ce que les changements doivent se produire, donc je vais d'abord perturber l'école de statut sur je vais changer d'identité Utilisateur. Donc, dans les services qui ajoutent l'identité par défaut, je change les employés de l'utilisateur d'identité alors pour toutes les autres instances désactivées. Certaines initialisations sont des utilisateurs d'identité orteil allusion. J' avais besoin de voir des employés, certains juste copier ceci sur puis ci-dessous. Rappelez-vous que nous avions gestionnaire d'utilisateurs et gestionnaire de roulis utilisera leur gestionnaire plus spécifiquement . Gestionnaire d'utilisateurs. Pas besoin d'utiliser les employés dans la mer Données Nous allons avoir une ère parce qu'il connaît identité des utilisateurs comprennent l'emprise sur le contrôle des orteils. Cliquez sur cette fonction. Passez à ça alors, partout où cet utilisateur d'identité waas je vais juste commencer à remplacer par des employés tout droit, repousser bien sûr si ce n'est pas déjà inclus, ce qui ne serait pas, Je vais juste utiliser le contrôle ancré pour lui permettre d'inclure la référence Non, nous pourrions le faire un par un, mais ça va devenir très fastidieux. Ok, Donc, comme j'ai remplacé les employés ici qu'à d'autres terres est apparu parce qu'il attend des employés. Mais j'ajoute de nouveaux utilisateurs d'identité Vier. J' ai besoin d'ajouter plus de nouveaux employés sur en voyant des employés. Cela m'ouvre l'annonce tous les autres champs que je veux dire n'ont pas été en mesure d'ajouter, parce que je n'utilisais que des preuves à l'utilisateur. Rappelez-vous quand nous modifions notre page de destruction ajoutaient sur la classe des employés. Je ne suis pas la classe d'utilisateur d'identité parce que nous voulions les champs supplémentaires ou le prénom. Le nom est etcetera. Donc non, je dois être sûr que partout dans mon projet qui avait le gestionnaire d'utilisateurs sont signataires gestionnaire référençant l'utilisateur Identity Aucune référence, employés. Et la raison de ce changement massif dans l'application est que nous l'initialisons avec les employés, donc il ne peut pas manquer grand-chose si nous référençons quelque chose avec l'identité sur. Nous n'utilisons pas d'identité par rapport à la classe des employés. Donc un exemple de l'endroit où cela a peut-être téléphoné, est le journal dans le feu où nous utilisons l'identité. Bien sûr, mais alors vous savez, pour le gestionnaire de signature et le gestionnaire d'utilisateur il référençant toujours l'utilisateur d'identité, sorte que ceux-ci doivent être modifiés. Employés, je crois que je viens de faire une construction de contrôle. D' accord, bien. Donc, les employés à nouveau. Et puis la ligne rouge signifie que j'ai besoin d'ajouter le signe at en utilisant la gestion des congés. C' est donc un nom de projet de données point. Donc c'est le nom qui parle, non ? C' est la bibliothèque ou le dossier. Dans ce projet. Ils peuvent aller aux pieds pour voir où se trouve cette classe. Donc, pour tous les endroits qui utilisent Identity User, j'avais besoin de voir des employés à peu près. Une bonne façon de le faire est de maintenir la pression incontrôlée F qui fait apparaître le contrôle trouve que c'est une bonne option sur laquelle je peux étendre cela. Ensuite, ce que je vais rechercher est l'utilisateur d'identité sur. Ensuite, je peux voir remplacer par le mot employés. Non, cela ne va pas tout réparer, parce qu'alors nous devons encore passer par et réparer les références. Mais je vais toujours le faire parce que ça le rend beaucoup plus rapide. A était où je suis sûr que nous ne nous souvenons pas de tous les endroits, surtout comme oh, nous aurions éraflé à un tas de vues pour les choses d'identité sur toutes les marches et l'utilisation de l'identité par défaut. Ou alors, en le faisant de cette façon, il passera tout le loyer du projet. Ou est-ce que ce document actuel que je peux développer dans le cadre du projet actuel sur alors ? Je veux dire, si vous voulez être très prudent, vous pouvez remplacer ensuite pour pouvoir les faire un par un. Donc évidemment remplacerait celui-là. Parce que l'employé a besoin de ce. S' il y a un endroit où l'utilisateur d'identité doit être référencé, c'est son droit. Donc je peux sauter celui-là juste qu'ils trouvent le suivant. Et puis c'était la recherche. Ensuite, il atterrira à l'intérieur du laisser un contrôleur d'emplacement où nous avions initialisé le gestionnaire d'utilisateur avec l'utilisateur Identity. Donc, je peux juste aller de l'avant remplacer Onda. Donc je vais juste remplacer un par un juste pour que vous puissiez voir et puis ça remonte tout de suite. Donc je vais juste remplacer tout pour accélérer ça, mais il va y avoir un peu de contrôle des dégâts que nous allons devoir faire un peu de Justin toe Voir, remplacer tous Andi. Cela signifie que si vous faites cela si vous prenez cette boîte, alors vous serez en mesure de sous les changements dans l'individu hors comme si c'était indésirable. Je ne vais pas m'en occuper. Je veux juste dire oui. Il va juste passer par l'ensemble du projet sur le remplacement de chaque utilisateur d'encens hors identité employés, y compris la guerre même que nous essayons d'éviter. Mais nous sommes déjà là, certains juste dans l'identité utilisateur. D' accord, pour que l'on soit restauré. Mais quand je fais une construction, nous allons découvrir qu'ils vont être un tas d'erreurs parce que, non, non, il y a une nouvelle classe nommée employés dans un tas de fichiers sur il n'y a pas de référence réelle. Et nous avons 71 erreurs. Donc, nous ne devons pas nous inquiéter de la 71 parce que beaucoup de ces erreurs sont dans la mer et dans le dossier. Donc, je vais juste double-cliquer sur chaque erreur. Il va directement à l'erreur sur Dhere. Je peux juste vous dire que nous avons juste besoin d'ajouter le panneau à l'aide de la gestion des congés, pas de la ligne de données. Très bien, donc on fait ça et je vais juste copier cette ligne parce que je peux vous garantir que cette ligne sera nécessaire dans un tas d'autres fichiers. Donc j'ai fait un sur Non, nous ne sommes pas de 71 eras orteil plus donc laisse à une erreur. Donc, je double-clique sur puis je passe par chacun. Donc, si c'est une classe ah déposée, alors je peux utiliser la même instruction en utilisant. Je n'ai pas besoin de la pancarte juste sous Semi Colon. Andi, je vais faire quelque part cette personne pour en faire un peu plus, mais je veux que tu le fasses tout seul. Je ne veux pas m'inquiéter à mort avec ce saké vidéo et mettre la vidéo en pause. Continuez à le faire vous-même. Vous avez déjà à faire est d'aller à la liste de l'époque et vous voyez où commando Nice. Ils étaient à 65 ans. Donc, ceci est de citer ceci est que vous avez un peu de travail gratuit et un peu hors re factoring qui va dans la cour parfois sur ce est pourquoi je suis ici. Je suis ici pour vous montrer le côté laid des revêtements ainsi qu'un beau côté de la cour. Donc, si c'est un fichier de classe, on l'a juste basé et on enlève le signe à, on met le point-virgule, alors tout le monde est content de savoir que, Ok, les employés étant pris en compte. Donc, vous continuez à revenir à cette époque réaliste et même. Je veux dire, c'est pour qu'il ne se cache pas automatiquement. Il suffit de double-cliquer un par un chaque fichier et de passer par quelqu'un pour faire une pause. Je vais le faire moi-même. Vous pouvez mettre en pause une vidéo et la terminer de votre côté. Bon, donc j'ai eu le mien. Ne remorquez pas trois erreurs, et c'est dans le fichier de gestion maintenant. Donc, comme je l'ai dit, oui, serait le nombre était grand, mais beaucoup d'entre eux étaient dans le même dossier parce qu'ils avaient plusieurs références sur chaque référence qui n'était pas pris en compte était un aérosol et est allé faire à l'intérieur. Assez géré est au sommet du feu. Mettez dans l'instruction using avec le signe at sur, puis que les paraboles loin Onda. Quand je contrôle le changement ici à nouveau, je sais obtenir une construction réussie. Alors maintenant que nous avons fait cet exercice majeur, nous allons Dragon. Donc je vais juste ouvrir le lien Broza une fois de plus parce qu'après avoir construit à peu près brésilien devient handicapé, c'est ce qu'ils réalisent. Donc, nous voyons juste dans l'er de frère. Bon, donc j'ai eu cette erreur. Est-ce que je croyais que cela pourrait être un problème avec mon DITA sur pas nécessairement le projet. Donc, je suis en mode débogage sur ce qu'il dit est qu'ils ne peuvent pas insérer les mêmes utilisateurs. Apparemment, j'ai fait quelques ajustements de ces facteurs en tenant compte de tout ce que je faisais les paraître. Donc ce que je veux faire, c'est arrêter et je vous montre juste parce que vous avez peut-être été compté. Sinon, alors tu vas bien. Mais je vais juste aller rapidement dans mes données de vue stable utilisateur SB Net sur Encore une fois. C' est très cela n'a rien à voir avec ce que nous venons de faire. Mais il dit qu'il ne peut pas avoir orteil ajouter des utilisateurs moyens. Pour une raison quelconque, il l'est. C' est beaucoup de la création de deux. Donc je vais prendre tout ce qui est méchant. Donc tous les trois de ceux que je supprime juste ceux de mes données. Désolé. D' accord. Et puis je suis allé toe exécuter une fois de plus un peu en mode débogage, que les données de la mer devraient aller de l'avant et créer. Et vous administrateur pour moi de toute façon. Très bien, Donc Ou l'application chargée. Comprendre ? Pour ajouter rapidement des blogs, car l'annonce signifie que c'est admin sur l'hôte local. Soyez au Père Noël s w o R d un. C' est mon mot de passe que j'ai utilisé. D' accord, donc après la sensation de carburant, laissez-les sérialiser je suis un petit nombre. J' ai dit que je parlerais de l'hôte local. Je n'ai pas mis sur le point com, donc je vais passer par cela à nouveau. Mais cette fois, je ne le ferai pas. Je ne perdrai pas votre temps avec elle, Mais juste au cas où vous rencontrez le même problème que je suis, je supprime cet utilisateur administrateur de la base de données une fois de plus sur je suis toujours au clavier. La plupart des orteils soulignants redémarrent. L' application en mode débogage sur qui devrait résoudre ce problème de connexion. Bon, alors essayons encore ça. Andi. Je suis aimé être l'excellence, et je vais passer à la vue de mes employés. Andi, je reçois une erreur dans Visual Studio, et la flèche est que la chaîne d'entrée n'était pas dans un format actuel. Andi, je crois que je sais exactement pourquoi. Donc, ce qui se passe ici est une exception de mappage où il voit deux éléments qui semblent devoir être mappés. Mais il y a un manque beaucoup, et c'est étudier ou ficelle, donc je peux vous dire exactement ce qui s'est passé. Je suis donc je vais juste aller aux pieds Stop ! Sortez du mode bateau. Si vous n'êtes pas dans la lutte contre ça qu'un accident, si vous l'êtes, alors c'est très bien. Je vais vous expliquer ce qui se passe. Mais rappelez-vous que les employés I D est une chaîne provenant de la base de données. Mais alors, dans la machine virtuelle de l'employé, maintenez le contrôle et cliquez sur. Nous l'avons défini comme un int. Donc Automne Oper à travers une exception parce qu'il voit ce que je vois que les idées dans les deux classes Mais l'unité String on est dans. Quelque chose ne va pas là, non ? Donc, je vais le faire à nouveau, juste revenir en mode débogage. Andi, on verra ce qui se passe. Bon, donc je suis allé directement au discours des employés de la liste sur DNO. Je vois une page répertoriant les employés, donc tout ce travail acharné pour que nous puissions enfin obtenir toutes les informations sur nos utilisateurs à partir de notre base de données, n' est-ce pas ? Donc, une fois de plus, ce que nous venons de traverser était de changer toutes les références d'utilisateurs d'identité dans notre application . Euh bien, l'utilisateur d'identité référence la classe par défaut qui est venue avec le projet. Mais nous avons construit une classe personnalisée pour étendre cette classe par défaut sur ce plus personnalisé avait des points de données que nous voulions probablement afficher sur DSO. Je les ai amenés. D' accord, Donc ce que nous avons fait était de changer toutes les références, l' utilisateur d'identité pour utiliser les employés à la place. Très bien, sur dso n'importe où où nous avons le gestionnaire d'utilisateurs ou le gestionnaire de signature, nous devons utiliser les classes d'employés il hors utilisateur d'identité sur qui va étendre notre accès aux orteils de capacité . Les autres points de données dans la table de l'utilisateur que j'étais la première partie des modifications que nous faisons la deuxième partie. Nous allons réellement créer cette vue détaillée où nous cliquons sur un employé. Nous avons donc déjà la vue énumérant les employés et nous avons la recherche. Nous l'avons transformé en une table de données. Donc, comme beaucoup d'employés sont en tant qu'organisation, nous pouvons rechercher par nom Andi. Dans un scénario de la vie réelle, peut-être que chaque employé aurait un numéro i. D unique par rapport à l'entreprise. Donc quoi que ce soit, ils seraient en mesure de rechercher ici sur filtrer les tables sur. Ensuite, ils pourront cliquer sur les détails qui nous montreront les détails, le profil complet de ces employés ainsi que leurs affectations de congés. C' est ce que nous allons travailler dans la deuxième partie de cette activité. 33. Module d'allocation - Affichage laissez l'affectation par employé: Hé, les gars, bienvenue à nouveau. Ecoute, nous continuons sur ce point est la deuxième partie de congé ou de partir. Affectation sur les questions dira slash modèle de gestion des employés construire. Donc, dans la leçon précédente, nous aurions fait quelques ajustements pour que nous puissions retirer notre liste des employés dans le système indiquant le prénom de famille E mail sur din. Cette leçon consistera à étendre cette capacité. Noto active réellement la page de détails où nous verrons le profil complet des employés ainsi que leurs allocations pour la période en question. Donc je vais plonger dans la cour parce qu'on ne va pas passer beaucoup de temps. Nous avons déjà une bonne idée de ce que nous devons accomplir. Tout pour faire quelques modifications et de l'expérience. Je vais le long. Donc, nous commençons avec la machine virtuelle de l'emplacement de laisser A Donc, dans notre modèle de vue ou dans notre dossier de modèles , nous avons l'allocation de congé de vue. Le fichier de classe M sur gars peut tout laisser tel quel, mais je vais supprimer les listes de sélection. Ok, donc tu sais, parfois tu es le changement du pompier ou la façon dont tu veux mettre en œuvre quelque chose change. Ainsi, vos modèles de vue sont là où vous allez et apportez ces changements rapides pour refléter notre orteil. Vous savez, complétez ce que vous voulez voir à l'écran en fonction de votre processus de pensée actuel. Donc, je n'ai plus besoin d'une liste de sélection, parce que la stratégie que j'avais quand j'ai créé cette vue moderne au départ a changé. Très bien, donc c'est le modèle de vue d'allocation de congé. Mais je vais aussi créer un autre modèle de vue et je vais l'appeler laisser. Eh bien, je vais l'appeler voir Allocations VM. Donc, je vais créer une autre classe et je l'appelle voir les allocations VM sur. Ensuite, cette classe va orteil ont, ah, entité publique hors de type employé VM. Il va aussi avoir l'employé que j'ai dedans, Onda. Enfin, je vais orteil avoir une liste sur les allocations de congé, puis cette liste va être hors type allocation de congé vmc. Rappelez-vous que nous ne voulons vraiment pas utiliser les classes de données sur nos vues que tout ce que nous voulons créer des mères de vue. C' est pour ça qu'ils sont là. Ce sont littéralement des modèles pour la vue. Très bien, donc nos classes de données sont des modèles pour la base de données et les modèles de vue sont des modèles pour la vue. Donc, tous ceux d'entre vous que vous allez créer notre modèle de vue, vous voulez vous assurer que vous référencez d'autres modèles de vue si vous le souhaitez. Vous ne référencez pas directement les employés. Je sais que j'ai cette vue, mes allocations de vue VM Je vais revenir à ma vue. Laisser le contrôleur d'allocation Sur cette fois, je vais utiliser une des actions déjà générées sur je vais utiliser les détails,à détails, droite. Donc d'abord, ils sont allés se changer. Les appartements sont de la chaîne parce que rappelez-vous que l'attente est que quand ils cliquent sur les détails pour les employés plus rapidement l'employé i d que nous savons est vraiment une chaîne et pas un entier. Donc, je suis juste en train de changer le type de données pour les détails de en chaîne sur. Ensuite, nous allons commencer à récupérer des données. Donc la première chose que je vais faire est de sauver nos employés, c'est égal à sur. Ensuite, je peux utiliser mon gestionnaire d'utilisateurs et voir des points trouver par i d sur son amende par i d un évier, contournant le i D. Quel est l'employé que je d venir à travers le paramètre que beaucoup est-ce sur ? Parce que c'est une réflexion. J' ai besoin des résultats de points. Très bien, donc là pour perdre 100 fonctions de course, vous pouvez non plus, vous savez, laisser comme un évier sans le résultat du médecin. Mais alors cela me demanderait de changer l'ensemble des résultats de l'action en un assouplissement. Donc nous le ferons plus tard. Nous allons explorer ce bateau pour non, je dirai juste que les résultats. Donc je sais que je reviens juste. Les employés retrouvaient les employés et non l'utilisateur d'identité une fois de plus parce que nous avons changé toutes les références par défaut de l'utilisateur d'identité en employés dans la leçon précédente. Donc de nos employés. Nous avons donc les employés à ce sujet. Je vais apprendre à notre requin. Souvenons-nous qu'on est vraiment en train de balayer. Donc, chaque fois que nous obtenons les données, nous devons les balader sur le modèle de vue, est-ce pas ? Donc, je peux faire tout cela en une ligne où je peux juste voir que je vais juste mettre dans l'espace et dire sur la partition, ma partie supérieure pas balai sur. Ensuite, le formulaire de fonction demande une destination. Donc, la destination pour eux vers le haut serait les employés le M droit sur. Ensuite, l'objet qui doit être nettoyé orteil employés. VM est le résultat réel de cette requête, donc je peux faire tout cela en une ligne. Donc non, quand je reviens les employés, quand ça va chœur pour les employés, chercher des employés, puis faire la cartographie. Et puis mon objet final est hors de type employé VM déjà balayé avec toutes les données dont j'ai besoin. Donc j'ai fait tout ça en une nuit et vous ne le faites pas, c'est qu'on aurait pu vous briser en deux lignes comme on l'a fait pour savoir bien, c'est en une ligne, réalité est qu'il y a plusieurs façons d'écrire Accord et bien des façons pour être efficace sur avoir encore en cour. Alors sachez que j'ai des employés. La prochaine chose que je veux faire est de créer Eh bien, c'est récupérer toutes les allocations de congé pour cet employé dans cette période. Donc je vais juste sauver nos règles une fois de plus sur la Via Pier. Il va être égal orteil. Nous savons qu'il est temps que non, pas un an. D' accord, alors je suis allé pour sauver nos emplacements sont égaux à le jour où je suis allé pour exécuter une requête sur le score . Je pense que c'est l'allocation des congés. Ripple, il est là, amarré sur. Je vais juste trouver tout pour trouver toutes les allocations de congés que je peux trouver. Je peux probablement retourner dans le référentiel et créer une fonction pour trouver toutes les allocations par employés. En fait, je vais le faire comme ça. Donc, au lieu d'appeler, trouver tout et d'essayer d'exploiter une carrière à ce niveau, ce que je ferai c'est de retourner au rapport, ma sœur. Et comme je l'ai dit, c'est pour que votre cour évolue au fil du temps parce que parfois, vous réfléchissez à ce que je dois faire à nouveau, et ils ont besoin de nous. Mettez-le en œuvre. Donc, je vais juste implémenter une fonction qui va retourner une collection d'yeux, hors type, quitter un endroit et puis je vais appeler celui-ci, obtenir les allocations get, obtenir des allocations congé par les employés, tout droit alors par les employés obtenaient les idées des employés de paramètre. Donc, une fois que j'ai mis cela à l'intérieur de l'entrepreneur au lieu des frais inter, je dois retourner à mon dépôt puis je vais mettre en œuvre les interférences, alors donnez-lui quelques secondes. Tu vas avoir cette époque où nous allons. Donc, nous avons plus sur cette erreur sur nous faisons juste un point de contrôle et une implémentation interfère sur. Ensuite, j'ai juste cherché cette fonction que je veux qui est obtient l'allocation des congés par les employés. Alors dans ce fichier, à l'intérieur du dépôt, je fais le transport lourd. Alors j'écris l'école complexe juste ici. Alors je peux voir le retour, et je suis juste interagir en une seule ligne. Donc, je ne veux pas aller de l'avant et faire une requête basée sur db dot quelque chose cause a déjà trouvé. Et j'ai déjà fait quelque chose comme ça. Quand nous vérifierons les allocations, je vais dire Trouver tous ceux qui obtiennent toutes les allocations de congés sur aller voir un point sur je vais juste briser les lignes. Je peux en fait Brick Lane Ou si nous sommes au point sur le dessus de celui-ci, sorte que vous pouvez voir si amarré étaient et je dirai, remède pour démarrer le q Lambda égale sur plus de signe que point employé i d est égal. Donc l'i d qui arrive à travers le périmètre sur Ben. Je vais juste faire un point pour lister afin que nous n'ayons aucun problème avec le type de collection sur . Ensuite, nous utilisons notre demi-côlon. Donc non, ça va juste ramener toutes les allocations pour cet employé. Quoi ? J' ai précisé que nous voulions orteil connaître la période. Donc on va imiter quelque chose comme ce qu'on a fait quand on vérifiait les allocations. Je vais juste copier les pirates où j'ai défini la période sur laquelle je vais placer ça là. Et puis je suis aussi dans la copie de la partie où je compare la période elle-même. Donc je veux dire, encore une fois, tu as raison. La cour l'a déjà là. Vous venez de copier en paix. Tu sais, si tu veux t'entraîner et le réécrire, c' est très bien. Mais je vous montre juste l'efficacité. Alors sachez que j'ai fait tout ça. Laissez-moi vous expliquer une fois de plus. Ce que nous faisons, c'est que nous obtenons les allocations par les employés. Donc, pour toute période où vous affichez sur l'enregistrement des employés, il devrait regarder dans l'allocation stable sur savoir toutes les affectations ont été l'employé I d. Beaucoup est sur. Nous sommes dans cette particule apparue. Donc, si c'est 2021, aucune allocation n'a été fixée, alors vous ne devriez pas ramener quoi que ce soit sur Def. C' est 2020 donc je ne veux pas montrer les allocations 2020 en 2021 n'est-ce pas ? Alors, puis je n'ai pas ça. Nous faisons la liste de to. Alors, de retour dans le contrôleur ? Non, mon appel de fonction ressemble plus à des points de rapport d'allocation de congé, j'ai juste ou contrôlé l'espace sur. Ensuite, je peux juste dire obtenir des allocations de congés par les employés sur. Alors je vais juste passer. Je d sur L'attente est que cela reviendra au moins sur les allocations. Maintenant que j'ai la liste des allocations sur la jetée, Adande, les employés. Andi, je n'avais même pas besoin de la période ici parce que la période m'aurait aidé à filtrer les récupérer. Donc là, je suis re affacturage cour déjà. Ce que je vais faire est de créer un nouveau modèle quelque part pour sauver. Notre modèle est égal à voir un fils chanceux, VM sur alors, voir les allocations V m va orteil ont comme premier paramètre. Alcide M. le nouveau mot clé si nouvelle classe tapée sur. Ensuite, la première propriété sera les employés et les employés vont juste être égaux sur les objets employés que nous avons déjà téléphoné au dossier et nettoyé. Très bien, donc c'est un ajustement parfait. Et puis la prochaine chose est que nous voulons la liste des allocations de congés, et cela devrait vraiment être un type de liste hors type. Ah, ça devrait être une liste hors congé. Je laisse allocation VM Désolé. Donc, je ne l'ai pas fait ici, donc j'ai dû laisser des allocations de la base de données par Didn't Muppets comprendre trop vite moppet ici. Soulignez donc mon sac à main. Je le fais juste en une ligne, comme je l'ai fait tout à l'heure. Alors la destination de cette carte est orteil une liste hors type que je regarde vers votre fils ou est-ce que c'est l'allocation de congé , Veum droite. Tellement volatile qui mappe directement notre classe de données. Très bien, alors nous ouvrons devra fermer le plus grand que de dire à nouveau ou va intégré et signer. Donc ce support d'angle est beaucoup avec ce support d'oncle sur celui-ci. C' est beaucoup avec ça. Et puis nous définissons l'objet en ouvrant la brise, appelant notre objet à partir de nos abeilles de données sur. Alors je ferme l'accolade. Très bien, donc ces deux lignes ont l'air assez identiques, sauf que l'une d'entre elles nettoie un encens sur l'orteil de l'objet. Une instance renvoyée où celle-ci attend une liste provenant de cette fonction. Appelez son mappage arrière Une liste hors du type de vue du modèle de vue. Désolé. Ainsi, la liste d'attente dans notre modèle peut être assignée à un emplacement. Puisque les allocations n'est pas seulement choses laisser allégation VM sur Il a été défini comme tel à notre avis, modèle de vue des allocations. Alors sachez que nous avons construit ou modélisé. Lorsque nous retournons la vue, nous nous attendons à retourner la vue avec les données qui sont en train de revenir sur l'ajustement de ce modèle. Donc, je vais générer cette vue quand faire un clic droit sur la vue clic, ajouter la vue. Je génère un modèle sur les détails. Ensuite, la classe de modèle va être l'allocation de vue. Eh bien, en fait, voici ce que je vais faire. Je vais générer, euh,le euh, moins sont le modèle de détails basé sur la machine virtuelle de l'employé. D' accord, je vais vous expliquer pourquoi. Donc, la chose est quand vous générez une vue basée sur un modèle de vue, je suis sûr que vous réalisez, mais je sais qu'il essaie un peacoat. Les types de données simples, les temps de données simples signifiant en chaîne, ceux qui sont intégrés, pas les classes qui étaient en train de créer. Donc, parce que de notre point de vue, le modèle de vue des allocations est vraiment construit pour accueillir deux classes, qui est qui sont employés VM ainsi que l'allocation des congés. Veum. Si nous devions générer des détails Page basée sur ces deux classes, alors il ne sortirait pas aussi proprement que le plus. La plupart des informations vont de la machine virtuelle de l'employé de toute façon, donc je vais générer le temporaire basé sur l'employé Veum, qui a déjà, ah, beaucoup de types de données simples dedans afin que nous puissions les afficher facilement, et ensuite nous pouvons manipuler cette page plus facilement pour afficher les informations supplémentaires. C' est pourquoi parfois je n'utilise pas le modèle de vue exact qui est passé dans la vue en tant que classe de modèle pour la génération de l'échafaudage. C' est ainsi que vous pouvez tirer parti des travaux antérieurs pour faciliter le travail futur. Si vous avez une appréciation pour l'ensemble de la vue plus ce travail vraiment, vous pouvez choisir le meilleur modèle de vue pour obtenir le meilleur hors de la cour générée par l'ordre à tout moment, puis faire des modifications que vous voyez le besoin. D' accord, donc une fois de plus, j'utilise la VM des employés de classe modèle. Ensuite, je vais juste aimer l'annonce, accord, Et puis notre modèle est généré. Donc je veux dire nommé. Non, je n'ai pas prêté beaucoup d'attention aux Burbage sur les pages. J' essaie vraiment de vous apprendre le flux et le codage back-end, mais je veux faire attention cette fois. Hum, donc, premièrement, je dois changer le modèle parce que le modèle qui est la personne n'est pas vraiment des employés. Le M c'est vraiment croire bien, vous quittez est cette vue allocations de congé V. M. Une fois que je fais cela, alors vous allez commencer à voir des erreurs surgir bande. C' est parce que le modèle est statique sur. Il n'a pas de champ appelé nom d'utilisateur le modèle. C' est de l'appel de champ samba qui l'utilise parce qu'une allocation de vue de classe. William n'en a pas quelques-uns qui l'utilisent. Cependant, le modèle le fait. Désolé, il est livré avec une classe appelée employés sur Employé a un champ appelé use any. Donc, une fois de plus, j'ai généré une machine virtuelle basée sur l'employé. Mais ensuite je vais, Eh bien, l'employé Via n'a vraiment pas, hum, l'utiliser. Et je peux toujours y revenir sur le chèque, mais je ne crois pas qu'il y ait d'email. Oh, il s'en sert. Il y en avait. Très bien, donc vous venez juste de sortir pour rendre le modèle amarré employés que l'utiliser. Donc, pour toute sous-classe qui est ramenée à l'intérieur des données, vous pouvez l'utiliser en référençant simplement la propriété en conséquence. Donc, notre modèle a deux classiques en tant qu'employés. Il a une liste des allocations de congés. Donc, ce que nous allons faire est de passer en revue et d'inclure les employés des points modèles. Je suis juste en train de copier ça sur je suis lointain. Injectez-le après chaque référence au mot modèle. D' accord ? Et, oui, cela peut sembler fastidieux, mais à la fin de la journée, cette modification est beaucoup plus facile que si nous avions essayé de générer la classe avec le modèle de vue d'origine. Droit ? Donc je vais juste passer à travers et vous allez voir que tout finira par tomber dans la police. D' accord, donc certains d'entre eux ont encore des lignes rouges. Finalement, ils partiront. Et s'ils ne le sont pas tous. Donc c'est notre détail, la vitesse. Donc, c'est à peu près un profil de tous les employés. Nous pouvons l'embellir, vous savez, nous pouvons en faire une page de profil entière. On le fera plus tard. Mais en ce moment, je veux me concentrer sur le spectacle dans le laisser nos lieux. Donc, je vais supprimer cette page d'action relayer à la liste. Je laisse Based une liste, mais je supprime les modifications parce que je ne veux pas que quelqu'un édite les employés de cette page Bateaux en dessous ici je suis avec une règle horizontale sur. Ensuite, je vais dire que chaque outil Onda se quitter nos emplacements et puis à l'intérieur des allocations de congé , je sais va générer. Il y a ces données Kontinen sur les détails de chaque allocation de congé dans le système. Donc, je vais entrer dans le remorquage. Turgeon éteint. Hum, hors raison froide où j'utilise mon instinct ouvert. Et ces accolades sur puis à l'intérieur hors que je suis allé voir pour chacun sur le double dessus. L' onglet me donne celui généré pour chaque bloc sur. Ensuite, la collection vient de modèles donc je peux juste voir modèle avec un majuscule M et ensuite dire amarré et ensuite nous disons, quitter nos emplacements. Un modèle de fléchettes laisse des allocations. C' est donc notre collection. Tout droit sur. Ensuite, nous avons chaque élément à l'intérieur de l'allocation des congés. Donc l'article nous donne accès à tous les détails à l'intérieur d'une allocation de congé sur si nous avons piégé l'allocation IV Itzler de ou modèle, qui est après que je vous ai allocations. Le M sur elle est hors type. Chacun est hors type allocation de congé le M Et si je district que nous voyons qu'il contient le nombre de jours de congé, la période, les employés sur le type de feuille détails. Donc, ce que je veux afficher non est juste les batteurs de type feuille que je veux dire, Eh bien, le nombre de ces sont les employés ont ainsi que peut-être le nom du type de feuille. Donc, dans les détails, je vais aller aux pieds. Il suffit de générer un problème McCord ici et je l'appelle un div alors, à l'intérieur de ce fait de Dave, je vais référencer bootstrap pour voir quel genre d'outils ils ont. Toutes sortes d'éléments visuels qui ont que je pourrais probablement utiliser pour améliorer la représentation de ces données. Bon, donc, donc, regardant la documentation, je suis allé sur les cartes, sectionnant les composants. Andi, je vois ici qu'ils ont des listes de groupes. Bon, donc je pense que c'est sympa. Imaginons donc que chacun d'entre eux soit le type de feuille Onda, une section qui montre le nombre aan den le bouton sur une autre section. Donc, c'est à ça que ça ressemblerait. Vous aurez donner des voitures, des cartes et puis fondamentalement chaque ou entrée serait un élément allié. Donc ce que je vais faire, c'est prendre le 1er 2 sur les deux dernières lignes. Donc je vais prendre les 2 premières lignes en premier à retourner dans mon cordon. Puis je suis allé les mettre dehors des quatre chacun. Alors mets ce Dave au cours, hum dehors des quatre chacun. Et puis je retourne sur le filet ces deux-là. Donc, cela est juste de vous montrer comment vous pouvez, vous savez, manipule les sont les éléments HTML existants à votre plein et le désir. Donc, évidemment, si j'insère trop de problème entre le signe au sur le cordon, c'est en quelque sorte annuler l'effet. Donc, ce que je vais faire est d'enlever ceux-ci et de mettre le signe à directement sur les quatre chacun. Je sais qu'il se souvient de ça. OK, c'est la cour de C tranchant, non ? C' est donc une bonne façon de reconnaître quand il perd son contexte lorsqu'il n'est plus mis en évidence . Donc, cela définit la prémisse pour le groupe de liste sur. Ensuite, pour chaque allocation de congé qui est dans le système, je vais être Gellar générant sur l. Je remorquage sur ce l Je remorqueur va orteil ont la liste de la classe tiret groupe élément de tableau de bord, mais son contenu sera sur ce Juste briser sur, Ensuite, je vais mettre dans All right, Donc je vais prendre bootstrap à nouveau pour voir quel élément Styler utile que je peux mettre ici le jour où j'ai atterri sur une page avec des budgets, donc je vais prendre l'exemple de la rubrique avec le Mais donc le titre est type de congé prévu dans le budget aura le nombre. Encore une fois, c'est juste moi qui essaye d'être créatif. Hum, booster me permet d'ajouter ces éléments de réserve très facilement. Vous pouvez avoir d'autres idées, mais je veux juste essayer le concept que vous avez votre html mais vous pouvez toujours insérer le texte que vous voulez en voyant à signer. Ensuite, dans ce cas, vous voulez élément élément représente le congé Un emplacement sur lequel je vais descendre pour partir. Tapez sur, alors. Il s'agit d'un objet qui représente le type de congé sur les deux de cet objet. Je veux vraiment le nom de ce type de congé. Donc je veux imprimer un congé de maladie, non ? Je ne voulais pas juste dire que j'en ai un. Je voulais imprimer le mot malade. Laissez Andan à l'intérieur de l'insigne, ce qui peut être à peu près n'importe quoi. Secondes un tableau de bord de bouge, poussière de tas de Sikander , succès primaire Budge néerlandais etc. Mais à l'intérieur du contenu de ce bouge, je vais supprimer les exemples de textes et le remplacer par un élément ancré alors juste ici. Je voulais imprimer le numéro. Tout va bien. Le nombre désactivé est le nom du champ qui indique le nombre de ceux-ci qui correspondent au type de feuille. Cette allocation est donc une fois de plus, tout cet allié surmonté de toutes ces données va être imprimé à l'intérieur avant chacun. Donc, pour chaque allocation que cet employé a, il y aura, hum, une représentation à l'extérieur maintenant que je vais aussi imprimer et j'utilise juste une barre sur. Je veux un bouton à la porte. Je vais utiliser une étiquette à la cheville, donc je veux un oncle. Je vais utiliser une étiquette à la cheville , Alors on veut que ce Qatar ressemble à une bouteille. Donc, je dirai que la classe est égale à Bt et et Bt et tiret sur. Je vais dire avertissement, parce que ce sera un montage. Certains diraient « contour », tiret », avertissement ». Et puis à l'intérieur de cet oncle parle. Je vais juste mettre ça dans la nouvelle ligne à l'intérieur de cet oncle Remorqueur. Je veux l'icône avec une classe. Quelqu' un a utilisé mon fonds. Impressionnant Effie sur alors si un crayon de tableau de bord. Mais il va être sur le bouton d'édition sur. En plus de cette icône, je voulais la voir ou c'est n'importe quand, disons juste que c'est compliqué, beaucoup plus que ça. D' accord ? Donc non, avec toutes ces modifications, quand je vais mettre la balise de liste A soutenue sous tout, alors revenez à cela pour revenir à notre inexpérience peut affiner cela plus tard pour le besoin, mais je vais savoir pour déboguer le mode, alors nous allons voir exactement combien notre travail a porté ses fruits. Bon, donc j'ai exécuté l'application. Je suis sur la liste des employés, et ils allaient vérifier. Nous allons cliquer pour plus de détails. Discours onda. Cela conduit à une erreur. Donc, la flèche disant que la référence de l'objet n'a pas dit orteil un objet et il est référencement ou loué. Les types de congés sont de sorte que signifie ou ne laissera pas de liens, mais des allocations de congés. Donc ce que je vais faire est de démystifier plus que nous ne pouvons voir exactement ce qui se passe pour causer ça. Alors je vais voir le contrôleur. Ensuite, je vais cliquer sur la ligne où retourne la vue. D' accord, on. Ensuite, je suis allé recharger la page pour qu'elle refasse toute cette opération, et ensuite nous allons évaluer quelles données viennent sur la quand elle atteint notre point de rupture. Non, on peut survoler le modèle et on peut le faire. Ou nous pouvons simplement utiliser la section normale ici sur le modèle d'expansion de jour. On voit donc que les employés sont revenus. Nous avons les détails de l'employé, donc vous savez, le jour de l'adhésion. Nous savons tout sur les employés. Mais ensuite, nous descendons pour laisser des allocations. Nous voyons que nous devons laisser les allocations dans la liste et j'en élargis une. Ensuite, nous allons voir qu'il contient les données des employés une fois de plus. Très bien, c'est bon. Mais alors l'objet de type leave lui-même est vide. Donc, le type de feuille I d a le type de feuille I d. Mais nous n'avons pas l'objet de type leave lui-même. Donc, en soi, c'est ah, peu de problème. Non, car alors nous référençons des détails à l'intérieur de cet objet qui ne sont pas disponibles. Basé sur quoi ? Nous revenons aux points de vue. Je vais arrêter ça maintenant. Quel mode de débogage ? Nous allons retourner à notre fichier de dépôt pour l'allocation des congés. Je vais faire un petit ajustement à la cour et je vais expliquer pourquoi cet ajustement est très, très important. Donc, nous utilisons la dernière option pour obtenir tous les dossiers, et dans la fonction finale, nous avons une ligne hors cour qui indique les allocations de congés BB, qui est notre table à énumérer. Maintenant, ce que je vais faire est d'ajouter une autre fonction, une autre fonction Lunda à cela qui va inclure sur l'entité, donc je vais juste le taper et je vais expliquer exactement ce qui se passe. Alors rappelez-vous que ou laissez l'allocation quand il a été chargé avec toutes les données croient type um , section off. C' était vide. Et c'est ainsi que j'ai eu cette exception de référence, parce que voir vous essayez de référencer des données, ce n'est tout simplement pas là. Donc, nous devons dire, quand ont été récupérer les dossiers pour l'allocation des congés. Nous devons récupérer les données correspondantes pour le type de congé pour cet enregistrement particulier d' allocation de congé . Donc la relation n'est pas bonne ? Si vous faisiez une base de données régulière, vous devrez faire quelque chose comme une jointure interne à la table de type de congé sur. Ensuite, vous seriez en mesure de voir les détails de type feuille parce que l'idée agit comme une clé étrangère , donc ils veulent faire ici est dire, db dot leave. Allocations point comprennent brise ouverte et fermée et inclure comme une tête I cérébrale. Cela me laisse juste à la retraite rapidement inclure accolades ouvertes et ferment sur. Alors ça va me dire que j'ai besoin d'inclure une bibliothèque. Les cidres incluent cette bibliothèque. Pas de problème, à l'intérieur des accolades. Je vais mettre dans un Lambda Expressions comme une queue et je vais juste dire point de flèche sur, Dites désolé Q amarré sur. Ensuite, il va dire : Qu'est-ce que vous avez l'intention d'inclure exactement ? Donc, nous pouvons inclure n'importe quelle entité qui est liée à Remember lorsque nous avons créé notre classe de données et d'autres reviennent à la classe ultérieure ? Rapidement, nous avons créé ah entité clé étrangère appelé employé I D. Mais nous reflétons également la représentation pour toute la classe, objecter les employés avec la même chose pour un type de congé. Donc, dans certaines situations, vous pouvez avoir besoin d'inclure dans certaines situations, il peut venir sur alisoautomatique , il peut venir sur aliso , par exemple, Les entités d'employés déjà là devrait inclure ce bateau. Nous nous rendons compte que l'entité de type leave était vide. Donc, je vais orteil dans la classe du référentiel, disons que je veux inclure toutes les données correspondantes pour le type de congé sur. C' est comme une jointure intérieure implicite. Donc, quand ce sera le cas, cette carrière apportera tous les détails possibles pour tout ce que nous incluons pour chaque enregistrement obtiendra tous les détails dont nous avons besoin et rappelez-vous que nous avons besoin de ces détails parce qu'à notre avis, dans notre vue détaillée, oui, nous ramenons, comme, comme, le nom de point de type feuille que j'apportais sur le nombre de jours de congé ID associé avec cette allocation. Eh bien, vraiment dans son nom de point de type de congé. C' était là le problème. Alors sachez que j'ai fait ça. Inclure, je suis allé courir en mode de débogage à nouveau sur les trois points est toujours dans le contrôleur. Et quand il aura le point de rupture, on voit ce qui se passe. Bon, donc on clique sur les détails, qui va tirer. Les exceptions sont déclenchées le point de rupture, puis nous allons évaluer nos objets de modèle et j'explore le modèle sur. Ensuite, je regarde les allocations de congés. Je vais laisser des allocations pour ça. Les employés perçant l'orteil, au moins une allocation de congé que je vois. Le type de feuille ne voit plus Non. Donc, quand je perce dans le remorquage, l'objet de type feuille. Maintenant, je vois les détails de cet objet de type feuille, y compris le nom même que nous avons besoin d'imprimer. Alors, je vais aux pieds. Il suffit de supprimer ce point de rupture sur la presse. Continuez, alors nous verrons ça. D' accord ? Nous avons fait une conception aveugle Donc c'est ce qui a été généré par défaut, et nous apportons tous les détails qui sont disponibles pour ces employés. Donc, cet employé, le nom d'utilisateur de l'e-mail, ils n'avaient pas de numéro complet, donc c'est vide. Ils n'avaient pas la taxe I. D. Date de naissance et avis. Tous ces trucs sont en quelque sorte communs sur ne pas être imprimés, vous savez, aussi proprement que possible sur Do vous pouvez juste vous rappeler qu'on peut juste retourner à nos congés, euh, employés, employés, VM employés droite VM et configurer ou afficher des annotations de données au-dessus de chacun pour que l'impression soit meilleure. Donc, à la fin de la journée, où certains trouvent à voir avec comment sont allocations de congé, look sexuel, donc regarde. Nous avons donc commencé à bien imprimer les allocations de congés. Ensuite, nous pouvons voir qu'ils ont beaucoup de congés pour les congés de maladie, c'est-à-dire 10 jours et donc des congés annuels. C' est 15 jours, mais ensuite les modifications qui vont dans une ligne différente, donc nous pouvons probablement revenir à la vue et l'affiner un peu, et il le fait probablement parce que j'ai apporté la ligne donc Ce que je vais faire est juste enlever cette ligne de frein et imprimer tout en une seule ligne sur ce qui va théoriquement résoudre cette ligne de frein. Donc, je vais le faire sur le mode de débogage juste redémarrer. Voyons ce que cela ressent, et cela n'a pas changé. Et je crois savoir pourquoi. Je pense que ça n'a pas changé parce que nous utilisons une étiquette d'en-tête ah pour la section malade et je vais juste inspecter et confirmer. Donc, la balise d'en-tête est livré avec sa propre fête, donc il ne va prendre qu'une seule ligne. Donc c'est vraiment une femme. Donc ce que je pourrais faire, c'est inclure la cheville à l'intérieur du remorqueur. Alors j'attends. Je vais sortir de l'humeur de bateau rapidement sur. Ensuite, je vais juste développer cette balise d'en-tête entière pour inclure cette balise d'ancrage sur. Ensuite, on voit où je n'ai pas le crayon, et c'est parce que j'ai foiré la classe. Ce n'est pas un aliment. Très bien, sur, alors, cette fois puisque je suis vraiment juste de vous utiliser, je comprends de faire le frère ou le lien sur la vue dans le frère er Onda de Bro sur la page et savoir que ça a l'air un peu plus facile sur les yeux bien sûr encore une fois, vous savez, nous pouvons mélanger et assortir. Nous pouvons mettre notre propre flair, mais pour non, c'est à ça que ça ressemble. Donc, le prochain objectif derrière la finition de ce modèle sera de mettre le pied dans une option d'édition où cet utilisateur administrateur sera en mesure de modifier manuellement cette valeur d'allocation de congé de maladie. Donc, mon dernier acte pour cette vidéo est juste de prendre ce que j'ai vu hors de la paix, et je vois juste enlevé les mots employés vm du discours de détails. Donc, je reviens à mon point de vue enlevé que, hum sur. Alors je vais dire des détails pour Andi. Je peux dire tiret et rappelez-vous que tout est dans le modèle. Donc si je voulais imprimer le nom de l'employé, je peux dire des points de modèle. Désolé, je dois utiliser les fléchettes du modèle à signe sur les employés de DSI pas, et je vais le faire comme nom de famille virgule, arthroscopie. Tout cela au lieu de le retaper à partir de zéro lors du changement Nom, prénom orteil. Donc, lorsque les charges de vue vont dire que les détails pour cela seraient bien, nous avons des utilisateurs très génériques dans notre système, donc quels que soient les noms d'utilisateurs que vous auriez utilisés, vous voyez qu'ils ont été affectés. Donc, je suis juste rafraîchir le navigateur sur. C' est ce qui va utiliser les détails pour le nom de famille, le prénom virgule. Donc, autant de détails que vous voulez sur votre page, Vous pouvez toujours, vous savez, vous savez, utiliser un des éléments purs. Soyez dynamique et générez au fur et à mesure. Donc, comme je l'ai dit dans la leçon suivante, nous allons faire le travail sur l'écran n'importe quoi pour les détails de l'utilisateur. 34. Module d'allocation - Édition l'attribution par employé: Hé les gars, dans cette vidéo, on va mettre en place cet écran de montage qui nous permet de changer l'allocation pour un employé en particulier. Type de congé de particules Onda. Donc je vais juste entrer directement dans l'action. Dans la leçon précédente, nous aurions mis en place notre discours de détails sur notre page de détails présente une section énumérant les allocations de congés pour les employés de niveau articulaire. Nous voyons le type de feuille par nom. Le nombre de ces et puis nous avons sur le bouton d'édition qui nous permet de franger's aux modifications sont au moins c'est l'objectif. Donc remarquez que nous avons l'étiquette de la cheville, mais l'étiquette de la cheville ne mène vraiment nulle part. Donc, ce que nous allons faire est à un itinéraire SP Dash sur cette route va être à elle. Onda. Nous allons également ajouter un itinéraire de tiret S P. C' est seulement ce serait des données de tiret. Désolé, c'est donc idee mon, mais quelque chose que je croise mes fils. Donc c'est vrai. Dash I d sur alors. L' idée que nous transmettons est au signe itim point sur la valeur serait une idée. Donc, élément que I D sur Remember, item est quand représenter un objet dans la collection Off. Laissez un endroit. Donc nous sommes quelque chose de cette particule. Laissez notre dossier de localisation. C' est pourquoi nous référençons l'i d pour cette allocation. Donc, hum, en ne spécifiant pas de contrôleur de tiret SP, il va supposer que vous utilisez le et il dans le même contrôleur que cette particule de vous, qui est des détails, est dans nos détails. Vous êtes à l'intérieur du contrôle d'allocation des congés. Donc, cela signifie que lorsque nous cliquons et qu'il va déduire que nous entendons l'action edit initié laisser le contrôleur d'allocation Non, nous avons déjà des actions pour cela. C' est celui qui prend l'action au courant de l'action post. Donc, nous devrions avoir une appréciation fortifier que l'on rend la vue avec les données sur un processus l'action correspondante après qu'il a été effectué. Donc on va juste entrer dans l'action. Je n'ai pas à le faire. Je ne devrais pas avoir beaucoup à expliquer ici parce que nous l'avons fait quelques fois auparavant. Donc, pour notre édition, nous avons une idée entière et cette idée, rappelez-vous, est ou laisser l'allocation I d. Donc nous devons trouver les allégations de congé. Je vais sauver je soulage un emplacement est égal à souligner l'allocation ou l'allocation de congé re pour amarré je nous allons trouver par i d cet enregistrement d'allocation de congé particulier passant la référence d'idée sur puis rappelez-vous ce week-end ce vadrouille tout droit de la chauve-souris . Donc, je vais juste à je veux dire, parfois cela dépend de tout propre que vous voulez appeler ça pour être donc personnellement je ne suis pas un plaisir juste cartographier en une ligne avec l'appel. J' aime rompre, mais c'est juste moi, non ? Donc, quel que soit celui que vous préférez comme vous pouvez le faire fonctionner, alors vous pouvez le faire de cette façon. Ondas comme vous le pouvez, prêt assez propre que votre équipe ne peut pas comprendre. Donc c'est sur le score, ma par points, Vadrouille sur. Alors, on est en train de se balader. Je quitte notre emplacement sur le type de données VM. On y va. Sur l'objet qui correspondaient à cette direction est l'allocation de laisser qui est stockée dans ce terrible sur. Ensuite, nous passons ou modélisons dans la vue. Non, nous générons les vues. Donc, l'Irak vue cliquez, ajouter la vue. Nous allons choisir le modèle. Ensuite, la classe de modèle sur laquelle ce formulaire d'édition doit être généré sera laisser la VM d'allocation sur, puis. Je veux dire, parfois vous n'avez vraiment pas besoin de la classe de contexte de données une fois de plus si vous utilisez le modèle de vue . Mais je vais juste le laisser tranquille et je vais juste aller de l'avant et cliquer, ajouter, donc non, j'ai ma tête. Il est donc prendre tout cela je l'épée qui dit laisser allocation vm Onda avoir mon édition où j'ai les entrées étant cachées, le nombre de jours off visibles, je vais rendre l'acte créé également caché. Donc, la chose est, si j'ai créé un et son modèle de vue pour cela, j'aurais pu oublier certains éléments. Donc, comme ils ont créé, je n'aurais vraiment pas besoin d'être créé sur le formulaire d'édition sur. J' éliminerais la nécessité pour moi d'avoir à faire ce genre de choses. Les modifications. Mais j'ai déjà emprunté ce chemin. Donc je vais juste rencontrer ces ajustements mineurs et dire que le type va être égal orteil caché. Bon, donc chaque équipe qu'ils ont créée et nous avons dû le faire plus tôt avec des types de données, je suis sûr que vous comprenez pourquoi cela est fait, Période. Nous n'avons vraiment pas besoin de retourner des périodes. Ils voient toutes ces choses revenir. Employé, je laisse ça. Vous n'avez vraiment pas besoin de ces éléments à l'intérieur pour qu'il se forme. Donc, ce que je vais faire est de supprimer ce formulaire d'édition, et ensuite nous allons le faire. Donc, je vais juste aller plus loin pour laisser l'allocation, supprimer cette modification sur Au lieu de cela, je vais créer sur un modèle de vue spécifiquement pour modifier les allocations de congé. J' ai la classe de données, mais laisse le fichier VM d'allocation. J' ai créé un vous avez ? Donc je vais juste aller de l'avant et Eh bien, je vais juste copier la création qu'il a déjà une partie du visa veulent. Je suis avec la paix. Je retire la liste des types de congés. D' accord, Andi. Au lieu de cela, je vais mettre un objet solide hors type feuille. Avec quoi ? Je n'ai même pas besoin du i d , alors je mets juste cet objet solide parce que peut-être je veux imprimer Oh, le type. C' est le nombre, euh, le nombre de jours de congé, quelqu'un pour référencer le numéro de ceux-ci. Ok, laisse-moi changer le nom. Donc, cela va être édité. Laisser le modèle de vue d'allocation, non ? Quoi d'autre ? Quoi ? J' ai vraiment besoin de cette forme. Réel. Finalement, j'ai juste besoin des employés, le type de congé et, eh bien, j'ai besoin de conserver le I d afin qu'il puisse être caché et transition, vous savez, Donc que l'écran d'édition d'édition va vraiment juste avoir la sensation cachée pour l'i. D de suivre quel enregistrement est en cours d'édition. Il va probablement avoir quelques détails pour les employés. Peut-être que je veux imprimer quelque chose pour les employés. J' inclut cet objet. Il a un certain nombre de jours qui est sujet à changement sur. Ensuite, nous avons les détails du type de congé, qui, je veux dire, je veux dire que je veux afficher les détails une fois de plus. Donc, je sais que j'ai ce modèle de vue. J' ai fait ce changement que j'ai sauvé. Maintenant, je peux retourner voir mon contrôleur et je peux le faire à nouveau. Donc, au lieu de mappage pour voir congé, je regarde, c'est sur VM. Je suis allé à mon upto modifier l'allocation de congé VM sur. Ce que cela va faire est de prendre les sensations pertinentes de la base de données Rappelons que c' est avocat un objet entier avec tous les détails sur va balayer seulement ceux pertinents nécessaires en fonction de ce que nous avons défini dans le modèle de vue quelqu'un orteil générer à nouveau la vue . Sélectionnez le modèle d'édition sur la classe de modèle va être Et il est laisser allégation VM et je peux cliquer. Ajouter sont ce est une note. Non, nous avons fini avec notre à la forme Onda. ce que nous avons, c' Toutce que nous avons, c'est des sentiments pour l'idée qui est cachée sur. Nous avons la saisie de texte pour notre nombre de jours de congé. Donc, comme je l'ai dit dans une écoute précédente, si nous et moi allons le trouver rapidement Si nous avons des types de classe, les types complexes ne peuvent pas être éraflés, donc ils l'ignorent généralement. Understeer avec les types simples qui sont en chaîne, etcetera, etcetera. Il sait déjà que je d beaucoup est la valeur clé dans la table de données d'origine. C' est pourquoi, quand il l'a généré sur, nous avons choisi les données sur la classe de contexte de données. Il savait que, Ok, c'est l'idée qui vient de ne rien exhorter. Donc je vais juste le cacher. Donc je veux dire, c'est que ça déduit beaucoup de choses sur. En fonction de la façon dont nous écrivons notre code, nous pouvons limiter le montant de l'édition si nous mettons juste en place la norme directement à partir de l'un. Donc, la norme ici est que nous créons un champ de contrôle de modèle de vue sur. Ensuite, nous utilisons notre modèle de vue pour, vous savez, informer ce qui était sur cette plage. Très bien, donc je vais mettre tag apparaitre donc le titre de ce discours va dire quelque chose comme n'importe quoi. Et puis je peux dire au modèle, ne pas laisser le nom de point de type. droite. Donc, lorsque nous récupérons l'enregistrement pour cette allocation que nous modifions, nous devrions connaître le type de feuille et nous rappeler que nous avons déjà inclus l'entité de type feuille dans tout ce qui est des allocations de congé. Nous avons donc accès à tous les détails. Donc je dis n'importe quoi Ce congé taper notre emplacement pour On que je peux mettre le nom de l'employé à des points Model de Sion, des points d' employés sur. Alors je vais voir le prénom. Il suffit de copier celui-là à nouveau. Donc, bien sûr, basé sur la façon dont vous voulez savoir si j'ai déjà la norme hors de nom de famille virgule, prénom Alors laissez-moi voir. Nom, virgule, prénom. D' accord. Sur Si quand nous arrivons à ce point, nous obtenons une autre exception parce que peut-être employé est en blanc. Ensuite, nous pouvons toujours retourner à notre dépôt sur un autre. Inclure pour les employés. Eh bien, essayons d'abord. Comprendre ? Utilisez le lien du navigateur sur la vue dans le navigateur. Très bien, alors testons notre bouton d'édition Quelqu'un à cliquer sur Modifier. Mais oh ah, ça tourne toujours vers les détails. J' ai dû faire une erreur dans mon Ah, ça devrait être SB action. Et c'est des racines P. Donc, ma mauvaise. Cela devrait être sp Action moi qui a changé Enregistrer sur puis recharger notre page. Très bien, donc faire ces modifications Non, je vois que le lien émettant ou correctement je clique dessus sur DNO Nous obtenons une erreur. Un bateau ? Ah OK, donc je reçois une erreur à ce sujet. C' est laisser la VM d'allocation sur. Ce n'est pas à l'automne. Oper supporté balai droit Onda Nous aurions passé par quelques configurations supérieures d'automne étaient dans notre balai. Nous devons nous assurer que nous sommes en train d'augmenter ce que nous faisons référence. Donc, j'ai besoin de créer un montant entre l'allocation de congé onder que les particules comprennent pour dupliquer cette terre pour laisser notre allocation sur. Ensuite, je vais dire que je veux un mappage entre l'allocation IV sur la VM d' allocation de congé d'édition . Donc, si vous obtenez cette flèche, tout ce que vous avez à faire, mettez simplement à jour votre configuration de balayage, puis une fois que vous avez fait cela, vous devriez pouvoir appuyer sur l'avant. D' accord, je sais que nous réparons cette cartographie, c'est que nous voyons que l'autre problème est un bateau, cette référence d'objet ne se réglera pas, par exemple, sorte que Sir Peter hors d'un problème précédent avec permission types étaient où mettre en ce qui inclut notre fonction include. Donc je vais juste revenir sur, vous savez, vous savez, après un moment ces erreurs, vous les voyez et ensuite vous êtes comme, Oh, ouais, c' est ce que je dois faire. Et c'est pourquoi je passe par cet exercice ou ces exercices comme ceux-ci afin que nous puissions voir les erreurs courantes sur apprendre à les corriger. Euh, tu sais, vite. J' ai donc inclus le type de congé. Je peux ajouter. Un autre inclure O R, Je peux dire, Puis inclure sur puis je vais mettre dans un autre Lambda Expressions. Donc inclure le type de congé, puis inclure les points de Qué plus. Non, désolé. Cela inclut alors est quand vous êtes Daisy enchaînement. Donc, s'il y avait quelque chose à l'intérieur hors congé que je voulais inclure aussi alors je l' utiliserais qui comprennent quelqu'un orteil inclure également donc inclure, type de congé sur, puis inclure les employés sur. Ensuite, je vais essayer de charger la page une fois de plus. Alors je vais me rafraîchir. D' accord, donc cette modification ne l'a pas servi. Et c'est parce que je suis désolé. Je veux dire la modification à la mauvaise fonction. Donc, dans cette pollution particulaire utilisaient trouver par, je ne le découvrirais pas. Donc, je dois dire fondamentalement que quand je trouve par je d je trouve cet objet particulier Donc comprend Brick Lane sur. Ensuite, je lance les lignes d'inclusion. Eh bien, peut-être que je ferais ça avant la découverte. Alors laisse-moi voir. C' est inclure qui comprennent le droit. Et puis je trouve que tout va bien. Donc, nous allons devoir le refléter. Cela s'appelle un peu parce que j'ai dit que je veux les allocations de congé et je veux inclure ces entités et puis nous réalisons que la fonction de recherche ne dit pas qu'elle ne peut pas être utilisée , donc ce n'est pas un problème. Ce n'est pas un problème. Au lieu d'utiliser find, je vais utiliser un autre appelé en premier ou par défaut. Donc, je vais juste supprimer trouver et je vais dire d'abord pas d'abord ou par défaut sur puis abord ou par défaut prend une expression de bois jusqu'à présent de la Lambda en voyant Q mettre dans ma flèche, qui est signe égal sur le support, ont été saké vous dot Donc alors cela me permet de dire que je veux le premier élément ou non, Si vous ne pouvez pas le trouver, donnez-moi Non, Mais je veux le premier élément que beaucoup est cette condition et la condition que je veux Le premier élément sur est que le i D dans le dossier est beaucoup le i d entrant. D' accord, donc d'une part, nous pourrions utiliser trouver, mais alors nous voyons que cela fait des limitations parce que je voulais inclure des données manquantes ou d'autres éléments. Les bits sont-ils des données provenant d'autres tables ? Onda Fine, arrête de travailler. Donc j'ai juste utilisé une alternative. Donc lien est très puissant, très flexible sur elle a beaucoup d'options que vous pouvez utiliser pour accomplir une tâche particulière, quelqu'un à rafraîchir et voir si cela résout mon problème. Très bien, un nulle part dans les affaires. Donc je vois ça. Ça me dit que j'édite les congés de maladie. Donc, c'est le type de congé provenant de l'enregistrement sur l'allocation de quatre test utilisateur ou test utilisateur . Droit ? Nom, virgule, prénom. C' est donc à quoi ressemble cet écran d'édition. Ensuite, je peux faire un ajustement au nombre de ces. Donc, si je pense qu'ils devraient avoir plus ou moins de D, j'ai remarqué que les éléments qui sont l'étiquette est numéro de ces hors cours. Nous devons changer ça. Donnez-lui un nom d'affichage correct dans le modèle de vue. Donc je t'ai déjà montré comment faire ça. Je ne vais pas insister sur le fait que chaque vidéo que vous allez le long vous le faites pour vous assurer que vos interférences sont propres. Je me concentre vraiment sur la fonctionnalité. Mais alors ma source finale aura généralement tous ces petits ajustements au fur et à mesure que nous continuons. Donc non, je vais tirer à bord, chaîne les actions d'édition Post que lorsque je clique, enregistrer valide réellement les modifications à la base de données quelqu'un pour revenir à quitter la gestion , revenir à notre contrôleur, et puis nous allons commencer à modifier le post sur ce devrait être rapide. Donc, je vais dire, au lieu de prendre une idée et une collection de formulaires attrapé, j'accepte l'édition. Laissez la VM d'allocation sur. Je l'appelle modèle. Bon, donc quand nous avons posé, je récupère un peu de données avec cet objet appelé modèle de ce type avec une quantité de données sur. Alors ce que je vais faire, c'est d'abord, ils sauvent notre emplacement est égal à une cartographie sur notre sommet calme, pas balai sur. Je suis allé, hum, de l'édition. Désolé. Je vais serpiler pour partir. Allocation de la classe de données, donc laissez l'allocation sur l'objet que je mappe à laisser. type de données d'allocation est un modèle. Très bien, donc ce sont les modifications de l'allocation des congés. Je le mappe juste à la classe de données d'origine sur. Ensuite, je vais bien, en fait, je saute quelques étapes ici, donc pour être complètement devrait réellement dire si sur ouvert cela et puis voir l'état du modèle qui est valide. Donc, si c'est notre laissez-moi dire si ce n'est pas valide, donc si non, l'état du modèle est valide, ce qui signifie qu'il n'est pas varié. Ensuite, nous voulons retourner la vue sur nous sommes en train de passer le modèle Onda. Eh bien, il s'occupera de ce qu'il y a d'Eros. Donc, nous avons fait tout cela déjà dans le contrôleur de type feuille. Donc on peut le faire. C'est un mauvais dossier. Nous pouvons en fait aller sur une référence, um, um, hors de la logique qui va mettre dans Donc, dans le contrôleur de temps de feuille dans notre éditeur a fait quelque chose très similaire. Nous avons dit que si elle n'est pas valide en vue de retour, sinon commencer à faire toutes nos merveilleuses opérations. Donc, si vous avez oublié, tenez pour le faire ou quoi faire. Vous pouvez toujours revenir en arrière et référencer ce que nous avons fait avec le contrôleur de type feuille. Mais je vais aller de l'avant. Donc nous revenons ou voir qui aurait déjà notre ère. Um sinon, la presse pour où nous obtenons la version de balai du modèle à la classe de données que je vais appeler le rapport d'allocation de congé pointe sur le dessus. Ensuite, il s'attend à un type de données sur l'allocation de congé que nous avons dans notre modèle d'allocation que nous venons de créer et vous rappelez-vous que cela appelle un lingot pour que je puisse sauver notre est . Le succès est égal à celui sur. Ensuite, nous pouvons vérifier et voir si ce n'est pas le cas si la brise ouverte sinon, est le succès. Cela signifie donc que ce n'est pas un succès pour elle. Ensuite, nous pouvons ajouter le point ST du modèle afin que nous puissions ajouter un rôti dans un état du modèle à l'erreur du modèle. Et puis je suis allé ouvrir cela et il n'y a pas de clé, mais alors le message va être une erreur lors de l'enregistrement. D' accord, puis nous avons une fois de plus retourné cette vue. Si cela et c'est tout, si ce n'est pas un succès, si rien de tout cela n'est exécuté et que nous voulons retourner à quelque part, donc je ne veux pas rediriger l'index cette fois à la place, je vais rediriger au discours très détaillé sur aller passer que je d. Donc ah, peu de défi ici savoir est que je ne connais pas l'idée des employés parce que je ne suis pas allé pour elle dans l'allocation des congés de modification. VM quelqu'un pour juste faire une modification rapide Déjà l'employé vm Certains vont juste ajouter l'employé. Je d D'accord, Donc en l'ajoutant au modèle de vue, Non, je peux accéder sont pas cher. Cette idée de notre propre pendant ma tête, c'est les opérations remontent à la page d'édition sur notre ils ont un caché avant qu'ils laissent des idées d'allocation. Donc je vais juste créer un autre caché. Et cette fois, ce sera pour les employés I d. que lorsque nous soumettrons le formulaire, nous gardons toujours l'original I d sur la valeur I d provenant de notre page. Donc, de retour ou de contrôle ou non, qui est la manipulation ou la logique métier, je vais voir que je veux rediriger l'option appelée détails. Très bien, donc nous sommes en train de rediriger les détails déchirés, action sur ou les détails l'action nécessite encore une fois sur l'employé i d. Donc je vais devoir dire une virgule sur. Ensuite, je veux dire quelque chose comme nouveau, et au lieu d'un nouvel objet sur aller appeler cet objet alors que la propriété de l'objet va être je d sur il va prendre des points de modèle employé I d. Alors laissez-moi juste examiner cela rapidement. Alors rappelez-vous que nous redirigeons orteil en action. Nous avons déjà vu cela où il est terminé l'opération et il va rediriger par défaut va rediriger index, ce qui était très bien parce que Index n'a pas besoin de paramètre ah. Alors laissez-moi juste faire défiler l'index rapidement. Index ne nécessite pas d'appartement après avoir terminé l'édition pour un employé, je ne veux pas que vous retourniez à l'index toe toute la liste. Les employés sont tout à fait les choses. Laissez les types passer ensuite par le même processus. Je voulais juste revenir à mon dossier au cas où vous vouliez en éditer un autre. Si vous ne le faites pas, vous pouvez revenir à la liste par la suite. Après avoir édité, je voulais rediriger vers les détails de mon dossier avec mes allocations de feuilles. Donc, au lieu en allant à l'indexation aveugle là-bas par défaut, je peux déterminer où je voulais rediriger orteil vers quelle action. Je voulais rediriger orteil sur l'action que je voulais rediriger, aussi. Et je retourne à mon idiot. action que je voulais rediriger vers est les détails, pas l'index cette fois, mais les détails sur puis les détails nécessitent une chaîne de périmètre appelée I D. Donc, je dois ensuite faire un cône Ah pour cela. Et je dis juste virgule nouvelle alors le nom de l'autorisé attendu ses idées, donc je dois l'appeler je d sur. Alors je lui donne une valeur. Et la valeur qu'il est censé obtenir est l'employé i d. je stocke à l'intérieur du modèle qui vient comme une valeur du formulaire d'édition . D' accord, alors sachez que tous ces ajustements ont été faits sur je peux faire le changement de contrôle et tromper les changements à travers off comme chaque fichier. Ça ne veut pas dire sérieux de contrôler le changement et, je sais, va tester ça. Donc je vais changer ça de 10 orteils. Disons que six six devraient être une compensation de valeur pour voir la différence. Cliquez sur Enregistrer. D' accord, donc on a une autre ère. Andi, je peux te le dire. Eh bien, si vous obtenez cette erreur est parce que ce n'est pas le cas, il essaie de recharger la vue sans les données. Disons qu'il y a quelque chose de mal avec notre cordon. Andi, je peux vous dire qu'il est probablement en train de recharger la vue parce que soit il frappe le séjour du modèle n'étant pas évalué ou cela n'est pas réussi ou il essaie l'opération et rencontre une erreur sur DSO. Il retourne la vue, et je soupçonne que c'est probablement le fait qu'il attrape l'erreur au retour dans la vue. Donc, ce que je vais faire est que nous sommes allés modifier cela cette mise à jour un peu sur ce que je vais faire est en fait construire l'entité un peu mieux. Donc, ce qui se passe, c'est qu'il attrape une exception quand il essaie de valider le changement, et c'est parce que certains hors des données ne correspondent pas à ce qu'il attend. Donc, je vais modifier cela dans le sens que je vais trouver l'original quelqu'un à dire, Obtenir l'enregistrement va être égal à sur le score, Laisser les gens d'allocation point et je vais trouver l'enregistrement qui est sur le point d'être édité. Trouvez-le par son I D, qui est modélisé que j'ai bien, et après l'avoir appelé, je peux aller de l'avant sur attribuer les valeurs directement afin qu'elles soient tournées sur la carte ne fonctionne pas nécessairement aussi proprement que nous le souhaiterions donc, vous savez, cas par cas. Vous voyez où ça fonctionne parfaitement. Nous voyons où cela pourrait ne pas fonctionner aussi bien. Donc, c'est l'une de ces situations où peut ne pas fonctionner aussi bien. Et donc je vais obtenir un grand créatif sur un peu sale dans la façon dont je vais orteil je baissais pour éditer . Donc non, je sais que je suis un baissier et éditer hors. Un seul champ provenant de l'allocation de congé de modification est vraiment un sentiment que je change en fonction du formulaire et c'est le nombre de jours de congé. Donc, ce que je vais faire est d'avoir récupéré l'enregistrement original à éditer, et je l'appelle enregistrement. Je vais ensuite enlever cette partie où je fais la balayage. Ensuite, je vais voir un champ de canaux d'enregistrement que je sais que je suis en train de mettre à jour. Ou si c'est plus d'un sentiment de sorte que dans ce cas, l'impression que je suis mise à jour est nombre de jours de congé. Je vais dire que le nombre de jours n'est pas égal au modèle de ce nombre de jours de congé, donc quelle que soit la valeur qui a été passée du formulaire que je n'attribue pas. C' est à cet enregistrement de base de données, mais rappelez-vous que rien ne se passe vraiment à ce stade jusqu'à ce que nous annulons notre fonction it. Donc, je vais appeler la fonction de mise à jour sur que je transmets l'objet hors enregistrement à la place des objets d'allocation d'origine que nous venons de supprimer. Alors peu connu, nous n'avons pas réussi à mettre en modèle. Donc tu as dit tes exceptions, Andi. Donc, je vais essayer à nouveau, quelqu'un pour sauver le changement de contrôle et s sur. Ensuite, utilisez le lien du navigateur, relancez notre application, puis réessayez l'opération. Donc, de retour à l'écran, je vais changer ce magasin six, puis cliquez sur Enregistrer Onda. On est de retour. Nous avons rechargé la page de détails sur la note de faire que nous reflétons la nouvelle valeur. Donc ça a eu un tas d'exercice que nous avons fait. Nous avons créé un nouveau modèle de vue Nous avons essayé et sur le terrain à certaines opérations, mais nous avons trouvé une solution et c'est ce que la programmation est vraiment tout un bateau. Il y a plusieurs façons d'accomplir ce que vous devez accomplir. Vous avez juste besoin d'être ou de craindre avec les différentes techniques qui vous permettront de vous assurer que vous prenez les meilleures décisions au fur et à mesure que vous allez. Donc, avec cette opération, ne portez pas assez fini avec notre modèle d'allocation de congés où nous avons beaucoup pour un l' automatisé assis sur les allocations par type. Vous pouvez ajouter plus de logique commerciale pour moi avec mon avocat pour quitter la cause évidemment, vos employés de repas ne devraient pas avoir de maternité. Laissez ces de sorte qu'il faudrait deux modifications. Vous devez ajouter un sexe au profil d'utilisateur, puis vous ajoutez l'entreprise de logique pour voir si le sexe est un certain type puis faire en congé de maternité. Mais nous avons fait ça. Nous avons également fait chaud demain où classe d'utilisateur d'identité, afin que nous puissions obtenir plus de détails sur nos utilisateurs. Nous avons ajouté les détails où nous voyons leur profil ainsi que les allocations de secours d'eau il y a alors, enfin, pour cette leçon, nous aurions mis dans la fonctionnalité d'édition pour être en mesure de changer l'allocation pour que, les employés de particules. Donc, dans la prochaine vidéo, nous allons juste faire quelques touches finales sur. Ensuite, nous vérifierons notre application mise à jour à notre contrôle de la source 35. Réviser et ajouter des modifications à GitHub: Hé, les gars, dans cette vidéo, nous allons juste regarder quelques changements que nous avons faits et quelques changements que j'ai faits peut-être hors écran. Ensuite, on va s'enregistrer ou le CO pour se lever. Donc juste pour examiner, nous venons de mettre dans notre modèle d'allocation de congé où nous permettons aux utilisateurs admin toe. Vous savez, les attributs. Laissez ces vacances. Ce sont des jours secrets. Quel que soit le type de congé. Obtenez les employés orteils attribués sur. Ensuite, une fois qu'ils sont attribués que l'utilisateur admin, peut l'un de vous ou modifier si nécessaire. Donc vous savez, quand on va gérer, on va laisser les allocations. Ensuite, cela fait apparaître un écran nous montrant tous les différents types, puis la fonction, nous permettant de commencer réellement les allocations pour la gestion. En dehors des allocations que nous avons reçues aux employés où nous verrons tous les employés du système. En ce moment, nous n'en avons que deux sur ce qui nous permettra de voir les détails de cet employé. Donc, quand je clique sur les détails qui se chargeront comme un peu de discours pour, j'ai mis le nom de l'utilisateur. Vous savez donc exactement quel enregistrement vous envisagez d'utiliser dans l'adresse e-mail. Nombre complet. Certains d'entre eux sont vides, mais quoi ? Un des ajustements et fait hors caméra était à la notation de jour pour le modèle qui est utilisé pour charger ce discours afin que nos étiquettes semblent un peu mieux parce qu'il y aurait eu un boîtier de chameau, vous savez, il n'y aurait pas eu de place et ainsi de suite. Donc, j'entre les trouver en ajoutant ces annotations de données au modèle de vue. Andi, c'est dans les données l'air un peu plus vif. J' aurais également modifié à l'allé pour la boîte que chaque type de congé est généré dans ou l' allocation de type de congé. Onda a également changé l'apparence des boutons à côté du libellé. J' ai aussi changé le bouton de la liste de bataille. Donc cette bataille, ce bouton nous ramène le discours de l'index sur. Ensuite, si nous cliquons sur Modifier, nous allons à notre page d'édition où nous voyons le nombre off. Cela a également modifié l'étiquette de ce formulaire sur. Nous arrivons à changer la valeur que nous cliquons, sauvegardons, nous revenons sur, def. Nous revenons aux détails. Nous rechargeons simplement la page de détails afin que nous puissions, vous savez, naviguer le nôtre plus facilement et surtout que nous avons en tête maintenant. Donc, après avoir fait tous ces changements, je vais vérifier dans cette cour. Si vous avez besoin de référence que vous pouvez toujours aller sur référence cette version hors du tribunal. Mais nous le faisons simplement de la façon simple où nous allons au studio visuel Onda se souvenir de tout avec un hérétique signifie qu'il a été modifié depuis la dernière version. Et puis vous avez beaucoup d'hérétiques parce que hors les mises à jour incontournables que nous avons dû faire concernant la mise à jour d'identité du changement de type utilisateur d'identité à employé de classe. Mais cela n'a vraiment aucune incidence sur l'objectif ultime, qui est juste un clic droit ou une solution, aller à commettre et puis bien ou le message de commentaire va être un peu long Si nous allons essayer Annacone pour tous les changements que nous avons faits quelqu'un à dire implémenté, laisser un module d'emplacement Onda changé. Je n'utilise pas les employés orteil. C' est ce qu'on a fait au procureur. Je vais juste aller aux pieds, obtenir le bon ici et ensuite dire commit all and sink et donc dire le commit local sur, puis synchronisé avec notre dépôt get hope distant et c'est tout pour ce modèle. Lorsque nous reviendrons, nous mettrons en place le modèle de demande de congé où nous sommes des employés peu nombreux à présenter une demande de congé en fonction de leurs affectations. Andi Khomeni abeilles, ils ont omis cette allocation sur. Ensuite, nous serons assis sur le panneau d'administration pour approuver notre refus de ces demandes de congé . Alors restez à l'écoute, plus amusant à venir. 36. Présentation du module de demande de congé des employés: vous les gars, bienvenue. Nous allons lancer un nouveau modèle aujourd'hui et ce sera pour la permission. Les applications pour ce modèle seront la mise en place de la fonctionnalité qui va beaucoup nos employés pour pouvoir postuler pour des vacances ou tout type de congé il est, Andi, nous allons activer la fonctionnalité que l'utilisateur administrateur doit approuver. Donc, quand la personne signifie la demande d'application, elle entre dans, ah, état désactivé en attente alors il est soit approuvé ou rejeté par l'utilisateur administrateur Onda. Lorsque l'une ou l'autre action se produit, bien sûr, nous l'enregistrons et nous changeons le drapeau et nous ajustons également le nombre de jours de congé que la personne sait avoir disponible. Donc, toutes ces fonctionnalités vont entrer dans ce modèle à l'écran ici. J' ai vraiment juste cette classe d'histoire de laisser, euh, la classe de données associée à l'historique des congés. Donc je vais soulever les interférences rapidement, et ce sont nos interférences en ce moment. Et sous managé, l'utilisateur admin sera en mesure de voir les demandes de congé. Cependant, quelqu'un qui n'est pas un utilisateur administrateur ne devrait pas pouvoir voir gérer, mais il pourra demander un congé. Certes, vous devez être prêt, membre agité hors du site Web de la ludique Donc, nous allons mettre en place des autorisations sur la fonction d'application de congé sur sera mettre en place la fonctionnalité pour approbation. Rejet Andi Il y aura donc de légers changements sur les changements de base de données en cours de route. Mais dans ce modèle, nous allons mettre en place de bons contrôles comme notre contrôle de calendrier, afin que la personne puisse sélectionner la date de début et la date de fin. Nous mettons des renseignements pour s'assurer que vous savez qu'ils peuvent mettre une date de début. C' est plus loin dans la journée à l'avenir que le bit final, vous savez, sera de personnaliser la solution et de mettre quelques bons contrôles sur. Je pense que nous allons nous amuser beaucoup dans ce modèle, alors restez sur le terrain. Il ne fera que s'amuser de plus en plus 37. Module de demande de l'employé - Modifications et vues de la base de données et de modèles Models de la base les modèles: Hé, les gars, Bienvenue dans cette première vidéo, je vais juste faire une légère modification à ma table de données sur C'est vraiment juste pour changer le nom. Hum, donc je l'ai ici est l'histoire de laisser. Mais, vous savez, quand je regardais à nouveau, comme je laisse l'histoire qui sonne sur personnelle, peut-être que c'est mieux que des demandes de congé ou des demandes de congé. Quelqu' un pour l'appeler demande de congé. D' accord. Sur toutes les factions, un nom de classe, alors je dois m'assurer de réfracté le facteur de la gorge de la cour re. Toutes les références à cette classe gorge mon manteau. Par conséquent, les régions à faire me permettent de le renommer partout ailleurs. Il pourrait être référencé, y compris dans les dépôts et ailleurs sur je peux juste le faire. Renommer sur l'effet Net est que le référentiel l'aurait fait modifier. Si je vais dans le contexte BB de l'application, il aurait eu besoin de le modifier. Andi, je vois des bases de données ici. Ça ne devrait vraiment pas être là quelque part. orteils retirent. Désolé. ça Si vous voyezçadans votre code, vous pouvez vous sentir libre de les supprimer aussi, je vais devoir enquêter sur la raison pour laquelle ils étaient là, mais ça ne devrait pas être fait de mal pour les supprimer. Très bien, alors les demandes de congé être défini est non. Et puis hors cours. Si on change le nom de la classe, je dois changer le nom réel. La table fait changer Sanderson. Ça demande Onda. La dernière chose est que vous voulez toujours vous assurer que votre nom hors de votre fichier est beaucoup le nom de votre classe. Donc, je viens juste de renommer que aussi de l'histoire pour laisser si la requête semble hors du fichier sur vraiment entrer la classe devrait être demande pas il n'a pas demandé à quelqu'un de faire un autre renomme Terrible que Donc c'est juste moi en essayant orteil. Assurez-vous qu'ici, ils disent qu'il y a un avenir de camionnage que je peux . Ce n'est pas un mal fait. Alors rappelez-vous que le nom de la classe devrait être assez singulier. Mais alors le nom de la table, quand il est référencé, peut être pluriel. Droit ? Alors laissez la demande. Nous avons les demandes de congé de table. Donc c'est le changement. Numéro un de la base de données. Hum, Andi. Pourtant, c'est à peu près le seul changement que je veux faire en ce moment, car nous en dessous du modèle peut-être les besoins vont changer. Peut-être que quelque chose d'autre viendra. Nous devrions être familiers par non avec qui jamais changer. Nous devons rendre à la classe de données afin que nous ajoutions une table. Nous créons une nouvelle classe de données, assurons qu'elle est représentée dans les références de l'ensemble de bases de données, ou nous faisons juste les modifications commencées deux classes, puis effectuer ou des migrations. Cependant, la prochaine chose que je veux faire dans cette vidéo particulière est juste de mettre en place un modèle de vue. Donc, je vais aller à la vue dans le dossier Models à une classe sur laquelle je vais l'appeler leave, demander VM, puis laisser la requête V. M étant la classe de modèle de vue basée. Je vais juste enlever toutes les propriétés de la classe d'origine et placer dans cette zone. Bon, donc j'aime créer, genre, genre, une base. Et puis, bien sûr, la bête n'a pas besoin des annotations de données réelles dont j'ai besoin pour la classe de données afin que vous puissiez simplement les supprimer et ensuite nous changeons les références aux modèles de vue correspondants ou à son employés VM type feuille VM sur l'employé vm à nouveau. Donc, au moins, nous sommes sûrs que nous avons une représentation directe. Donc, c'est pourquoi j'ai toujours cette vue bête Waddle parce que c'est un mappage direct entre le modèle de vue Onda de classe de données sur. Ensuite, comme nous construisons les autres interfaces, alors nous pouvons commencer à avoir les variations par la suite. Non, la prochaine chose que je veux faire est de m'assurer que j'ai la tonte. Andi, si vous remarquez que je n'ai pas de cartographie pour celui-là. Eh bien, j'ai eu des demandes de congé, des changements de demande de congé sur Alors j'ai ce que j'ai. Laissez l'histoire Veum déjà. Donc, vous voyez, c'est pourquoi nommer si aussi importante cause je l'ai déjà comme laisser l'historique VM. Mais j'ai juste le temps écoulé pour passer à la VM de requête afin que je puisse simplement supprimer l'historique des feuilles vm cette entité sur laquelle une note. Si vous comparez les deux fichiers, vous verrez des différences. Mais au fur et à mesure que nous continuons, je vais remettre certaines choses qui vont probablement manquer dans la nouvelle merveille décorée sur. C' est très bien. Je ne veux pas que les orteils compliquent les choses simples pour l'instant. Donc, la prochaine chose que je veux faire est de m'assurer que le mappage a la voiture pour le mappage pour les demandes de congé, table en congé, demande VM et ensuite nous pouvons effectuer une construction tenant sur le changement de contrôle et en appuyant sur B et puis juste pour s'assurer que nous n'avons pas d'erreurs et que j'ai quelques erreurs. Donc, il est toujours bon de faire une construction et ensuite vous remarquez que vous avez l'ère. Donc l'air Amiri est que je n'ai pas changé la référence des demandes de congé. Donc c'est l'un des pas de taille, reflétant un 40 après moi. Bien sûr, vous changez le cordon dans tous les espaces. Il peut toujours juste contrôler le décalage et être allumé. Ensuite, il vous dira qu'il studio visuel terrain perdu de vous dire que vous savez où vous vous sentez afin qu'ils puissent vous garder honnête. Mais alors je peux juste contrôler F dans ce fichier, trouver des demandes de congé et le remplacer par des requêtes de plomb sur ce Remplacer sont tous savent psy qui est le projet actuel. Je veux m'assurer qu'il voit pour un document que vous devez faire attention à le faire à travers le produit afin que les documents Coran remplacent Onda. Ensuite, nous devons changer toute la référence de la sarcelle parce qu'ils l'appellent, laisser ses arbres. Mais non, c'est des demandes de congé, accord, quelqu'un pour faire la même chose. Je vais juste trouver des histoires de congé dans ce document sur Fais notre place. Changé tous les apparences hors ont été corrigés. Je peux toujours revenir à ma liste d'époque sur, puis utiliser des erreurs plus faciles. Mais je vais construire juste pour m'assurer, accord ? Et puis cette fois, la construction a été couronnée de succès. Donc non, je sais que j'ai zéro flèches sur mon quartier. affacturage, l'affacturage a marché. Oh, eh bien, donc, non, je vais juste faire une migration sur la mise à jour de ma base de données. Donc, j'aborde le conseil de gestionnaire de paquets, qui encore une fois, si vous ne le voyez pas dans le panneau inférieur, vous pouvez toujours aller aux outils ce qui est nouveau, obtenir le gestionnaire de paquets et sélectionner cette option consul. Mais ici, je vais dire, ajouter de la poussière, mon Grayson, et puis la migration que j'ajoute a changé. Laissez les histoires, l'équipe. Je veux dire, tu pourrais aussi dire changer, laisser des histoires, quelqu'un pour le voir comme ça. Elle et elle sont des histoires de Lee pour laisser des demandes. Très bien, donc c'est plus explicite exactement ce qu'il faut échanger donc ce percenter permet d'ajouter cette migration . Oh, c'est un Nord important. Parfois, lorsqu'ils apportent des modifications à des tables qui peuvent changer le nom ou modifier certains types de données qui lui sont associés pendant la migration, il peut y avoir, ah, perte de données. Vous devez donc être très prudent avec cela lors de ces migrations. C' est pourquoi l'ensemencement des bases de données généralement recommandé car alors vous avez plus de contrôle. Au-dessus de la statique sont les données de base qui va dans ce domaine est pendant le développement. Il est donc toujours plus facile de perdre des données en cours de développement qu'en production. Droit ? Donc tu dois l'être. Je veux dire, si vous en tirez le coup dans les développements, alors vous serez mieux en mesure d'évaluer. Il est en production, et des contrôles sont en place pour effectuer des migrations dans la production. Mais je vous amène juste en prison à cette condition que certains changements se traduisent par la perte plus tard. ce moment, nous n'avons pas grand-chose à perdre de toute façon, donc je comprends d'aller de l'avant avec cette migration. Ensuite, je dis juste opiate Dash base de données appuyez sur Entrée sur. Alors c'est fini. Donc, nous allons juste vérifier en allant à notre Explorateur d'objets forage vers le bas vers la base de données locale dans les bases de données Tora regardant dans, gestion des congés, regardant les tables sur There we go. Donc, les histoires de congé n'est pas appelé demandes de congé. Très bien, sorte que la migration a été complètement réussie sur nous voyons qu'elle a conservé toutes les colonnes comme nous l'avons dit. Donc non, nous avons effectué des échanges RD Toby et la création de notre modèle de vue. Ensuite, nous allons commencer à construire dans le contrôleur et les différentes actions sur. On va juste s'amuser avec ça. La prochaine étape sera donc la mise en place de l'écran pour qu'un employé puisse présenter une demande de congé. 38. Module de demande de congé des employés - Configurer des contrôles Controlledrs: Hé, les gars, bienvenue dans cette leçon. Nous allons mettre en place les actions du contrôleur et toute la dépendance est qu'au moins nous pensons que nous devons maintenant soutenir notre modèle de demande de congé. Donc, en studio visuel, je vais juste sauter droit dans le réajustement pour aller directement aux contrôleurs. Cliquez sur, ajouter à un nouveau contrôleur. Et puis, comme d'habitude, nous choisissons le contrôle NBC. Toujours lire les bonnes actions. Alors sélectionnez ça. Cliquez sur Ajouter. Nous appelons cette demande de congé sur le troller. Ensuite, nous cliquons. Ajouter une fois que cela est généré, alors nous voulons commencer à ajouter notre dépendance. Donc, nous commençons par notre lecture privée uniquement référencée sur le dépôt pour les demandes de congé. Donc ce serait allumé. Je vais juste vérifier sur DSI que je n'ai vraiment pas changé le nom. Donc, il devrait être que je laisse la demande. Je ne le suis pas. Je laisse l'histoire, donc je vais juste entrer dans le contrat sur je suis allé à moi cette mise à jour donc dans le dossier des contrats sur où trouver le premier, puis je suis allé le renommer sur. La chose est, quand je renomme le fichier lui-même est que votre studio sera la suggestion pour moi, Outil juste renommer tout. Donc, c'est laisser le dépôt de requête ana appuyez sur Entrée. Ensuite, ils vont suggérer que j'effectue un renommage. Je vais juste dire oui pour que vous soyez le dossier de la cour automatiquement activé. Ensuite, je ferai la même chose pour les remues du rapport. Je l'ai fait pour le contrat qui interfère sur, donc je vais faire la même chose pour le dépôt où je viens de renommer celui-ci rapidement afin qu'il reflète ma nouvelle disposition, qui est la demande de congé sur. Ensuite, je dirai oui aux problèmes à renommer à travers l'application. D' accord, donc c'est un autre facteur. Donc, comme je l'ai dit, tu fais un changement. Vous devez être gentil minutieux sur la cause cohérente Il voudra quelque chose nommé l'historique des congés et quelque chose nommé demande de congé ailleurs. Et puis tu te trouves confus. Donc, dans le contrôleur de demande de congé, le milieu ralentit tout ce qui n'est pas absolument nécessaire. Alors je dois faire ses amis orteils. Je laisse le dépôt de requête sur. J' appelle ce rapport de requête, d'accord, et puis hors cours après inclure toutes les références et obtenir mon orthographe correcte. Donc c'est privé. Refaire l'on puis inclure la référence ou l'espace de nom pour le dépôt de requête Je laisse . J' utilise mon canot de sauvetage ici. Inclure cette référence sur, puis nous y allons. Toute autre dépendance est que nous pourrions vouloir serait certainement la vadrouille sur. Peut-être un pour le gestionnaire d'utilisateurs. Donc, au lieu sur l'écriture du moteur ont déjà bien fait à l'intérieur du laisser un contrôleur de position sur. Donc, vous voyez, quand vous commencez à construire un grand projet et que vous avez des incendies partout et que les incendies sont ouverts, vous savez, j'aime garder mon information complète pour que je puisse y aller, trouver le dossier sur, Savez-vous, retraite avec rapidement au lieu de choisir le nôtre jusqu'à ce que je tombe dessus comme si je faisais la neige. Donc, dans les contrôleurs et j'ai ces orteils étant fait référence à la seconde cette copie ceux fragmentés comme la dépendance est alors hors cours. Faites l'inclusion nécessaire hors de la pour les dossiers ou l'espèce de nom. Et puis je ne saurais pas crée Michael instructeur. Donc tu vois, vois, , donc tout ça on l'a fait plusieurs fois. Rien de tout cela ne devrait être étranger pour vous, donc je vais juste me dépêcher et le faire pour que je ne passe pas trop de temps à construire cette partie, et il y a des constructeurs terminés. Donc, si vous étiez capable de le faire vous-même, alors c' est une bonne défense, souvent à la recherche de laitue. Et c'est bien. Si vous ne prenez pas la vidéo spot sur, essayez juste de répliquer ce fer froid afin d'appuyer sur l'avant. Um, on peut juste faire la vue d'index à partir de non. Donc l'index que vous celui-là va être un peu délicat. Donc, notre vue d'index va être principalement pour montrer l'administrateur ou le vous savez que les demandes de congé sont. Devrait-il parce que puis là pour l'index utiliser que nous pouvons avoir la vue d'index, qui est la vue que l'utilisateur verra quand ils veulent voir toutes leurs demandes de congé qu'ils ont soumises sur. Ensuite, il y a aussi la vue d'index pour l'administrateur, ou l'endroit où ils vont voir toutes les listes en attente. Donc, l'index Concept off est vraiment la page de destination. Cependant, vous n'avez pas toujours à l'appeler index par défaut. Tout va atterrir sur l'indice payé, bien sûr, mais alors nous savons déjà que nous pouvons contrôler le plancher, nous pouvons contrôler qui voit quoi en créant des actions personnalisées que nous lions à certains liens que certaines personnes peuvent voir. Donc je vais mettre un gros discours autorisé sur tout ce contrôleur. Donc, cela signifie que personne ne devrait être en mesure d'obtenir quoi que ce soit à l'intérieur de ce contrôleur d'application de congé sans être un membre inscrit de cette application. D' accord, mais alors il ya certaines actions que je vais autoriser pour le rôle d'administrateur seulement alors, il ya certaines qui bien, n'importe qui sera en mesure d'entrer dans notre nous pouvons probablement à l'autorisation pour juste le rôle de l'employé. En outre, quelqu'un d'utiliser cette occasion pour configurer ce discours d'index. Comme administrer les rames, index, voir les coeurs, je vais d'abord m'asseoir sur l'autorisation au-dessus de celui-ci. Ensuite, je vais spécifier le rôle. Rose n'est pas égale, monsieur. Equal ouvre la chaîne sur, puis. C' est l'administration de la tournée. Donc, seul l'administrateur devrait être en mesure d'accéder à cette option d'index à l'intérieur du contrôleur de requête feuille , cependant, autorisait déjà tout. Ainsi, seule une personne générale ou généralement inscrite serait en mesure d'accéder à quelque chose qui n'est pas spécifiquement réservé à l'administrateur. D' accord, pour que vous puissiez mélanger et assortir. Avez-vous pu faire l'autorisation sur chaque action, ce qui aurait été occupé travail. Nous pouvons juste auteur comme l'ensemble du contrôle. Donc, vous devez être aimé être sont authentifiés d'abord, mais ensuite les spécifiques pour des règles particulières, nous pouvons juste mettre celui-ci juste au-dessus. Tournez. Donc, pour ce point de vue, j'ai en fait une vision où lorsque l'administrateur va voir toutes les demandes de congé, il verra peut-être un total de demandes de congé pour la période. Ils vont voir le nombre total de demandes en attente sur. Ensuite, ils vont voir le nombre total désactivé. Vous savez, les demandes rejetées sur peuvent être des demandes approuvées. Donc ils vont voir trois chiffres différents quand ils atterrissent sur cette page. C' est en plus de la liste réelle des demandes qui doivent être une action. Donc, pour obtenir une vue personnalisée comme ça, avec toutes ces statistiques et ainsi de suite, je vais créer un modèle de vue qui est spécifiquement orienté vers l'affichage ce type de données. Donc c'est un autre cas pour la raison pour laquelle nous vous avons des mannequins parce que je veux aller dans les mannequins. Je vais faire apparaître mon fichier VL de demande de congé, alors rappelez-vous, je suis juste en train d'utiliser un fichier et dans ce fichier ont beaucoup de classes. C' est mon modèle. D' autres personnes me créent un autre domaine de fichiers, maman, c'est bon. Mais je le garde juste cohérent sur je vais dire la classe publique sur, Disons la vue admin ou je veux dire laisser la vue de la demande, voir VM OK sur. Je rende cela explicite parce que je peux avoir en congé d'administrateur, demander l'édition via plus de détails vm différent du standard via donc je veux dire, je suis juste en train de rendre le nom de classe explicite afin que je ne fasse pas d'erreur quand, en traversant le lignes, hum, je vais utiliser cette opportunité encore une fois pour mettre en place les cartes. Rappelez-vous, si nous avons un modèle de vue et que la mère de vue a besoin de balai orteil à une classe de données que nous devons assurer que nous sommes représentatifs. Mais je ne pense vraiment pas qu'on ait besoin de cette cartographie, non ? Non. Donc je vais le construire et voyons si nous avons besoin de cette cartographie. Bon, donc ça va montrer des statistiques. Donc, ce serait la première propriété pour moi est un entier montrant la requête totale. Donc, ce sera totalement hors les demandes dans le système. Et je duplique juste parce que je veux que les valeurs entières aient des requêtes totales. J' ai approuvé les demandes sur lesquelles j'ai des demandes en attente, puis j'ai rejeté les demandes. Très bien, alors ce sont quatre valeurs que je veux être imprimé à ST quelques juste assis ou propriétés à serpiler pour chacun. Mais alors, en plus de voir ces propriétés, je veux aussi la liste hors. Croyez les demandes dans le système. Donc, comme nous l'avons fait dans le passé, je crée juste une liste hors congé de type, demander VM sur ce serait croire les demandes. D' accord. Et puis on peut voir Get Sit accidentellement des doublons de cette ligne là-bas. Droit. On a donc une liste. Je l'appelle des demandes de congé. Oh, j'ai oublié de rencontrer ce public. Donc, notre public moins de demandes de plomb il y a un an. Il a donc été convenu. Ou tout simplement connaître ceux qui surveillent son pas public, aucun trou ? Non. J' ai mon modèle de vue. Je ne peux pas commencer à faire de la gymnastique et des choses créatives à l'intérieur de notre action avant de charger le modèle et de l'envoyer à la vue. Donc, je vais aller aux pieds d'abord faire Ah, carrière où je reçois des demandes, ou laissez-moi être explicite à ce sujet. Ils laissent des demandes, et ça va être égal. Soulignement des orteils J' ai vu sur une demande de congé carré trois tirer, pas trouver. Tout. Donc, norme retraite toutes les demandes de congé dans le système. Maintenant que j'ai toutes les demandes de congé dans le système, je peux interroger pour trouver combien ont été en attente à la maison et ont été cette maison. Tout ont été cela parce que déjà fait un appel à la base de données. Et non, j'ai tous les objets que je peux exécuter les maths sur les objets. Ils avaient deux options. Il pourrait soit aller au rapport et déclencher le formulaire montré cause pour chaque, sorte que vous pouvez obtenir coned off approuvé Coed off rejeté sur. Mais alors chaque fois que vous écrivez en ligne, cela dit que le point de rapport de requête trouve tout ce qui va faire une base de données appelée qui aurait été quatre cause de base de données pour obtenir quatre nombres. Parfois, vous voulez réduire dans, um de la base de données, parce que donc au lieu de faire ça, je reçois juste toutes les demandes de congé, et puis je vais utiliser cet objet ayant fait un jour, Toby, commencer à faire ma bouche pour que je puisse dire quelque chose comme sur. d' Avantd'aller de l'avant, je suis avec les Muppets. Quelqu' un pour dire que Vier laisse des demandes, des modèles. Je serais égal orteil mah par alors vadrouille er est baladeuse orteil un type hors liste. Laissez les demandes du m Ok, donc nous cartographions 12. Les trucs partent. Demander le M et ce que nous mappons à cela est les requêtes feuille que nous venons de récupérer à partir de la base de données. D' accord, et puis j'ajoute les références manquantes. Ouais, donc à la maison ou des lignes rouges. Alors sais, quoi que je fasse, je vais faire avec le mannequin. Voilà ce que je peux faire. Je peux dire quelque chose à Vire Model va être égal orteil ajouter une vue moyenne. Donc nous venons de créer la vue admin, monsieur, c'est bon d'aller à une nouvelle instance hors de cette classe. Et puis j'ai ouvert mes accolades qui alos Muto ligne par ligne, déclarer chaque propriété. La première propriété que je veux serait Disons que le total des demandes sera égal à, et alors il est censé être égal à tout le record que je viens de reculer. Donc, le total des demandes serait totalement hors du compte rendu. Je viens de récupérer, euh, donc je vais voir des demandes de congé. Mais rappelez-vous que j'ai les modèles. Je ne veux plus interagir avec cet objet. Celui-ci était juste pour obtenir les données. Maintenant, il est baladé à mon modèle de vue, donc je vais faire tout le reste avec le modèle de vue. Donc, laissez le modèle de requêtes point et puis je peux juste dire compter parce que le nombre total de demandes serait le nombre total d'enregistrements que je viens de récupérer. D' accord, alors. Le prochain que je peux voir serait approuvé. Demandes que je peux voir approuver les demandes est un congé égal. Laisser les demandes. Les quêtes de soulagement de maman, les points de modèle. Le jour, je vais mettre sur une condition que je suis allé voir où vous avec ma flèche. Donc début de ma personne X bien-aimée sur mon état serait approuvé est égal à vrai, donc il, par le biais approuvé, est égal à vrai. Cela signifie qu'il est approuvé immédiatement. Ensuite, il voit quelque chose que je ne peux pas implicitement convertir le type d'innombrables ce qui signifie que cela va toujours obtenir une collection ? Parce que, non, c'est s'il y en avait 10 ici et qu'il y en avait cinq qui ont été approuvés, c'est de renvoyer la liste hors. Les cinq ont approuvé, pas le numéro cinq. J' avais besoin du numéro de feu. Donc, après avoir filtré tout ce que je veux sur cette liste, je peux voir ce comte Andi sur cette fois. Désolé. Ça doit être Brie, apparemment. Voir, Donc, dans cette situation est de faire un compte contre la collecte directe. Droit dans cette situation est de faire compte contre, euh, ensemble légèrement modifié. Donc, ce étaient des griffes et toute autre expression lambda que vous pourriez ajouter. Donc, le filtre a écrit ou modifier la liste. Avant de faire compte, il va changer celui que vous dites va devoir utiliser la fonction de téléphone à la place des cônes comme une propriété. D' accord, donc tu peux être conscient de ça. Donc, si vous faites un continents sombres une ligne rouge, il est plus que probable que vous avez besoin de la fonction. En fait, vous pouvez simplement dire des cônes et utiliser l'expression du bois. D' accord, donc ça regarderait dans la collection et tu vois que je veux. Comptez tous les enregistrements qui répondent à cette cette condition. Donc, vous voyez qu'il y a tellement de façons que vous pouvez le faire, que c'est très, très flexible. Deuxièmement, j'ai fait la clause where, puis j'ai téléphoné au compte après le fait. Ou je pourrais juste utiliser les cônes mis en place mon Lunda sur ceux que la condition filtres Andi ne font pas et en valeur me disant combien de disques remplissaient cette condition. D' accord, quelqu'un pour pousser vers l'avant avec cette variation hors du cône. Donc, je vais le faire sur les demandes alors en attente semblerait très similaire quelqu'un pour copier cela à nouveau. Mais cette fois, la condition serait en attente. Serait que approuvé n'est pas si rappelez-vous que lorsque nous avons créé la classe de données pour la demande de congé ou je peux juste regarder dans la VM approuvée est sur aucun niveau. Donc, quand on pose le point d'interrogation contre le taureau, ça veut dire que c'est remarquable, ce qui veut dire qu'il peut être vrai. Il ne pouvait pas être des chutes, et il ne pouvait pas non plus avoir de valeur. Donc techniquement, lorsque vous faites une demande de vacances ou autre, il n'aurait pas une valeur dans l'approbation de la fente parce qu'il n'a pas été approuvé ne pas être approuvé. moyens ont été rejetés, mais ils n'ont pas été approuvés, ce qui signifie que ce n'est pas vrai. Donc c'est dans un autre état. Il attend. Donc, je vais juste utiliser ce milieu cultivé pour le oui ou non, ce qui est le null pour dire ça. Ok, personne n'a mis d'option dessus, donc c'est toujours en attente, d' accord, et la dernière serait rejetée. Demande à quelqu'un de voir les demandes rejetées sont égaux sur. Ensuite, il est littéralement juste des demandes approuvées à l'envers. Donc, ce serait là où ils sont faux. Donc, encore une fois, si elle est approuvée, cela signifie que c'est approuvé est égal à vrai. Si c'est des dépenses, cela signifie que personne n'a donné l'approbation en disant que par nos chutes, alors si elle est rejetée, cela signifie que quelqu'un l'a mis dans un état lointain. Ensuite, la dernière chose pour ce modèle de vue serait les demandes de congé. Donc en fait cela est apparu parce que j'ai juste appuyé sur le contrôle et l'espace. Donc, il a juste rempli la ligne parce qu'il savait que la seule autre chose qui pourrait aller là-bas que l'étudiant visuel rend si facile d'être efficace. Donc, laisser les demandes, est en attente sur la liste de quitter le type de demande de congé VM sur. C' est pour les demandes de congé provenant de la base de données, ce que nous venons de faire. Je suis en train de monter pour ici. Donc, pour les demandes de congé, j'ai juste besoin de passer la vraie collection DR que nous avons balayée plus tôt. C' est notre modèle. Donc, la vue moderne nous a rendu facile d'injecter nos propres propriétés personnalisées, hum, hum,que nous voulons Onda, quelles que soient les données réelles que nous voulons sur, alors nous allons juste la retourner à la vue. Non, dans les exercices précédents, lorsque nous sommes sur le point de générer la vue qui sont très pointilleux lors du choix érafler du modèle de vue à utiliser, ils doivent éraflerle modèle pour la vue. Donc, dans cette situation, je vais utiliser les demandes de congé sur. Ensuite, nous allons le modifier orteil sauf que l'administrateur laisse Request VM activé. Nous allons passer par étape sceller, comprendre ce qui se passe. Donc, je clique avec le bouton droit de la souris sur eux, en ajoutant la vue sur puis je choisis le modèle de liste parce que je voulais générer le formulaire de table. Pourtant, je ne veux pas que le travail s'arrête à essayer de faire la table. Donc la table pour moi est la partie la plus difficile. Donc, je vais juste faire une liste sur la liste va être hors type demande de congé VM satisfaisant demande de congé VM sur. Ensuite, j'ai eu et non nous avons ou modèles. Donc, je vais à je veux laisser la création parce que je veux donner à l'administrateur leur capacité à soumettre une demande de congé au nom. Souvent, les employés, je pense que ce serait une fonctionnalité cool. Donc, je vais laisser le bouton Créer, mais je vais modifier ceci. T pas avoir un modèle sur le type I laisser innombrables demande VM. Je ne veux pas de collection. Je veux juste une instance de la machine virtuelle de demande de congé de création. Donc, je vais juste changer cet ancien admin quitter Request vue VM Désolé, Onda, qui est ou modèle. Donc, si c'est notre modèle, cela signifie que nous avons accès à tout ce qu'il contient, qui signifie non, nous avons accès à la collecte des demandes de congé, qui signifie que notre pour chaque boucle doit être en boucle à travers qui laissent des demandes cela génère déjà appelé qui connaît les demandes de congé afin que nous n'ayons pas besoin d'y apporter beaucoup de modifications après tout. Droit. Une autre chose que je vais vouloir inclure avis que c'est dire, demander aux employés que je D. Je ne veux pas que je délaisse les employés. Ce que je voudrais, cependant, cependant, sont des employés. Euh, eh bien, il semble que j'ai besoin d'aller modifier mes quelques modèles parce que je ne fais pas de représentation des employés. Je ne fais pas représenter où j'ai le type de feuille. Donc je dois faire une représentation de l'objet des employés. Donc, cela signifie que je dois revenir à mon modèle de vue, qui est la demande de congé pour être AM Onda. Je le fais. Oh, c'est l'employeur qui demande. Désolé. Donc la propriété, la propriété m'a a trompée. Donc ça me demande d'accord, donc c'est déjà là. Comment mon corps. Donc il demande aux employés point Andi, je veux le prénom. Andi. Je peux juste mettre le nom complet dans tout ça. Donc, il demande que je vous emploie. Donc, dans cette colonne, il affiche la demande. Je demande le prénom des employés Onda. Nom de famille. D' accord. Mais je me souviens dans un exercice précédent, nous aurions dû aller à la classe de données et faire les inclusions. Donc, vous savez, comme je l'ai dit, votre cour évolue et vous voyez quelque chose. Et puis, à mesure que vous gagnez plus d'expérience, vous voyez que quelque chose va arriver avant même que cela ne se produise. Parce que je prévois juste cela me donnant l'ère nulle que nous aurions rencontrée auparavant. Donc, je vais juste revenir à ma classe de référentiel et trouver la fonction qui reçoit toutes les demandes de congé sur. Alors je vais juste lui dire d'inclure une certaine distance de la ligne de frein sur. Ensuite, je vais voir dot include, qui va ensuite m'inviter orteil à une bibliothèque pour un darknet dans un noyau de mots différent sur . Ensuite, je veux inclure les employés que duct ou demandera employé comme un objet veulent également inclure ? Ils ont approuvé. Krul a approuvé de droit approuvé par était un autre objet employé que j'avais sur. Je veux également inclure le type de congé. Très bien, alors quand il récupère ces données, il s'assure d'inclure tous les détails associés à toute autre clé étrangère requise qui est là. Donc je vais juste prendre ces trois fichiers d'inclusion sur. Je vais aussi mettre la fonction find sur. Je vais changer cette fonction de find en premier ou par défaut. Donc nous avons fait tout ça dans une activité précédente, donc ça ne devrait pas être étranger. Si c'est le cas, c'est bon. Vous pouvez passer en revue cette activité précédente où est allé en profondeur en expliquant ce que c'est que nous faisons ici. Mais une fois de plus, nous faisons juste en sorte que lorsque nous récupérons nos dossiers traitaient tous les détails de présence de l'enregistrement de clé étrangère, plus petit de toutes les tables demandent Employé qui a fait cette fois de l'employé approuvé par vient également de la table des employés. Donc, nous savons qui demande, nous pouvons obtenir leurs coordonnées. Qui approuve juste au cas où. Ce n'est pas seulement l'utilisateur administrateur, car nous pourrions avoir d'autres utilisateurs dans un rôle d'administrateur qui ne peuvent pas prouver qu'ils veulent savoir qui a approuvé les vacances sont projetées sur. Nous avons le type de congé. D' accord. Revenons à notre index. Euh, et Eso vient de passer et de nettoyer. Donc, nous avons la date de début, la fin, nous avons le nom de type feuille, alors ils sauront quel nom de type laisser, et une fois de plus cela nous aurait probablement donné que aucune exception. Si nous n'avons pas respecté ces rajustements, la date à laquelle il a été demandé, la date à laquelle il a été donné suite à l'ASM. Je ne veux pas que ces détails soient listés dans le tableau. Donc, je vais prendre toute la date qu'il était Action et action signifie qu'il a été soit rejeté ou approuvé le. Je vais supprimer l'approuvé par. Je n'ai pas besoin de voir qui l'a approuvé sur le Je vais obtenir un peu de fantaisie avec mon affichage pour la section approuvée. Donc je vais juste changer toutes les étiquettes. Donc, vous remarquez que parce qu'il a changé la vue le modèle de vue de notre modèle qui est utilisé à partir des demandes de congé type de données toe cette demande de congé d'administrateur, qui a les demandes de congé en elle. Évidemment, ces propriétés auront une certaine difficulté à être beaucoup parce qu'elles sont généralement mappées directement au modèle. Donc, si tu as ces lignes rouges, c'est bon. Vous pouvez en fait simplement effacer les douves en écrivant votre texte. Bon, donc pour le premier frappeur, je veux que ça voie le nom des employés. C' est le nom de la personne qui fait la demande. Je vais voir commencer donc en fait peut juste enlever un peu de la corde sur juste mettre dans le texte statique. Alors commencez et partez. Tapez le jour où il est demandé. Et je laisse les rapports que parce que parfois il peut informer trou sur cette demande de vacances a été là en attente d'être optionnelle. Article l'en-tête de l'option de date sur l'article l'accumulé par frappeur. Donc, nous avons 123456 colonnes sur Aller sur un près de ce. Voir le statut d'approbation à la place. Désactivé approuvé. Donc, cela va dire état d'approbation. Bon, alors nous avons 123456 Bien. Et puis pour en faire une table de données, je viens de mettre nos données i d tbl. Donc, je vais faire un ajustement de plus sur cet écran. Andi, c'est un outil basé sur la valeur hors du statut approuvé. Que ce soit, euh, vous savez, c'est approuvé, en attente ou rejeté. Je veux imprimer, comme une petite carte ou une petite pilule qui dira, Ok, c'est ça. L' état et le codage des couleurs suggèrent ce que c'est, n' est-ce pas ? Donc bootstrap a ce que nous appelons des badges, et je pense que nous avons utilisé des bouchons dans nos modèles précédents. Donc je vais juste vous montrer à quoi ressemble le budget sur la façon dont nous pouvons utiliser les déclarations O. R. R. If et l'orteil Accord d'Ari savent quel badge est allé imprimer. Donc je vais enlever cette ligne, et ensuite je vais voir ce panneau. Si vous commencez sur votre déclaration, alors je vais voir si je tente des points et puis dire approuvé est égal à vrai. Maintenant, la chose avec des lingots, vous ne pouviez toujours pas avoir à voir le vrai. Nous pourrions juste dire si article qui a approuvé mais dans ce Mirani dans notre problème parce que, euh et puis leur studio visuel assis que c'est illégal parce qu'il n'a pas d'état. Donc tu dois être très explicite quand tu as affaire à un taureau remarquable. Ils doivent voir si je me suis avéré qu'une prude est vraiment vraie. Alors je veux. Et puis c'est la cour pour un bouge. Donc, je vois la classe filée bouger sur le succès Budge Dash, ce qui nous donne, ah bouge vert avec le mot approuvé que je vais dire autre si désolé comme si et puis la nouvelle condition est que j'ai tourné que approuvé est égal dans les chutes de remorquage. Ou peut-être que j'aurais pu dire, sinon, mais je suis juste très explicite sur. Ensuite, je vais voir à la place hors approuvé, je suis allé voir rejeté. Et puis celui-ci va être dangereux parce que je voulais être un lot rouge. Alors je vais dire quelque chose comme d'autre. Sinon, c'est dépenser. Donc, si ce n'est pas vrai, ce n'est pas une farce, alors ça doit être pas sur si c'est non que ses dépenses. Donc je vais mettre celui-ci en garde pour dire, Hey, tu sais, accorder un Hey, tu sais, tu sais, peu d'attention, donc je vais dire en attente d'approbation, d' accord . Donc, en l'état, je n'en ai pas et il laisse des demandes dans le système. Je veux dire, nous n'avons pas configuré la création sont quelque chose à ce jour, donc je vais juste aller en insérer un dans mon manuel de base de données est que je vais juste aller à la table. Droit. Cliquez sur Afficher les données à ce sujet. Je vais en insérer un en utilisant les données que j'ai ici. Tu n'as pas à faire ça. Je veux juste le faire pour que je puisse donner une représentation visuelle d'un autre mot que nous venons de faire. Ensuite, dans la vidéo suivante, nous commencerons à construire des bateaux, choses plus créatives. Bon, donc j'ai juste mis une règle. Je te montre juste. Comme je l'ai dit, vous n'avez pas vraiment à faire cette étape. Mais je viens de mettre dans un rôle avec un hors de l'ID utilisateur que j'ai mis dans un début fictif et en effet, l' un des types de feuilles. Andi, je sens juste que aussi l'action de date n'est pas connable. Donc nous voulons probablement changer ça parce que, bien, bien, jusqu'à ce qu'il soit approuvé ou rejeté, alors il n'y a pas d'action de date, non ? Donc, je vais faire cet ajustement à la base de données aussi. Mais pour l'instant, je veux juste arrêter un peu de visuel. Ce que nous venons de mettre sur ce n'est que la première partie. Donc, nous passons tout ce temps assis sur le modèle de vue à mettre en place l'index, l'impression de la parole de l'index. Nous n'avons pas mis les bouchons sur la partie où nous montrons les chiffres. Nous n'avons pas encore mis cette partie, donc ça va être dans la deuxième partie de cette activité. Cependant, comme je l'ai dit, je veux le visuel, donc je vais aller à des vues. Trouve mon Leo Haute. Assurez-vous que mon lien qui dit laisser les applications points orteil les cartes place. Comprendre la copie d'un sur les chemins existants sur. Ensuite, cela va être de laisser des demandes. Très bien, alors faites juste le gain de mon frère et ensuite il a été évalué notre travail. Bon, alors maintenant nous allons aller à la gestion et cliquer sur Laisser les applications allumées. On y va. C' est notre liste d'administration pour les demandes de congé. Cependant, le nom de l' employé a commencé Indeed, le type de feuille étant demandé la date à laquelle il a été demandé sur le statut d'approbation, qui est en attente. Donc nous allons juste tester cela aussi, si je retourne à ma table de données et je vais juste rencontrer l'argent Watchin donc non, il est approuvé est non. Donc, si je change ce magasin, je peux juste en voir un, ce qui est vraiment vrai dans la base de données. Je vais revenir le jour de rafraîchissement. Recharge donc la dernière à partir de la base de données. Et non, ça semblait vrai. Ça me donne l'approbation de la même façon. Si j'ai dit zéro à la place, qui est le même US tombe sur. Il a fait que la mise à jour de la base de données ne va pas voir l'art rejeté. Donc c'est une belle, hum, subtilités en remorquage. Comment trou nous pouvons imprimer contextuellement ou des éléments un peu bizarres dans le X suivant dans la partie suivante . En dehors de cet exercice, nous allons pousser un peu vers le bas cette vue, donc cette gourmande va aller jusqu'ici, plus bas sur la page. Mais en haut, nous allons avoir quatre cartes ou quatre sections qui imprimeront les numéros pour chacun numéros de demande de congé que nous aurions calculé et mis en R V M. Donc coller notre propre sur ce est à continuer. 39. Module de demande de l'employé - Configuration de l'index Admin Admin View: Hé, les gars. Donc nous sommes de retour, et nous sommes prêts à plonger dans cette leçon. Nous poursuivons notre activité ou désactivons la vue administrateur pour qu'ils puissent voir toutes les demandes de congé actuellement dans le système. Donc la prochaine chose que je vais faire est de mettre en place une représentation visuelle. Zoff. Juste quelques statistiques pour les montrer. Vous savez, j'aborde tellement de demandes de congé sont en attente. Combien y en a-t-il dans leur système ? On va juste mettre ça en place au fur et à mesure. Donc, de retour en studio visuel, nous allons utiliser des cartes bootstraps. Donc c'est ma représentation visuelle hors du choix. Donc si vous allez sur le bootstrap, pas calme,la documentation est obtenir bootstrap dot com, aller dans les composants et chercher des cartes. Donc si vous allez sur le bootstrap, pas calme, pas calme, documentation est obtenir bootstrap dot com, Alors vous verrez qu'ils ont cette carte à la recherche, euh, une représentation tellement, que vous allez prendre ça. Mais ce que je veux vraiment, c'est le numéro imprimé dans une section sur le type ou un remorqueur légal imprimé dans une autre section pour cela. Droit. Donc, je suis juste dans minimisé. Ecoute, je vais emprunter ce score, accord ? Donc, c'est le noyau qui génère des rejets hors cours, je vais le modifier un peu. Mais voilà le truc. Je veux quatre cartes imprimées côte à côte allant de gauche à droite. Donc, je vais utiliser la chape bootstrap, poser l'ancien système et c'est assez facile. Donc je ne vais pas aller à la documentation. Je marche juste à travers ça comme je le fais. Donc j'ai créé donner. Je lui donne le rôle de classe. Très bien, donc en fait vous permettre de créer des tables en utilisant juste des dips. Donc, cela représente littéralement un rôle de gauche à droite. Continuer. Non. Et puis à l'intérieur de cette règle, je veux que ça donne sur. Ensuite, je vais donner à cette div une classe hors appel Dash MD Dash 3. Donc, j'aurais déjà fait mention que l'appel MB sur le numéro qui voit vraiment. Je veux une colonne pour écran de taille moyenne hors taille trois sur trois ici présente trois off. Ah, potentiel 12. Donc, de gauche à droite sur n'importe quel écran de bootstrap sont dans un bootstrap. Continuez avoir 12 espèces que vous pouvez remplir sur. Ensuite, c'est la largeur de l'espace. En d'autres termes, après 12, celui-ci vit la plupart prennent trois. Andi, je veux quatre si 34 gonfle. Donc, si j'ai 43 donne espacés représentant des colonnes, alors je peux adapter quatre donne notre pour des bits de contenu côte à côte en passant à travers l'écran. Droit. Donc un peu de maths là-bas. Rien de trop compliqué. Mais à l'intérieur de n'importe qui hors de ces colonnes. Je veux mes cartes. Je vais prendre ce cordon de carte que je viens de copier sur des morceaux à l'intérieur de la colonne. Maintenant, je peux commencer à modifier cette carte. Donc d'abord, ils ne veulent pas cette image. Quelqu' un pour prendre tout ce qui émet une section, puis dans le corps, je ramènerai la documentation. Donc, ce serait le titre. Ce sera le texte sur. Puis ils nous donnent ah, livre d'échantillons. Donc leur idée que vous pouvez mettre presque n'importe quoi à l'intérieur attaquent la carte. Donc je vais plutôt faire ceci et chaque remorqueur qui va orteil a le numéro sur alors ce sera l'étiquette voyant ce que ce nombre représente. Donc, en studio visuel, je change ceci de H 5 à chacun, puis à la place des offres dans les mots titre de voiture. Donc remarquez qu'il va toujours être à l'intérieur d'une gérontocratie au signe modèle point sur le premier décompte. Je veux montrer serait le nombre total de demandes le nombre total de demandes alors pour le texte , puis en prenant un certain temps pour enregistrer. On y va. Alors à l'intérieur du texte, je vais changer ce contenu, quelque chose, quelque chose sur ce que je vais dire au modèle. Eh bien, non, c'est inexact, en fait. Devrait faire l'affichage pour ou nom d'affichage pour donc je peux dire à ce jeu. Désolé. Je suis désolé de l'affichage html de l'exécuteur. Moi, cette copie, c'est que je ne veux plus dire cette erreur. Donc, j'utilise cette aide de conversation HTML qui imprimerait la balise de nom. Étant donné dans le modèle de vue, certains devraient revenir à l'examen du modèle et augmenter cela. Mais ce nom d'avion pour à l'intérieur de cela, je vais juste mettre en place un lambda Expressions. Alors mannequin, hein ? Mettez l'iro et puis je dis point modèle sur l'élément que je veux. La discipline dans quatre est le nombre total de demandes. Bon, donc ça veut dire non. Dans le modèle de vue, nous devons nous assurer que nous avons le nom d'affichage pour le total des demandes. Et puis je peux juste supprimer ce bouton comme presque tous les facteurs sont allés à moi. C' est un H 5 à la place, hors taxe R P. Je vais dire h 5 au lieu de p. Je voulais ce peu plus grand que juste ah p remorqueur. Quoi ? On verra à quoi ça ressemble. Donc ça va nous donner une carte. Ensuite, nous allons prévisualiser ce que l'ancien remet qui est vraiment. Donc je vais juste me mettre au pied, rafraîchir la page, accord ? Et c'est ce que cela utilisera. Donc, nous voyons le numéro un en cours d'impression et ensuite nous voyons le nombre total de demandes. Je vais me diriger vers les restaurants avant qu'on y regarde. Donc le premier ajustement est que je vais copier cette colonne. Donc, cette div entière de la colonne mmd trois. Je vais le copier, et je vais le coller quatre fois de plus à l'intérieur du si c'est le rôle. Ou trois fois de plus plutôt. Alors maintenant j'ai quatre cartes, une pour le total des demandes. 14 demandes approuvées. Donc je vais juste changer les moules. D' accord. 14 soignant. Ou peut-être que je devrais vraiment voir en attente première à droite. Donc, vous voyez qui a prouvé que vous voyez l'attente. Désolé. Ensuite, vous voyez l'approuvé, puis vous voyez, ils ont rejeté. Donc je veux dire, tu peux tout laisser sortir. Tu crois que ce serait mieux pour toi. Alors Rejeté. D' accord, donc nous avons quatre cartes imprimées anciennes, les diverses, euh, statistiques pour nos demandes de congé dans le système jusqu'à présent. Andi, Ensuite, vous remarquerez également qu'il y a très peu d'espace entre les cartes sur la table de données . sergents ont mis à nos discussions pour mettre un peu de lumière du jour entre eux. Ah. Maintenant, je peux, hum, mettre en place une section ici où je suis gagne une empreinte. Hum, chacun est ainsi mis sur, dont chacun est une règle horizontale. C' est juste une ligne sur. Je suis allé voir chacun. Hum, partez, journal des demandes. Bon, donc c'est un journal de toutes les demandes de congé. Actuellement, vous connaissez les prisons passées et ne sera pas avenir, mais donc je suis juste sectionnelle izing la pizza. Ça a l'air un peu plus agréable. Je vais aussi mettre des pieds comme certaines choses pour agrandir le texte. Mieux regarder. Donc, comme le numéro. Je ne veux pas qu'il reste. Je ne veux pas que le texte soit tiré à gauche. Donc pour la classe dif, c'est, euh,le euh, corps de la carte de la classe Cardiff. Je vais juste mettre dans un autre cours de bootstrap comme centre de tiret de texte. Donc, je pense que même le faire que ce livre que tout à l'intérieur de la div qui est basé sur le texte sera juste la ligne centrale. Si ce n'est pas le cas, alors nous devrons le mettre dans les éléments individuels. Mais essayons-le pour non sur sou. Aussi, pour chacun va mettre en nombre visuel, mettre en couleurs ce genre de visualisation Quel est le statut ? Donc, comme, par exemple, en attente, je vais le faire sur des boutons orange. Je vais voir sur le numéro orange. Désolé. Donc avertissement de tiret de texte. Donc donner sont en bâtons. Hum, les demandes approuvées. Je vais voir un texto. C' est ainsi que celui-ci est approuvé. Donc, c'est du succès. C' est vert. Texte sur. Ensuite, pour projeté, vous pouvez voir le tiret de texte pour danger corrigé. Bon, Bon, donc je sais qu'on pourrait avoir du style. Cette histoire est probablement utilisé alertes à la place, hors en utilisant une fonction de carte, vous auriez pu utiliser la fonction d'alerte de Bootstrap Andi mettre votre contenu en selle. Y a-t-il tellement de façons de faire ça ? Je vous montre juste une option et vous fais savoir que vous avez d'autres options. Utilisez votre créativité pour produire ce que vous voulez. Alors le prochain objectif ? Non. Avant de rafraîchir la réponse, votre travail est de vous assurer que nous avons des noms d'affichage appropriés pour chaque propriété. Dans nos modèles de vue, je vais revenir à ce modèle de vue en maintenant le contrôle et en cliquant sur. Ensuite, je vais configurer ces annotations. Donc, cela dirait que ce jeu Onda nom est égal à. Alors c'est Torta. Nombre de demandes, d'accord. Et puis l'affichage va nécessiter une certaine inclusion de la bibliothèque de données. Donc, ce que je vais faire, juste passer et faire ça hors caméra ? Hum, et tu peux faire une pause ici et continuer pour toi même. Certains sont-ils terminés avec mes annotations ? Et donc je vais juste retourner au navigateur et recharger la page et voir à quoi ça ressemble Art. Et on y va. Donc maintenant, nous avons pour comme, une belle section de table nous montrant le nombre de demandes en attente, approuvées et rejetées une fois de plus. Ce sont les noms d'affichage que j'aurais configurés dans le modèle de vue. Donc tu sais qu'ils impriment ou c'est gentil et proprement. Tout dans Central et tout semble un peu plus uniforme. Les couleurs sont une sorte de guide, ou Sesto, vous savez, l'état sur tout ce que je veux dire, ce n'est pas le meilleur. Ce n'est pas parfait. Il a de la place pour l'amélioration. Mais bien sûr, vous avez votre propre flou de votre propre style. Je suis sûr que vous êtes en train de trouver un autre design qui fait probablement celui-là. Mais le concept que vous auriez pu tirer de cette leçon vous permettrait d'être plus créatif que moi en ce moment. Bien sûr, cela peut être nettoyé un peu plus parce que alors vous pouvez rencontrer ce lien semble un peu plus attrayant sur vous pouvez prendre tout le mot en cela. Alors je vais faire ces choses. Mais je vais les faire hors caméra. Je veux que vous obteniez l'entraînement de le faire vous-même, sachant ce que je viens et comme toujours, si vous rencontrez des difficultés se sentir orteil libre, vous savez, ligne de drame, contactez-moi et je serai prêt à vous aider 40. Module de demande de l'employé - Créer une demande de Leave partie 1: Hé, les gars, bienvenue dans cette vidéo. Nous allons mettre en place le formulaire de demande de congé pour nos employés. Donc, en d'autres termes, lorsqu'un employé arrive au système et qu'il clique sur sa demande de congé, il devrait voir sur le formulaire de demande où il sera en mesure de préciser le type qu'il aimerait sur la période pendant laquelle qu'ils voulaient en spécifiant la date de fin et la date de début. Maintenant, si vous avez des ajustements rapides que j'aurais fait hors caméra, je vous les montre juste pour que vous puissiez les répliquer. Ainsi, à chaque intervalle, vous pouvez mettre la vidéo en pause et les répliquer. Mais je ne veux pas passer trop de temps dans la vidéo à les faire parce que ce sont des choses de base . Mais pour une, j'ai mis en place le lien de demande de congé pour pointer vers le contrôleur hors congé. Demande sur l'action, appelée Crée, configurera à l'intérieur du contrôleur de demande de congé l'action pour créer, qui était ce qui rendra le formulaire pour l'application pour les employés. C' est donc un changement que j'ai fait pour que vous puissiez mettre la vidéo en pause, aller de l' avant et répliquer cela, mais passer à autre chose. Je rencontre également notre modèle de vue de demande de congé. Donc, pour le modèle de vue de demande de congé qui était là avant que je déclenche certaines annotations de données sont configurées. Certains noms d'affichage sur certaines validations ont dépassé les dates. Mais j'ai également créé un modèle de vue spécifiquement pour ou créer un formulaire ce congé de création. Le modèle de vue de demande aura des validations pour les validations de date de début pour la date de fin. Une liste de sélection de l'élément de liste appelé types de feuilles. Andi valeur individuelle pour un type de feuille idées. Donc, les validations pour les dates comprendraient Eh bien, un, nous avons l'affichage. Donc c'est commencer, euh, nous deux mots distincts sur, alors nous l'avons comme requis. Et puis nous spécifions que nous voulons la date de désactivation du type de données. Donc, cela signifie que dans le formulaire rend, um, l'entrée aujourd'hui que je serai date par défaut, n'est-ce pas ? Juste parce que nous spécifions que c'est le type de données que nous voulons. Donc c'est donc à la fois cela commence et en effet sur le public. Désolé, la liste. L' innombrable élément de liste sélectionné appelé types de feuilles retiendra tous les types de congés provenant de notre base de données, et nous l'utiliserons pour remplir ou liste déroulante. Donc, le contexte est que quel que soit le type de congé dans le système est stocké dans la base de données, et si elle est stockée dans la base de données, alors nous avons besoin d'un moyen de les afficher dynamiquement à l'utilisateur, parce que nous ne voulons pas afficher à un là cinq ou afficher un quand il y a plus d'un droit ? Donc s'ils ont cinq ans, nous devrions montrer le feu si leur stand avec le dépirant. Donc, quand la personne seigneurs le formulaire pour créer une demande de congé, je laisse des demandes. La liste déroulante doit toujours représenter ce qui se trouve dans la base de données. Andi, La liste déroulante est également appelée une liste de sélection littéralement. Le discours pour une liste déroulante est sélectionné sur DSO pour chaque élément qui apparaît dans cette liste, nous l'appelons un select this item, donc c'est là que nous avons sur, puis Le I. D est vraiment ce que vous sélectionnez. Donc, vous sélectionnez vous lire le texte et vous cliquez sur le texte que vous pouvez lire mais à l'arrière. Et ce qui fait vraiment, c'est le mappage vers l'I D correspondant dans la table d'où il vient. C' est ce qui est vraiment stocké lorsque nous créons une demande de congé. D' accord. Je n'ai pas inclus tous les autres champs qui sont dans le modèle de vue comme, um, l'action d'une date demandée parce que nous serons assis ceux à l'arrière ne nécessiteront pas l'utilisateur à définir. Ce sont donc j'ai créé ce modèle de vue juste spécifiquement pour le formulaire de demande de congé sur préavis. Il n'a que les champs qui sont pertinents pour l'employé qui présentera sa demande. Donc, une fois de plus, vous pouvez faire une pause juste ici. Copiez ça sur. As-tu pu être au courant avec ? Je vais continuer et par non, cela devrait être très facile à comprendre et à reproduire. Donc, de nouveau sous notre contrôle, nous allons commencer à nous asseoir ou à créer de l'action. Non, il est assez facile de cliquer avec le bouton droit de la souris sur la vue et de générer la vue avec un modèle de création pour la création que vous modélisez et il générera vue. Cependant, nous avons précisé que nous avons besoin d'une liste déroulante sélectivement étoiles qui aura des éléments volés la base de données, qui signifie que nous devons créer cette vue avec une certaine quantité de données hors et sont terme technique sur savoir pour le faire serait de le charger avec notre orteil modèle, obtenir un modèle chargé de données et qui créent la vue avec notre modèle à l'esprit. Donc, les données que j'ai vraiment besoin seraient les types de feuilles quelqu'un pour sauver les types de congé de ire est égal orteil sur le score rapport de type de congé donc hors cours, si je reçois des types de congé et des gens de type de congé Donc si vous ne l'avez pas déjà fait, alors vous pouvez faire une pause ici pour faire cela aussi. Mais nous devons faire une représentation pour notre dépôt de type de congé. Certains y compris la dépendance que je suis, bien que la dépendance soit qui aurait déjà inclus certains, y compris le dépôt de type leave . Je le transmets dans le contrôleur et puis je m'initialise pour que vous puissiez faire une pause ici . Assurez-vous que votre manteau ressemble à ceci. D' accord. Sur vous pouvez vous défier sur pause une vidéo et essayer de le faire à vous-même sans regarder mon tribunal. Et puis vous comparez juste après. Cette mesure est sur la bonne voie. C' est un bon moyen pour ET d'améliorer. Mais il est pressant. On sauve la colère. Laisser les types laisser le type de fusil point sur. Je veux tous les types de feuilles actuellement dans la base de données. D' accord, on peut voir var, et je vais appeler ce type de congé I termes laisser des éléments de type, donc laisser le type cinq fois. Non va représenter la version correspondante de la liste de sélection des valeurs provenant de la base de données. Donc, je vais vous expliquer ça lentement. Nous savons déjà que cela vient de la base de données et si nous en sommes plus sur la variable, nous voyons que nous obtenons un type de congé de temps de collecte. Cependant, notre modèle nécessite d'innombrables, ce qui est juste une autre collection. Donc, vous voyez que beaucoup de collections ou de types de collection en C oeil pointu, plus récente collection de vélo portable, je au moins un siècle, tels sont. Mais le point est qu'il nécessite un certain type de collection, sélectionnez l'élément de liste. Mais nous savons en tant que programmeurs que la sélection de cet élément devrait représenter le type de feuille. Donc, nous devons faire une certaine forme de conversion de la liste ah off leave type toe notre liste off select list item donc et belle façon rapide de le faire en utilisant le lien ou, à la fin, à différentes extensions de travail qui fonctionnent sur les collections, Au fait, on peut dire égaux. Ensuite, je reçois ma collection, qui est de laisser les types que je veux dire que Select Ouvrir mes accolades, démarrer un Lambda Expressions. J' utilise Q comme variable Lundell. Et puis je peux voir que je veux sélectionner chaque article hors de cette collection en remorquage. Un nouveau type de données d'élément de liste de sélection. D' accord, on. Vous devrez peut-être inclure une bibliothèque juste là. Deuxième pause. Assurez-vous d'inclure une bibliothèque avant d'appuyer sur l'avant. Mais ce que je dis ici, c'est que je veux interroger cette liste sur laquelle je vous dispense de la base de données pour chaque élément là-dedans. Je veux sélectionner les données dans un nouveau sélectionner cet élément ou représenter les données et vous sélectionnez cet élément sur. Ensuite, je vais aller de l'avant et affecter les valeurs aux propriétés de l'élément de liste de sélection . Donc, un élément de liste de sélection sur je viens de casser en ligne afin que nous puissions voir exactement ce qui se passe. L' espace de contrôle est-il activé alors ? Là. Je vois que vous avez un texte que je suis en train de suivre. Ce sont les deux. Plus important encore, une fois que le texte est ce que l'utilisation va voir dans la liste déroulante sur la valeur est ce que le système suivra pour s'assurer de stocker sont donc le texte que vous allez voir dans la liste déroulante serait mignon point sur Rappelez-vous Lambda excuser Variablement O que nous donne maintenant accès aux différentes données qui proviennent des objets sont représentés valeurs dans la base de données. Donc, le texte que je veux afficher est le nom parce que je veux quand je quitte le travail seulement quelque chose le nom du type de feuille pour une sélection. Cependant, la valeur que nous suivons va être un point mignon i d qui est le je dévaluer ce nom correspondant. Pas de préavis. Je reçois une ligne rouge et c'est parce que Valionis bear string i d est un entier donc je peux enregistrer ancré à la chaîne, qui est une fonction qui peut rapidement convertir. Um, tu sais, c'est rapide, ça change juste l'orteil indigent une ficelle. Il travaille neuf fois sur dix. Parfois, vous devez obtenir plus de fantaisie, mais cela fonctionne neuf fois sur dix. Donc non, j'ai une liste off et si je juste au-dessus de ma nouvelle variable, je vois que c'est un type off innombrable. Sélectionnez ces éléments sur cela ressemble exactement à ce que j'ai déclaré à l'intérieur de mon modèle de vue. Donc non, j'ai besoin de créer le modèle de vue sont crée un objet hors des secondes du modèle de vue. Un modèle de feu est égal à une nouvelle instance off create leave demande le m on. Ensuite, je vais déclarer ceci ou initialiser cet objet pour avoir les valeurs pour les types de congé étant égales orteil les éléments de type feuille que je viens de créer. Ensuite, j'utilise mes points-virgules et oh, mon modèle est créé. Il est hors type de demande de congé VM sur Il a les données qu'il a besoin d'au moins une charge du formulaire et donc je peux le passer dans le formulaire par la suite. Donc non, que j'ai tout fait pour que je puisse aller de l'avant et créer mon formulaire. Donc vue Irak je vous ai sur, puis j'ajoute je crée, Donc il est sélectionne le modèle créer. J' utilise la demande de congé crée le m on. Je vais supprimer l'objet de classe de données. Donc, la classe de contexte de données de classe de données que j'aurais utilisé parfois et je l'aurais supprimée pour d'autres fois. La chose est, cela fonctionne mieux lorsque les valeurs sont Les données comme étant passées sont utilisées pour générer. Le modèle a une relation de mappage avec la table de données. Donc, cette demande de congé de création n'a pas vraiment ce mappage. Je n'ai pas appelé à la base de données et puis trouver quelque chose à marquer directement sur dso je m' épargnerais un peu d'air sur n'a pas de clé si je le supprime juste. Donc, si vous ne parvenez pas à le supprimer et vous cliquez sur ajouter, vous obtenez un n'a pas d'air de clé ou quelque chose de hors que commencer, vous pouvez simplement revenir sur vous pouvez simplement le supprimer et ensuite vous pouvez aller de l'avant et appuyez sur l'annonce, qui nous donne ensuite notre formulaire. Donc nous avons un formulaire, hum sous moi, nous pouvons aller de l'avant et enlever les yeux et vous savez, manger ce formulaire un peu, mais je vais me concentrer sur ce qui est un rendu. Donc, nous avons ah, zone de texte pour notre date de début ou une entrée pour notre date de début ou une entrée pour en effet il sur . Il y avait des entrées pour le type de congé I. Non. Rappelez-vous que le contexte basé sur le champ qui est invité pour le type désactivé. Le contrôle d'entrée sera différent sur ce type. Peut être déterminé par le type de données que nous avons spécifié. Donc, en d'autres termes, lorsque ce formulaire est créé sur, nous avons une entrée pour commencer. Le type d'entrée lorsqu'il est rendu, va être la date de type désactivé. D' accord, donc on verra le comportement hors de ça dans quelques uns. Mais je vais juste faire quelques changements ici où je vais tricher. Prenez ce groupe de forme qui a, euh, loin le type de feuille I d. Je vais le prendre, et je vais le mettre en haut. C' est donc la première section du formulaire que je veux rendre. Je veux les contrôles du calendrier. Désolé. Je veux que les dates soient côte à côte. D' accord. Quelqu' un pour créer un Teoh en direct, donner à Dave le rôle de classe, et ensuite je veux le donner à d'autres mecs. Andi chaque live va avoir la classe appelée MD dite tiret. Andy et moi voulions avoir six ans. Je veux que chaque colonne soit à moitié hors de l'espace, non ? Souvenez-vous de ça. On a jusqu'à 12 en disant six. Ça veut dire que je veux six sur 12. Et donc je veux en prendre six après 12 ans. Donc je ne voulais pas le dupliquer. Et puis je vais prendre commencé et mettre dans le 1er 1 sur, puis en effet il et mettre dans le 2ème 1 Donc, l'attente est que lorsque ce formulaire rend, je veux avoir cette entrée sur. Ensuite, je vais avoir côte à côte deux zones de texte en attente d'entrée toutes avant notre bouton de création . D' accord , alors. C' est ce qu'on appelle MD quatre. Donc vous remarquez que ça prend quatre places, 12 sur, puis les quatre espèces des 12. Je veux que celui-là prenne la moitié et que celui-là prenne la moitié. Donc je vais juste étendre ça à peut-être, euh, c'était ça quatre. Je vais le mettre dessus. Donc, la forme prend plus de place. D' accord, avant même de regarder le travail que nous faisons ou que nous avons fait jusqu'à présent, je veux faire un ajustement ici. Donc, cette entrée est juste sur l'entrée pour le type de feuille I D. qui n'est pas vraiment ce que nous voulons. Ce que nous voulons est une liste de sélection sont liste déroulante Maintenant, il existe plusieurs façons d'obtenir une liste déroulante . Um, ne fais pas de chemin choisi hors de peu de résistance sur DSO. Nous allons faire quelques modifications ici pour obtenir notre liste de sélection. Écoutez, euh, pour apparaître à la place, hors de cette entrée pour que vous puissiez faire une pause ici, jetez un oeil à ce qui est rendu. Ensuite, vous pouvez revenir et puis nous allons changer tout ce qui est rendu par ceci, ce que je suppose juste une zone de texte avec une entrée pour un nombre. Je vais changer ça pour ressembler à une liste déroulante. Donc l'étape numéro un est retirée tout ça dans la cour de force. On a donc les étiquettes. Bien sûr. Art et bien sûr incroyablement sprinter sur n'importe quel affichage Ning ont été mis. Donc, pour le type de feuille I d. J'ai dit que je veux imprimer le type de congé d'étiquette. Très bien, c'est bon. Mais à la place, hors de cette entrée, ce que je vais utiliser est un assistant html. Donc, j'ai ce signe HTML et je dis points goutte pierre liste quatre et puis ouvrir brise sur, liste déroulante pour et la plupart des autres. Euh, tu sais quelque chose, Force. Ils ont des manuels pour votre radio. Car tu as tout ça, hum hmm. Les aides qui vous donnent le contrôle d'un formulaire contrôle quatre, accord. Tous prennent l'expression de l'ancien élève à l'intérieur des années. le Comme jelefais depuis le premier jour, j'utilise ma queue. Était-ce mon verbal de Londres et je dis q point sur puis je spécifie quel élément du modèle plus devrait marquer à cette liste déroulante. Donc, le mappage élémentaire est pour le type IV i d. Maintenant que je mappe l'élément, je dois lui dire où il devrait retirer la liste des valeurs de donc tout ce qu'il devrait afficher à l'utilisateur. Tous les, vous savez, les choses que nous venons de charger dynamiquement et manger un pointu dans la bonne direction, quelque part pour dire. Nouvelle liste de sélection. Donc, nous avons vu que nous avons élément de liste de sélection, mais nous avons aussi un contrôle appelé liste de sélection ou un frère de type de données, notre type de classe appelé Select lis. Et puis cette liste de sélection enlève une liste. Les éléments de liste de sélection sont une liste de tentatives. Donc, la liste de termes I que je transmets dans la liste de sélection remplir. La liste déroulante vient de la tête et du modèle de ma droite plus modèle, et je dis des points sur. Ensuite, c'est la liste des types de congé que je viens littéralement de charger dans mon action avant de passer à la vue. Alors laissez les types à l'intérieur. Plus le modèle devrait avoir la liste désactivée. Sélectionner les éléments de liste dans les éléments de liste de sélection comporte deux propriétés texte sur les valeurs. Nous devons donc le dire ou le sélectionner. Lequel de ces deux propriétés devrait être le texte et lequel devrait être la valeur. Et je pense que c'est clair à ce stade qui prend cela pour le texte et les valeurs pour la valeur, n'est-ce pas ? Donc, il rend le genre uniforme et vous, Andi propre quand nous utilisons les éléments de liste sélectionnés, donc je vais dire valeur virgule pour la valeur. Donc, le suivi de la valeur devrait prendre en discussion sur la propriété de données de valeur de n'importe qui hors ces objets dans les listes que j'utilise, faisant orteil de référence sur la propriété text devrait provenir de la propriété takes de n'importe qui ces valeurs que je fais allusion orteil. Non. Après avoir fait tout ça, je vais répéter une virgule. Alors, assurez-vous que je ferme sur mes accolades. Je pense qu'il me manque sont accolades ici. Donc ça l'est. Oh, je pense à une accolade supplémentaire ici. Très bien, monsieur, monsieur, à ce sujet. Donc, nous avons nouveau sélectionner cet élément sur, puis nous passons dans. Nous aurons accolade ouverte que nous avons la collection virgule la propriété value sur la propriété text sur. Ensuite, après avoir fermé cette accolade, nous avons une virgule que je vais mettre en place un message par défaut. Donc, mon message par défaut est sélectionner le type de congé. Donc, quand les anciens unders, c'est la première chose qui va être dans la liste déroulante leur disant de sélectionner à partir ici, alors je veux voir une nouvelle sur ouvrir ah, section ici où je vais défendre certains Attributs HTML. Donc, l'attribut que je veux pour ce travail ne liste pas serait qu'il a la classe se souvenir des classes et des attributs sur lesquels il s'agit d'un remorqueur html. Il s'agit d'un attribut HTML dans ce remorqueur. Donc, je dis que je veux à la classe san, qui est quand représenter ces attributs mêmes et je dis égale Andi. Je voulais avoir la même classe que tous les autres contrôles de formulaire, qui est formé contrôle Dash, qui est notre classe bootstrap. Pour s'assurer qu'il ressemble à une forme de bootstrap, um, éléments sur puis pour mon bouton, comprenez-moi à ce bloc bt et tableau de bord. Bon, donc BT et Dash block, peut-être pour l'action. Je n'ai pas besoin d'une liste, donc je vais m'asseoir. Je vais laisser ça donc. Non. Comme nous travaillons sur notre, um, um, application un peu plus parce que ce retour à la liste essaierait de revenir à la fonction d'index à l'intérieur de notre application entière, qui est vraiment réservé aux administrateurs de toute façon. Donc, quand nous étions kowtow, nous allons montrer aux employés sa propre page d'index, ce qui signifie qu'il va voir tout ce qu'elle a laissé nos candidatures et ensuite peut faire une demande s'il veut. Lorsque nous travaillons sur ce point de vue, alors nous pouvons changer cette piste. Donc, d'ici là, laissons comme il est sur, comprendre, pour enregistrer tous les changements ou le changement de contrôle et s sur, Ensuite, je vais juste charger mon lien de navigateur sur. Alors voyons à quoi ça ressemble. Bon, maintenant qu'on l'a chargé, la première chose que je vais faire est de demander un congé. Et puis ça nous dit que nous devons nous connecter parce que nous avons dit que tout dans tout ce contrôleur doit être autorisé pour qu'ils ne me laissent pas passer un bout lointain. Utilisez mon mot de passe par défaut pour cet utilisateur, qui est en dehors de W ou org one. D' accord. Et ils me disent que je ne peux pas être le mot de passe. Je fais juste que ça peut couper le temps, n'importe quel trou. C' est à ça que ressemble le formulaire, non ? Nous avons donc notre type de congé. Nous avons cette liste déroulante, et c'est exactement ce que nous voulions. Mais laissez-moi juste inspecter les éléments. Je peux vous montrer ce que je voulais dire par la conversation entre le texte et la valeur. Donc nous avons une liste de sélection, non ? Donc sur accord que nous avons dit chaque html qui liste déroulante quatre. Il a généré un remorqueur sélect. Il a la validation intégrée dans toutes ces choses en cours de génération lorsque j'ai laissé tomber sur cette liste. Notez que vous avez l'option. Donc, pour chaque valeur provenant de la base de données généré l'option sur, alors les options ont du texte qui est visible sur une valeur. Chaque texte en tant qu'option valide a une valeur sur le texte. Donc, c'est tout voir quand nous spécifions que nous voulions cela pour le texte sur ces quatre valeurs. C' est ce qu'il faisait, vraiment et vraiment, non ? Donc, si vous avez de l'expérience avec sélectionner ceci que la décision, je ne serais pas avant dans ce que vous auriez appris tenir toujours pour générer la liste déroulante dynamiquement basée sur des données provenant d'autres endroits dans votre application, qui est un utile à temps. Hum, sauver Neto. D' accord, donc la prochaine chose que je veux souligner sur le fait que nous avons les dates côte à côte, d' accord , donc nous avons mis en accord , , place la règle sur qu'on leur a dit que l'une ou l'autre des boîtes de texte sont soit, hum, le contrôle des entrées pour que les dates soient, vous savez, pour prendre la moitié de toutes les espèces du conteneur. Donc, les conteneurs froids ils viennent huit de possibles 12 espaces sur, puis à l'intérieur de ces huit espaces prenaient six et six. Droit ? Donc c'est pour ça que je peux mélanger et beaucoup de ceux qui sont appelés MD pour avoir une apparence agréable, propre, verte. Leal sont joliment vieux, comme vous les voulez. Non. Une chose que je tiens à souligner est le fait que cela a déjà le genre de valeur de battement implicite sur. Quand je clique dessus, c' est juste me demander. Ça m'incite à mettre le rendez-vous. J' ai un contrôle de calendrier, ce qui est bon parce que la dernière chose que vous voulez est que quelqu'un vienne et en fait juste taper Freehand sur, mettre dans la folie pour le bit. Le pas côté, cependant, cependant, orteil un abaissement de l'ER du frère pour déterminer leur contrôle sur je vais juste sauter par-dessus orteil Internet Explorer est que le contrôle de date sera différent pour chaque frère. Donc, c'est la version d'Internet Explorer hors de ce contrôle de date, alors que Chrome donne le calendrier qui regarde contrôle maintenant, vous ne voulez pas ce genre d'incohérence. Vous voulez vous assurer que tous vos clients, partout dans le monde, voient une chose. Donc, ce serait un bon point, non à inclure, comme un sélecteur de date standard que vous savez qu'il rendra le contrôle de couture sur tous les navigateurs. Donc c'est mon goto un sélecteur, alors voici Jake. Vous inquiétez i point com slash date Sélecteur sur. C' est mon goto par défaut. Quand je trompe dans la zone de texte, il fait apparaître ce contrôle, et c'est à ça que ça ressemblera de façon constante, n'est-ce pas ? Donc, je vais faire apparaître ce contrôle de calendrier chaque fois que quelqu'un clique sur la zone de texte. Maintenant, nous allons devoir faire quelques ajustements, et encore une fois, et encore une fois mots expliquent pourquoi, Andi, j'espère que vous comprenez pourquoi nous avons tant de forts Buchan parfois quand nous voulons notre pays certaines choses. Mais avec la date, je vais devoir ne pas le laisser rendre le rythme un type za pour les importations . Tout droit, cliquez dans la zone de texte. Tu n'as pas à me suivre avec ce malade. Et cette montre ce que je fais. Droit. Cliquez dans les manuels pour inspecter sur la zone de texte des dates de début, notez que l'élément lui-même est Il est rendu avec le type désactivé. Mange, c'est ça. J' ai donc dit que lorsque nous avons spécifié le type de données dans le modèle, il influence le type de données qui est le type d'entrée utilisé dans le rendu. Donc, si je veux utiliser ce sélecteur de jour. Le type d'entrée doit être des textes. Donc, si je regarde la source de vue, je vais voir ici. Ce type d'importation est égal au texte et non à la date. Très bien, alors faisons quelques ajustements et puis obtenons notre profond se produit. Le premier ajustement consiste à m'assurer que j'ai les fichiers de script nécessaires pour cela. Collender. Celui des fichiers serait les fichiers CSS quelqu'un à faire juste pour copier ce CSS pour nous est un tas d'autres choses. Ils ne sont pas absolument nécessaires. Ils sont vraiment assis pour la démo. Donc c'est notre part de savoir ce dont vous avez besoin et ce dont vous n'avez pas besoin. Donc, ce dont nous avons besoin serait le fichier CSS de base ici qui donnera réellement notre calendrier qui air et l'impression que nous avons vu quelqu'un pour copier ce fichier de recensement, revenir à notre projet sur aller à superposer ou à classer sur. Ensuite, ajoutez ce fichier CSS ici. Bon, donc nous avons un nouveau fichier CSS, une nouvelle orgie d'orteils Cdn. Corey, pourquoi ensuite ? Nous voulons nous assurer que nous avons nos fichiers de script sur les fichiers de script qui sont faites référence pour entendre notre petit Nous avons besoin de remarquer que c'est une version de Jake inquiet. On s'inquiète déjà de Jake. Mais la chose est, parfois ces contrôles nécessitent des fonctions d'une version spécifique de J. Query sur nous avons à la dernière version. Bien sûr, je prends cette version de Jake Worry. Je prends le fichier de script qui est associé à Jake ou à vous yeux. Je les prends tous les deux. Et puis dans mon premier haut, je vais les orteils, les mettre sous l'autre Jake pire après le Jake ou est chargé sur tout ce qui dépend des choses de cette version de Jake. Les inquiétudes sont chargées. Ensuite, je vais charger mon geek où, en fait, mon fichier de script ici a aussi une dépendance est pour cette personne. Bien sûr que je vais aller aux pieds. Mettez-le encore plus loin en dessous de cela. Bon, donc non, ces fichiers de script sont référencés. Hum, là pour le JIC ou vous je puis la prochaine chose qu'ils disent que nous avons besoin serait orteil initialiser la fonction qui a causé les contrôles deepika. Je vais juste enlever ce script de bloc ici. Copiez-le alors. À l'intérieur de notre création. Je vais régler une nouvelle section quatre scripts. Donc, supprimez les scripts de section Render et cette section apparaîtrait sous toutes les inclusions de script par défaut, n'est-ce pas ? Donc je pourrais toujours aller de l'avant et dire un script, ouvrir un script et commencer à faire quelque chose là-bas. Mais lorsque les pages sont rendues, ce script va être rendu à l'intérieur de l'écran. Rendre le corps Andi. Il va se déclencher avant que les scripts requis soient inclus. Donc, je vais m'assurer que je rende la section Army référence à la section qui est ici avant de mettre dans les scripts, je dis juste à la section science sur, alors le nom de la section est les scripts ouverts et fermés accolades sur, puis à l'intérieur de ces accolades. Maintenant, je peux mettre mon cordon JavaScript personnalisé, qui, lorsque les pages rendues, oui, il rend un corps, et il rend tout ici. Mais quand il arrive à la section, vous pouvez quitter le laurier jusqu'à ce qu'il ait fini de rendre tout le reste sur. Ensuite, il rend le script là, sorte que cette section, euh, fonctionne froid. Donc non, je vais faire quelques ajustements. Un je vais changer le type de données à partir de l'heure de la date, loin des dates. Je supprime cette validation DEET. Donc, non, il va juste voir la date de début comme une zone de texte normale parce que je ne l'applique pas. Ça devrait l'être à l'époque. Oui, ce type de données est l'heure. Mais sans la notation de données, le formulaire sera rendu par défaut. Juste une zone de texte de l'entrée sera le type d'entrée sera égal au texte. La prochaine chose que je veux faire est de m'assurer qu'il pointe vers les bons éléments ou je sais est chercher un élément avec le sélecteur de date I. D. Et c'est basé sur la démo. Cependant, nous avons deux éléments ici a commencé et c'est en effet que les services des récupérateurs profonds ont besoin . Donc, au lieu de ça, je vais leur donner à la fois le haut-parleur profond de classe. Donc, je suis juste en train d'ajouter à la section de classe off. Soit entrer le sélecteur de date de classe sur cela au lieu de référencer les éléments du hashtag signifie un i d sur l'élément avec le I D désactivé. Quoi qu'il arrive après Ashdown, je veux des éléments avec la classe éteinte. Tout ce qui vient après l'arrêt complet. Donc, il est un des idées spécifiées. Balise de hachage pour spécifier la classe. Utilisez l'arrêt complet. Droit ? Quelque chose de sélecteur de date d'arrêt complet. Recherchez tout ce qui a le sélecteur de date de classe, que nous venons d'ajouter toe Ces deux contrôles sur puis initialiser le sélecteur de date sont le contrôle de calendrier. Donc, je vais juste contrôler le décalage s Faire ces changements enregistrer ces changements. Retournez à mes applications. Je peux fermer le Jake où vous êtes sur puis je suis allé me rafraîchir et voyons ce qui se passe sont donc sur le rafraîchissement Nall On peut voir que la date, l'application de la date, ce genre de disparu. Non, on dirait qu'à l'époque, ça nous donne encore les éléments de contrôle qu'on a vus plus tôt, qu'il aille à la liste déroulante ici et qu'on obtienne le calendrier. Mais si on clique dans le corps, on voit l'orgie où ? Donc, ils sont toujours en conflit et c'est parce que le type de données, qui est le temps mort, est toujours en train de remplacer le type. Et ce n'est pas le rendu du texte. Il rend toujours certains types de dates. Donc, nos terriers ou essayent sa meilleure installation d'orteils. C' est ce genre. Bon, donc si je change ça manuellement en texte. Ils ont remarqué qu'il n'y aurait rien. Mais quand je clique sur J Quarries calendrier est le seul calendrier qui est rendu là. Bon, pour qu'on puisse examiner ça. Nous pouvons probablement faire quelque chose comme nous pouvons changer dans le modèle de vue le type de données de jour à juste chaîne. Mais bien sûr, vous avez orteil assurez-vous que lorsque nous faisons nos opérations et nos choses de balai que nous convertissons n' importe quelle valeur à l'heure actuelle. Donc, c'est tellement parfois manquer beaucoup peut se produire. Donc, pour non, je veux le laisser comme le temps. Andi Oui, nous avons deux contrôles de calendrier concurrents, mais je vais le laisser tranquille pour non. Au moins, nous comprenons ce qui se passe et plus tard, nous pourrons mettre en place un tribunal plus dynamique pour gérer la situation. Mais pour non, nous avons notre contrôle de calendrier standard. Si je le regarde dans Internet Explorer, alors nous avons toujours ce truc de conflit parce qu'Internet Explorer appelle le contrôle essaie toujours de trouver Jake ou plus tard. Nous pouvons changer cela, mais au moins pour non, nous savons ce qui est à l'origine du problème, et nous pouvons le résoudre. Une autre chose que je veux faire est de m'assurer que mon format de date est pourquoi, Pourquoi ? Pourquoi ? Pourquoi Dash ? Mm. Dash DD signifie que ça doit être une année, un mois après, alors. Jour. Je ne veux pas que ce soit, hum, vous savez, pour causer une confusion telle qu'elle est. Donc je vais juste aller orteil à l'intérieur de l'appel de la fonction sélecteur de date ouvert à accolades sur. Alors je pense qu'ils ont une propriété dans le sélecteur de date pour la date. Il a dit, comme l'a fait pour beaucoup de côlon. À la date, quatre mois auront les valeurs. Pourquoi y tiret ? Mm. Dash d d ? Non, juste une petite requête bi peut le trouver dans la documentation. Si vous revenez au Jake où vous êtes sélecteur de date et cliquez sur quatre mois, ils vous montreront les différents formats. Donc les deux sages me donneront les dates à quatre chiffres. L' année à quatre chiffres. Désolé. D' accord. Et puis les mois, puis le jour. Je voulais juste regarder des uniformes. Donc c'est tout pour les éléments visuels. Ensuite, je veux déclencher l'action post. Ce qui se passe après que l'employé clique créer notre demande quelqu'un à adolescents texte ici de crée à demander congé. Non, Notre congé de quête va exiger un peu d'intelligence et hors cours une fois qu'ils cliquent que le flux naturel est pour aller à l'action de post pour ou créer. Donc, dans la prochaine vidéo, nous allons finir l'action post pour la création sur. Nous allons mettre des renseignements dans lesquels nous n'avons pas encore pris en compte. Certaines règles d'affaires sur je veux dire, vous avez peut-être une idée différente des règles d'affaires que moi sur Diff, vous savez, pour les mettre en œuvre. Alors nous sommes bons parce que vous comprenez le concept. Cependant, lorsque nous reviendrons dans la leçon suivante, nous allons terminer cela, et il soumettra chaque demande de congé à la base de données. 41. Module de demande de l'employé de la façon de l'employé - Créer une demande de l'autorisation partie 2: Hey, les gars, parlant de l'endroit où nous nous sommes arrêtés dans la vidéo précédente et je veux juste commencer à démarrer notre post créer une action pour les demandes de congé et je vais juste plonger droit dedans. Donc nous sommes déjà dans le contrôleur sur je suis appelé l'action. Donc, la première modification à faire est les données que nous savons qu'il retourne dans le bœuf à l' action, qui est hors type de données crée congé, demande VM. Je vais l'appeler Model Soul. Nous allons faire quelques choses ici juste pour nous assurer que notre demande de congé est valide. La première opération consiste à vérifier si l'état du modèle est valide. Donc, je vais juste supprimer ce commentaire et puis je vais dire, sinon l'état du modèle désolé, état du modèle qui est évalué. Donc, si ce n'est pas valide, alors nous savons que nous voulons retourner la vue. Maintenant, voici un petit truc que vous avez peut-être vu peut-être qu'il n'a pas vu, mais quand nous avons retourné la vue, nous devons la retourner avec des données. Je pense que nous avions un scénario comme celui-ci plus tôt où nous avons retourné la vue, mais nous ne l'avons pas chargée avec les données requises, et donc cela ne nous a donné aucune exception. Dans ce cas, il retournera la vue même si nous avons passé sur Model Model ne suit pas la liste déroulante et les éléments, donc cela signifie que si je le retourne avec le modèle va le retourner. Désolé va le retourner avec un peu de MT. Les données, c'est ça ? Donc, il va revenir avec un vide laissé sur cela, ce qui est absolument nécessaire. Alors je dois m'assurer que je charge le modèle une fois de plus. Donc je vais juste copier ça. Onda a marqué. Je vais juste charger les orteils. C' est dès qu'on a touché le poste. Je vais juste exécuter cette requête parce que nous avons plusieurs endroits où il va la retourner. Donc je ne veux pas Oh, mettez cette inquiétude à l'intérieur de la déclaration if et ensuite je dois le mettre à nouveau dans le chat comprendre une fois sur. Ensuite, je vais assigner des points de modèle. Type de laisser. Donc, avez déjà modèle. Certains mettent juste repeupler les types de feuille variable avec les éléments de type feuille que nous venons d'obtenir. Donc, si elle doit revenir à n'importe quel moment à l'intérieur de l'essai, en fait, je vais mettre ça à l'intérieur de la piste parce que c'est le point de la piste à l' opération Tran sur. Si vous avez une exception, ce qui signifie s'il y a une flèche de base de données, alors il attrape. C' est vrai, alors nous essayons, puis nous obtenons toutes les valeurs dont nous savons qu'il nous faut pour la liste déroulante. Ensuite, nous disons, si la valeur si l'état du modèle n'est pas valide et vient de retourner le modèle et qu'il a déjà les données dont il a besoin qui sont clairement manquantes quand il arrive, le mauvais démarrage. Donc c'est la première chose. Donc nous vérifions. Si l'état moderne est valide, alors nous retournons la vue. Si ce n'est pas après cela, alors je veux commencer à obtenir des données. Donc, au début, je veux les employés sur l'employé qui fait actuellement du lobbying. Donc, je veux Employé qui fait une demande de congé sur un personnel faisait la demande de congé doit être l'utilisateur qui est connecté, donc je n'ai pas besoin de suivre cela dans le formulaire. Je n'ai pas besoin de vous pour me dire qui vous êtes, parce que le système aurait déjà une idée de qui vous êtes basé sur votre journal de la seule façon la nôtre qui est, si j'ai votre pasteur que vos identifiants et j'essaie et aime les demandes de congé que vous . À ce moment, c'est probablement votre négligence ou mon tentative de frauder une situation, pas pour obtenir des détails sur la personne qui s'est connectée. Je n'ai pas besoin qu'ils identifient qui leur appartient dans une ferme qu'ils auraient déjà aimé. Et ils, ayant aimé être, soumettraient la demande de feuille. qui signifie que j'ai juste besoin de récupérer la personne qui est aimé être aux points que cette demande va dans quelqu'un pour récupérer les employés en utilisant le gestionnaire d'utilisateurs, qui a déjà inclus comme une dépendance sur. Je vais dire quelque chose comme les employés de VAR est égal à sur le gestionnaire d'utilisateur de score, qui est mon identifiant de dépendance ancré sur. Ensuite, ils ont un téléphone. Calices obtient l'utilisateur un évier, quelqu'un pour obtenir l'assouplissement de l'utilisateur. s'attend à ce que certains amateur de feu hors système que les revendications de sécurité réclament nos principes de sorte à l'intérieur que je vais passer notre objet ou une classe appelée utilisateur. Eh bien, c'est vraiment des objets d'acte, donc si je passe la souris sur le mot utilisateur, alors vous voyez que c'est exactement le type de données qui est nécessaire, qui est qui nettoie le principe. Donc, je vais mettre l'utilisateur sur. Ensuite, je dirai juste que les résultats pour récupérer les données réelles car il s'agit d'une fonction asynchrone . Donc non, mes employés auront sur les employés objecter. Donc, je récupère l'utilisateur qui est actuellement connecté. C' est donc une bonne façon de récupérer l'utilisateur actuel. Vous voulez que l'utilisateur qui se connecte au cours de la session ait un mot clé qui est littéralement le mot utilisateur. Vous pouvez le voir un peu sont un peu plus compliqués parce que certaines personnes lui donnent réellement un système entièrement qualifié, que la sécurité qui prétend que efface le principe, cet utilisateur. Parfois, tu vois ça ? Quoi ? C' est très bien. Vous pouvez simplement dire le mot utilisateur. Eso Non, je connais l'employé qui fait la demande. La prochaine chose que je dois savoir si oui ou non je dois lui dire si cette demande a sa valeur, c'est qu'il a fait mal à son allocation réelle, non ? Donc, j'ai besoin de trouver les allocations pour cet utilisateur afin que je puisse dire quelque chose comme Bar nos emplacements sont égaux. Ensuite, nous voyons sur le score Laisser un emplacement sur DSO. En fait, je n'ai pas cette dépendance. Donc je vais devoir y retourner. Assurez-vous que j'ai une dépendance pour mon allocation de congé Signalez quelqu'un de le faire rapidement. Je dirai que je pars. Ah, le dépôt de localisation sur celui-ci va être parti. Je regarde, je suis juste fileté rapport Shorten sur. Ensuite, je vais juste mettre dans les dépendances. Donc j'utilise juste la cour qui est déjà là pour faire face à ce processus. Foster. Donc, bien sûr, si je vais trop vite, nous avons juste, vous savez, pause vidéo sur vous juste re taper sur rattraper. D' accord ? Donc non, j'ai cette dépendance pour les lieux de congé. Essayons encore une fois. Donc, laissez l'allocation. Soulignement. Laisse Alec Repo amarré. Ensuite, je peux dire obtient des allocations de congés par les employés, ce qui s'attend à une chaîne pour les idées des employés que je peux dire obtenir par les employés. Il a déjà été créé cette fonction plus tôt. Ensuite, je vais transmettre les points des employés de valeur. D' accord, donc je transmets le numéro des employés. Mais il y a un danger ici. Et si cette opération se sent si elle essayait de récupérer ces employés, ce n' était pas le cas d'épargner le désordre le cas échéant. Les erreurs sont tellement sur un je suppose que c'est pour ça que vous avez le chat essayer. Donc, ils attrapent une fois qu'il obtient l'une de ces flèches, vous pouvez attraper l'exception sur encore cet objet que vous pouvez juste passer à la vue si vous voulez faire une erreur système ou quelque chose est imprimé sur l'écran, ce qui n'est pas nécessairement le meilleur cas. Mais le fait est, c'est le but d'une prise d'essai. On l'a fait quelques fois et je vous apporte juste presento Pourquoi nous avons la piste encore. Donc, nous essayons d'opérer, et puis nous attrapons l'époque. Et s'il y a une erreur que nous faisons quelque chose donc je vais juste aller aux pieds, j'entends des points d'état du modèle bizarre à Model Arrow on. Alors ce sera des gnocchis. Mais quelque chose s'est mal passé. Je donne juste ah, tête que quelque chose s'est mal passé avec l'opération. Je ne leur dis pas nécessairement les détails. Mais pour les 1.000.000.000.000.000, nous pouvons toujours observer cet objet. N' importe quelle maison que nous récupérons ou employés, nous récupérons les allocations que cet employé a. Et puis nous avons réalisé non, que ce sont toutes les allocations et ce n'est pas nécessairement spécifique à l'allocation hors du type de feuille qui est demandé. Donc, cela me dit que j'ai fait une autre fonction dans mon dépôt pour être encore plus spécifique. Donc, je vais juste aller aux pieds, retourner dans mon dépôt pour commencer par Contra. Donc, je, dépôt de localisation Levi sur. Alors je vais dupliquer ça sur. Ensuite, je vais voir obtient un emplacement par les employés type Andi Donc, sur les allocations par les employés et les types de sont allés passer dans la chaîne Employé I d ainsi qu'une idée de type de congé entier sur puis dans le dépôt, je vais pour implémenter cette fonction, donc j'attends juste que j'obtienne la ligne rouge ici. Ensuite, je viens de plus ou de prendre l'ampoule, utiliser le responsable vraiment sur la mise en œuvre interfère sur. Ensuite, cette fonction va regarder orteil très similaire ou obtenir des allocations par les employés. Rappelez-vous que nous vérifions pour une période et qu'ils vérifiaient les allocations, Comprendre la copie des orteils. Cela a marqué parce que va être un peu similaire hors cours, mais cette fois je vois trouver tout où les employés que je d est égal à l'idée qui vient sur la période est égale à la période sur. Ensuite, je vais dire Onda, les points Q laissent que je laisse des idées de type. orteils égaux croient type I d entrer. Non, à cette occasion, nous n'en voulons qu'un. Donc, même si un enregistrement répond à cette condition, ce qui est arrivé, c'est que nous sommes toujours en train de mettre en place pour obtenir une liste de notre collection. Donc, ce serait une collection avec un. Je ne veux pas d'une collection avec une. Je veux juste un objet. Donc, pour obtenir un objet, je peux changer cela étaient donc d'abord ou par défaut. Donc, d'abord, notre défaut ne ramènera toujours qu'un seul objet car il trouve quelque chose qui est la condition qu'il apporte au premier. Donc, même si vous avez apporté si nous avons trouvé une collection de choses que beaucoup la colique, la condition, vous ne retournerez que le 1er 1 Si vous n'en avez pas trouvé, alors il revient. Non, c'est ce que veut dire la valeur par défaut, est-ce pas ? Donc, nous utilisons les mêmes expressions Lambda ont été dis changer la fonction à partir de étaient la première notre valeur par défaut sur, donc je n'ai pas besoin à la liste. Alors non. Quand je fais ça et je reçois une ligne rouge ici eso ma ligne rouge est parce que Désolé, je suis de retour. Une fois. Je viens de passer par la période de moitié disant que nous attendons un objet mais j'ai déclaré que cette fonction attendait la collecte. Donc, j'ai juste besoin d'orbiter les types de données ici, donc laissez l'allocation à la place d'une collection alors cela ne fait pas beaucoup le contrat. Je vais donc revenir à mon dossier de contrat ou à mon dossier d'interférences et m'assurer que je le représente correctement. Non. Après avoir fait tout ça, je ne devrais pas avoir de problèmes. J' ai donc des congés alloués, reçois des congés par employés et par type, ce qui est en obtenir un. Et nous venons de l'implémenter dans notre dépôt. D' accord. Donc, de retour dans notre contrôleur, je vais changer cela verbalement à partir des allocations orteils allocation. Donc, il renvoie un enregistrement avec l'allocation articulaire que cet employé a pour ce type de congé. Alors, j'ai besoin de changer cette fonction. Droit ? Donc, je n'ai pas changé les fonctions dans le in. Le contrôleur n'avait besoin d'aucun noeud appelé cette fonction particulière. J' appelais, mais appeler un obtenir des allocations par les employés et taper sur eux passant un employé i d et aussi modèle que le type de congé I d. droite. Je sais donc que les employés qui font la demande et que le modèle apporte le temps qui est demandé. Non, je vérifie l'allocation. Non. Un autre chèque que je dois rencontrer. Non, est-ce que le nombre de ces employés est attribué ou est actuellement dans le système ? Est-il supérieur ou égal au nombre est demandé. Donc non, nous devons faire un mois. Je dois dire que vous avez demandé que vous sachiez, entre cette peur que cette jetée, c'est X nombre de jours. Est-ce que vous avez ce numéro dans votre allocation ? En fait, je pense que j'ai sauté une validation très importante qui doit se produire avant que nous puissions commencer à vérifier les emplacements. Et c'est une validation très simple contre les actes parce que nous avons un début il. Et puis, en effet, quoi ? Nous devons nous assurer que la personne ne met pas de date de début. C' est plus loin que la date de fin. Donc, avant même que je ne pousse de l'avant avec tout ça. Donc ça m'a frappé il y a un moment que j'ai raté cette validation. Non. Le but de cet exercice est que quelle que soit la logique que vous mettez ici, les validations qui peuvent faire et briser le système Ce sont des petites choses qui vont causer gros maux de tête. Quand vous avez une grande société et de mauvaises validations qui permettent aux utilisateurs de mettre deux ordures dans le système sur puis en tant que développeur ou la personne I t responsable du système, vous allez être celui qui nettoie le gâchis. Donc c'est facile. Pensez à ce qui peut se passer au point off, entrée sur, entrée sur, puis validez contre ces Onda. Essayer d'éliminer ou de scénarios, n'est-ce pas ? Donc, je vérifie déjà si le valide Si l'état est valide et je suis de retour, je le suis. Je suis je suppose que je peux utiliser ce sont bien, je vais vérifier. Utilise un autre. Si déclaration, je vais dire si le jour je vais utiliser Ah, le temps Compere Donc date heure Cet objet a quelque chose appelé. Temps Compere Droit sur. Ensuite, leur temps comparez. Il faut deux valeurs. Qui prend deux dates donc je peux dire modèle que, Andi je vois quelque chose comme commencé Donc il prend les premières dates que vous voulez comparer aux deuxièmes dates. Je compare le premier jour à la date de début. Alors je le compare. Les points du modèle d'orteil finissent, que ce soit ? Oui. Donc, il retourne quelque chose qui est inférieur à zéro. S' il est plus tôt que si la date fournie est antérieure aux deux, il renvoie zéro. Si c'est la même date sur n'importe quel retour quelque chose de plus grand que zéro. Si c'est, vous savez, plus grand que si évidemment nous voulons comparer et juste vérifier si elle est inférieure à zéro parce personne ne devrait commencer et finir ça commence est le jour où vous avez été écrit sur Dwell. Il ne devrait pas être inférieur à ce qu'il devrait être supérieur à zéro, en fait, car il peut être la même date. Si vous n'avez pris qu'un jour, alors vous sélectionnez le premier le début sous nd pour être le même jour que nous savons que c'est un d. droit. Cependant, si c'est que la date de début est le 16 sur l'Indy, c'est la première. Alors nous savons que nous avons un problème. Donc, je vais juste comparer et dire si cette comparaison utilise un résultat qui est inférieur à zéro , alors je veux revenir. Donc je comprends que les orteils retournent à la vue, n'est-ce pas ? Nous pouvons donc avoir autant de validations que nous le jugeons nécessaire. Donc, la prochaine validation sera par rapport à l'allocation mise en place. Donc non, j'ai l'allocation pour ce type de congé. Ensuite, je vais voir est le nombre off le est demandé supérieur ou égal au nombre de ceux-ci dans l'allocation. Ou plutôt, n'est-ce pas ? Oui, c' est un plus grand qu'un plus grand que le nombre de ceux-ci dans l'allocation. Ensuite, nous aurions atteint un autre point de validation ou retour. Donc, pour celui-ci, permettez-moi juste d'ajouter l'erreur d'état du modèle afin que nous puissions imprimer à l'écran spécifiquement, c'est le démarré. Il ne peut pas être, hum, plus loin que la date de fin. Donc, nous faisons savoir à l'utilisateur que les ordures qu'ils ont désolées sur DSO étaient en train de repousser et de leur faire savoir que c'est votre flèche. Ça a réparé ça. Donc, la saisie rend très facile de faire cela, um, calcul pour le nombre de jours de congé entre la date de début et le ND Donc la comparaison ne renvoie vraiment qu'un négatif si elle est antérieure à zéro. Si c'est le même jour le, alors plus d'un si c'est si le début il est accueilli fait. D' accord, Onda. Comme je l'ai dit, j'ai réalisé que j'ai une ère logique ici. Nous devons donc comparer la date sur l'heure à la date de début et en fait elle sur. On doit donner Irwin. Il est plus grand qu'un. Désolé pour ça. Donc j'ai dit moins de zéro, qui signifie que si cela a commencé, c'est plus tôt que l'Indien, alors nous obtenons moins de zéro sur. Ce serait OK, mais le problème est que nous voulons quand nous voulons détecter le problème lorsque le démarrage est supérieur à l'Indy it quand cela se produit dans cette fonction retourne la valeur hors un. D' accord, donc c'est vraiment celui qu'on doit vérifier. Ensuite, retournez l'erreur pour la blessure. Donc, environ deux heures de calcul pour le nombre de jours que je vais dire quelque chose comme int est demandé est égal à alors un moyen simple de calculer cela serait à dire, point de modèle démarre fait ou un autre modèle qui a terminé son puisque c'est une valeur plus grande. C' est un modèle qu'Andy Dot a dit moins, donc ont les plus grandes dettes ou ce qu'on sait. Donc, si nous obtenons ce feu et nous savons qu'en effet il est clairement plus grand que commencer, alors nous voyons mon modèle de nez date de début qui agit sur. Ensuite, après que nous avons fait cela, puis nous juste en dehors de la brise si dot jours. Donc ça va le faire. Son calcul n'est pas seulement désolé. C' est le nombre total de jours, donc le nombre total de jours reviendra dans John. Nous pouvons juste regarder l'intérêt car il renvoie la valeur du temps actuel filé en entier et fractionnellement. Donc on veut vraiment tenir. Ça revient un double, mais je voulais être à Séoul. Il va retourner une fraction, vous savez, peut-être 2,4 jours que peut-être dans un saut ici, mais nous le mettons vraiment dans un entier sur. Donc nous avons la ligne rouge sous cette ligne hors cour parce qu'ils ne semblent pas que cela retourne un double, mais nous disons dans un entier quelqu'un de le lancer implicitement en ouvrant notre accolade, écrire le mot en enfermant une pause. C' est donc à quel point il peut être facile de jeter entre les valeurs américaines. Vous avez le double d'un côté dans lequel vous voulez, John fait Eddie juste utiliser cette technique pour coûter. Donc maintenant nous obtenons, mais le numéro est demandé sur. Ensuite, je vais vérifier à nouveau pour voir si le numéro de l'est demandé dépasse notre emplacement correspondant. Alors je suis allé voir si est demandé est supérieur à un emplacement. C' est le numéro de ce n'est pas ça ? Donc, on vérifie. Les jours demandés excèdent le nombre de jours dans cet enregistrement d'allocation que nous venons d' extraire de la base de données pour ces employés sur le type de feuille demandé sur. Ensuite, si c'est le cas, alors si cette condition est remplie, nous retournons la vue. Copie ça, Andi, j'ai eu une erreur d'état modèle pour te voir. N' ai-je pas orthographié B. C'est mal dans ce domaine. Quand vous malgré que quelqu'un de voir vous n'avez pas assez. Ceux-ci que vous n'avez pas suffisant est pour cette demande. Donc nous leur faisons savoir que vous n'avez pas assez de jours d'orteil, répondez à cette demande, s'il vous plaît. Glisser. Droit. Ce sont donc des validations qui se sont vraiment produites. Lorsque vous cliquez sur, soumettre et vous obtenez un message d'erreur basé sur certaines données que vous avez peut-être mis en qui a violé les règles d'entreprise sont quelle que soit l'application de règles a été construit leur propre littéralement là juste une fois de plus, un grouper si les déclarations, hum, juste vérifier pour différentes choses que le développeur ne voulait pas de facilité orteil il sont divertissant. Donc après avoir fait tous ces contrôles, non. S' il va plus loin que cela, si les déclarations alors nous pouvons supposer que c'est une demande d'autorisation valide. Donc, nous pouvons commencer le processus, créant un enregistrement dans la base de données sur faire la déduction nécessaire. Donc, je veux déduire le nombre de jours de congé de l'allocation réelle, puis une fois que ce nombre est éteint, c'est le médecin. Ensuite, nous avons inséré dans la quête du foie afin que nous puissions le faire dans l'ordre inverse, nous avons inséré dans les demandes de congé sur. Ensuite, nous faisons la déduction. Quoi qu'il en soit, les deux étapes doivent se produire, donc je veux dire que je pars. La demande est égale à aan den je vais commencer par une nouvelle demande de congé. Laissez donc la VM de la demande activée. Ensuite, cet objet va prendre des valeurs pour le on Commençons. Commencez lentement, Disons que l'employé qui demande qu'il soit un employé demandeur I d. Nous le savons parce que nous avons l'objet des employés et nous pouvons obtenir le i. D. Donc la personne qui fait la demande la personne a signé il a fait la demande. Je connais l'employé demandeur I d valeur suivante. On veut commencer la date. Donc, la date de début va être un modèle d'égalité qui commence date de fin. Il va être un modèle égal orteil que et que ce soit. Ensuite, la chose la plus importante serait le statut d'approbation, que personne ne l'a approuvé. Il vient d'être soumis, donc je vais dire approuvé est égal à savoir. Allez, alors. Nous avons dit qu'il l'avait demandé. Donc la demande de dette qui est temps mort fait des points ? Non, parce que tu viens de le demander. Il sait juste. Je sais quand vous avez demandé le système sait quand il a été demandé sur. Je ne pense pas que rien d'autre soit absolument nécessaire pour être inséré dans la base de données parce que je suis défini une fois qu'il est créé, la détection serait vide. Mais je sais qu'il va y avoir une flèche parce que l'action de date est, hum, ce n'est pas Snoble. Nous devons donc fournir une certaine valeur de date ici. Nous avons donc deux options. À ce stade, nous pouvons fournir une valeur de date de remorquage. Évitez cela, pas d'exception. Ou nous pouvons revenir à notre classe de données de base de données. Je le trouve juste ou classe de données pour les demandes de congé sur. Ensuite, nous changeons le point de référence inconnue. Donc si nous obtenons cette brute inconnue, je devrais changer l'action de date. Aussi deux notables. Droit ? Donc nous avons ces deux options que je veux choisir la plus facile et le traitement Eh bien, dans le but de passer à travers cet exercice, je vais juste donner la date demandée ou la déduction. Plutôt le même temps DEET. Aucune valeur ne le sont pas. Nous fournissons une certaine valeur pour l'action de date, mais naturellement, cela est susceptible de changer lorsque le statut d'approbation change. Droit ? Nous avons donc créé nos objets Toby chargés dans. Donc, je vais appeler ce modèle de demande de congé à la place. Puisque c'est le modèle de vue et non la demande réellement que je veux dire Vier leave Request est égal. Orteil le mappage, donc soulignez les points de mappeur. Manchon sur. Ensuite, je mappe au type de données off leave demandes, qui est notre type de classe sur l'objet à balayer est le modèle de demande de congé. Non, tu te demandes probablement. Ok, alors pourquoi ai-je dû aller référencer l'autre modèle de vue avant de pouvoir mettre en leave Request model sur dso on. Donc oui, nous avons créatif que vous modélisez créer un modèle de demande de vue guidant ce qui était dans le formulaire. Mais alors nous construisons une VM de demande de congé donc je garde toujours le modèle de vue qui est directement mappé à la classe de données et d'autres versions propres à l'échelle qui utilisent réellement sous le modèle. J' utilise donc ce modèle de vue car il a tous les champs qui vont directement jusqu'à la classe de données sur. Ensuite, après avoir fait tout cela, nous allons de l'avant et sauver Notre est donc cess est égal à souligner. Demande de congé trois. Tirez amarré. Créer sur. Nous créons le nouvel enregistrement, qui est une demande de congé. Donc la demande va de la terre au-dessus. Ensuite, nous savons que cela revient un lingot, alors je vais juste dire, Si non, Si non, est le succès signifie Si l'insertion a échoué, alors je vais retourner la vue une fois de plus avec ah sur une route. C' est quelque chose qui s'est mal passé avec la soumission de votre au tribunal. Donc vous savez, ces erreurs sont de bons endroits pour voir contacter vos administrateurs, des trucs comme ça. Mais d'une façon ou d'une autre, je suis le bâton. Si ce n'est pas un succès que de le faire sur, alors je vais revenir à l'index Action Off, ce que je ne veux pas nécessairement faire, parce que j'ai dit plus tôt que indexé dans le contexte de ce contrôle va vraiment pour aller au fichier administratif, hum, hum, index, que je n'aurais pas vraiment besoin de l'utilisateur pour revenir. Droit. Nous devons donc mettre en place notre vue qui leur montre leurs demandes et l'état des demandes . Et ça va être dans la prochaine vidéo. Euh, mais ensuite, pour non, je vais aller aux pieds, juste les rediriger vers l'index des contrôleurs de maison. Je ne peux pas être d'accord sur l'action directe virgule. Ensuite, je peux spécifier que le contrôleur doit être à la maison, n'est-ce pas ? Donc, c'est un vrai index d'action Direct dans le contrôleur de maison, ce que nous savons est cette page d'accueil, qui est assez vide en ce moment. Donc vous savez, nous nous appuyons sur l'application. On peut tout faire à la fois, mais petit à petit. Les pièces sont en train d'entrer. Donc, nous permet de sauvegarder les quatre changements et de prendre en charge le formulaire de demande pour une exécution de test. Donc, je vais juste prendre les pieds, recharger ce formulaire de demande et transmettre la demande. Donc la réforme est rechargée et notre sélection que je veux vacances laisser oscillateurs Onda. Je veux des vacances, Lee à partir du 1er janvier. Je veux dire cette sélection. Donc, vous voyez ici que c'est un conflit, même si nous avons le contrôle de notre calendrier, nous devons toujours corriger ça. Donc on va le faire dans une autre vidéo. Mais pour l'instant, je veux juste me concentrer sur le dépassement de cette sélection de violence. Donc, le 1er janvier 2, le 5 janvier. Alors, les divinités 2020. Donc, vous pouvez voir que si nous ne voulons pas dire l'application correctement, que ces choses peuvent être très frustrantes sur faire ou briser l'expérience pour nos utilisateurs. Droit ? Donc, nous allons laisser cela pour nos touches finales où nous passons sous l'écran ces petites nuances. Donc, je clique juste sur demande congé, et puis il me dit que j'ai besoin orteil mettre quelque chose de valeur. D' accord. Donc je suppose qu'on ne peut pas attendre parce que je suis là pour essayer de le mettre et j'ai un tas d' erreurs. Alors réparons ça ensemble et mettons-le au repos. Non, je vais devoir faire quelques ajustements. Donc, nos modèles de vue sur la façon dont ces choses sont mises en place. Donc, le premier ajustement que je fais est que je vais au modèle de vue pour la création, et je change le type de données de jour à une chaîne. Donc, parce que c'est ce moment, il essaie toujours contextuellement de nous donner un jour il type d'entrée, ce qui nous donne le contrôle de calendrier pour le navigateur avant qu'il ne nous donne l'equerry G une fois dans le siège là-haut. Clairement, ça ne marche pas, donc je change ça en chaîne. Non, si je change ce flux, cela signifie que je dois changer la façon dont nous interprétons la valeur qui vient du modèle, parce que maintenant c'est une chaîne, mais nous avons un tas d'opérations hors date faisant donc je suis aller orteil en haut de la page. Sauvegarder notre date de début est égal au modèle qui commence bits, et puis je vais coûter cette heure jusqu'à la date. Et nous avons fait une sorte de calcul des coûts plus tôt où nous avons fait le coût entier. Donc ça ne marche pas toujours aussi bien, pas dans toutes les situations. Donc, ils ont une classe convertie, je peux voir converti ancré sur. Alors je peux voir à la journée avoir le temps. Donc, convertissez en date heure, puis je transmets la valeur qui est dans le champ dates de début dans notre modèle. Donc je suis juste en train de dupliquer cette ligne et de faire la même chose pour la date de fin. Donc la date de fin, convertir Et dans ce point de modèle et je sais que j'ai une variable a commencé une Inde que je vais commencer à utiliser pour remplacer les références aux variables de modèle. Droit ? Donc, partout où j'avais commencé avant, je vais juste remplacer tout cela avec juste commencer à être variable sur. Alors je vais répéter ça avec la date de fin. Alors prenez nd C'est Ripley remplacer le point de modèle et il partout. D' accord ? Non, voyons le. Tous ces changements sur recharger notre formulaire et voir si quelque chose change pour le mieux. D' accord ? Donc, non, nous ne voyons pas les presets fait des valeurs. Mais quand nous cliquons, nous obtenons notre sélecteur de date. J' ai dit qu'on faisait des tests entre le 1er janvier et le 5 janvier. Eh bien, six. Donc, d'autres petites considérations seraient que si quelqu'un demande un congé annuel pendant cette fin de semaine est inclus ou cette fin de semaine, ceux-ci sont inclus. Ils veulent exclure ces jours de week-end des calculs, n'est-ce pas ? Donc ce sont des petites règles que vous devez mettre en place pendant que vous construisez ce système ou pour Nolan, juste calculé que tout le monde travaille soixante-dix par semaine. Donc, n'importe quel nombre de ces qu'ils ont demandé, c'est le nombre que nous avons calculé contre. Et puis nous disons, demandez le congé. On est en train de voir quelque chose s'est mal passé, ce qui veut dire qu'il a attrapé une exception. Il y a quelque chose qui ne tire pas, donc quand on rencontre ce genre d'Eros, c'est mieux. Nous allons à un bateau amarré sur des points de pause fixés pour que nous puissions suivre l'activité. Donc, je vais passer en mode débogage sur. Je vais mettre un point de rupture au début de cette fonction, puis nous passerons à chaque ligne pour voir exactement où notre cour se brise. D' accord, donc j'ai la forme, je sens cette autorité. Donc, quand je clique sur demande congé, il devrait frapper notre point de rupture dans le post sur, afin que nous puissions surveiller et voir cela. Ok, commencez leur descente sur cette valeur pour que je puisse marcher et passer à travers. Alors commencez à être non, a une date de congé de quatre mois, ce qui, je crois, est le ou c'est le bon mois. Donc, c'est l'heure de date qui a été créé pour la date de début à la fin, il est démons ici mois la ou Désolé. Donc c'est la sixième. Donc, si alors nous trouvons tous les rapports de type congé, je suis en fait juste comme sauter, parce que je pense que nous sommes une assez bonne idée de ce qui se passe entre ces lignes quelque part pour passer à cela. Si la déclaration est activée, alors sa déclaration est en cours de vérification. Est-il valide ? Donc c'est valide. Nous savons donc que ce n'est pas ce qui revient à notre point de vue. Alors on fait le rencard. Comparez l'endroit où nous comparons les dates de début à la date de fin. Ensuite, nous avançons sur cette comparaison répond à nos exigences. La prochaine chose, c'est que nous essayons d'obtenir nos employés. Donc, si je regarde dans les objets utilisateur, alors je peux voir qu'il y a quelques détails à leur sujet en cours de stockage. Je connais le nom Onda quelques autres choses, mais quand je fais l'utilisateur obtient un appel de lavabo, vous obtiendrez tous les détails requis dans l'objet. J' ai l'employé, l'i d. Tout sur cet employé n'est pas dans le système ou prêt pour les manipulations Austin. Suivant. Je reçois leur allocation. Donc, je reviens à travers ça. Andi. Eh bien, juste étape, faites quelques étapes, laissez-le passer par ce processus. Donc, c'est moi en utilisant f 11 juste pour m'assurer que je ne saute pas tout ce qui est important des arts après quelques pas. Et j'ai un peu de kérosène que la journée Pas de volume après-midi parce que sur tous les pas, donc si vous avez un Terry pourrait l'ignorer. Si tu fais ça avec moi, si tu ne l'es pas, alors c'est bon. Mais nous traversons ça ensemble. Donc, l'allocation est de retour et nous avons tout sur l'allocation dont nous avons besoin. Non, je vais encore avancer. Donc, je vais à CF 11 alors il voit est le nombre de jours de congé demandé plus grand que le nombre de ce qui est alloué sur. Nous savons que si je demande deux jours sur l'allocation est de 15 jours, alors cette validation est OK. Alors, nous sommes passés à travers, nous construisons nos objets. Alors laissez-moi voir si c'est là que les Eros apparaissent. Donc, quand je construis ce congé, demandez un objet de modèle alors je vois. Approuvé le, approuvé par et approuvé par je sais que nous obtenons notre option de date soit demandé et que tous les deux construisent tous les bons moments comme nous nous attendons donc tout ça devrait être correct, Hum donc je vais juste continuer, donc f n f l jamais Désolé sur puis aller à la soumission où il ajoute l'entité. Donc, j'ajoute l'entité hors type demandes de congé que nous venons de construire passer par cela Ensuite, il sauvegarde les changements. Et puis, en sauvant les changements, il a attrapé l'exception, non ? Donc, comme je le dis toujours, c'est le point hors de la piste. Donc, il va essayer l'opération et ensuite il attrape une exception quelqu'un pour franchir cette ligne. Alors je ne peux pas examiner Donc en ajoutant cette ligne au catch, je peux voir à quoi l'exception est sur. Ensuite, je peux explorer vers le bas et voir qu'il dit que l'instruction Insertion a échoué en conflit avec la contrainte de clé étrangère pourletype de congé I d. le Je ne l'ai pas fait en construisant la force modèle de la mission. Je n'ai pas mis dans le type de feuille I d. Donc je vais arrêter, et puis je vais corriger mon erreur sur je vais dire que le type de congé. Je vois. D' accord. D' accord. Alors je sais. Je vois pourquoi ne l'a pas mis ? Parce que j'ai l'objet de type feuille, mais je n'ai pas le champ de type de congé dans mes modèles de vue. Donc, je n'ai pas créé mon modèle de vue correctement. Droit ? Donc je vais juste mettre dans ce type de feuille des idées. Certaines copies éloignées sont déjà en moyenne ici. Mettez-le en remorque, l'objet moyen, et ils savent que je l'ai dans la moyenne, je veux dire classe. Désolé. Non, c'est comme ça que je suis allé faire une représentation pour des idées de type feuille. Points du modèle d'orteil égal. Laissez le type I D sur puis je suis très confiant que ce congé sera soumis cette fois quelqu'un pour enlever ce point de frein dès le début. Je vais juste le mettre en bas par le succès. Oui, c'est soit réussi, soit pas. Donc, si cela touche ce point même que je sais qu'il a été soumis à la base de données, ou du moins si elle se sent, alors il irait à la capture droite ? Alors laissez-moi revenir dans le débogage. Plus que d'essayer à nouveau sont donc essayons cela à nouveau. Je sélectionne la date du premier off Janvier 2020 sur le cinquième du générateur dans 20 demande de congé. Alors ça me dit que j'apprécie ici est invalide. J' ai besoin d'une bonne valeur. Je n'ai pas sélectionné dans la liste déroulante. Laissez-moi essayer encore une fois. Puis il frappe le point de frein. Donc il n'a pas bombardé le vote sur ce terrain comme il l'a fait auparavant. Et quand je survole cela, c'est son succès est vrai, qui me dit qu'il a été soumis à la base de données sans aucun problème. Quelqu' un pour supprimer mes points de rupture cliquez sur continuer, Ensuite, il va rediriger vers la page d'accueil. Comme je te l'ai dit. On lui a dit de le faire. Aucun orteil ne confirme qu'il est là. Disons que j'ai soumis la feuille, puis je passe à H R. Et ensuite je dis à la personne qui je connais approuve le bail. Hé, je l'ai soumis. Ils doivent valider si je l'ai soumis. Ils se connectent donc en tant qu'administrateur. Ensuite, ils vont s'en occuper, puis les employés. Oh, c'est inexact. Gérer, laisser les applications plutôt, et puis ils verront qu'ils ont à demander. La première est de dépenser sur laquelle on a été rejeté. Ensuite, ils peuvent voir que l'utilisateur de test a fait une demande de congé annuel s'ils veulent les voir dans l'ordre du bien demandé, nous pouvons toujours mettre dans notre tableau de données dans cette section. Prends quelque chose rapidement, Andi. Donc je sais qu'une table de données était là. J' ai remarqué qu'il est revenu à une table HTML régulière sur die. Juste fait inspecter les éléments sur allé à la console et nulle part en regardant une erreur sur cette flèche est ici parce que hors de notre poste avec RG requête nous. Donc, nous allons devoir passer un peu de temps à réparer ces références parce que si je ne me trompe pas , aucune table de données ne se charge à ce stade parce que hors de cette erreur, d' accord, donc c'est une autre chose qui devrait ont été une 42. Module de demande de demande d'adhésion aux administrateurs de la demande de demande d'autorisation d'approbation par administrateur: Hey, les gars, bienvenue dans cette leçon sera de construire toutes les fonctionnalités qui permettront à nos utilisateurs admin toe approuver ou rejeter les demandes de congé. Vous savez, notre leçon précédente, nous aurions construit une opportunité qui permet à un employé de soumettre une demande de congé. Et cela aurait été en sélectionnant un type sur puis le début. Et en effet c'est depuis cette vidéo que j'ai fait quelques ajustements mineurs parce que nous aurions laissé cette leçon avec, ah, vous savez, guerre toga entre notre Jake ou vous y contrôle de calendrier sur les tables de données de porte connaissent l'ajustement que je veux dire, c'était vraiment mineur. Tout ce que j'ai fait a été enlevé la référence au Jake où le feu pour le calendrier. Donc, à l'origine, j'aurais copié à la fois le fichier J requête Js sur la joue ou vous les fichiers I Js ont depuis supprimé la deuxième référence. Le Jake où les fichiers depuis que j'ai déjà une référence dans mon projet sont dans l'expérience, et cela fonctionne. Donc ce sont certaines versions désactivées. Jake. Craignez que le geek où vous y sélecteur de calendrier ne fonctionne pas avec Andi. Je veux dire cette hypothèse. Au départ, après avoir expérimenté quelque chose comme ça dans le passé, Non, je viens de supprimer la deuxième référence. Requête Ajay. Andi, j'en ai une qui fait référence à une requête et ensuite toutes les autres bibliothèques qui ont une dépendance, y compris, ou Jake. Où tu Pourquoi ? Ce faisant, alos à la fois sur les tables de données pour charger correctement. C' est donc à ça que devrait ressembler notre table de données. Ah, quand il y avait un conflit, c'était juste là à jouer à la table que nous avions essayé de changer. Non, c'est le dos de l'orteil à quoi ça devrait ressembler. Être une table de données sur aussi pour notre formulaire ou calendrier est à venir. Et contre cela, le résultat du frère de terminer. Mais nos calendriers de donc tous une forge, une requête ou des contrôles de bête javascript sont en train de tirer comme nous avons besoin d'eux. Donc c'est une façon. Si vous avez des conflits avec J, un fichier de requête ou un contrôle JavaScript et que vous obtenez la console Arizona et que vous n' obtenez pas le contrôle comme il devrait regarder, Alors peut-être que vous pouvez essayer de déplacer vos propres références. Rappelez-vous que l'ordre compte, Andi, bien sûr, il peut y avoir conflit. Alors soyez prudent lorsque vous faites ces choses en mouvement. Notre objectif pour cette écoute est orteil alot pour un utilisateur admin. Une fois qu'ils sont sur cette interface pour être en mesure de sélectionner une demande de congé sur, puis être en mesure de bien, aller aux détails et l'approuver ou rejetée. Donc, cela signifie que nous allons devoir affiner les options qu'ils voient ici, ce qui signifie que je ne veux pas qu'ils puissent les modifier pour pouvoir les supprimer. Mais je veux qu'ils aillent à une vue que je peux utiliser les détails vous. C' était donc tous les détails, vous savez, d'autres détails de la demande que moi, un fonctionnaire ici sur alors, à la fin de l'examen, puisse cliquer sur une preuve qui va alors, vous savoir, le mettre dans un état approuvé ou rejeter, ce qui le mettrait alors dans un état rejeté. Gardez également à l'esprit qu'une fois la demande de congé approuvée , la répartition que l'employé a dans le système devra être rajustée pour tenir compte de cette déduction. Alors entrons dans le fonds. La première chose que je vais faire est de modifier les interférences, et c'est le fichier d'index dans ou laisser le dossier de requête sur. Ce que je vais faire est de supprimer une partie de l'action. Donc, comme je l'ai dit. La seule action dont j'ai vraiment besoin est des détails ou pendant que je vais réellement orteils, faites-le dire critiques. Donc, au lieu de voir le mot détails, le lien lui-même va dire « Review ». Je vais ajouter mon Bt dans Bt et Dash primaire. Je vais voir l'ancienne ligne primaire et Justin ajouter une icône de cinq ou deux. Laisse-moi le faire rapidement. Je suis devant moi aussi. Maiken, je ne sais pas pourquoi je continue à voir cinq icônes, mais c'est ce que je fais. J' ai donc ajouté ce fonds Awesome. Um icône référencé un fichier sur ce est ce qu'il rend à l'écran. Donc maintenant, nous avons, ah, bouton qui dit « critique ». Mais bien sûr, va pointer vers l'action de détails à l'intérieur du contrôleur. Nous devons donc maintenant mettre en œuvre ce que fait cette action. Donc, de retour dans notre contrôleur, je vais aller à mon action de détails qui attend un périmètre entier sur I d. Ce que nous savons que ce sera le I d off les demandes de congé. Donc, j'ai besoin de récupérer cette demande de congé de la base de données quelqu'un pour dire que la requête Vier est égale ou laissez-moi voir. Les demandes de congés viraux sont égales à sur le score. Laissez un rapport de serrure trouver par I D. Et puis je jeûne dans que je suis pour amateur. Après avoir récupéré cela, nous chargeons notre modèle de vue. Donc, nous avons laissé le modèle de vue Request sur moi. Vérifiez juste et assurez-vous qu'il en a assez pour moi sur Est-ce que vous remarquez ? J' ai encore ça. Ces annotations de données pour beat. Bon, donc je laisse ceux dans ce modèle de vue, donc je vais perdre du sang sur le modèle et le modèle C var est égal à sur. Ensuite, je suis allé à la même partie supérieure de cette carte, puis le mappage dans la direction de la VM de demande de congé sur l'objet à mapper est la demande de congé. Et puis après avoir été hors que nous venons de passer dans notre modèle, je sais que nous avons le modèle passé et je viens de cliquer avec le bouton droit ajouter vue. Et puis nous avons juste éraflé le discours des détails avec le modèle final de détails, qui est laisser la requête vm sur. Ensuite, cliquez sur Tout droit. Donc je fais juste les quelques ajustements mineurs que je vais mettre quelque part. Les détails apparaissent donc révisez. Andi, je vois. Chez san modèle dot employés demandent aux employés que prénom nom nom de famille. Je vais donc dire que je suis en train de revoir la demande de congé pour cet employé sur une demande de congé d'apostrophe C . Très bien, donc ce sont les choses que vous pouvez mettre sur votre écran pour le rendre un peu plus donc ce sont les choses que vous pouvez mettre sur votre écran pour le rendre un peu plus personnel. Je ne vais pas modifier le Lion. Comme vous pouvez le voir, c'est déjà mappage. Donc, c'est dire ce nom de jeu pour ensuite il nous donne le I d. Donc, comme cette idée je veux imprimer le nom sur. Non pas ils employés i d. Donc, j'ai remplacé cette date de début a terminé le temps de congé à demander pour cela. Je vais le déplacer en dessous de la phrase de révision. Quelqu' un à mettre à l'âge de 4 ans sur sou. Je suis allé voir le nom d'affichage pour le demandé sur puis le tiret afin qu'il soit en haut. Quand ? Ce jour où ce congé a été demandé pour commencer. Donc, il est en train de l'examiner pour cette personne, et puis le d a demandé droit sur Anethe on. Ensuite, je peux le supprimer des détails généraux, donc je ne veux pas ces détails. Je ne veux pas l'action de date. Um, l'administrateur sait déjà qu'il est dans un état approuvé sur. Puis je vais bouger orteil sur la partie qui voit ou désolé, il sait déjà que ce n'est pas. Ce n'est pas un état non approuvé sur lequel on va déménager. Oh, ils ont approuvé par. Donc, ces détails ne sont pas nécessaires lorsque cet utilisateur administrateur essaie de décider s' il doit ou non approuver. Laissez à droite. Donc, nous voulons montrer des plages pertinentes, nous pouvons arranger ce pho que nous voulons sur. Ensuite, nous pouvons avancer avec la fonctionnalité. Donc, nous voulons que certaines actions soient disponibles pour cet utilisateur. Nous voulons qu'ils puissent approuver, rejeter ou revenir à la liste. Donc je vais le faire comme ça maintenant, quelqu'un pour dire une preuve, et je vais copier ce bouton pour sortir le tuyau. Alors je vais voir rejeter Andi. Je veux laisser une liste soutenue pour qu'on ait trois boutons sur. Alors je vais passer un peu de temps et leur donner tous leurs cours, alors je vais le faire hors écran. Ce que je vais faire approuver Bt et le succès à venir pour faire rejeter Bt et le danger à ce retour va être BT et secondaire. Alors je vais faire une pause et faire ça. Vous pouvez essayer tout seul. D' accord ? Alors que le succès, le danger et le vieux tiret de ligne secondaire. Je crois que j'ai triché un peu. Je n'ai pas dit Oh, Linus, dit Sikander. Mais c'est très bien. Celui que vous choisissez. C' est pour votre propre bénéfice et pour votre propre créativité personnelle. Art. Donc, je vais aussi ajouter le fonds. Icône impressionnante. Certains que je vais briser la ligne pour que je puisse voir chaque oncle attaqué par lui-même. Mais j'ajoute les icônes à manger. Donc pour celui-ci, je vais lui donner l'espace F 8 tiret. Je crois qu'ils ont du teck. Je ne les connais pas tous. Parfois, je fais une supposition instruite basée sur le type d'icône que j'espère être là, et parfois je me trompe. Donc je dois quand même retourner à la documentation de toute façon. Mais je vais le faire d'abord et ensuite affiner Andi. Mon intelligence me donne de la nourriture celle-là. Je vais voir. Je veux quelque chose qui est comme un rayon X, donc je pense qu'ils en ont un qui est son retiré de sorte que si vous supprimez alors pour la liste A soutenue , je veux une flèche revenir en arrière. Donc je vais dire si je suis parti. Laisse-moi le faire rapidement. Celui-ci est F E R O. Il reste. Donc en fait, suffit de vérifier la documentation et j'ai vu que ce n'est pas une coche, mais c'est un chèque. C' est pour ça que je m'utilise comme un petit chèque. Très bien, donc une fois de plus, vous pouvez toujours aller sur le site et référencer le front ont également été en utilisant la version 4.7 points tout ce que je ne mémorise pas tous sur eux, mais à la demande, je vais trouver ce dont j'ai besoin et 15 en conséquence. Donc maintenant, ce sont nos détails. Vous avez d'autres choses que je veux changer d'avis, ou du moins un rejet prouvé. Les deux pointent vers l'action de modification. Je ne veux pas nécessairement cela, mais vous avez un certain nombre d'options pour faire face à cette situation. Donc, ce que certaines personnes font, c'est qu'elles créent un formulaire et qu'elles font toutes ces sortes de boutons de soumission. J' ai besoin bouton soumettre ira à l'action post Andi. Nous allons essayer de faire la soumission après la vente aux enchères, est-ce pas ? C' est en option. Vous pouvez toujours créer vos propres actions dans la demande de congé sur troller dans le contrôleur sur . Ensuite, vous pointez vers l'action pertinente. Donc, par exemple, je peux faire une action qui vient de visiter les approbations. Donc, lorsque ce lien est correct, il appellera l'action d'approbation. Et puis nous pouvons tous supposer que cette action de preuve va approuver la transaction . droite. Vous pouvez également créer une autre situation où vous auriez gagné pour l'approbation sur 14 refus. Vous pouvez avoir plusieurs options. Vous pouvez avoir autant d'actions que vous le souhaitez. Vous pouvez les créer à la demande. Vous pouvez créer une action qui prend un paramètre. C' est peut-être un troupeau à voir, tu sais, vrai ou faux. Vrai sens. Certes, il est approuvé, disons, approuvent-ils les étapes sur dfars ? Il n'est pas approuvé, donc vous effectuez les étapes de rejet. Donc, à la fin de la journée, vous savez qu'il y a des individus qui vont sortir dans votre mise en œuvre, et c'est à vous de décider. Mais pour cette situation ou le but de cela. Ecoute, je vais créer une action pour approbation sur une action pour éjecter. Donc ça veut dire que le bouton approuvé qu'il va appeler là-bas. C' est l'action. Approuver la demande le. Ensuite, l'option de rejet va appeler l'ordre d'action. Bouton d'éjection. Désolé. Va appeler la demande de rejet d'action sur. Alors nous savons tous que la bataille est juste de retour à l'index de toute façon. Donc, avec ce qui est fait sur, les deux accepteront le i D hors de la quête du levier. Donc, nous savons que dans cette preuve, nous approuvons la quête à levier avec ce que je d. dans le rejet rejetais le congé. Demandé que je d. Donc je vais juste passer à ma manette rapidement sur alors. Je vais orteil créer mon résultat d'action sur celui-ci va être appelé demande d'approbation sur sa prise sur int avec un I D accolades ouvertes et fermées sur. Alors je peux faire Skopje tout ce Onda faire en remorque. Rejeter les demandes comestibles côte à côte. Maintenant, allons travailler ou que se passe-t-il quand on frappe ? Approuver ce que nous devons faire en premier Ces récupéré une demande de congé qui est sur le point d'être réprouvée approuvée. Désolé. Donc, je vais juste aller aux pieds. Utilisez cette ligne encore une fois, et je vais juste les construire une sorte de simultané, parce que dans les deux cas, je dois retirer la demande de congé qui peut être approuvée. Droit ? Donc je récupère cette demande de congé. Je n'ai pas besoin de serpiler dans cette situation car il n'y a pas d'opération en tant qu' éléments visuels , donc il n'y a pas besoin d'un modèle de vue. J' ai donc récupéré la classe de données. Ensuite, je modifie sur. Puis je me mets à jour. Donc c'est l'heure que je modifie. Lorsque quelqu'un approuve la demande de congé, les éléments qui doivent être modifiés seraient sur Anderson pour dire que la demande de congé n'est pas activée. Ensuite, l'approbation nous commence le jour. J' oublie sur quel champ il serait. Je sais juste, remarquant que j'appelle le mauvais rapport. Bon, donc si vous atteignez ce feu, je suis sûr que vous êtes très déçus de moi, mais j'appelle le mauvais rapport. Je ne sais pas pourquoi je suis si fasciné par l'idée. Allocations de congés, mais je m'occupe des demandes de congés. Alors j'ai laissé Allah se glisser. Oh, et ça s'appelle dans l'allocation des congés, c'est pourquoi je ne trouve pas que les champs sont diffus que je m'attends ici. Laisse-moi juste réparer mes torts. J' utilise le repos de demande de congé. J' espère que vous avez attrapé ça sur Euro. Si tu l'as fait, alors tu peux me frapper et me faire savoir que tu l'as fait. Et puis nous pouvons former une forme de récompense pour vos compétences de réflexion rapide et de débogage ici . Mais laissez-moi juste rencontrer ces corrections. Donc je reçois le rapport des demandes de congé. Donc, si je débogue, um, la solution plus tôt que nous aurions eu cette erreur parce que alors le mappage aurait échoué. Droit ? Donc le pays des images je suis désolé à ce sujet. Donc laissez le rapport de demande. La demande aurait demandé un rapport. Donc, dans une demande de congé Maintenant, je vois ce que je devrais voir. Je vais changer le statut approuvé si vrai, je peux soulager la demande à nouveau alors. Cette fois, je suis en train de changer l'approuvé par I d. pour être l'utilisateur qui est verrouillé en ce moment. Je voudrais quelque chose de similaire ont été récupérés. Qui est l'amour en tant que tel ? Le fait est que vous pouvez avoir plusieurs utilisateurs admin, et si elle va utiliser une organisation. Ils vont avoir plusieurs personnes des RH qui peuvent approuver et refuser un congé ou s'il y a, ah, système plus complexe où c'est un superviseur qui peut être n'importe qui à tout moment. En tirant ce scénario plus compliqué. Le fait est que nous voulons savoir qui fait l'approbation en fonction de la personne avec amour être et faire l'action, tout comme quand nous faisions la demande, non ? Donc, je vais juste récupérer la personne en utilisant un des bits de code précédents sur lesquels nous avons écrit. Je l'ai ici dans les aux ventesauxenchères. Je vais juste voir Richard là où ce truc est hors cour et ensuite on y retourne le jour. Je suis allé récupérer ça. Donc, je vais appeler cet utilisateur Savar sur. Laissez-moi juste pour que tout ce que nous tapons pour l'approbation soit fondamentalement retiré pour les rejetés. Donc, je vais juste faire avec approuvé et puis nous copions et modifions en conséquence. Donc, l'utilisateur que je serais ou l'approuvé par idee est utilisateur. C' est allumé. Ensuite, on aura I D pour ce champ. Ensuite, nous avons des demandes de congé la date Action sur ce n'est pas le moment. Pas de sens. C' est le moment où des mesures ont été prises. Aan den. Je ne suis pas sûr s'il y a autre chose à propos de la demande de congé que je dois modifier lorsqu'elle est approuvée ou rejetée. On sait que c'est approuvé. Nous avons fixé, qui est approuvé par le i. D. La date à laquelle il était action. Les demandes doivent être modifiées et elles laissent le type. Je crois que c'est tout. Donc, sachez que nous avons ces modifications à notre objet, hum, ou à notre record. Nous devons vraiment sauver correctement. Donc je vais dire si ou plutôt désolé, je suis allé voir un virus. Le succès est un soulignement égal des orteils. Laissez la réforme de la demande, ne pas faire cette erreur à nouveau point sur. Ensuite, nous voyons mise à jour appelant cette fonction de mise à jour sur. Alors je vais passer nos demandes de congé, modèle Mama. Et puis je dis, si est le succès ou si non, est le succès, puis rediriger leurs nombreuses façons orteil gérer élégamment ces erreurs. Mais j'utilise juste, vous savez, vous savez, un laissez-passer rapide et facile pour nous permettre d'être à la vitesse et d'ouvrir la course et d'avoir une idée de ce qui se passe sur le terrain, nous devons envelopper tout cela dans un essai. Attrapez quelqu'un pour vous voir essayer et puis appuyez deux fois. Et puis on obtient ce « Essayer, attraper, bloquer ». Assurez-vous que je tiens compte de l'exception à ce sujet. Je vais prendre toute l'opération que nous essayons et mettre à l'intérieur du bloc d'essai . Ensuite, je vais faire la prise là où je viens de rentrer. Rediriger l'index, puis j'ai supprimé le lancer. Donc, le lancer tue tout ce que vous savez, tout hors de l'opération de leur application, ce que vous ne voulez pas nécessairement tout le temps. Donc, je redirige orteil le discours de l'index, sinon le succès. Eh bien, je vais rediriger d'une façon ou d'une autre. Très bien, Donc si c'est réussi, ils veulent rediriger. Si ça ne réussit pas, je redirige. Donc je prends ce chèque pour si c'est réussi, et ensuite je dis juste, fais tout ça. Essaie tout ça. Rediriger, Même s'il y a une exception. Toujours rediriger. Le fait est que s'ils cliquent sur approuver et approuver, l'état ne change pas parce que quelque chose de champ en cours de route. Puis quand ils reviendront au discours de l'index, il sera toujours dans un état approuvé, à ce moment ils appelleront probablement I t. il sera toujours dans un état approuvé, à ce moment ils appelleront probablement I t. Mais cela nécessite un peu plus, vous savez, des opérations complexes se produisent. Toe être en mesure de nous indiquer dynamiquement si cette opération a été couronnée de succès, que nous ne sommes pas encore tout à fait prêts pour cela. Donc je suis juste en train de construire. Fais-le dessus. J' essaie de le garder aussi simple que possible, non ? Donc tout ce qu'on a fait en approuvant, je vais copier ça. Et puis je vais le faire en rejetant CNC. Plus tôt, je disais que nous pourrions avoir des actions qui font l'un ou l'autre scénario. Et c'est ce qu'on fait. Qui aurait pu avoir une action qui a fait une inondation ? Et les lecteurs ont une fonction que ceux-ci étaient l'Opération Bassin. Et si la vapeur pour que vous sachiez qu'elle est vraiment ouverte, c'est vraiment une question hors mise en œuvre. Donc tu veux le faire. Donc, dans cette situation est tous les mêmes, euh, données, sauf que Proust il était en remorquage chutes. Bon, donc, non, on a fait tout ça. Je veux enseigner cela pour un test, donc je vais ouvrir mon application en utilisant le lien du navigateur sur. Alors voyons ce que notre travail a donné. Très bien, Donc, nous avons déjà une demande de congé dans l'application dans un état en attente et est allé juste créer rapidement un autre Onda. Ensuite, nous pouvons le tester avec l'un ou l'autre scénario avec un approbation ou un rejet. C' est quelque chose qui a mal tourné. Je pense que c'est parce que je suis sur l'utilisateur admin. Laisse-moi essayer à nouveau. D' accord ? Donc, non, j'ai fait une autre demande de congé en utilisant un utilisateur régulier. Cet utilisateur admin a une allocation. Donc, il a eu la flèche. Quelque chose a mal tourné. Donc on teste à nouveau. Alors laissez les demandes. Je sais qu'on doit laisser des demandes, non ? Fabriqué par le même utilisable. C' est un événement d'urine. Voyons donc ce qui se passe sur quelqu'un pour cliquer sur révision, qui devrait charger les détails. Et je vois tous les détails. Donc je vois que nous sommes en train de voir cette demande de congé. La demande était la date de l'étendue dans le temps, Les employés demandeurs testent l'utilisateur sur. Donc vous voyez que certains de mes étiquettes ont encore besoin d'un peu de raffinement. Donc, nous pouvons simplement modifier le modèle de vue de sorte que ces étiquettes sont imprimées mieux art et le type de congé est vacances. Nous avons été approuvés rejet sur une bataille est boutons. Commençons par une liste de bouteilles. Ok, ça marche. Revenons sur ça. Essayons d'approuver alors cette lecture L'index d'Eric sont donc je ne veux pas qu'il redirige cette page d'index. Je voulais rediriger les demandes de congé, euh, euh indexer le discours, arts ou la demande de congé en victoire. Donc nous allons modifier ça. Je pense que j'avais spécifié le contrôleur. On y va. Donc, je spécifie qu'on devrait rentrer à la maison, laquelle je ne veux pas que quelqu'un l'enlève. Voir Read Eriks to Index. Ok, donc c'est un de ceux qui ne dit pas copier et coller la cour presque aveuglément. Mais heureusement, c'est notre propre code. Nous l'avons écrit pour que nous puissions le modifier comme vous le souhaitez. D' accord, donc j'ai fait ces modifications. Donc, nous voyons qu'ils ont approuvé les fonctionnalités fonctionnant et nous voyons ce contexte seulement ils peuvent voir lequel est approuvé. Donc non, ils savent qu'ils ont celui-là en attendant l'approbation de cette personne est la même utilisation. Demandant quelques jours Onda, nous ne voulons pas leur donner trop souvent. Alors je suis allé à rejeter celui-ci. Très bien, donc nous cliquons sur rejeter et puis cela devrait savoir rediriger qui sont la liste et nous voyons rejeté et rejeté ainsi aux demandes rejetées dans notre système. Et nous avons un zéro approuvé en attente. Donc, trois au total zéro en attendant un orteil approuvé le rejeter. C' est bien. Maintenant, une chose que nous n'avons pas faite pour l'approbation était de modifier l'affectation des employés parce que rappelez-vous qu'ils n'ont pas alloué de bureau Norm pour les vacances. Ils auraient jamais fait leurs demandes. Nous l'aurions approuvé. Mais nous n'avons pas mis dans la fonctionnalité pour effectivement répondre aux déductions de l' emplacement A pour la période. Donc je dois retourner dans mon contrôleur et ensuite nous allons aller à nos demandes d'approbation sur. Ensuite, nous avons encore du travail à faire. Maintenant, je peux utiliser mes rapports sur l'allocation des congés. Donc, après avoir récupéré la demande de congé, je dois récupérer les affectations des employés. Je vais dire que l'allocation est égale à laisser I emplacement et serait prudent cette fois amarré. Trouve, alors. Ici, j'ai trouvé par idée et trouver tout Mais alors j'ai besoin de trouver l'allocation par les employés. J' ai d numéro. Donc ce que je vais faire est de modifier le dépôt pour les allocations de congé sur Duh. Je l'ai en fait obtenir l'allocation par les employés. Je l'ai. Désolé pour ça. Donc j'ai juste oublié le nom de la fonction. Alors écoutons orteil annuler tout cela et il n'est pas trouvé, mais il obtient des allocations par les employés sur. Ensuite, je vais passer l'employé i D, que nous savons depuis le congé. Demander des objets provenant de notre base de données. Donc, il est des demandes de congé que les employés ou la demande de l'employé I d. Donc il y a des modèles. Quand, en faisant ça. Parfois, les gens aiment le référencer directement à partir de l'objet. Parfois, les gens mentent pour être une variable claire, donc ils disaient juste, Employé, I d. est tout ce que ça va de l'objet, et ensuite ils utilisent cette variable pour faire réellement ces tâches secondaires, droit ? Donc je veux dire, c'est un modèle différent. Tu fais celui avec qui tu es à l'aise. Je pense qu'il semble plus propre lorsque vous faites la variable, puis vous faites vos tâches avec la variable au lieu de référencer la propriété et les objets au fil du temps. Mais c'est très bien. Donc, sachez que nous avons l'emplacement ah ou bien, en fait, nous avons besoin d'une allocation pour les employés. Il s'agit d'allocations pour l'employeur. Nous avons réellement besoin de l'allocation de particules pour le type de feuille. Il y a donc ici obtenir des allocations par employés et type de congé. Donc, nous avons pensé à tout déjà si par les employés et le type. Donc celui-ci nécessite deux paramètres, ce qui serait l'employé I d. Sur. Ce n'est pas très explicite. Donc nous devons revenir en arrière et réfracteur ça donc c'est très explicite. Et on sait qu'on a affaire à l'employé. D' accord, alors on rencontre ces changements. Si je le fais dans l'interface, dois le faire dans le dépôt. Je veux dire ces modifications pendant que j'enseigne parce que je veux te montrer que tu écris le truc. Ça marche bien. Mais dans un scénario différent, des alliés que tout ce que vous auriez pu être, vous savez, un peu plus explicite ou un peu plus propre dans votre cour, et puis ils finiront par apporter ces changements au fur et à mesure que vous allez. Donc, vous savez que vous devez être flexible, et c'est bon quand vous comprenez ce que vous faites, Ce qui a été fait sur pourquoi vous devez le changer. Ces choses vous rendront imparable. Donc non, nous avons fait ces ajustements sur Alors je peux procéder aussi en étant des idées plus explicites des employés de givrage . Quelqu' un d'autre veut venir regarder mon noyau. Ils n'auraient pas à deviner de quelle idée je parle parce que c'est déjà un peu de crachement pour eux. Donc, je passe dans l'employé, je d, mais aussi besoin des types de feuilles. Je veux dire que le type de congé est égal à on. Ensuite, récupérez ce type de congé I d de l'objet de requête de congé, mais ils partent. Demandez que l'idée de type de congé sur l'employé ASM I d type de congé virgule et je devrais vraiment dire congé type I D. Ici. D' accord. Laissez le type I d. Bien. Alors sachez que nous avons l'allocation que cet employé a pour la demande qui est faite. Je peux procéder à voir que leur allocation devrait savoir Être le nombre de jours de congé dans la demande moins le Désolé, le nombre de ces dans leur allocation à moins que le nombre de ces dans leur demande afin que je puisse voir un emplacement sur qui est nombre de jours de congé n'est pas égal à toe la même valeur, qui est le nombre de jours de congé moins les demandes de congé points sur, puis. Je pense que j'ai un champ qui dit le nombre de jours de congé demandé. Je ne le fais pas. Donc, la demande de congé elle-même ne suit pas le nombre de jours de congé demandés. Il connaît juste la date de début à la fin. Ce qui veut dire que je vais devoir faire un mois d'orteil comprendre cette partie, non ? Donc, je peux le déterminer dynamiquement. Et j'utiliserai le code que j'ai écrit précédemment lors de la création de la demande de congé. Donc, plus tôt, nous aurions fait quelque chose où nous avons enlevé ce chiffre. Ceux-ci ont demandé et nous avons fait les calculs. Je peux le répéter. Maintenant, cette copie est activée. Retourne à mon action. Donc Vier D est demandé. Donc, vous voyez, nous avons quelques petites opérations. C' est après le départ, donc nous avons les jours demandés. Alors ce sera partir. Demandez cela et un peu moins. La demande ne commence pas la dette. Très bien, donc une fois de plus, vous auriez pu les mettre dans leurs propres variables et ensuite faire l'opération en utilisant les variables. Tu sais, c'est à toi de décider. Je sais que j'ai le nombre de jours demandé que la Normale allouée sera ce nombre. Mon nez là-bas est demandé alors, après avoir fait cet ajustement à ce champ, est-ce que cette année la valeur est en vigueur ? Ensuite, il y a un moyen plus facile de le faire. J' aurais pu dire que moins est égal à. Ensuite, ceux-ci ont demandé. Donc, c'est un bon bien que nous que c Sharp Alozie pour écrire cette déclaration où il est fondamentalement dire que ce qu'il dit moins égal, Cela implique juste que quelle que soit la valeur est de ce côté moins cette valeur sur, alors quel que soit l'accueil est stocké dans cette valeur. C' est donc une autre façon d'écrire cette déclaration. Donc ce que je vais faire, c'est l'écrire dans les deux sens. Donc, si vous êtes un débutant verrait forte, alors vous ne serez peut-être pas familier avec cette technique, donc c'est très bien. Donc c'est une autre façon que vous pourriez jamais dans ce fil et voir le studio visuel est même venu, vous savez, genre de suggérer qu'il serait jamais de cette façon, accord, donc après avoir fait ce calcul et supprimé ou réduire le nombre de jours de congé qui ne sont pas disponibles par le nombre de off est demandé sur, puis assis tous les drapeaux sur, puis mettre à jour la demande de congé, Je vais juste dire quelqu'un mis à jour pour effectivement décoller cette année parce que je suis ne pas l' utiliser. Donc, parfois, vous ne voulez pas déclarer disponible. Vous n'utilisez pas dans cette situation. Je n'ai pas besoin de cette variable. Donc, je fais la mise à jour du rapport de demande de congé, et puis je vais laisser un emplacement pas optimiste parce que je viens d'apporter des modifications à l' enregistrement d'allocation. Aussi alors l'entité ou l'objet et le passage est l'allocation. Et puis, une fois que tout est fait, puis nous redirigeons l'index du magasin hors cours. Si elle est rejetée, puis avec votre citadelle tombe et rien ne change pour leurs allocations et supprimer cette variable inutilisée aussi sur, alors nous pouvons essayer à nouveau afin que nous puissions essayer avec un employé qui fera une demande de congé. Et puis nous voyons le changement dans l'allocation après qu'il est approuvé sont ici je suis avec l' utilisateur créant la quête de levier pour les vacances. Rappelez-vous que les vacances par défaut, au moins de mon côté, a été fixé à 15 jours, si utilisé une valeur différente que vous avez juste besoin d'être fatigué hors de la vallée que vous avez utilisé. Mais je vais demander du 26 janvier au 30 h. 2016 Dimanche. Permettez-moi de le rendre un peu plus réaliste. Donc, du 27 au 30, c'est environ trois jours. Je demande la permission, d' accord, accord, et cela a été couronné de succès. Donc il suffit de vous connecter en tant qu'utilisateur admin rapidement, et je vois juste les mots de passe. Je n'ai pas à re taper à chaque fois. Non, revenons à l'allocation des congés. Il suffit de vérifier ou cela n'affiche pas les allocations de congés. Désolé d'avoir perdu mes repères. Ça devrait aller les employés sur. Alors je peux voir les détails pour que cet employé ait 15 jours de congé. Gardons ça à l'esprit. C' est le nombre qu'ils ont attribué. Alors je vais laisser des demandes pour gérer Noah. Tu as une nouvelle critique, Andi. Donc, une chose que je voudrais probablement faire est de commander les demandes de congé dans l'ordre hors du rythme demandé afin que les demandes les plus récentes flottent vers le haut. Droit ? Donc je vais commander ce qui est plus tard, ou je vais vous défier de le faire, ordonnant la réorganisation dans le contrôle. Oh, cela a ralenti dans ces données, mais je vais savoir juste aller à l'examen et puis je vais commencer à approuver. Alors sachez que c'est approuvé. Andi, je sais qu'il est approuvé pour l'utilisateur de la justice, qui ste à B t. Ce n'est pas, je suppose que ce sont des accumulateurs que j'ai utilisés, mais je vais regarder le profil de l'utilisateur de test. Je regarde les détails et non, je vois que les congés annuels ne sont pas réduits. Donc, la prochaine fois qu'ils font une demande de congé, ils ont jusqu'à 12 jours à partir desquels ils me demandent cette demande. Donc, si je tente à nouveau cette demande, oubliez pas que nous mettons dans une certaine validation que les demandes ne devraient jamais dépasser l' allocation. Quelqu' un pour essayer de demander le même congé annuel avec le même utilisateur. Mais cette fois, je vais orteil appliquer pour un mois d'une valeur hors vacances et de choisir d'être il est que clairement dépasser 12. Ces demandes s'arrêtent. Ensuite, nous obtenons notre flèche. Vous n'avez pas suffisamment de jours pour cette demande. Très bien, c'est beau. Jusqu' à présent, je veux faire un changement de plus sur ce qui est orteil. Supprimez ce bouton de révision. En fait, je vais supprimer la capacité de Laissez-moi revenir à laisser des demandes. Je vais supprimer la possibilité pour l'utilisateur admin de changer l'état de la demande de congé . Donc tu sais ce que c'est, même si c'est approuvé ? Sont éjectés. Lorsqu' ils cliquent sur Review, ils ont toujours accès aux trois boutons. Eh bien, plus important encore, ils ont toujours accès aux boutons d'approbation sous rejet, que je ne veux pas revenir dans ma vue de détails dans la section ou dans ce Dave qui charge ces boutons. Je peux juste mettre sur si les déclarations que je vais dire agir, signer si et ensuite appeler sur le modèle sur puis dit que approuvé est équivalent à savoir. Donc, la seule fois qu'ils devraient pouvoir approuver ou rejeter est lorsque le drapeau approuvé est dans un état non, ce qui signifie qu'il doit être dit vrai ou faux. Ensuite, j'accepterai le HTML associé à ces boutons affichés. Sinon, il était seulement afficher de retour à louer si ou ne sera pas. Sinon. Si elle est dans un état non, alors vous afficherez ceci, mais il affichera toujours la bataille est née, donc c'est un bon moyen rapide de sortir. Contrôler quoi ? L' utilisateur admin, ce que tout le monde est capable de faire en fonction de certaines conditions et règles commerciales. Donc, avec cette modification faite, si je retourne à ce discours, dont une demande de congé déjà approuvée et que je rafraîchis, alors tout ce qu'ils verront est le bouton de la liste de bataille afin qu'ils ne voient pas l'approbation et le rejet parce que c'est déjà dans un autre état. Mais et c'est presque une source de préoccupation. Donc une autre indication visuelle que nous pouvons mettre en est de mettre comme une petite section en haut qui montre est son attente. Est-ce déjà approuvé ? Parce qu'ils viennent ici ? Ils peuvent être l'état oublié dans lequel il était quand ils ont cliqué sur le bouton de révision. Tu veux leur donner une autre indication visuelle ? Très bien, donc avec ça à l'esprit, j'avais fait quelques ajustements aux interférences, et je vais vous expliquer exactement ce que j'ai fait. Je l'ai fait hors caméra, mais je veux vous défier des spots que la vidéo a reproduits, mais je vais vous expliquer exactement ce qui se passe de toute façon. Donc, j'ai mis dans une déclaration en haut des détails que vous avez dit, si le modèle n'est pas égal à Oprah voix équivalent à savoir, Désolé, similaire à celui que je n'ai pas ici avec les boutons. Donc, je vois si c'est interne égal, ce qui signifie que c'est dans un état en attente. Ensuite, affichez chez chez Dave avec des classes bootstrap. Alerte sur alerte tiret d'alerte Vous pouvez toujours aller au booster de la documentation et regarder la documentation sur les alertes. Très bien, en le soulevant rapidement, on est allés aux pieds. Obtenez les composants bootstrap dot com et les alertes ici. C' est l'exemple que j'ai sélectionné. Donc ce sont des alertes simples où, vous savez que vous pouvez juste imprimer comme des dons colorés ou des conteneurs colorés avec du texte, et ils ont les différentes couleurs, le même succès secondaire primaire, toutes les couleurs, palettes que vous avez disponibles pour les boutons et tout le reste. Ensuite, vous l'avez aussi pour l'alerte. Bon, donc c'est tout ce que j'ai fait. Je viens de dire, Si c'est dans un état non, alors donnez-moi une alerte qui ressemble à un avertissement. Donc c'est une alerte orange. Donne-moi un en-tête. C' est une approbation de dépenses, et c'est un besoin de remorquage, puis un pita qui imprime l'étiquette, puis le nom de la personne, puis une petite ligne. C' est HR Tug allumé, puis l'écran pour le D demandé. Donc ce type, la même information que j'avais dans l'en-tête. Au début, je le mets juste à l'intérieur. Donnez avec un peu d'art de coloriage sur, alors je fais le contexte. Avoi 43. Module de demande des employés - Des points de demande de demande pour les employés: Hé, les gars, bienvenue pour cette leçon. J' ai dit que nous mettrions en place l'écran que nos employés voient quand ils veulent regarder leurs allocations et leurs demandes de congés à ce jour sur dso J'ai déjà construit toute cette interface et toutes les fonctionnalités. J' en ai laissé pour toi, mais je te montre ce qu'on va voir à la Cour quatre. J' en ai laissé pour toi, Je faisais systématiquement passer à travers tout le code qui a été écrit pour soutenir ce qui est affiché en ce moment. Maintenant, je l'ai fait de cette façon pour deux raisons. Premièrement, je veux vous défier d'écrire le code vous-même avec le moins de conseils de ma part possible, parce que c'est là que vous allez vraiment briller. Je pense aussi que c'est relativement simple et cela devrait s'avérer assez difficile pour si vous êtes un débutant. Mais ça devrait être amusant pour vous d'essayer et par vous-même. Quoi qu'il en soit, je vais marcher dans la cour qui a été écrite le jour. Vous pouvez mettre la vidéo en pause aux différentes périodes et copier la cour comme vous le souhaitez maintenant. La première modification sur. Eh bien, je veux dire aux modifications que Leo Ph. Mais le 1er 1 dans le but de cette écoute, c'est que j'ai ajouté le lien de navigation orteil notre nouvelle action, qui est mon congé. Donc, je viens d'ajouter un nouvel élément jamais sur le contrôleur de consommation comme Acri demande de congé. Mais cette fois, l'action est mon congé sur le texte est mon congé. L' autre ajustement au milieu est que je change le verbe ege pour les demandes de congé abandonnées pour dire les demandes de congé à la place, qui correspond plus à ce que nous avons réellement. Nous avons donc notre lien de navigation vers notre Miley Fitch. Andi, j'aurais déjà été aimé. Donc, le fait est que vous êtes seulement en mesure d'obtenir ce journal de peur incendie étant parce rappelez-vous que cela aurait autorisé l'ensemble du contrôleur. Et puis une fois que vous êtes connecté, vous pouvez cliquer sur mon congé. Ensuite, nous déterminons contextuellement qui vous êtes et ne vous montrons que vos informations. Pas hors cours. Pour que de telles informations soient affichées, nous devions créer un modèle de vue qui allait être capable de stocker les données sur, puis de les rendre à l'écran. Donc, je vais vous amener au modèle de vue que j'ai créé, donc j' ai créé une nouvelle classe à l'intérieur des demandes de congé. VM sur celui-ci est appelé congé des employés. Affichage de la demande. C' est un multiple, mais c'est vraiment pour ça. Il s'agit d'une vue de demande de congé, modèle de vue pour les employés juste sur puis à l'intérieur de ce modèle de vue. J' ai une liste des allocations de congés et j'ai une liste des demandes de congés. D' accord, pour que vous puissiez le voir. C' est éteint. Ensuite, c'est notre nouvelle action appelée Mes feuilles. Donc, à l'intérieur du contrôleur de demande de congé, j'ai créé une nouvelle action appelée My Leave on. Tout ce que nous faisons vraiment est de déterminer qui est connecté, et nous l'avons déjà fait auparavant. Donc, je reçois les employés ou l'utilisateur qui est actuellement aimé être sur. Ensuite, je vois bien, je viens de stocker l'employé I D, que j'ai ensuite utilisé pour récupérer les allocations de congé rapport, obtenir des allocations par les employés avec les employés que j'ai sur. Ensuite, je fais la même chose pour les demandes de congé. Le rapport Demande de congé reçoit des demandes approfondies par les employés, qui n'étaient pas là auparavant. Non. Donc, afin d'obtenir les demandes de congé pour l'employé en question sont les employés dont le saut demandé Certainement veulent revenir spécifiquement. Ce que j'ai fait était d'aller à mon interface pour un dépôt de demande de congé et de créer une nouvelle fonction . Je collecte Lee demande obtenir des demandes de congé par les employés acceptant un périmètre de chaîne hors employé employé I D. On. Ensuite, je l'ai implémenté dans la classe de référentiel réelle sur. Tout ce qu'il fait, c'est juste faire carrière prête et la même carrière que la découverte. Aussi, c'est à peu près de le voir trouver toute carrière. Donc, en fait, j'aurais pu juste écrire ça comme trouver tout ça où ? Donc, laissez-moi juste réécrire que trouver tout ce qui est fondamentalement retourner toutes ces données Quoi qu'il en soit , alors je dis Docked étaient alors le point où non est juste filtrer sur l' employé demandeur je d être égal à l'idée qu'il reçoit via le paramètre. Et donc ce qu'il fait est de retourner toutes les demandes de congé que cet employé en particulier sur plus précisément la personne a été autorisé à jour bin toutes les demandes qu'ils ont jamais rencontrées. La robe latérale a fait cet ajustement à mon cordon. Tu peux enlever ça. Non. Après jamais traité sur les allocations et toutes les demandes hors. Ensuite, je vais de l'avant et je fais la cartographie. Donc, je mappe le que je crée. Jamais croire modèle d'allocation des employés. Désolé, je cartographie orteil une liste hors. Laissez la VM d'allocation passer dans l'objet en provenance ou la requête de données sur. Je fais une chose similaire pour les demandes de congé. Ensuite, je charge le modèle afin que je crée une variable pour le modèle ou un objet hors type employés quitter la vue de demande B m sur ce, je transmets les allocations de congé sur em, en passant les demandes de congé sur. Ensuite, je retourne la vue avec le modèle No, pour créer la vue. Ce que j'ai fait c'est que j'ai droit Voir comme d'habitude Cliquez sur Ajouter sur. Ensuite, j'ai chargé un modèle de liste, mais dans le passé, vous avez vu ceci où nous avons un modèle personnalisé sur. Nous savons que si elles propriétés dans ce modèle ne sont pas les propriétés simples que rien n' obtiendra sera réellement rendu à l'écran pour ce modèle. Donc, dans ce cas, nous devons classes types. Rien ne serait vraiment rendu. Donc le genre d'oncle de la cour trompe le système. J' utilise la classe de modèle, off type leave request VM. Donc, c'est laisser la VM de demande sur. Ensuite, j'ai ajouté cette vue sur puis la vue qui a été ajoutée. Je peux distraire. Nous pouvons aller voir qu'il nous aurait donné une table de données ou une liste de table. Avec tout le levier Quest VM se sent comme nous savons que le modèle de liste fait. Donc, alors je change le modèle de l'innombrable Off type de demande de congé VM toe mon nouveau modèle de vue , qui est les employés quittent la demande de vue VM, puis pour la table. J' ai changé toutes les étiquettes parce que je suis sûr que nous nous souvenons que lorsque vous le faites comme ça, les étiquettes cesseront d'être générées ou le code généré commencera à donner à l'ère ciders hardcore que les titres à la place. Ensuite, je me souviens que dans les quatre, il était pour chaque élément dans le modèle, je suis Gina cet orteil pour chaque élément dans les demandes de feuille de point de modèle. Donc ce sont les en-têtes. Et bien sûr, je me suis assuré de mettre mes données i d pour tbl afin que cette table ressemble à la table de données que nous avons appris à connaître et à aimer. Donc ce sont les en-têtes de ma table et ensuite ce sont les colonnes sur. Ensuite, pour les colonnes, j'ai retenu avec le correspondant à la tête. Aussi laisser du temps beaucoup nous laisser type. Ce nom a démarré Muchas pour y mettre fin à l'état d'approbation demandé. Je réutilise l'instruction de plus Previ ous vue admin. Donc, je viens de dire si elle est approuvée et montrer le succès si ce n'est pas une brochure rejetée Andi sur Sinon montrer en fonction de budge sur. Après tout ça, j'ai une action à l'intérieur de cette action frappeurs. J' ai mis quelque chose là. C' est le cancer. Le cancer demande parce que c'est la seule action que je veux qu'un employé puisse effectuer sur sa propre demande de congé. Droit ? Vous avez fait la demande. Vous pouvez l'annuler. Um, ouais. Je veux dire, même si c'est déjà approuvé, il n'est toujours pas pris, donc vous pouvez l'annuler maintenant. Je vous mets au défi de mettre cette fonctionnalité car vous devez faire des échanges de données . Vous allez devoir les allo pour cliquer sur ce bouton, les écrire à une action appelée Cancer Request, qui prend le I d pour l'élément de demande sur. Ensuite, vous allez devoir écrire une logique pour voir que la flug qui reste avec notre pas il est annuler. Donc, cela signifie que vous allez devoir faire une base de données modifiée pour inclure une forme de drapeau qui dit que c'est une requête annulée ne le sont pas. Ensuite, vous devez changer ce drapeau sur Oui, il est annulé le. Ensuite, vous allez devoir faire quelques Musto re ajouter ces jours alloués, aussi. L' allocation d'origine. Tout droit sur. Ensuite, bien sûr, vous les ajoutez seulement si la vue si le congé a été approuvé. Donc je vous donne juste un scénario où vous allez devoir faire votre propre affaire. Les règles sont en attente. L' annulation peut se produire dans le système. , Si quelqu'un a fait une demande, elle n'a pas été approuvée, elle est toujours en attente, alors évidemment, ils ne devraient pas revenir chez Edie de l'allocation si elle a été approuvée, cela signifie que l'allocation a été déduite, et donc, s'ils le peuvent, ils doivent récupérer leurs jours. La logique difficile est que si elle est rejetée et que vous ne verrez probablement pas les annulations en ce moment , la seule logique que j'ai pour déterminer les circonstances dans lesquelles ils verront l'option de la demande de cancer est que je vois si le qui l'a démarré ou si la date de début de cette demande de congé est inférieure à la journée qui ne signifie pas que vous n'avez pas encore commencé à quitter . Bon, donc le début a fait Ondas. J' explique que je vois que j'ai une erreur de logique ici. Donc, la date de début, si elle est plus grande que le temps ne signifie pas que se trouve dans le futur, ce qui signifie que vous n'avez pas commencé. Il a encore si voir, c'est pourquoi selon ensemble est bon. Donc je dois changer ça. Si la date de début est supérieure à non, alors je suis capable d'annuler. Cela signifie que le jour où il n'est pas encore venu. Et puis, comme je l'ai dit, si elle est rejetée, alors je n'ai pas besoin de les laisser au Kansas, comprendre d'utiliser cette opportunité et à cette ligne, ou cela a mordu la logique et de voir Andi ou plutôt, Je vais dire sont donc Il est soit que la date de début n'est pas encore venu ou points d'article approuvé est équivalent à chutes sur l'autre circonstance et de voir un autre domaine logique, je dois dire, si elle est égale à vrai, non ? Donc, si elle est approuvée, alors je peux annuler si elle n'a pas commencé que je peux annuler. Si la date de début est déjà arrivée, alors nous avons orteil. Um, on veut que l'employé l'annule. Si elle est rejetée, nous ne les autoriserons pas à annuler. Ça n'a pas de sens à ce stade. Donc, une logique que j'utilise pour montrer la demande d'annulation ne le sont pas. Encore une fois, je vais à Bonjour, vous deux, ou je vous mets au défi de créer l'action pour l'annulation. Non, c'est pour la table de données. Au dessus de la table de données. J' ai une autre section où je montre l'allocation des congés. J' ai donc le titre, les allocations IV, et puis j'utilise une classe bootstrap appelée Jumbotron pour cette Div. C' est pourquoi lui donner ce dos gris grandi regardant, euh, effet sur, puis à l'intérieur, j'utilise des cartes similaires qui auraient été utilisées. En fait, je réutilise ce tribunal depuis le panneau d'administration. La seule chose que j'ai supprimée était la possibilité de modifier l'allocation. Enfin, j'ai modifié l'action de création. Sont l'action de création de poste dans notre contrôleur, où après qu'un employé a créé la demande de congé, rappelez-vous que nous naviguions ou littéraire Derek directement à la page d'accueil de l' application entière, qui Je ne voulais pas. Donc, au lieu de cela, je le laisse rediriger vers mon congé. Donc, une fois qu'ils l'ont soumis avec succès, puis il revient à l'adhérent, leur allocation actuelle ainsi que leur noyau, et déclenche les demandes Lee qui ne sont pas en attente. Très bien, servir le discours une fois de plus ici est que ma section de localisation avec le diplôme Jumbotron mais gémissait avec nos allocations de congé énumérées sur, puis sur les dossiers de congé montrant tous les congés. Pris au courant. En regardant cet écran, j'ai vu que nous avons une autre ère logique qui se passe ici, Donc, la date de début est déjà passée. Très bien, donc ceci est fait le 12 du général, qui signifie que notre demande de congé pour qu'ils commencent le premier qui se sont déjà effondrés à l'époque. C' est dans un état approuvé, mais alors l'option de demande de cancer est toujours là. Donc nous sommes allés après avoir trouvé son orteil de déclaration. Assurez-vous que nous ne sommes pas écrasants lorsque notre dollar parce que je l'ai vu si elle est approuvée, puis a montré la demande de cancer ou si elle est passée un début. C' est à celui-là. Ces conditions est d'évaluer à vrai et donc ont été obtenir les boutons. Donc nous avons juste besoin de corriger notre déclaration pour nous assurer que nous n'avons pas ce bouton quelqu'un pour le réparer, et je vous mets encore une fois au défi de le réparer. Ce n'est vraiment pas si difficile. Vous pouvez juste utiliser quelques permutations et crapauds commencé, mais je vais le faire réparer. Donc, avec cela, nous avons fini avec ce modèle à peu près sur la prochaine leçon va juste être un examen. Onda Check in pour obtenir le hub entre non et le poulet pour se lever. Je vous mets au défi de mettre en œuvre la fonctionnalité Cancer Quest ainsi que la section commentaires. Demandes de congé de quatre heures. Un peu plus de contexte autour dans les commentaires est que sur les employés, lors de la soumission Oliver Question, être en mesure d'écrire dans un commentaire pour dire, Vous savez, j'ai besoin de ce temps pour faire X y Z sur une autre section pour le rejet où l'administrateur ou celui qui fait le rejet, um devrait être en mesure de voir, C'est pourquoi je rejette la demande. Encore une fois, ces deux activités nécessitent quelques modifications de base de données. Certaines mises à jour du modèle de vue sur certaines mises à jour de vue sur Je suis impatient de voir que vous le faites vous-même. N' hésitez pas à me contacter. Si vous avez besoin de conseils supplémentaires, je vais le faire hors caméra, et ensuite on pourra juste revoir ces changements dans la prochaine leçon. 44. Réviser et ajouter des modifications à GitHub: Hé, les gars, bienvenue dans la dernière vidéo de ce modèle ici. Nous allons juste revoir tout le mot que nous avons mis et le poulet dans nos changements pour se lever maintenant. Un rappel rapide de ce qu'on a fait. Nous avons commencé par mettre en place notre utilisation administrative pour les congés. Mais d'après ce qu'il y a à l'écran, je vous explique exactement ce qu'on a fait. Nous avons mis en place le formulaire de demande de congé de création pour nos employés. Andi, j'ai fait quelques modifications depuis la dernière fois qu'on est à la caméra. A l'origine, j'avais les formes Dave à dire orteil appeler MB. Frappe le. Je l'ai étendu à 12. Donc pas de remplissages de gauche à droite de l'ensemble du conteneur. Aussi a battu et bloqué pour les deux requêtes. Laissez-en un au dos du bouton de liste activé. Je nous ai fait comme changement à l'objet de données où j'ai inclus un champ pour commencé donc j' aurais modifié la classe de données et inclus une colonne de chaîne appelée Request Comments. C' est comme ça que j'appelle ça. Vous pouvez l'appeler comme vous voulez si vous choisissez de l'inclure dans le vôtre aussi. J' ai donc inclus ce champ dans la classe de données et hors cours. Si je le mets dans la classe de données, je le mets aussi dans le modèle de vue. Je lui aurais également donné le nom d'affichage Employé a commencé sur Die. Donnez-lui un musulman sur 300 sur le terrain que j'ai inclus était un pour annulé. Donc, je vous ai défié orteil mis dans la fonctionnalité d'annulation que j'ai mis dans un champ qui est un intimidateur, et quatre annulé qui hors cours, lorsque l'utilisateur est ou les employés faisant leur demande de congé serait réglé les chutes par défaut. Et dans l'action de demande de chancelier, que j'ai créée dans le contrôleur de demande de congé, je viens de dire Donnez-moi l'idée de la demande de congé sur définir ce drapeau à true sur Ensuite, exécutez la mise à jour sur, puis revenez à mon partir. Donc, c'est fondamentalement la fonction pour le hasard dans la requête. Je n'ai apporté aucune modification à l'action de création sur la façon dont j'ai construit cet objet, car vraiment , si l'objet est créé, il sera par défaut tombe. Cependant, si vous vous sentez plus à l'aise, vous pouvez indiquer explicitement que annuler ces égaux ou faux. Je n'ai cependantpas cependant inclus les commentaires dans le bâtiment de cet objet. Donc, si je vais au formulaire qui est créé qui est sur ma vue de création au lieu du dossier de demande de congé au lieu de vues, alors je vois que j'ai le champ qui est une zone de texte sur Ceci est un SP pour les commentaires de requête . Donc ça ressemble à tous les autres ah, forme de rubis que nous avons eu. Sauf que je n'utilise pas l'entrée, mais je vois une zone de texte définissant l'impression que c'est pour lui donner ce contrôle de formulaire. Donc, une fois que nous cliquons sur soumettre, alors ce bit off data, tout ce qui est entré ici sera également soumis pour création. Donc, cela signifie que je dois savoir inclure ces données à l'intérieur de l'objet que je construis toe créer une nouvelle demande de congé afin que nous puissions juste le faire ensemble. Où je vois des commentaires de requête dans l'objet est des points de modèle égaux orteil demandent des commentaires, et là nous allons. Donc, lorsque nous soumettons une nouvelle demande de congé , cette demande de congé sera générée avec du contenu pour les commentaires. Si c'est là, je ne l'ai pas rendu obligatoire. Peut-être qu'ils veulent mettre une venue. Peut-être qu'ils ne le font pas. Donc ce n'est pas un champ obligatoire maintenant jusqu'à mon congé. J' ai fait quelques ajustements. J' ai ajouté une colonne et j'ai mis la demande de chœur de titre sur. Ensuite, j'ai ajouté une autre colonne à la section de quatre boucles ou la pour chaque section de boucle où bien une j'ai ajouté, et une nouvelle condition aux instructions qui nous donnent les différents bouges pour le statut. ai donc ajouté un pour annulé si annulé. Donc annulés dans ce domaine sont nos lingots. Ce n'est pas un lingot bien informé, donc je peux juste voir si annulé ou si non annulé. Je n'ai pas à l'installer ou à prendre en considération. Ah, possible sans valeur. Donc, je dis que si l'élément a un état annulé signifiant annuler ceux-ci dans un état de valeur réelle, alors je veux imprimer le budge secondaire avec la classe secondaire. Désolé alors je vois le mot annulé sur. Ensuite, je viens de mettre autre en face de la déclaration if que nous avions à l'origine. Donc maintenant c'est notre nouveau bloc If sur puis pour le bouton annulé, voyons. Chacun me sont contactés et m'a dit que la façon dont j'avais les règles d'affaires ont été engagées. J' ai dû faire un changement. Donc tout ce que je vérifie en ce moment, c'est si la demande de congé n'est pas annulée à la date de début n'est pas encore arrivée, ce qui signifie que s'ils l'ont approuvée, alors nous ne pouvons pas le hasard à nouveau afin que les boutons d'annulation ne devraient pas apparaître si c'est ou si le pair, si ce n'est pas le cas, même si elle n'a pas été approuvée ou rejetée si elle est dépense aussi longtemps qu'elle a été adoptée, alors elle ne devrait pas être admissible à l'annulation. Donc, revenons sur ma page de congé, le sera supplémentaire le repère visuel supplémentaire est l'état désactivé annulé. Notez donc que cette date n'est pas encore venue. Mais je l'ai annulé. Et pour que ce bouton n'apparaisse plus. Mais si je fais une nouvelle demande de congé maintenant, alors cette demande de cancer arriverait. Non, je ne vais pas passer beaucoup de temps à écrire un tribunal. Vous pouvez mettre la vidéo en pause à différents points et copier le code source que vous voulez dire aider. Mais je veux que la Chine et vous l'écriviez vous-même. Non, ce que nous allons faire, c'est vérifier nos derniers changements pour se lever. Donc je vais juste aller dans ma solution. Experts en haut, hors de l'arborescence des fichiers. Ensuite, je vais faire un clic droit sur, puis Goto commit. Puis, après avoir cliqué, commet je tape de Mme So forte fougueuse la dactylographie et juste le mettre déjà sur. Ensuite, je pense que ce chariot et voir commettre tout et couler. Rappelez-vous que chaque père que vous auriez créé ou modifié serait inclus. Et si vous aviez un fichier avant et probablement le renommer ou le supprimer et que vous verrez avec un coup à travers un lion, ce qui signifie qu'il sera supprimé de la prochaine itération, votre source a marqué. Donc, comprenez, de commettre tout et couler. Et cela a été fait avec succès. Donc, je suis sur mon profil de ghetto et je regarde mon dépôt, et je vois qu'il y a quelques minutes à moi, le poulet avec succès sur je veux juste vous féliciter pour aller aussi loin. Nous avons fait un peu de travail. Tu as appris. C pointu. Vous avez appris le développement Web. Vous avez appris à utiliser Bootstrap Four Elements hôtel comprennent Jake Worry Um, vous je éléments à l'intérieur de votre manteau que vous avez fait un peu. Et tu devrais te donner une tapote sur le dos. Comme toujours, vous pouvez vous sentir libre de me tendre la main. Quelque chose ne grince pas avec vous sur, vous avez besoin d'aide supplémentaire dans l'accomplissement de ces tâches. De toute façon, s'il y avait des lacunes dans le code source comme vous savez ce que j'ai affiché à l'écran par rapport ce que nous avons fait ensemble, alors le code source vous sera fourni. Je fournis toujours les factures de guitare où vous pouvez voir cette version exacte du code source pour la leçon sur, puis vous serez en mesure de répliquer ce que vous devez faire. Comme toujours, je suis toujours là pour vous aider. 45. Aperçu de thème AdminLTE sur AdminLTE: Hé, les gars, bienvenue dans ce nouveau modèle où nous allons remodeler toute notre application. Maintenant à l'écran, j'ai Ah, le Lion avec qui nous avons travaillé pour savoir. C' est le Lion qui nous a été donné par défaut par notre structure de projet. Sur ce parfait, il fonctionne bien. Nous arrivons à mettre en liens de navigation, nous avons que les charges où nous avons que ces marges sur les côtés sur tout semble bon. Mais alors je veux dire, parfois je veux un peu plus posséder donc dans ce modèle sera changer sur ces charges à l'administrateur LTTE. Leo examinera également comment nous pouvons prendre en charge plusieurs mises en page, vous savez, vous savez, afin qu'une page puisse utiliser une mise en page. Sur une autre page est une charge maternelle ou tout. Ceux-ci utilisent une mise en page entièrement différente. Donc, nous allons passer de ce Sloat à quelque chose qui ressemble plus à ça qui est l' administrateur LTTE Leo Andi je veux dire, en ce moment, il semble très jouer. C' est très bien. Mais alors, comme vous pouvez le voir, l'écrou barre la gauche. Nous avons quelques icônes, donc chaque bouton nous avons ah DACA ble bar sur. Nous avons un gentil portier donc nous allons juste le changer pour que vous puissiez ajouter vos propres fusées éclairantes. Vous allez, mais je vais vous montrer les bases derrière changer ou apporter des changements majeurs à l'aspect et à la sensation hors de votre site. 46. Créer une nouvelle page de mise en page: Hé, les gars, bienvenue dans cette leçon. Nous allons revoir notre page de mise en page et observer les choses les plus importantes dont nous avons besoin pour faire attention lors de la création d'un nouveau pH Leo. Aucun examen exact du Littlepage existant ne devrait être un territoire familier. Nous pouvons le trouver à l'intérieur hors ou le dossier vues aller à partagé. Et puis nous avons notre mise en page littéralement nommé soulignement Liotta point CS html sur puis ce Leo pH et comprendre pour le disséquer. Tout d'abord, il est formé sur le haut de la structure HTML de base ou squelette, comme je l'appelle, où nous avons ou des balises HTML ou tête remorqueur ou temps de corps. Bon, donc tout tombe fondamentalement dans ce même HTML où nous sommes la déclaration du médecin en html, tête de tag, le corps sur DWI. Fermez chaque étiquette au fur et à mesure que nous allons. Cependant, vous pouvez voir qu'il y a beaucoup de choses entre chaque remorqueur, puis au-dessus même du type doc. Nous avons un cordon d'aspect C pointu. Donc, en haut de la page, nous avons toute notre dépendance est, donc nous avons besoin de la bibliothèque est être net cordon de l'identité. Nous devons également inclure notre espace de noms de données afin que nous puissions inclure notre connexion sur les modèles de gestionnaire d'utilisateurs pour notre mise en page. Et si vous vous souvenez, nous les avons utilisés pour certaines opérations. Donc, nous avons notre dépendance est ou C dépendance de bibliothèque forte est au sommet. Ensuite, nous commençons notre HTML régulier. Nous pouvons insérer dynamiquement des données. Donc, nous voyons ici où nous avons dit voir les données est égal au titre sur ou voir le titre des données sur. Ensuite, nous l'avons dérangé avec quel que soit le nom de l'application. Ensuite, si vous voulez en savoir plus sur ce titre de données de vue, si nous regardons un hors ou des vues et je vais juste aller à laisser l'allocation et regarder peut-être liste des employés. Lorsque nous avons ouvert ceci, vous voyez que nous définissons que le titre des données est égal à une certaine quantité, un peu de texte que cela prend qui ont été automatiquement généré à l'époque. Ce texte, combiné avec notre texte statique, est ce qui apparaît dans notre navigateur hitter. Donc, cela signifie que si je veux que les employés de la liste aient l'air plus convivial ou lisible, je pourrais juste nous mettre de l'espace là sur toutes les modifications que je rencontre cette chaîne, c'est orteil upended tout le titre qui est rendu à l'écran Donc c'est ce qui peut rendre votre titres dynamiques. Nous continuons également avec l'inclusion de tous les quatre stand. Elle était quelque part là avant que nous en ayons ajouté après. Donc, par défaut, vous avez un bouton bootstrap sur sa version. Car à ce stade, nous aurions inclus nos tableaux de données ou notre fonds. Aussi, um, cesse aussi r j vous interroger je CSS Et puis à la fin de tout cela, nous avons un lien toe notre propre fichier CSS. Devrions-nous en avoir besoin à tout moment ? contenu du corps est assez simple. Nous avons un en-tête à l'intérieur. L' en-tête est vraiment la barre de navigation. Donc en-tête que la navigation et puis ou barre de navigation est une navigation bootstrap. Nous avons ajouté quelques liens sur. Ensuite, nous avons affiché contextuellement certaines choses en fonction de la personne qui est connectée. S' ils sont dans des rôles administratifs sont dans un rôle administratif, ils verront certaines choses que l'utilisateur régulier ne verrait pas sur. Ensuite, après notre en-tête, nous allons à notre conteneur qui est notre corps, non ? Et puis à l'intérieur du corps, nous avons ah, une section appelée moyenne alors nous avons cette fonction appelée corps de rendu, qui rend vraiment le contenu ou la vue sur l'écran. Après cela, nous avons ou pied de page sur. Nous avions changé les votes qui doivent être dynamiques pour l'année suivante. Ensuite, nous avons nos fichiers de script, y compris maintenant. La raison pour laquelle je vous ai donné cette visite est que cela forme la base sur laquelle Leo pH a besoin orteil être créé. Je en fait pour le dos de l'orteil souligne, et parfois cette section est oubliée parce qu'il est si discret. Ce que cette section de rendu nous permet d'inclure des scripts à l'intérieur de nos vues. Le jour, il sera rendu après tous les autres scripts sur l'art de la pêche. Donc une fois, comme je le voyais, nous devons le savoir quand ils créaient un autre pH Leo. Parce que ce sont certains éléments ici que la moitié de l'orteil se répète , par exemple, rendre corps s'il y a plus dans le corps que la navigation, alors vous vous sentirez, parce que c'est ce qui rend réellement ce qui est dans le vue à l'intérieur du conteneur global . Donc, pour créer une nouvelle page Leo et le faire reconnaître par l'application, ce que nous devons faire est bien, un aller à partagé sur le partagé est le meilleur endroit pour mettre son ils peuvent effectivement le mettre où il veut. Mais alors, il est logique de le mettre là où la structure du projet le suggère. Vous le mettez pour qu'on aille à partager. Nous pouvons cliquer, ajouter, puis je vais juste créer un nouvel élément. Donc, pour notre dépôt est allé à sélectionner Razor Leo enseigné le jour où je suis allé changer de ce côté. C' est Ils utiliseront un thème LTTE admin quand nous avons commencé. Donc je vais juste appeler cette annonce signifie LTTE. Donc, il n'y a pas d'erreur à propos de tout droit. Ensuite, nous cliquons à si sont le fichier résultant est très simple. Comme vous pouvez le voir, c'est littéralement ce squelette html. Ils essaient juste de nous donner un peu de dynamisme pour le titre sur Ils nous donnent une section pour rendre le corps. Donc c'est très, très simple. Non, après que tu aies fait ça et je ne vais pas passer par tous les changements qui doivent arriver pour l'instant. Mais après avoir créé ce Non, vous vouliez être la personne par défaut pour faire cette page simple La valeur par défaut que j'avais hors de notre page de grande couche qui existe déjà pour le faire. Ce que vous pouvez faire est d'aller voir le début. Donc, si vous êtes toujours dans le dossier Views, alors vous avez un fichier appelé View. Commencez sur cela dans la vue Démarrer il dira mise en page égale Leo. Donc, sur la partition, Leo, c'est le nom du fichier qu'il identifie comme la mise en page. Donc, je vais juste dupliquer cela sur le commentaire. Avoine une ligne, et puis je vais changer ça pour dire, Souligner les annonces sur Ensuite, nous pouvons enregistrer tous les changements sur. Ensuite, nous allons prévisualiser à quoi cela va ressembler. Alors remarquez quand notre candidature ou les Seigneurs étaient littéralement juste une page blanche, parce que c'est tout ce que nous avons. On a juste le squelette sur une section qui est son corps de rendu. Donc, si j'essaie manuellement toe naviguer à n'importe quel off pour les écrans existants et disons que j'essaie d'aller orteil laisser les types, démontez l'avis de connexion que la journalisation se charge toujours avec l'original écrit sur c'est parce que pour cela pour l'application, nous devrions également modifier les mises en page utilisées. Si je vais à des époques seul, l'identité entière va dans des pages, alors vous voyez un fichier similaire. C' est son point de vue. Démarrer sur Le fichier View Start pointe directement vers la vieille pêche à l'intérieur des vues partagées et la mise en page. Donc, je vais juste orteil provocateur dupliquer cela et a commenté Coat sur. Ensuite, je vais changer cela pour voir ajouter des LTTE moyennes que CSE html sur. Ensuite, économisez et essayons de recharger cette page et de voir ce qui se passe. D' accord, donc on a une ère, et cette zone voit qu'il nous manque une section qui voit des scripts. Tu te souviens de ça ? J' ai vu qu'ils sont certaines sections qui doivent être là pour certaines pages sur le travail fait dans notre page de connexion, qui est ce que j'essaie de rendre un peu distant pour explorer vers le bas et trouver ou se connecter en vue ou se connecter en vue. Ceux-ci appellent une section appelée scripts, où il appelle une vue partielle de sorte que le sexe a besoin d'être présent pour le travail de l'orteil Leo pour le discours. Rappelez-vous que nous avons un tout simplement vieux ici pour ou a écrit à l'origine. Nous avons cette section que j'ai mentionnée avant où nous rendons les scripts. Bon, donc dans notre prochaine leçon, nous allons commencer à transformer cette page blanche en LTTE Léo. C' est avec tout désactivé la section requise afin que les quatre vues puissent l'utiliser. 47. Configurer AdminLTE et les dépendances: Hé, les gars, dans ce Écoutez, nous allons mettre en place notre application avec l'administrateur. Lt e mise en page. J' ai vu cet administrateur, LTTE. Si vous ne savez pas ce que c'est, alors vous pouvez accéder à leur site Web en allant administrateur de bout l t e que je Oh, non, il est. Ah, bord administratif Bootstrap. Et, eh bien, un très, très, très commodément. Donc, il est basé sur bootstrap, et je crois qu'ils ont eu trop de versions chaque version hors bootstraps. Donc, en ce moment, nous utilisons bootstrap quatre. Donc, la version que nous allons utiliser est la dernière qui prend en charge bootstrap quatre . Ils ont également du soutien pour le plaisir. Impressionnant. Cinq icônes. Donc, cela signifie que nous allons passer à travers potentiellement changer certaines anciennes icônes de premier plan , impressionnantes que j'aurais utilisé précédemment sur nous pouvons conserver pour, , mais ensuite nous allons mettre en œuvre cinq aussi. Donc, à partir de leur site Web, vous pouvez aller à leur page Donald. Vous pouvez aller à un aperçu en direct et vous pouvez également y visiter. Obtenez le dépôt TOB où vous pouvez juste vous pouvez simplement télécharger toute la source requise pour ce modèle. Donc je vais d'abord aller au modèle, la démo, et vous montrer ce que c'est tout un bateau. Comme vous pouvez voir cette barre de navigation à gauche, ils en ont une en haut. Ils ont peu d'icônes de notification sur, Eh bien, le potentiel d'affichage des données et la mise en page est vraiment, vraiment, vraiment incroyable. Là, ils viennent , plein de bibliothèques tombent de ces graphiques colorés, et ils ont mis une torsion sur les styles bootstrap où vous savez certaines choses, regardez un peu plus trouver des orbites, vous savez, modifié par rapport à l'original bootstrap Leo. C' est nos cours, non ? Donc, vous avez la version de tableau de bord un modèle où vous savez qu'il est joli. C' est différent côté de différent. Vous pouvez les moineaux et obtenir des idées de lui. Et puis vous avez la version 2, ce qui est tout ce que nous regardons. Sachez juste, Donc, vous pouvez réellement passer un peu de temps et cliquez sur une ligne et voir tous les graphiques, différentes formes, les différentes tables qu'ils ont acheté. Ensuite, en fin de compte, vous voulez accéder à la section de documentation où vous pouvez réellement aller un bateau apprendre ho à l'installer dans votre application. Maintenant, les instructions d'installation sont simplement orientées vers PM, ce qui est plus de poches Manager Bore, qui est un gestionnaire de paquets pour JavaScript, ou compositeur, qui est, Ah, gestionnaire de paquets pour Ph B. B. Mais alors nous utilisons dot net core, donc ne pas Record a son propre gestionnaire de poche sous la forme de nouveau get et il va dans une certaine mesure un chargé pour utiliser bower. Mais alors, personnellement, je trouve ça plus irritant. Essayer d'obtenir ce genre de bibliothèques dans un noyau dominant sur, autant plus que c'est assez simple, est juste un noyau qu'ils nous ont donné. Encore une fois, c'est open source. Donc, dans cette vidéo, comprendre pour vous guider sur l'approvisionnement du cordon sur la mise en œuvre de son intérieur off ou application No, par le temps libre. Cette leçon admin LTTE deux points pour est la version annoncée ici. Mais ce n'est pas la version que nous allons adopter, alors nous allons aller nous lever. Je vais dire que je ne sais pas la dernière version, ce qui va nous amener à leur dépôt pour en moyenne les LTTE trois points ou un point un. Donc, sachez que nous sommes à ce dépôt dans le défilé sur obtenir le fichier zip avec tout leur source marqué. Et cela nous donne un joli dossier sain avec un tas de lecture Mies et quelques autres modèles que nous pouvons regarder. Donc le temple si tôt ne peut pas nécessairement avoir été indicatif de la dernière version. Donc je vais juste extraire ce dossier d'orteils sur mon ordinateur. Donc je l'ai mis dans mon dossier de téléchargements sur Alors je vais juste ouvrir un de ces pages. J' ai donc trois pages d'index que je peux regarder sur qui ont aussi commencé quelqu'un à ouvrir chacun et que nous pouvons les évaluer hors. J' ai donc ouvert l'index, et c'est ce que les discours d'index affichent. Donc, vous voyez que les widgets comprennent que c'est légèrement différent de ce que nous aurions vu sur le site. Encore une fois, le site montrait probablement 2.4, qui est basé sur bootstrap trois. Sur cela montre 3.4 point un, qui est basé sur bootstrap quatre. Vous voyez donc des améliorations dans la façon dont les choses sont disposées. Mais nous avons cet exemple de tableau de bord. Nous avons tableau de bord où il s'agit du tableau de bord trois. Donc, avez tableau de bord à l'exemple, et puis nous avons tableau de bord trois exemple sur, alors nous avons un échantillon très, très simple, qui est appelé Starter Now, le démarrage d'un modèle est beaucoup plus simple que les autres tableaux de bord sur Vérité être dit, basé sur l'application que nous pourrions avoir avec moi ou peut ne pas avoir besoin de tous ces, um, graphiques et affichages, non ? Donc, pour notre application, qui est un système de gestion des congés, je n'ai pas besoin de frais. Je veux dire, la vadrouille d'un pays est ce genre d'accaparement des terres ? Je n'ai vraiment pas besoin de tout ça. Donc, le modèle démarré est un bon endroit pour moi. Toe en fait être en mesure d'examiner le tribunal sur faire ces transitions vers mon projet une autre chose à remarquer que dans les liens hors incendies que nous aurions obtenu, ils nous auraient donné tous les fichiers CSS et JavaScript nécessaires pour obtenir ce vapeur et en cours d'exécution. Et nous aurions aussi ah, richesse hors branchements pour tous les graphiques, les tableaux de données sur tout ce qui serait inclus à l'intérieur de ce qui est affiché dans leurs modèles. Cependant, nous avons juste besoin de quelques uns de ces choses pour être ouvert en cours d'exécution sur l'un de ceux-ci est le démarreur, quelqu'un à droite, cliquez sur démarreur sur Ouvrir avec. Je n'ai pas de partie plus si vous ne l'avez pas, c' est un excellent outil à voir. Tu sais que ça marque des dossiers ouverts et simples. Si vous avez du code de studio visuel, c'est aussi un bon outil sur tout ce qui n'est pas une partie. Mais je suggérerais que vous connaissiez au moins Pat plus ou Visual Studio Court. Donc, je vais juste faire un clic droit sur Open With All By plus, et cela me donnera toute la page HTML avec toute cette équipe, un squelette dont je parle toujours. Ils indiqueront ce qui est inclus, quelle vitesse et où ils peuvent être trouvés. Ainsi, nous pouvons trouver ces fichiers à l'intérieur des fans qui étaient dans les archives et les verser dans notre projet en studio visuel pendant que nous partons de la vapeur. Donc la première chose que je veux faire est de copier tout ce score sur, puis je vais retourner à ma page de mise en page sur. Ensuite, je vais contrôler un Onda et contrôler le visa. Je suis juste que nous sommes en train de déplacer tout ce qui est là et je colle ce bloc entier sur html. Non, en faisant cela, j'aurais supprimé certaines choses comme la section du corps de rendu sur. Nous allons le remettre, mais vous remarquez qu'ils vous donnent des commentaires pour nous guider sur la section de la cour que vous regardez actuellement. Mon prochain objectif principal serait de m'assurer que j'ai les feuilles de style requises incluses dans le projet et que mes références sont correctes. Donc, je vois ici où ils ont une feuille de style à l'intérieur du dossier CSS dest slash appelé admin lt ee dot moyen CSS. Donc, je dois m'assurer que j'ai cette feuille de style à l'intérieur de mon projet et je la référence correctement sur visuel. Student rend relativement facile d'obtenir des fichiers sur quelqu'un pour revenir au dossier d'archive , aller à dissed, aller dans ce dossier appelé CSS. Identifiez ce fichier sur, puis je peux réellement copier et puis revenir à Visual Studio sur. Ensuite, nous savons que dans notre projet de studio visuel pour essayer de garder ces fichiers statiques, ces fichiers CSS sont à la place à l'intérieur de CSS racine W W et puis je peux juste le piecter dans ce dossier. Non, je peux le faire. Même opération pour ou fonds. Impressionnant. Donc, il est dans les fonds branchés Impressionnant. CSS gratuit tous signifient que CSS Donc, je vais juste aller orteil revenir en arrière et essayer de trouver cela. Donc c'était des branchements à l'avant. Impressionnant. C' est gratuit sur puis CSS sur. Ensuite, c'était tout ce qui signifie que CSS je vais faire la même chose où je copie, puis revenir à Visual Studio alors. clic droit en CSS Onda fragmenté. Non, à ce stade sont en fait oubliés, Holder, non ? Le chemin vers les imbéciles CSS comprendre ? Pour regarder en arrière dans mon Leo pH original Juste pour une certaine inspiration sur. Ensuite, je vois ici où le HR devrait être jusqu'au jour slash CSS coupé les parties du fichier. Comprendre la copie que feu chemin vers le plus complet puisque tout le plus rapide et qui semble CSS complet. Et puis je peux juste remplacer la partie pertinente si bien, ces ccs déjà arias CSS. Je peux en fait dire jusqu'à ce qu'ils coupent CSS sur. Ensuite, juste pour vous assurer que vous au bon endroit, vous pouvez réellement supprimer cela votre contrôle sur l'espace et ensuite il va lister tous les fichiers . Si tu vois tous les faits, ça veut dire que tu as écrit la pop. En partie. Donc je suis le premier, y compris l'administrateur. Non, c'est incorrect Le premier, y compris tout ce qui signifie pas CSS sur. Ensuite, je vais juste modifier cet un orteil inclure le fichier admin lt CSS. Maintenant, le fichier admin LTTE encapsule presque toutes nos classes bootstrap afin que nous puissions toujours accéder ou les classes de booster que nous connaissons amoureux sur. Nous n'avons pas vraiment besoin d'aller et de référencer bootstrap contre. J' ouvre juste le fichier CSS point ltte afin que vous puissiez voir qu'il utilise vraiment beaucoup des classes bootstrap sur la version bootstrap sur ce point 4.3. Donc, la plupart de ces classes, sinon toujours travailler, Mais ils auraient mis leur propre torsion orteil tenir. Ils seraient affichés à l'écran. Mon prochain objectif principal serait de faire les mêmes étapes avec notre travail, un fichier de script. Donc je vois ici où ils ont besoin de l'enquête. Mais nous avons déjà Jaker. Nous avons déjà Bootstrap mais nous avons besoin de l'administrateur LTTE ce fichier Js Donc si je creuse dans le puits GS, pas Jair. Désolé, la librairie. Ensuite, nous allons descendre dans Bootstrap dissed sur Js sur. Nous avons aussi la même chose pour Jake Worry donc je peux juste modifier les références pour Jake Worry et Bootstrap. En fait, je peux revenir à mon vote sur la réutilisation de ces références. Donc c'est le J. Corey et c'est le bootstrap. Je vais les copier et puis je vais juste remplacer ces références parce qu'il fait référence au même ensemble de fichiers alors pour l'administrateur LTTE sur allé orteil doivent aller dans le dossier Js à l'intérieur de leur dist. Trouvez la copie de fichier G sur laquelle il est, puis mettez-la dans le projet. Donc je vais juste mettre ça à l'intérieur de la section GS en morceaux. Alors je peux utiliser mon jusque là. Donc, c'est toujours cette barre oblique gs admin LTTE qui signifie que gso Non, j'ai mes fichiers Js et mes fichiers CSS en cours d'inclusion. D' accord, donc nous avons fait un peu de travail sont simples comme cela peut paraître sur DNO. Je veux prévisualiser à quoi ressemblera ce discours. Mais avant de le faire, laissez-moi juste définir le titre pour être aussi dynamique qu'il l'était auparavant. Quelque part de retour à Leo. Et vous trouvez que vous êtes ennuyeux beaucoup de la part du Leo ou Paige existant parce que, je veux dire, vous avez fait beaucoup de travail pour cela. Donc, au lieu de retaper, alors vous serez utilisé en réutilisant beaucoup de choses. Donc, je vous recommande de ne pas le supprimer, du moins pas encore. Certains juste copier le titre existant sur je le colle dans le nouveau Leo Peach sur. Il y a d'autres choses qui vont être transférées, mais en ce moment je veux juste nous voir à quoi ressemble la page. Alors comprenez l'aperçu des orteils assez rapidement. Et quand on fait ça, on prend ce méchant arable, c'est un steak ou un temps et on lit ce qu'il faut chanter. Donc, il est dit que nous avons une exception d'opération invalide où le corps de rendu n'a pas été appelé pour la page à et ensuite ils listent tout le chemin orteil sur le nouveau justaucorps. Donc, la clé de contrôle est qu'il se plaint de la section du corps de rendu, donc il n'y a pas de fonction de corps de rendu appelée. Rappelez-vous dans notre avoine d'origine, nous avions cette section très, très cruciale où nous avons dit corps de rendre. Nous devons donc nous assurer que l'administrateur LTTE sait qu'il doit rendre corps Non basé sur les sections qui sont données pour la page, nous savons que le corps doit être rendu quelque part avec le contenu pas péché assez barre pas dans le barre latérale. Le menu de la barre latérale MIT a acheté plus à l'ère du contenu. Donc, je vois ici de contenu ou supérieur et puis j'ai une section qui est son contenu méchant. Donc, cela signifie à l'intérieur de ma section de contenu principale. Je devrais rendre le corps. Donc, ce sont toutes les données d'échantillon, Comme vous le savez, regardant notre porte Leo ou notre page échantillon de démarrage, c'est tout. Juste la date de l'échantillon. Je n'ai vraiment pas besoin de ça. Donc, en fait, je vais juste enlever toute cette section Haute. En fait, il commence à partir de la page de démarrage. Donc, tout ce qui est à l'intérieur du liquide Deve Container je vais enlever ou bien, en fait, je vais juste voir à partir du contenu. Rappeur donc contenu Dash rappeur Tout ce qui est à l'intérieur du contenu. Dash rappeur, je vais supprimer. Je suis juste en train de retirer tout ce bateau, non ? Tout ce qu'il a été utilisé le signe plus jusqu'à ce que bien, le signe mineur orteil, vous savez, condenser les sections. D' accord, alors je vais enlever toute cette avoine. Je vais mettre ma fonction pour rendre corps. Non quoi ? Je le fais et j'économise et je me rafraîchis. C' est ce que nous finissons avec là où soeur a des moyens d'aller. Mais c'est du progrès. Vous pouvez voir ici que la nouvelle mise en page est affichée sur notre contenu, n' est-ce pas ? Non. Nous devons nous assurer que notre barre de navigation déplore nos liens de navigation ne sont pas les liens de puisard  ? Non, Retour dans nos mises en page, il y a peu de références que je veux m'assurer d'inclure à partir de Non, peur que j'oublie plus tard. Donc je vais retourner à mon Leo Ph et que je vois ça. Ok, j'ai quelques bibliothèques de base au-dessus de quelqu'un pour m'assurer que je fais référence à ces bibliothèques à l'intérieur de cette mise en page et qu'elles vont au-dessus du type doc. Andi, je vais faire référence à certaines de ces feuilles de style, donc j'ai une feuille de style pour ma table par table de données. J' en ai un pour m'amuser. Génial sur. J' en ai un pour mon geek. Où tu es sage ? Je vais prendre les trois, même si je n'ai pas vraiment besoin des fonds. Impressionnant. Un pour ça parce que nous changeons la version à l'avance. Impressionnant. Un archer Justin pour supprimer celui-là. Je l'ai juste fait parce qu'il était plus facile de simplement prendre trois lignes et d'en supprimer une. Hum, donc nous avons toutes nos références CSS sur. Ensuite, je vais m'assurer que je fais référence à ma table de données ainsi qu'à mes G et G. Query a déposé quelqu'un pour copier ces aussi et assurez-vous que j'inclue ces scripts en bas de la page. Et puis, en plus de ces scripts, je dois m'assurer de rendre les sections de scripts. Je suis aussi une entité qui le fait en un seul siège, mais c'est très bien. Donc, je m'assure juste que j'ai tenu compte de toutes les références d'un chargement existant parce que leurs pages qui dépendent de ceux-ci. Donc, si je changeais peu que nous voulons nous assurer que ceux-ci sont inclus maintenant, une autre chose est que je veux dire, c'est comme un mauvais jugement avec notre paquet bootstrap où il est bootstrap dot empaqueté hommes esquive pas le bootstrap dot Js fichier. Donc, en fait, il fallait inclure ce fichier, et on l'a trouvé à l'intérieur de Brogan Js Désolé. Branchez-vous. Bootstrap Js sur le fichier est bootstrap dot Lié vers le haut signifie que GSC pourrait copier cela. Goûtez-le à l'intérieur du dossier GS à côté l admin lg ce point de moulin Js sur Puis fixez la référence en conséquence pour vous assurer qu'il est inclus. , Une autre chose que j'ai omis,c'était un fichier amusant pour nos fonds. Impressionnant. Remarqué que nous avons des carrés où vous auriez dû laisser les icônes. Et c'est parce que vous n'avez pas apporté le dossier des fonds Web du fonds. Impressionnant. C' est gratuit. Donc, je vais juste prendre ce dossier et le copier, et nous devons le mettre dans notre projet dans une partie très relative par rapport à CSS. Donc remarqué qu'il est à côté du dossier CSS. Donc les armes ont des dossiers ? Bien sûr, mais ensuite par rapport au dossier CSS là sur les mêmes niveaux doivent s'assurer que je copie ce dossier et le place dans notre projet relatif pour voir évaluer. Donc, le seul endroit où je pourrais le placer par rapport à CSS et les avoir côte à côte est si je mets des fonds Web comme notre dossier à l'intérieur du dossier racine W W ou de notre section, donc différentes personnes peuvent un peu différemment. J' essaie juste de garder ça simple. Donc, après avoir fait ces ajustements et rechargement ou la paix et nous commençons à voir sur les icônes de sorte que vous voyez cette petite icône de chat, l'icône de Bell et où ils étaient carrés. n'y a pas d'icône. Donc non, nous avons ou des icônes en marche et en cours d'exécution. Nous pouvons continuer avec ou des modifications. Non, j'ai dit que nous étions censés modifier les propriétés de navigation, et je vais aller étape par étape. Donc, c'est la barre de nub sur qui est la barre de note supérieure. Donc, toute cette section, si je clique juste sur le discours qui est suffisant, nous pouvons faire défiler jusqu'à ce que nous voyons la prochaine mise en surbrillance. Et nous savons que tout cela est la barre de nub, et ensuite notre numéro a des sections pour les liens haut de la barre. Donc si nous voulons des liens dans le haut sur sec, non, ils nous donnent 14 à la maison sur un pour le contact. Si on les veut là-bas, on peut changer le mobile. Nous voulons plus que nous ne pouvons le dupliquer. Et à plus. Je ne veux pas assez de liens de navigation en haut. Certains veulent juste contrôler Casey pour commenter. Les fossés. Je commente les douves, mais vous pouvez les croire si vous voulez tout en les engageant tous. Parce que peut-être qu'on pourrait les utiliser plus tard, d' accord. Et il est plus facile de garder le modèle que d'essayer de se rappeler à quoi il ressemblait. Donc je n'ai pas besoin de cette barre de recherche, du moins pas encore. Donc, je commente que aussi puis sur les droits. Ils voient qu'on a un message. Donc, je peux juste aller en avant-première à quoi ressemble ce message déroulant, accord. Et puis, voyez-vous, maintenant avoir un tas d'images cassées. Mais nous n'avons pas apporté les images parce que vous n'en avez pas nécessairement besoin. Mais pour l'instant, je n'ai pas besoin de messages. Notification le. Nous voyons que nous avons la petite cloche avec l'entourage de notification. Je n'ai pas besoin de ces notifications, donc je vais juste les vieux mais ce serait vraiment cool si peut-être pour chaque demande de congé ou chaque nouvel élément qui vient dans qui nécessite une action. On affiche juste un numéro là-bas pour ça. Ce serait vraiment cool. Cependant, je les retire parce que je n'en ai vraiment pas besoin, est-ce pas ? Non, cette section entière de l'ouverture à Fermer UL constituerait le droit à l'intérieur de la barre jamais jamais et donc je peux simplement le condenser ou réduire tout cela et je vais manuel le type ou les cordons de commentaire que c'est un signe publicitaire sur et sur. Asterisk Andi va l'ouvrir et le fermer presque automatiquement pour moi. Quelqu' un orteil a attrapé ça. Ensuite, je vais devoir être sûr que je ferme le U autre comprendre orteil place ce commentaire à la fin de l' U.S. U.S Vous savez, tout cela est commenté une fois de plus, vous pouvez le supprimer, mais nous le laissons au cas où nous pourrions le vouloir plus tard que vous ne pouvez l'avoir. Bon, donc notre bar d'amour en haut est assez vide. Il est littéralement juste là comme assez de bar, et ce n'est pas la lumière de tableau de bord acheteur. Il est blanc dessus. Je veux dire, c'est il est là. Donc, il mai ajouté, peut soustraire. Ce n'est ni ici ni là. Ce que ce n'est pas l'acheteur fait à ce stade Nos enfants deuxième pensée. Je me souviens juste qu'il y a une partie de ce talent dont j'ai vraiment besoin. Et c'est la partie pour faire un pliable. Donc, cette section que vous savez, je peux cliquer dessus et il se développe ou il contracte réellement veulent conserver cela sur qui est appelé dans la section US pour les barres de poussée. Donc, si je regarde très près du dîner, voir au sommet de l'écorce assez nous avons vraiment ah sur la section ordonnée que j' aurais commenté plus tôt sur Est-ce qu'il a assez d'emprunts pour la maison, le contact, mais il en haut, il a une section pour le menu push ou les acheteurs. Donc ce que je vais faire est juste sur commande cette section parce que je veux vraiment section donc contra Ok, vous sur, alors ce que je peux faire est juste de recommander haute, les deux liens dont je n'ai vraiment pas besoin. Donc, je veux juste de routine la partie avec les pilules qui beaucoup Mito moi l'acheteur côté aller dans Ah , a écrit No quatre ou moi dans la barre latérale Nous verrions qu'il a quelque chose orteil peut-être le discours de l'index , parce que l'échantillon Andi je méchant, c'est très bien. C' est compréhensible que vous veniez avec ça, mais on peut toujours changer tout ça. Donc quelque chose d'autre. Je vais juste mettre un hashtag pour qu'il ne aille nulle part. Il conserve sa classe sur. Ensuite, il attend une image. Donc je ne vais pas mettre d'image. Je n'ai pas d'image, mais plus tard, peut-être que vous pouvez modifier l'application sur laquelle il accepte un avatar pour un utilisateur. Puis, quand que les utilisateurs aiment être que ABBA pneus affichés. Donc, je vais juste commenter cette vieille section pour une photo sur puis pour ce filé sexuel comme son administrateur LTTE trois. Je vais le laisser dire le nom de notre application, ce qui est autre dire, laisser les gestionnaires pour cette section hors de la barre latérale. Je voulais afficher les sections de journalisation. Rappelez-vous que nous avons une journalisation, um, um, les partenaires se connectent et s'inscrivent sur. On avait ça sur le précédent, euh, Leo. C' est là que nous avions les six John dans la barre de navigation, et c'était vraiment une partie qui était imprimée. Donc, le tribunal pour les liens de connexion et de registre sont vraiment à l'intérieur de cette partie. Je veux donc que cette partie soit rendue dans cette section. Donc je suis allé prendre manteau le contenu de cette barre latérale sur je vais le remplacer par le pair show pour nos centaines de journalisation, les boutons sur. Ensuite, je vais juste ajouter un peu d'effet visuel et mettre une règle horizontale afin qu'il y ait une petite ligne pour montrer où cette section commence là où commence la section suivante. Très bien, donc c'est ce que notre travail a rapporté jusqu'à ce que nous avons changé avec des sections de gestion stupide . Nous avons les outils, et nous allons mettre quelque part des étoiles là-dessus parce que remarquez qu'ils sont visiblement différents de l'attente. Les autres liens regardent, mais pour savoir qu'ils peuvent rester sur Non, nous devons modifier la mise en attente. Ces choses ont l'air tellement remarqué que vous avez une section qui peut descendre sur. Vous avez un ing simple, donc je vais créer des liens qui ressemblent à l'ing simple sur. Ensuite, nous allons créer une section déroulante pour notre barre d'amour, alors retournez dans notre cordon. Donc, je vais commencer cette transformation en disséquant juste ceci, pas un peu de code-barres. Donc, nous avons l'UL sur a fait. C' est qu'il a toutes les classes qui sont nécessaires pour le faire aller sur le côté. Et puis nous avons le premier élément de liste à ce sujet, comme un élément de liste a un classicistes, a le menu de vue arborescente s'ouvre, et puis il a un lien sur puis un autre sur la liste de commande à l'intérieur de celui-ci. Après cela, nous avons sur l'élément de la liste qui a les mots simples ing. Donc, cet élément de liste peut être notre modèle pour les éléments de lien non extensible sur celui-ci peut être notre modèle pour les éléments de lien extensible. Je vais prendre celui-là. C' est un ing simple. Je vais le couper, Andi. Ensuite, nous le plaçons au-dessus de celui qui dit a une vue d'arbre Non pour notre Simple Inc. Nous allons apporter quelques modifications, remarquez que nous avons une étiquette de cheville et qu'il ne pointe nulle part. Donc je vais juste retourner à notre Léo d'origine. Ensuite, je vais copier les pièces pertinentes pour orteil Avoir un lien quelqu'un pour prendre la zone SP Controller SB Action section sur le remorqueur d'ancrage Parce que je veux que cette première simple ing être à la maison quelqu'un pour remplacer un vrai si avec ceux avec ceux qui nous laissons la classe activée. Puis je suis allé à changer l'icône de la FAA Dashti vieilli Si une maison de tableau de bord et remarqué studio visuel est de faire ces suggestions parce que le fichier CSS premier plan impressionnant ne fait pas partie du projet alors je suis avec la chance sur le texte de la maison simple ing toe Donc sur celui-ci pour rester à la maison et je n'ai vraiment pas besoin de cette travée. D' accord, , c'est bon. C' est une bonne idée de conserver le temple qu'ils vous donnent, parce que si je devais supprimer ces balises p, la mise en page serait légèrement différente de ce que je vois dans le précédent. Vous devez donc être très prudent et délibéré lorsque vous apportez des modifications. Si vous voulez conserver le look original et sentir si j'ai la ville natale et je vais dupliquer cet outil fois parce que je veux aussi le tack qui dit Tuck qui dit Appliquer pour congé sur aussi celui qui voit mon congé Donc revenir aux liens d'origine nous en avons eu un. C' est ça. Demander un bail. Je sélectionne ou prends tous ces attributs à partir de ce lien, puis je les place à l'intérieur de mon deuxième Simple Inc qui les remplace. Et puis le texte va être demandé pour le congé. Donc cette copie que. Donc je fais beaucoup sur la copie et le remplacement de l'existant étant vendu la même chose pour mon congé sur DENR. Remplacez ces attributs en conséquence. Je n'ai vraiment pas besoin d'apporter la classe parce que vous remarquez que les classes se lient maintenant . Et oui, il y a du texte blanc. Mais il dit maintenant lien de tiret déjà dans ou Oncle Attacks sont vraiment supprimés. Euh place encore ça. Il suffit donc de remplacer les attributs réels de l'événement afin que les étiquettes oncle fonctionnent tout ce que nous attendons à ce qu'elles fonctionnent non pour la section suivante qui comporte une goutte. Ne vous souvenez pas que ou le menu déroulant de ou d'origine Liotta aurait un bean actif ou visible seulement si quelqu'un s'est connecté encore plus, donc s'il envoie en tant qu'administrateur, donc nous pouvons simplement réutiliser ces estimations. Je vais juste prendre ces déclarations, y retourner, puis je vais coller. Ensuite, tout est mis en retrait et hors travail. Mais ce n'est pas un problème, parce qu'à la fin, hors de ce bloc allié, je vais juste mettre deux courses juste les vêtements sur les déclarations. Ensuite, tout est désactivé, notre code sera réaligné correctement. Donc, si la personne est connectée et si elle est administrée, alors elle verra cette section déroulante. Et puis cette liste déroulante a besoin d'avoir les mêmes liens que ceux qui étaient dans l'envie. Non, le plus haut niveau de la zone de dépôt avait le mot man, c'est comprendre de prendre le mot gérer, et je vais remplacer le tout premier lien par ce mot. Le contenu du haut le plus, um, um, élément ou élément de navigation dans toute la goutte connue devrait voir gérer avis que le droit de celui-ci, il aura une icône Nazis oncle gauche, donc c'est un peu comme une liste déroulante. Il bascule quand c'est, vous savez, espoir est connu, , et ensuite les compteurs de tacle. Donc, je vais passer par et changer ces icônes plus tard. Mais pour non, nous voulons simplement nous concentrer sur les éléments de la barre de navigation et les liens, en nous assurant qu'ils vont au bon endroit. Alors le contenu de notre assez bar serait sous assez de poussière et vous voyez que nous devons à Ling ici ce qu'il nous faut quatre. Certains sont allés copie des orteils et en ont découpé un deux fois de plus. Et puis nous pouvons recommencer la chirurgie où nous commençons à changer tout le texte sur les références sont le voyage. Donc je vais le faire rapidement. Nous avons fait quelques déjà Quelqu'un pour mettre en pause la vidéo sont Vous pouvez mettre une vidéo en pause ici et essayer de vous-même quand vous voulez faire une pause. Je l'aurais déjà fait, et ensuite nous pouvons juste comparer après. Bon, donc à la fin de cet exercice, tu devrais avoir quelque chose qui ressemble à ce que j'ai à l'écran. J' ai aussi pris la liberté de changer toute l'icône. J' ai donc quelque chose comme une liste pour les types de feuilles. Avoir Effie Dash Angelis pour les allocations sur Actually l'a fait aveuglément. Mais tout ce que c'était génial. Effie Dash et puis un peu bizarre ont cédé à suggérer orteil ce que j'ai à ma disposition sur. J' ai pris des décisions aveugles. Tu sais, si tu ne veux pas prendre de décisions foncières, tu peux toujours aller financer. Impressionnant. Mais allez. Puisque nous utilisons la version 5, vous pouvez passer aux icônes sur. Ensuite, vous pouvez voir tout ce qui est disponible. Tellement, à peu près. Si vous voyez listé dans l'intelligence et que vous voulez savoir à quoi il ressemblera, alors les chances sont plus que probable, vous pouvez aller sur le front impressionnant le site sur Il suffit de taper sur. Ensuite, il va en quelque sorte de filtre a écrit et vous montrer à quoi votre icône pourrait ressembler. Une autre chose à remarquer que plus que probable ce sera la version gratuite de ce que vous voyez dans la liste pour les 3 premiers liens de navigation. J' ai également fait des changements parce que l'auteur d'eux aurait eu l'icône d'accueil. Donc je suis changé ces vieux aussi Andi, je vais faire un ajustement de plus, et c'est à la page de connexion, parce que si vous observez et laissez-moi juste revenir à ma page si vous observez que le journal dans Ling ne tout à fait ressembler à ho ou barres de noix, liens regardent. Donc, voulez que tout soit uniforme autant que possible. Quelqu' un pour modifier la mise en page de notre page de journalisation partielle. On verra comment ça marche. Donc c'est le journal dans pidge partiel Andi. Comme vous pouvez le voir, l'UL, il manque certaines des classes que l'U els pour notre barre latérale a besoin. Donc, si nous regardons l'un des existants, nous voyons qu'il a des classes. Love, knave Dash factures ont maintenant la barre latérale du tableau de bord et des colonnes flexibles. Je vais prendre toutes ces classes et m'assurer qu'elles sont présentes à l'intérieur du journal impartial. Donc non, la barre pas ressemblera à quelque chose de plus à ce que nous avons déjà sur. Ensuite, les éléments de liste à l'intérieur hors que vous aurez besoin de ressembler plus aux éléments de la liste à l'intérieur de l'existant. Donc, ces éléments de liste ils ont l'étiquette de cheville sur, puis ils ont l'icône, ce qui est bien sûr facultatif. Mais c'est là et ils ont un remorqueur P. Donc toutes ces choses fonctionnent ensemble pour donner le genre d'effets que nous avons besoin d' une certaine discipline pour effectuer. Une petite modification sur ce sont vraiment leur oncle Targa, juste la ligne de frein. Apportez le texte. Donc, ce texte est ce qui dit bonjour personne qui est connecté. Donc, je veux que ça soit affiché. Donc je voulais être affiché à l'intérieur d'un pita sur. Ensuite, je vais inclure une icône tout de même sur l'icône. Ici peut être, comme une silhouette sur une personne. Donc je vais dire icône, classe de remorquage et ensuite inclure mes f e ou F E s cette fois parce qu'ils changent d'avoine. Le front génial. Donc, c'est F e s. Et puis si e tiret sur, je verrai l'utilisateur tiret dehors. Donc, cette icône va s'afficher à côté des personnes utilisant le une fois qu'elles sont connectées. Suivant est ce bouton, et les modifications que je vais faire seront assez similaires. Donc je vais prendre tout ce contenu, remplacer le mot loi chèvre sur, puis dans la balise P, Eh bien, ça va dire chèvres basses. Donc c'est la loi. Chèvre le jour massacré le Pete. J' ai été mordu là pour que je le fasse à nouveau et que je le fasse correctement cette fois. Donc c'est un bateau en rondins à la place, sur ce Peter pour l'icône. Je vais faire quelque chose. Comme si une ambassade, ils ont quelque chose à signer aussi. On y va. J' ai signé pendant que ce panneau, nous avons signé des vieux. Terrible. Donc f e d signer note quelqu'un pour modifier les deux autres hors écran, et je vous mets au défi de rencontrer des mods. Choisissez la valeur zéro dans les icônes. Utilisez votre propre créativité, mais je vais le faire et ensuite on pourra comparer la cour après. Donc j'ai deux icônes que j'ai inclus un appelé Effie Dash enregistré pour tous ceux qui veulent déjà surfer avec nous. Peu importe. Juste le lien. Et puis nous avons échappé à l'utilisateur pour la journalisation. Donc vous je veux dire, je répète quelques étangs autour de l'endroit, mais finalement, mais finalement, une fois de plus, vous pouvez choisir vos propres icônes et faire ce qui est bon pour vous. Quoi ? Je vais enregistrer tous ces changements et revenir à mon âge Reversion. Tu vois le fruit de mon travail ? D' accord. Et donc je vois un nid sont pour s'inscrire sur la silhouette pour se connecter. Et juste pour m'assurer que j'ai écrit le tribunal correctement, je vais juste cliquer sur ceci et regarder l'expansion et le contracter correctement. Donc, tout comme il l'a fait dans les eux sur le texte complètement disparu et ne montrer que l'icône . Si vous n'avez pas écrit le Todd ou les éléments de liste pour les liens de navigation correctement, alors quand vous essayez contrat orteil, alors il peut ne pas être aussi propre de dire que je veux revoir cela. Quoi qu'il en soit, je fournirai la cour pour que vous puissiez toujours vérifier ou remplacer. Maintenant, la dernière chose que je vais faire est de remplacer le contenu de notre maintenant quatre pieds de page sur . Je voulais être un peu plus officiel, mais il est toujours bon de donner crédit aux personnes qui créent les thèmes et les choses open source que vous vous. Donc, j'ai ah message de pied de page ici sur ce filtre. Mlle son est à la droite stylée par et je crée un lien toe admin. Lt e dot io Andi. Je conserve ce message de pied de page original de notre mise en page précédente. Donc, je vais juste me connecter en tant qu'administrateur afin que nous puissions voir le reste de l'acheteur assez et vérifier le mot que nous avons fait quand je vais à la page de connexion. Tu vois ça ? Cette page pourrait utiliser un peu de travail. Il a besoin de quelques modifications pour s'intégrer dans le thème Mieux. Mais je vais laisser ça seul pour non et me connecter en tant qu'administrateur. Et quand je fais ça, ils voient des carrés apparaitre. Où ? Où les icônes devraient être Certains Justin pour vérifier ce qui se passe avec le code Onda. Ok, donc je vois ici où j'ai si elles sont à la place s'il est si ça aurait pu être là avant. La température est peut-être venue avec F e r pour cette section, mais je veux le changer o f a s parce que c'est ce que je veux vraiment. Alors sauvegardez. Et puis révisons ça à nouveau. D' accord, c'est plus comme ça. Donc, non, nous voyons sur un est toujours absent. Quoi ? On pourra arranger ça plus tard. Donc, au moins, nous avons fait des progrès. Nous obtenons des icônes, et nous pouvons voir que nous avons ce menu déroulant pour certains Eh bien, pour l'administrateur sur quand nous ne sommes pas aimés dans cet administrateur, nous ne verrons pas cela aussi, quand nous sommes connectés et nous voyons qu'il est dit bonjour sur l'utilisateur sur Nous avons notre faible lien de chèvre. Combien vas-tu supprimer le mot Bonjour ? Et je vais juste imprimer. Oh, c'est l'adresse e-mail qui est associée à celui qui est connecté. Voilà donc les modifications que je vais apporter. Je vais réparer cette icône. Je vais supprimer le mot Bonjour. Je vais voir ce qui se passe avec la page de connexion, et je vais partager tous ceux avec vous. Mais si vous avez coincé le nôtre jusqu'à la fin et, vous savez, que le panneau d'administration ressemble à quelque chose comme ça, alors un bon travail. 48. Corrections et ajouts essentiels de mise en page: Hé, les gars, bienvenue dans cette leçon vidéo qui va passer par quelques corrections essentielles pour me retrouver à notre mise en page. J' ai donc laissé la vidéo précédente disant que je supprimerais le mot clé bonjour de la section où nous affichons le nom d'utilisateur. J' ai corrigé la référence de l'icône. J' avais la liste des blessés au départ et cela n'était pas inclus dans mon ensemble de fonds. Donc, je l'ai changé en User Plus et j'ai fait un correctif encore plus critique pour le Lay. Aussi, si vous vous souvenez quand nous avons eu notre page de connexion et que je navigue juste à cette plage hebdomadaire, il était, vous savez, attaché à l'acheteur côté ou trop proche de décider par cette marge n'a pas été suffisamment défini. Et donc toutes les autres pages étaient gentils de rendre de cette façon. Donc on veut dire, ces correctifs hors caméra, et je vais juste te les montrer. Hum, donc pour plus de bien, pour plus de temps, impartial, tout ce qui a été jugé le mot-clé hello de la section qui rend le nom d'utilisateur. J' espère que nous sommes tous à l'aise avec les icônes de Non, donc c'est le cas. J' ai réparé ce carré et l'icône qui assurait la parité. Donc je l'ai changé pour utiliser son tableau de bord plus donc c'est toujours bon. Si vous essayez un et que vous obtenez le carré à la place, essayez simplement un autre. Et puis la section la plus importante qui a affecté Léo a été notre section de contenu. J' avais donc retiré un peu trop de cour de notre contenu. Et donc il n'était pas rendu correctement. Donc, j'avais besoin d'un en-tête donné appelé contenu Ash qui avait son liquide de récipient de liquide à l'intérieur ce si et puis ajouter un autre qui dit contenu avec un tiret de conteneur wouID donner aussi et en ce que nous avons rendu le corps. Donc, si je retourne au modèle original, vous pouvez observer que c'était le code original. Nous avons eu du contenu, le référendurer à un tas d'informations d'échantillon et ensuite il s'est contenté d'un tas d'informations d' échantillon. Donc, j'avais par inadvertance enlevé trop de l'intérieur de ces trempettes. Alors quoi ? Qu' il les a réintroduits, puis cette fois vient de supprimer de la règle puis de remplacer par le corps de rendu et ainsi de suite sur le contenu n'est pas un rendu correct. Donc, vous pouvez positivité juste là et copier le code du panier. Si vous, Nieto, mais je vais aller de l'avant et je vais apporter quelques autres modifications à certains éléments existants à nos yeux. Donc, je suis allé à notre page de types de feuilles sur. Nous regardons la table de données ici, donc certains hors des icônes sont manquants avis Certains d'entre eux ont l'air différent, mais ensuite le stylo pour qu'il était là est manquant. Donc nous devons nous assurer que non, que nous avons changé la version du fonds. Icônes impressionnantes que vous ne traversez pas et en veillant à ce que nos icônes apparaissent pour chaque page. Ils sont donc absents de l'allocation des employés. Notez le texte dans nos pages de demande de congé, Pas tout à fait comment nous l'avons laissé sur. Au moins, tout va bien avec le discours de nos employés. Une autre chose légèrement irritante est que ce lien semble toujours être actif. Donc je vais modifier cette chose pour qu'elle ne soit pas toujours active. Donc, à partir de la modification du lien, si nous regardons le tribunal pour le lien, nous voyons qu'il a une classe appelée active. Donc je comprends de supprimer ça Donc tous les liens recherchés semblent si nous voulions qu'il change d'activité, alors nous devrons lire un autre tribunal. Mais je ne laisse pas entrer ça en ce moment. Je le fais juste un peu plus en uniforme. Suivant dans nos types de feuilles dans XP, Jim est allé modifier les icônes utilisées Donc d'abord, puis est allé dire F A s. Donc, nous obtenons la classe et puis je suis en train de changer cela de Effie Dash, crayon toe, peut-être. Eh bien, tiret au crayon est ce qu'ils ont pour moi. Je peux laisser le cercle d'entrée et laisser la poubelle allumée. Ensuite, nous pourrons passer en revue cela. Ces changements que nous voyons maintenant sont l'icône Pensa une fois de plus. Maintenant, je vais juste faire un voyage sur notre discours détaillé parce qu'on l'a créé il y a un certain temps . Mais ce que nous avons fait était de lui dire explicitement quelle page de mise en page utiliser. Donc, quand nous avons créé notre nouveau Lion pour l'avoir défini comme valeur par défaut sur, cependant, cela peut être remplacé sur un Pedes spécifique. Je vais juste passer à ce discours de détail sur vous verriez ici où il spécifie la mise en page à utiliser. Donc, cela remplacerait ce paramètre par défaut que nous avons mis en vue commence. En fait, je vais juste enlever ça. Mais si vous avez l'administrateur, il y a plus un thème. Travailler avec ce qui a plusieurs Léo, Peaches, quelqu'un ? Certaines pages à utiliser l'une et pas l'autre. Ensuite, c'est comment vous pouvez spécifiquement remplacer cette petite référence pour notre je localise l'indice d' allocation de congé PGE Je vais changer l'icône Toe FD Dash User Dash édits sur qui rendra quelque chose ressemblant plus à ceci avec ce crayon avec ce silhouette et puis je vais donner ou laisser l'âge de la demande une certaine attention. Donc, tout d'abord, je vais supprimer ce, um, ce texte qui est index et je vais aussi supprimer ce bouton puisque nous n'avons pas vraiment implémenté quoi que ce soit pour ce bouton et puis je vais modifier l'affichage ces cartes sur les données là-bas dans donc retour dans notre code, je peux simplement supprimer ces deux lignes d'arrêt le type H un pour l'index sur le bouton pour les crée je viens de supprimer ceux sur. Alors passons en revue nos cartes. Pas de retour aux pieds ou à l'administrateur. Lt Âge ou exemples de pages que nous aurions obtenu dans notre fichier d'archive. Je regarde la page des widgets et je vois ici leur idée de ce que les widgets peuvent ressembler . Donc j'aime la rangée supérieure des widgets. Je pense qu'ils correspondent parfaitement à ce que je veux accomplir. Maintenant, afin de trouver la cour associée au widget affiché, nous pouvons simplement cliquer avec le bouton droit de la souris ou pour inspecter Element. Et cela fera apparaître toute la cour associée à ce widget. Donc inspecter l'élément est un beau lac et utiliser l'évaluation. Que se passe-t-il ? Donc, vous voyez qu'ils ont la règle. Ensuite, ils ont l'appel MP trois, la division, les mêmes divisions que nous avons pour plus de quatre cartes que nous avons mises en œuvre. Mais puis le moi en partie est que vous avez dans la boîte de quatre, puis à l'intérieur de la boîte d'information. Ils ont du contenu, donc je vais juste m'effondrer les orteils. Ce def. C' est ce qu'on appelle la boîte d'information. Je peux faire un clic droit sur. Ensuite, je peux copier sur dykan, copier tous les autres éléments de copie ponctuelle, puis retourner à mon cordon allumé, puis à l'intérieur. Appelez MD 3. Je vais coller tout ce que je viens de copier. Donc, pour chaque appel que nous avons, nous avons cette boîte d'informations. Je suis juste mentalement dupliqué sur chacun avant de commencer à rencontrer des modifications. Alors c'est ça. Et puis il est facile de modifier et d'incorporer parce que j'ai déjà tous les fichiers de script nécessaires pour la boîte d'informations le travail. Maintenant, commençons notre modification. Notez que ce que nous avons copié a un texte statique sur. Nous avons juste besoin de soutenir le texte statique avec notre texte dynamique de la même manière. Donc, nous avons la zone de contenu sur l'ère du contenu a un texte sur certains chiffres, donc nous nous souvenons que nous avions embauché Title, qui avait le texte. Il s'agit donc d'un total de demandes. Donc, je ne remplace le mot messages et puis nous avons eu la valeur des cônes sur Die remplacer cette section et ensuite je peux supprimer ma carte d'origine et puis je vais le faire. Convient aux vôtres pour chacun d'eux. Il va de l'avant, donc je vais en faire une autre pour toi, quelqu'un pour prendre cette valeur que nous générons dynamiquement. Je vais remplacer les messages à ce sujet. Je suis allé prendre le numéro, puis remplacer ce numéro, et ensuite je peux supprimer cette carte, quelqu'un pour faire les deux autres. Andi, je vais reprendre après les avoir fait, tu peux faire une pause et les faire toi-même sont super. Donc j'espère que vous n'avez pas eu de problèmes sur la couche dure ressemble à ça ? Non. La prochaine chose que nous voulons faire est de changer la couleur. Donc, nous avons des infos B g. Rappelez-vous que nous utilisions différentes couleurs pour les différents statuts. Donc, les demandes en attente auraient été avertissement BG tiret. Hum, alors nous avons B g tiret pour le succès approuvé sur avis que nous avons BG avide de succès . Si nous voulons une couleur gourmande, nous pouvons le faire aussi. Et puis nous avons eu B g Dash Dash Danger laisser Onda. Je pars. Le rapport de torture indique que la prochaine chose que vous voulez probablement faire est de changer l' icône de type off utilisée. Donc, par exemple, demande de dépenses. Je vais probablement utiliser quelque chose qui ressemble à une exclamation pour dire, Hey, tu sais, l'attention requise sur ça. J' utilise le cercle de poussin pour les demandes approuvées. Bon, donc je vais juste trop vite. Je ne vais pas vous ennuyer avec ma sélection d'icônes, mais je veux juste vous montrer à quoi cela devrait ressembler à la fin de cet exercice où vos icônes sont affichées. Si vous essayez et icône et que cela ne fonctionne pas, les chances sont que la première partie des classes, si elles sont sur vous voulez changer cela ? Si c'est le cas, vous pouvez essayer cette modification. Donc, vous voyez quelque part feu basé sur le modèle que nous avons copié et certains sont si il s me travailler donc je ne travaille pas. Je ne vais pas vous ennuyer avec pourquoi on va travailler sur pourquoi on ne le fera pas. Mais vous pouvez détruire et essayer toutes les icônes et voir lequel est un bon ajustement. Non, j'ai une autre modification que je veux faire pour cette leçon particulière qui entoure la table de données. Donc oui, ils sont beaux. Mais alors il y a en fait un look bootstrap quatre qui peut être appliqué à la table de données sur admin. LTTE ont le branchement rapide pour moi qui s'est passé. Donc, nous retournons à nos archives avec nos fichiers LTTE admin et allons dans le branchage plus court que vous ne le voyez. Un dossier appelé Data Tables Dash Bs quatre et qui est livré avec un fichier CSS sur un J s loin, donc nous avons juste besoin de copier ceux sur toe notre projet comme nous l'avons fait avec d'autres fichiers dans le passé. Dans le cas où vous pour le bouton, je vais faire le CSS gagné pour vous en cliquant sur celui qui se termine avec les hommes point CSS copie , puis aller sur le projet et à l'intérieur du dossier CSS. Je vais faire un clic droit et cliquer sur Coller. Je répéterais ensuite ces étapes pour le fichier JavaScript. Ensuite, je vais revenir à l'admin LTTE Leo Page sur dans la section où j'avais initialement référencé la table de données, voit ce fichier par CD et lien. Je saurai remplacer ce texte par une référence au fichier CSS local dans le dossier de mon sis pour les tables de données qui attachées signifient que CSS sur de la même façon à la fin de ce coup de pêche, je remplacerai la référence au fichier de script par une référence à la fichier GS local. Donc c'est toujours là, slash gs barre oblique, alors ce sont les tables qui avaient frappé alors je peux voir si cela sur puis tester mes changements. D' accord, donc ma page est rechargée et toute la table est partie. Donc ça veut dire que je manque quelques étés de référence de fichier comprendre ? Pour inspecter l'élément Onda, vérifiez ce qui se passe dans ma console sur elle me dit qu'il ne peut pas trouver un appel de fonction , et il pointe vers l'inquiétude geek. Donc, je crois qu'il me manque d'autres fichiers de requête J. Je veux retourner à mes branchements. Andi, je vais vérifier mes coordonnées. Dossier Tables. Ah, donc je manque en fait ce fichier de script Java essentiel, qui est juste nécessaire pour les tables de données tout à fait. Donc je vais juste copier ça. Andi, amène ça à mon projet. Il est assis dans le dossier, et puis je vais juste dupliquer la ligne qui inclut les tables de données. Mais puis au-dessus de la ligne d'origine, je vais rencontrer référence à cette nouvelle table de données J Query fichier de tables de données. Donc je vais sauver ça et essayer à nouveau sur nous avons décollé. Donc non, nous voyons ou la table de données semble un peu plus raffinée, et il s'intègre en quelque sorte dans le, vous savez, l'ensemble du projet un peu plus donc nous voyons que nous avons la même fonctionnalité que vous. Nous avons notre recherche ont ou filtrent ce que les recherches de filtre que nous avons ou la pagination Andi. Tout semble plus en uniforme. J' espère que tu t'es amusé à faire ces exercices, , remodeler nos pages. Je suis juste en train de m'assurer que tout va bien. Mais je sais qu'il y a quelques lacunes. Premièrement, il n'y a pas de page d'accueil. Nous sommes allés aussi loin sans faire de page d'accueil. Je te mets au défi de trouver une belle maison créative. Que ce soit partager avec moi. Je suis sûr que je trouve de la valeur dans la façon dont vous l'avez fait. Je vais en trouver un moi-même. Sur aussi il y a d'autres pages que peut-être les icônes ont disparu. Ou peut-être que la page n'était pas, Vous savez, pas beaucoup de soin a été pris dans le montage réel hors de la page quand nous avons travaillé sur eux initialement. Donc je vous mets au défi de simplement passer par le projet, nettoyer les changements de ces styles et de le rendre aussi beau que vous en avez besoin. 49. Pages de connexion et d'inscription personnalisés: Hey les gars, bienvenue dans cette leçon va regarder mettre en place une page de connexion personnalisée et une page d'inscription pour notre application. Comme vous le savez, nous avons travaillé avec le thème admin LTTE et nous allons donc nous inspirer de la vapeur et de leur conception prédéfinie des orteils, nos propres formulaires de connexion et d'inscription. Maintenant, sur mon écran, vous verrez les modèles d'écran de connexion LTTE admin où ils ont demandé le mot de passe de l'adresse e-mail . Ils ont un bouton d'affectation de la boîte de mémoriser ME, et ils ont également des boutons pour tout autre signe dans le moteur qui pourrait être en cours d'utilisation. En outre, ils ont des liens pour Mot de passe oublié et inscription et nouvelle adhésion. Vous verrez également qu'ils ont une page d'inscription qui est de nature très similaire. Mais les champs seront différents et relatifs à l'information qui sera demandé ou aux utilisateurs de s'inscrire en fin de compte à partir de n'importe qui hors des pages échantillon. Qu' il s'agisse de l'index 12 ou trois, vous pourrez accéder à la section qui indique les extras. Donc, dans le troc à gauche, vous voyez des extras et puis vous voyez des liens de connexion et d'inscription sur les deux hors. Ces liens mènent aux pages d'épaule précédentes afin qu'ils ne vous donnent pas ces exemples de pages . Vous avez un autre démarreur et air pour quatre ou quatre pages et d'autres pages dont vous pouvez vous inspirer. Mais une fois de plus pour cette vidéo sera juste inspirer de la connexion sur l' inscription. Non, j'ai déjà configuré la connexion sur Die peut cliquer, s'inscrire sur et naviguer vers mon inscription. Et si vous prenez note, vous voyez que j'ai déjà personnalisé soit formulaire toe mon contexte, non ? Donc je ne vais pas rencontrer celle-là une longue leçon. J' ai déjà cette ressource est des supports orteils. Les activités sont incluses dans cette leçon, mais nous allons passer un peu de temps à passer. Une partie de la personnalisation est, et certaines des modifications qui ont dû être faites, vous savez, c'est une installation. Ce facelift non, sur l'écran est le code que j'ai utilisé pour mon pitch de journalisation. Mais avant d'entrer dans ma cour, je veux vous montrer la cour d'origine et ensuite marcher à travers Hawaii, vous savez, vous savez, a transféré les changements que j'ai faits sur DSO. Si vous voulez faire le même processus que moi. Ensuite, vous pouvez l'obtenir en conséquence. Maintenant, les pages d'origine peuvent être trouvées dans le dossier at admin lt à l'intérieur des pages et des exemples , puis vous voyez enregistrer et vous verrez également se connecter. Donc je les ai ouverts tous les deux dans Nope I Plus et commençons par le journal maintenant le ballonnement est assez simple. Ils ont une loi supplémentaire que je n'ai pas pris la peine d'inclure parce que je ne voyais vraiment pas la nécessité d'en faire autant. Mais vous pouvez l'inclure et voir ce qui est différent à ce sujet. Mais je n'ai pas inclus celui-ci. Tout le reste a été inclus. Le siège star de l'emblématique Framework est vraiment un lien Cdn qui est scanné, déjà implicite par notre utilisation hors des fichiers CSS LTTE admin. Mais aller de l'avant. La section sur laquelle je suis surtout concentrée était le Dave avec la boîte de journalisation de la classe. Donc tout ce qui est à l'intérieur de ce Dave, j'ai copié le bateau, donc j'ai sélectionné tout ce don et je l'ai copié. Mais ensuite j'ai supprimé la section pour les Loggins sociaux parce que je n'ai vraiment pas besoin de cela dans ce contexte. Mais en dehors de ce que j'ai enlevé tout l'ID d'association de cordon avec la page de connexion ou mis hors que vous avez remarqué que le corps a une classe appelée transition de tiret de maintien sur un autre journal de classe dans ce discours. J' ai donc créé mon propre live au lieu d'utiliser la conversation corporelle. Je crée ces idées. Andi. Je réutilise ces classes, et c'est ce qui fait aligner son centre sur, savez-vous, affiché sur la page aussi près que possible de la démo. Donc, de retour en studio visuel et dans ma cour, vous voyez que je partage le sommet avec les classes, je tiens la transition et je me connecte à ce discours. Et puis j'ai les données pour la boîte de connexion. J' ai le titre sur, puis à l'intérieur hors de la carte pour le titre que j'ai envoyé dans la gestion des congés de base. J' ai inclus mon live avec le résumé de validation, donc j'en ai pris un peu hors de la cour de la page d'ouverture de session originale sur re inclus dans ce formulaire. J' ai donc le tribunal pour le résumé de la validation. J' ai commencé à changer les anciennes entrées pour les éléments de sorte que l'entrée originale du modèle aurait eu le type d'entrée égal à l'e-mail sur la classe et l'espace réservé tandis que ma modification à cela était que je l'ai dit entrée. Et puis j'ai pris le S avant d'entrer cet e-mail à partir de la zone de texte d'origine pour l'e-mail sur j'ai utilisé que pour remplacer le type égal partie parce que rappelez-vous qu'une fois utiliser nos helpers SB, cela implique le type sur implique la validation qui doit se produire. Mais j'ai gardé tout le reste. Je l'ai fait pour la zone de texte E plus e-mail, et je l'ai encore fait pour les quatre derniers manuels. Je suis également allé de l'avant et inclus la section pour la validation sur. En fait, j'aurais dû placer cela à l'extérieur de ce donner parce qu'alors il apparaîtrait effectivement dans la même ligne. Donc je dois mettre ça entre les Dave. Donc j'ai juste fait ce changement pendant qu'on est là. Et donc la section de la plage pour le message de validation apparaîtra en dehors du groupe d'entrée donné à partir du modèle en cours. Je n'ai pas modifié le souvenir de moi sur die a conservé le signe dans Andi. Je n'ai rien changé avec ceux pour les quatre, mais mot de passe onda registre liens. J' ai changé les liens ou les chemins pour la cheville. Toxie est être discours de tiret sur pour mot de passe à propos. Dans l'original, ils auraient eu une dérive, je pense que hashtag bien, ils ont eu un voyage quelque chose. Donc, ils pointent vers les autres pages modèles dans le thème admin LTTE pour Mot de passe oublié et pour Register Sarah placer ceux avec nos pratiques. Mais bien sûr, encore une fois, si vous voulez vous inspirer comme, par exemple, pour la page Pasteur oublié, alors vous pouvez le faire. C' est tout pour les modifications apportées à la grande hauteur. Et puis je peux passer à la page d'inscription sur vous voir que c'est assez similaire. Donc je reviens à l'envie maintenant pour qu'on puisse voir ce qui se passe. Donc tu vois, c'est le Lotus Participle. Le corps a des classes, maintenez la transition de tiret et enregistrer la page de tiret sur die une fois de plus utilisé le substitut de congé pour cette balise de corps juste là. J' ai un profond pour l'en-tête sur, puis le formulaire. Donc, vous remarquez que le formulaire prend ah, nom complet sur. Ensuite, il prend le mot de passe e-mail et retiré sur la confirmation pour le mot de passe. Donc, mes modifications provenant de ma page de registre originale auraient eu le prénom et le nom de famille. Donc juste le nom complet Dave Group Live Input Group sur l'a dupliqué et a fait un en s avant le prénom sur un dans ce avant le nom de famille a également veillé à inclure ces étendues de validation juste de la même manière après chaque groupe d'entrée sur gars a changé d'avoine, le S avant chaque entrée, donc avoir entrée. Désolé. Avoir le mot de passe de l'e-mail de prénom, nom de famille, puis avoir le mot de passe et le mot de passe confirmé sur puis pour la soumission je pour enduire d'autres liens et juste utiliser le bouton à l'intérieur. La règle sur ce bouton est Bt et Block. Donc, il s'étend à travers l'écran et puis pour le j'ai déjà un compte. Je veux dire sûr de simplement le changer en slash point page sp connexion. Je n'ai plus apporté de modifications sur DSO. Je vais juste ramener à l'écran ce que j'ai fait, puis on pourra baiser ce soir. Donc, c'est le formulaire d'inscription sur ce est sur le formulaire de baguage, comme généralement peut toujours mettre en pause la vidéo aux différents points où vous voulez copier la cour dans les deux sens ont inclus les références de la cour avec ce moins. Une autre modification que j'ai faite était dans mon contrôle à domicile, où je l'ai réglé pour autoriser. Donc ce que je ne veux pas, c'est que quelqu'un puisse atteindre les orteils de Bro. Toute partie de cette application sans être autorisée est authentifiée. Donc, en s'asseyant autorisé sur le contrôleur de maison, la première chose qui va à Lourdes quand il transe seul. La page d'accueil est la loi dans le terrain. Alors testons cette expérience. Donc, si je vais à l'application complètement sur Bothered, alors il va charger le journal dans la fosse. Alors laissez-moi essayer et Bro directement à partir de mon site, et ensuite ça essayerait d'attirer le contrôle de la maison. Mais remarquez qu'il est allé directement à la hauteur de l'authentification. Il n'ira nulle part ailleurs jusqu'à ce que vous soyez authentificateur, parce que j'ai mis autorisé à peu près sur tout le contrôleur. Donc, à ce stade, soit vous autoriser ou authentificateurs si désolé ou vous inscrire afin que vous puissiez avoir sur un cônes à peu près résume toutes les modifications que j'aurais faites à l' inscription et les pages de connexion. Andi, j'espère que tu suivras, suivras, et je ne veux pas me faire une copie de carbone. Utilisez votre propre créativité et essayez de l'obtenir orteil. Regarde comme tu le voudrais, Andi, Andi, je suis toujours ouvert aux commentaires. Je suis toujours ouvert à voir ce que tu fais. Vous pouvez partager vos captures d'écran avec moi et nous pouvons tous, vous savez, examiner tout notre travail ensemble. 50. Réviser et ajouter des modifications à GitHub: Hé, les gars, bienvenue. Mais c'est notre dernière leçon de révision pour ce modèle où nous aurions mis en place une nouvelle mise en page en utilisant le thème admin LTTE. Juste un examen rapide. Nous aurions changé sur la mise en page de notre bootstrap standard pour Leo. Cela aurait été le cas avec notre projet. Nous avons implémenté cette nouvelle mise en page où nous avons une barre latérale. Nous avons des icônes agréables et intuitives. Nous avons encore quelques animations. J' aurais personnalisé la page de connexion sur la page d'inscription alors pour notre page d'accueil . Eh bien, je t'aurais mis au défi de trouver quelque chose de créatif, mais pour moi, quoi ? Qu' il a été autorisé de sorte que lorsque l'application se charge, il nécessite une personne de se connecter avant qu'ils soient en mesure de procéder à tout autre chose Après connexion, l'utilisateur est conduit à la page d'accueil. Et encore une fois, je suis intéressé de voir ce que vous auriez trouvé pour votre page d'accueil. J' ai gardé la mienne plus simple et informative afin que vous puissiez voir exactement ce que cette, euh, cette application est tout au sujet. Quoi qu'il en soit, je veux que vous soyez créatif et que vous tiriez le meilleur des outils mis à votre disposition. Donc, je vais juste revenir à nos exemples de pages d'administration LTTE et vous montrer que nous avons une section là-bas appelée la documentation où ils vous montrent réellement comment implémenter la plupart sinon tous les plug-ins et les composants qui sont, vous savoir, inclus dans ce framework entier bâtiment Andi En plus de cela, le fait est que admin lt utilise tous les bootstrap pour les composants. Donc, tout ce que vous pouvez utiliser à partir de bootstrap que nous avons utilisé pour savoir qu'il est également disponible dans admin. C' est juste avec, tu sais, une légère torsion puisqu'ils auraient donné leur propre style à manger. Cependant, vous pouvez consulter toute la documentation, regarder les autres plug-ins sur les composants ou les autres composants JavaScript et voir que, vous savez, il peut y avoir des choses que vous aimeriez utiliser que je n'ai pas utiliser dans mes leçons. Mais vous pouvez aller de l'avant et mettre en œuvre. Et comme toujours, si vous rencontrez des ennuis ou des difficultés, Frito, faites-le moi savoir et je serai sûr de vous aider. Comme je l'ai dit, ce serait un bref examen car nous allons juste vous le savez, faire le point sur ce que nous avons fait, puis aller de l'avant et vérifier pour se lever. Donc, je viens de cliquer avec le bouton droit sur ma solution sur le clic Commet Ensuite, je fournit mon message de vérification. Donc, je viens de dire que j'ai implémenté le thème et ajouté nécessaire rapidement alors je vais juste aller de l'avant ce courant sur, puis commettre tout sur évier après avoir terminé cet exercice. Notre tribunal n'est pas à jour sur le lien vers ce dépôt ou à cette série de changements seront inclus avec cette leçon ainsi que toute autre ressource. C' est vous qui voulez dire besoin ? Si vous l'avez fait jusqu'ici, je tiens à vous féliciter. Bon travail jusqu'à présent encore une fois, soyez créatif. Essayez quelque chose sur le côté de la boîte. Andi, si vous rencontrez des ennuis, faites-le moi savoir et je serai sûr de vous aider 51. Fonctions de repository asynchrones: Hé, les gars, bienvenue dans cette vidéo, nous allons envisager de convertir des fonctions en fonctions synchrones et commencerons par le dépôt. Non, j'ai ouvert le point de journalisation CS qui voit occasionnellement ce dossier CS, qui est le tribunal derrière pour notre identité. Age est un feu de ConED pour la connexion. J' utilise juste cet orteil de fichier dépeint à quoi ressemble une fonction asynchrone donc aurait vu des fonctions asynchrones en cours d'utilisation. Les routes sont des applications, Andi. Parfois, je les utilise, parfois une jupe autour d'eux. Mais aujourd'hui, nous voulons voir comment nous les mettons en œuvre et pourquoi ils sont là. Donc, lorsque la fonction asynchrone est vraiment implémentée en tant que partie ah du paradigme de programmation parallèle qui est orienté vers rendre ou trimestre sur un peu plus efficacement et utiliser la ressource système est un peu plus efficace. Bon, donc ce qui se passe est que dans si le noyau sont dot net core et dans un travail différent, ou qu'il était assez quelques fonctions asynchrones et ils utilisent généralement le mot un évier à la fin des fonctions synchrones est ici ils sino Tasing. Vous avez le mot de passe signe dans un penser que vous avez un tas sur eux. Mais je pense que vous remarquerez également que les définitions de fonction sont aussi un penser. Donc, vous verrez quelque chose comme la tâche face au public sur puis le nom de la fonction, non ? Donc, quand c'est éviter la fonction, c'est à ça que ça ressemble. C' est juste une tâche face au public et un sur get Donc, si vous avez un vide sûr que vous voulez faire une fonction synchrone internée, vous le faites quelque chose comme ça. Vous remplaceriez ce vide par la tâche de mot-clé. D' accord, chaque fois que vous faites une fonction d'appel orteil une fonction synchrone, il a orteil avoir le mot clé loin. Donc, partout où vous voyez un évier, vous verrez le mot clé un blé. Cela dit, est trois nouvelles heures de deux heures. Je vais regarder la tâche d'assouplissement sur attente Andi Vous remarquerez également que quand il est une volée retour Foshan que vous avez tâche et un support oncle sur le type de données en cours de retour et puis fermer le support oncle Donc ce sont des choses que je veux regarder dehors comme nous commencer à re facteur sont cordon pour être un synchrone, je vais juste orteil minimiser les zones ici sur eux serait de commencer avec ma bête de dépôt oculaire. Donc, ici, nous savons que nous avons défini toutes les fonctions sur lesquelles chaque autre dépôt hérite. Donc, je veux que chaque dépôt hérite sur la fonction asynchrone. D' accord, si bien. Non, ils sont synchro nous leur défaut de la façon dont nous les avons initialement fait, ce que je vais faire est de voir les crochets d'angle ouverts autour du type de retour, qui dans ce cas, est que je collecte le temps t t être classe ordinaire et puis je ferme le crochet d'angle sur, comprendre d'aller de l'avant et de le faire pour le prochain, ce qui est très bien par I d. T étant la classe générique sur laquelle nous voulions trouver. Ensuite, nous sommes ça avec les crochets d'angle. Donc ce sont toutes les fonctions de retour de la vallée que nous venons de voir. Le modèle est que nous voyons les parenthèses d'angle de tâche appartiennent à la valeur ou suppriment l'heure renvoyée , puis ferment les parenthèses d'angle. Je vais juste le faire pour tous les autres. Bon, donc non, chaque fonction à l'intérieur de mon fichier basé sur le dépôt est une synchro nous. Donc, je vais juste dire que sur alors je veux commencer une transformation avec le type de feuille. Alors je vais aller au Je pars, taper notre positivité. C' est un choc concret sur la photo de l'affiche. Désolé, laissez le référentiel de type. Non. Je laisse Tyra Buster le cours de béton quand j'y arriverai, je verrai la ligne rouge. Sachez que la ligne rouge est là parce qu'il dit que bien, je n'ai pas mis en œuvre les interférences. C' est vraiment parce que je viens de changer chaque fonction pour être synchrone, mais je n'ai toujours que les mêmes implémentations Cronus ici. Donc, nous allons passer par ces ensemble sur sera changer chacune de ces fonctions pour être une infirmière synchro afin que commencer par créer. Donc, nous avons le taureau public créer. Donc, comme nous venons de parler, la première chose dont nous avons besoin ici, c'est d'un évier public, et ensuite on verra la tâche. Et puis je suis allé er le type de retour, qui est taureau à l'intérieur des crochets d'angle. Non, nous allons avoir une ligne verte ici parce que ça dit, Eh bien, Eh bien, je vois que vous mettez en œuvre quelque chose d'un évier, mais vous ne faites rien. Un évier ? Non. Encore une fois, les fonctions de course qui nous sont données ont généralement le mot clé qu'il pense à la fin. Donc, comme l'annonce est donnée ceux achètent dans un travail différent. Mais je devrais être capable de faire quelque chose. Donc, si j'arrive à la fin ici ou si je supprime juste le point le mot ajouter au médecin et ensuite je contrôle l'espace. Alors je verrai ajouter un évier, non ? Donc non, nous avons ajouté, cependant, à un évier maintenant une autre ligne verte apparaît parce que rappelez-vous, chaque fois que nous faisons un appel de fonction d'accélération, nous devons le précéder avec le mot-clé wait. Je sais que c'est fait. Vous avez remarqué que toutes les lignes ont disparu, tous les avertissements ont disparu, et il n'est pas satisfait que c'est une bonne implémentation sur une fonction de sink et un appel de fonction sing . Maintenant, nous pouvons faire la même chose pour supprimer. Donc encore une fois, nous avons besoin du mot clé un évier après public. Ensuite, nous disons angle de tâche, le support du type de retour sur, puis les pistes. Eh bien, il a besoin de quelque chose d'asynchrone. Donc, je vais regarder s'il y a un retrait, n'est pas. Et quand je fais ça, je ne vois pas, j'ai enlevé un évier. Bon, donc il y a des fonctions qu'ils nous donnent qui ont sur un évier Twin sont alternatives là-bas  ? Certains qui ne le font pas, tu sais, choisir Andrew. Donc, je vais laisser supprimer, comme c'est pour aucun mouvement sur les prochaines. En fait, je vais le faire pour toutes les fonctions à l'intérieur ici. Je suis vraiment juste dans copier la tâche de lavabo A sur les supports de premier angle et puis comprendre rythme des orteils que sur chacun que je vais à droite ? Donc pas sur trouver tout est notre support d'angle de tâche face au public. Retourner notre collection de temps e nuit à notre type de congé sur, puis sous le support à la fin de ce droit sur, alors ce qui répondrait cette saison pourrait être une version de lavabo de la liste ? Non. Quand j'arrive à la fin des mots à la police sur le contrôle de la presse et l'espace, je verrais les renseignements apparaître s'il y avait plus d'options sur. Comme vous pouvez le voir, il n'y a rien qui surgit de la personne. Randall. Il y a quelque chose qui surgit, c'est vraiment parce qu'il n'y a pas d'évier fourni maintenant. C' est vraiment parce que je n'ai pas la bibliothèque dont j'ai besoin. Je dois m'assurer que j'utilise, je crois que Microsoft dot entité framework core. Très bien, le truc est que ce lien nous donne des fonctions incroyables. Quoi ? Nous sommes vraiment limités orteil Aleen Cust offre, mais le framework d'entité Microsoft ou la bibliothèque l'ouvre vraiment. Donc si vous ne voyez pas les fonctions de course de son frère, parce que vous n'avez pas cette bibliothèque, si vous les voyez, alors cela signifie que vous avez la bibliothèque, et ce n'est pas un problème. Donc, si je reviens à la liste et puis j'appuie sur l'espace de contrôle, alors vous verrez que je reçois le touriste est couler. D' accord. Donc, si vous êtes si vous ne voyez toujours pas ça , alors il y a peut-être un plus gros problème sur, vous savez, vous pouvez me contacter, mais vous devriez voir à lister qu'il coule droit sur. Une fois de plus, une fois qu'on aura une fonction, appelez Tony évier. Nous devons le précéder avec le mot-clé. Euh, attends. D' accord. Ça résout ça. Alors nous pouvons continuer avec ça. On vient de remettre ça dans le presse-papiers. Je vais juste le coller pour chaque fonction sur définie. Y a-t-il un évier ? Il y a enfin un puits sur DYP reçu cet appel avec un poids se déplaçant. Andi, j'ai ces téléphones et je n'ai pas modifié ça. La définition de la déclaration de cette fonction dans la classe de référentiel de type feuille oeil . Ah, laisse-le tel quel. Mais je me déplace sur orteil un qui est réellement mis en œuvre. Donc hes existe, ce qui le rend en remorque. Synchrone Y a-t-il des idées ? On continue, à notre façon, tout va bien. Donc s'il vous plaît note que si vous sentez de mettre dans l'heure, même si vous mettez dans la mort que pour l'en-tête pour le téléphone montré pour être un évier et tout si vous ne mettez pas notre à la carte de fonction et vous allez voir un étroit qui n'est pas Vraiment dire à tes cheveux. Le mot clé easing vous manque. Oh, attends. Désolé. droite. Alors n'oubliez pas de mettre cela attend parce que l'erreur ne vous dit pas vraiment qu'il manque. D' accord, donc ensuite nous avons sauver ce qui fait qu'un asynchrone il y a un coffre-fort change un évier. Là, nous allons en plongée, l' empêcher avec le mot-clé. Attendez plus pour mettre à jour faire un évier. Y at-il une mise à jour un évier. Vérifions. D' accord. n'y a pas de mise à jour, Un chant. D' accord. Mais alors vous remarquez que sauver me donne une erreur tout d'un coup. Et c'est parce que sauver revient au type de boule de tâche quand on s'attend à ce que cela retourne un taureau. Donc oui, vous pouvez voir Task Bull ici sur ceci est un taureau tournant. Mais tu vas encore voir la flèche une fois de plus. Si vous faites un appel toe sur la fonction asynchrone, qu'elle soit définie par vous ou qu'elle soit celle qui vous est donnée par le framework, vous avez besoin du mot-clé. J' attends. Donc, une fois que je mets dans un sens, c'est que tout le monde est heureux. D' accord, donc vous pouvez ne pas être en mesure de vous savez, faire la partie de base F est synchrone. Mais au moins si nous avons cela implémenté comme asynchrone, alors nous serions en mesure d'appeler ou de faire usage de cette fonctionnalité asynchrone. Maintenant, étant donné qu'il y a des cas où nous pouvons le rendre asynchrone dans certains cas où nous ne pouvons pas , vous savez, vous gris dehors, vous pourriez le mettre quelques endroits et ne pas l'avoir d'endroits. C' est parfaitement bien. Je veux dire, le fait est que vous avez peut-être l'option. Certaines choses qu'ils ne peuvent pas. Bon, donc si vous revenez pour créer oui, nous avions l'annonce en face, mais ensuite nous appelons une autre fonction de chant ici. Donc, c'est un appel de fonction d'assouplissement. Celle-ci nous a été donnée par le système. Mais alors c'est notre fonction définie, ce qui est une chose. Donc, j'ai besoin de dire un poids sur puis pour supprimer tout en supprimant n'a pas un étonnant Nous avons une culture de fortune sur une fonction d'évier. Alors regardez ce qui se passe si je n'ai pas fait que toute cette fonction est synchrone Alors je vais faire une erreur ici alors il verra ne peut pas convertir implicitement le type sur. Alors je dirais Oh ouais, parce que tu penses que j'ai besoin d'un blé et qu'ils regardent ce qui se passe quand je dis Oh, attends. J' obtiens une erreur encore plus grande parce que le fait est que si je vais appeler la fonction synchrone que la fonction, faire l'appel doit également être défini comme un essai synchrone. Donc ce sont des petites choses. Des petits gotchas. Encore une fois, les erreurs peuvent ne pas être aussi claires parfois suggestion n'est pas la meilleure ou la solution réelle que vous pourriez vouloir dans la situation. Il est donc bon d'avoir une compréhension de ce que chaque situation cause pour non. Quand nous regardons en arrière, nous voyons que nous avons implémenté je laisse le dépôt de type avec succès. Andi sait qu'un dépôt pour le type de feuille est correct pour qu'on puisse passer à l'autre. Donc, si je vais quitter le dépôt de requête que je vais voir la même ligne rouge sur devrait effectuer le même genre de chirurgie sur la même chose pour quitter un endroit. Donc ce que je vais faire ou ce que je vous suggère de faire, c'est une vidéo positive. Essaie ça par toi-même. Je vais les faire et quand tu reprendras, on pourra comparer nos notes. D' accord, certains de retour et je vais ramasser avec le dépôt de demande de congé. Donc d'abord, je suis modifié. Laissez le demandeur positivement en tournant le puits. Je laisse la posture du demandeur en tournant la définition ou la déclaration désolé dans remorquage, une fonction de tâche. Et puis j'ai procédé à changer tout le reste en une tâche comme pourquoi n'ai-je pas laissé repoussé là certains qui étaient à l'exception sur Eh bien, vraiment. Les demandes des employés, j'ai dû réfractionner la cour parce que ce qui s'est passé, c'est que je revenais. Trouver tous les points où ? Tout le reste que vous remarquez que où n'a rien sur la liste à dans cette situation n'a pas sur un évier. Donc f core vous donne réellement ces fonctions de lien les fonctions de lien étant l'usure et les touristes et le premier nos valeurs par défaut et ce genre de fonctions qu'ils vous donnent lorsque vous interagissez directement avec le détail, soyez donc comme d'abord notre défaut dans cette situation, il interagit directement avec la base de données. Pour lister un think interagit directement avec la base de données. Cependant, dans cette situation, j'ai dû définir un appel variable. C' est la demande de laisser attendre les résultats de l'appel de fonction find all que j'ai changé en un easing on. Ensuite, j'ai retourné la demande de congé qui étaient en fait de sorte que ces fonctions volontaires n' interagissent plus directement avec la base de données, mais il n'y a pas d'interaction avec juste une autre variable, non ? Alors que certaines situations que vous voyez le lien avec l'évier A sur. Parfois, tu ne le verras pas. Très bien, c'est pourquoi il était important que nous incluions la bibliothèque Entity Framework parce que la bibliothèque fonctionne avec la base de données n'est pas nécessairement les ensembles de données à venir ou les résultats de données provenant de la base de données. Donc, après le fait à la cour un peu pour que je puisse faciliter ce poids sur la finale le jour, retourner les résultats en conséquence quand nous avons juste, vous savez, réformer que tout le reste, cependant, était à peu près en ligne avec ce que nous avons fait dans le dépôt de type feuille. Donc je suis sûr que vous n'avez pas eu de difficultés là-bas. Et si vous l'avez fait, alors vous savez que vous pouvez vous sentir libre de mettre en pause la vidéo en revue ces fonctions que je fais défiler et me concentrer sur chacune d'elles. D' accord, alors nous avons l'allocation ou l'affiche Je laisse, qui avait trois fonctions personnalisées supplémentaires, que j'ai aussi changées en tâches. Très bien, alors, dans la mise en œuvre, je devrai faire un affacturage similaire. Donc, dans ce cas, nous revenons. Trouve tous les points où tu sais, tout le reste. Au lieu de cela, j'ai créé une variable loin des résultats de la recherche tout sur. Puis j'ai retourné les résultats pensés étaient donc vous savez que vous pouvez en fait, il est d'accord. Vous pourriez avoir des difficultés au pied si vous pensez qu'il leur a dit. Félicitations à. Si ce n'est pas le cas, voici notre façon dont notre propre fille et la difficulté a pu faire face. Comme pour les autres génériques créer l'orbit de suppression. Andi existe et trouver par je d sur trouver tous ceux regardent le même. Nous sommes à peu près nous avons la liste d'une chose où le premier, notre par défaut un évier sur, puis pour les autres personnalisés où nous avons dû trouver tout sur nous avons tiré sur eux ajouté la même chose où je viens bien, le résultats de la recherche tout à l'intérieur d'une variable sur puis retourné l'opération contre les résultats de la recherche tout de même chose pour l'allocation de congé obtient par les employés et tapez rand, Tout est à peu près semble sembler. La chose cool est que notre position Torrey devrait se comporter plus efficacement lors de l'interrogation de la base de données lors de l'exécution de nos carrières et autres. Mais quand je construis, vous verrez que nous avons un tas d'erreurs si bien, cette zone semble qu'il est juste ah manquer beaucoup. Je crois que j'ai changé quelque chose en évier. Laisse-moi vérifier ça. Laisse-moi juste voter. Je crois qu'il va j'ai fait cela un penser dans la victoire certains mais je ne l'ai pas fait dans la définition. Laisse-moi le faire rapidement. Et puis je suis allé construire sur dso je vais vous montrer les erreurs que je m'attends à voir . Donc je sais que je vais avoir des erreurs. Ce n'est pas un exercice fait parce que nous venons de voir que chaque fois que vous appelez et la fonction asynchrone , vous avez besoin du mot-clé. J' attends maintenant dans nos contrôleurs, nous appelons ces fonctions de dépôt dans leur forme synchrone sur Non, que nous les avons changées pour être asynchrones. Nous devons revenir à nos contrôleurs et modifier la façon dont nous avons interagi avec ces fonctions sont les résultats de ces fonctions. Donc, dans la prochaine vidéo, nous allons passer à travers et nous allons nettoyer nos contrôles pour nous assurer que ou si vous saviez, nous n'avons pas d'époques 52. Contrôles et actions asynchrones et actrices Asynchronous: Hey, les gars, Bienvenue dans cette vidéo va regarder à convertir nos actions de contrôleur sur la cause de la fonction dans le code de remorquage qui supporte sont dépôt asynchrone. Nous examinerons également d'autres cas où nous utilisons les fonctions synchrones sur être vous faire savoir, profitent pleinement de ce qu'ils ont à offrir. Donc je commence par le contrôle des types de feuilles. Je crois que c'est le plus facile de commencer. C' était assez simple sur Nous allons juste être en train de convertir. Nous voyons toutes ces lignes rouges toutes ces erreurs sur nous allons juste être réfractaire notre cour d' une manière que nous savons est nécessaire pour soutenir sur aucun cordon de dépôt asynchrone quelqu'un pour commencer avec Index Noto, faciliter cet orteil Orwell évaluer cette flèche Nous devons d'abord comprendre ce qui se passe ici. Donc trouvez tout est, ah, ah, fonction que nous savons que nous venons de convertir en un rapport Andi synchrone est, eh bien, le dépôt de type feuille sur. Ensuite, nous voyons ici qu'il est bien de nous donner un début sur les deux listes. Donc, il est fondamentalement dire que je ne peux pas juste lister sur une tâche synchrone donc vous trouverez que le chaînage de méthode deviendra un peu plus de difficulté ne sera pas transparent comme il l'était auparavant , car ici je ne peux pas simplement enchaîner sur les deux listes. Même si je mets sur le loin ce que nous savons quand nous avons ah, fonction. C' est une chose que nous devons dire à notre façon. Mais alors nous sommes dans Contra une erreur ici parce que nous devons changer la fonction réelle en deux et un puits un. Donc, pour ce faire, nous avons besoin d'un puits sur la tâche, puis le type de retour est les résultats d'action. Donc, nous enveloppons que dans le support d'angle sur même ce n'est pas assez orteil fixer la flèche parce qu'ils se retrouvent toujours avec la flèche. Donc, cela va fondamentalement nous dire qu'il ne peut pas en pisse ? Eh bien, il basé Palestinien ne peut pas énumérer quelque chose qui est une tâche. Très bien, donc ce que je suis allé faire est de supprimer la liste de to du find all on. Ensuite, je vais devoir l'ajouter à la cartographie. Donc non, l'a retiré de cette liste de la ligne finale à la ligne de types de feuilles parce que maintenant il dit que bien, c'est une collection d'yeux sur eux. La cartographie de la bête sur la liste. Donc je vais juste dire, OK, OK, laissez les temps. Mais ça, je peux le faire comme ça. Ou j'aurais pu introduire une autre variable où j'ai dit laisser les types à lister, puis cette variable. L' un ou l'autre fonctionne. Le fait est considéré hors de la obtenu débarrassé de la ligne rouge, et nous pouvons avancer. D' accord, donc les détails doivent avoir le même traitement. Donc, je vais juste copier la tâche d'assouplissement sur votre support sur le placer sur les résultats d'option ici sur. Ensuite, il semblait qu'il ne pouvait pas simplement effectuer les noeuds sur une tâche. Droit ? Donc, le pas opéré l'explication ne peut pas être appliqué orteil fonctionner et hors taureau de la tâche de sorte que quelqu'un à faire est juste introduire une variable. Droit ? Donc, vous trouvez que l'offre un peu d'affacturage hostile aller sur les pieds, l'installation de ce changement. Certains veulent dire que cette nouvelle variable existe est égale orteil attendent, et puis je vais appeler rapport. Cela existe. J' ai dit que le film montre l'appel que je vais mettre ici comme un appel de fortune assouplissement. Ensuite, je vais juste passer la variable à l'intérieur de l'original. Si la déclaration là-bas, nous allons. Tout le monde n'est pas un campeur heureux. Si vous regardez cette fonction, appelez ici via type de congé les gens trouvent par idée, pas d'ami par idées. Fils asynchrone est allé voir un poids sur alors qui devrait prendre soin de cela, de sorte que vous ne pouvez pas voir une flèche, mais quand vous voyez l'opportunité, vous savez qu'il est quelque chose vous appeler. Assurez-vous juste de bien mettre l'extérieur. Maintenant. Créer ne fait rien d'asynchrone. Il ne fait rien de spécial quelque part pour laisser ça, alors parfois vous les convertirez. Parfois, tu ne le fais pas. Le fait est que si vous le convertissez et ce n'est pas nécessaire que bizarre, ajustements de studio ont suggéré que vous ne convertissez pas que tout, puisque vous n'utilisez pas les méthodes synchrones de toute façon, sont pour le post pour le créateur mettant un tâche de poursuite, action corrompue, résultant des crochets oncle sur. Ensuite, je fais juste défiler, à la recherche lentement d'autres fonctions d'effacement. Je suis le succès ici est créer, qui est sur un évier, donc je vais le dire loin et ils ont remarqué que cette ligne rouge disparaît parce que le résultat en attente de la tâche à terminer est le type de béton. Donc, sans la façon dont il va obtenir de cette forme, shonka va obtenir le taureau de la tâche. J' attends donc les résultats de la tâche. Et donc le résultat de la tâche est le droit booléen réel ? Et c'est pourquoi cela est traité même un mieux si ou un processus sur une erreur. Donc, en avançant, nous allons faire les modifications que nous mettons dans notre tâche, puis nous devons faire le même genre de son existence ici et nous attendons les résultats du rapport. Donc, je suis juste en train de taper ça parce que je ne veux vraiment pas perdre ce qu'il y a dans le presse-papiers un peu copie et de collage sur. Alors je peux enlever ces, euh, d'autres éléments. Donc non, nous attendons le résultat de ces existe et nous faisons l'instruction if, j'attends aussi la découverte par i d. Et puis nous passons le long puis changer le poste dans le remorquage sur la tâche d'assouplissement um, l'orbit. On le doit parce que c'est asynchrone. Et puis nous passons à la suppression, Dites, voyez, après que vous vous êtes habitué à la patter et ce n'est vraiment pas si difficile de simplement convertir votre cour pour utiliser toutes les fonctions de boîtier ou le modèle de boîtier que Le noyau de mitt a rendu la mise en œuvre si facile pour nous, n'est-ce pas ? Donc partout où vous avez un appel de chant au genou. Vous vous assurez juste que l'une de la fonction est asynchrone sur votre attente de l'appel. Bon, donc c'est tout pour laisser le contrôleur de type. Regarde ça. On a fini. Donc, si nous faisons une construction Randhawa et que l'air revient du contrôleur de types sur , nous pouvons dire ce fichier, mais nous avons toujours des demandes de congé et l'allocation de congé. Donc nous allons faire des demandes de congé ensemble une fois de plus, puis je vais vous laisser faire l'allocation IV, et ensuite nous allons juste comparer les notes. Bon, donc pour l'index, je vais juste convertir cette tâche d'orteil. Alors. Je suis juste en train de regarder à travers. Alors trouvez tout ce dont nous avons besoin pour attendre les résultats. Trouve tout sur. Ne voyez rien d'autre de la partie supérieure n'est pas implémenté ou balai. C' est vous qui pensez ? Il y a ? Je suis en train de chanter. Eh bien, il n'y en a pas. Donc, c'est bien. On peut avancer le long de mon congé. Je vais rencontrer ça synchrone. Alors j'ai mis sur la tâche sur laquelle je me suis absenté. Ensuite, nous obtenons des points douloureux où nous utilisons le gestionnaire d'utilisateurs. On avait un évier à l'utilisateur. J' ai dit pas de résultat. Alors rappelez-vous que j'ai dit que quand vous attendez, alors vous obtenez le résultat de l'appel comme un type concret. C' est ce qui s'est passé ici. Alors que les résultats nous donnent réellement sur le type de béton ? Non, je ne pense pas que ces résultats soient en fait ou appeler la fonction d'assouplissement comme ceci fait pleinement usage de la fonctionnalité asynchrone fournie aux orteils. Donc, ce que je vais faire est de supprimer les résultats de point sur aller orteil, attendre cet appel. D' accord, donc non, on a un point de gestionnaire d'utilisateur qui utilise un évier et on n'a pas les résultats du médecin. Donc, ce qui s'est passé, c'est qu'à ce stade, je ne voulais pas vous submerger de faire l'action en facilitant juste pour que nous puissions utiliser le gestionnaire d'utilisateurs, s'habituer à un évier, donc je l'ai laissé seul. J' ai juste utilisé ces résultats. Donc, vous voyez que vous pouvez utiliser ces résultats, ou vous pouvez simplement rendre le bloc entier asynchrone pour faciliter l'appel d'accélération réel. Droit ? Pas d'avance. Nous constatons que nous avons le rapport de congé juste en planant. Je vois que c'est une tâche. Celui-ci est aussi une tâche. Je le sais aussi parce que j'ai fait les changements. Mon programme. Droit. Donc, je comprends Attend ces deux appels ma perm supérieure alors il Pas plus de cause que Uday Singh afin que nous puissions nous déplacer dans les détails moi la fonction ou l'option. Désolé. Les de résultats de l'action. Nous y parvenons Vous pensez que nous avons du poids sur. Ensuite, nous passons aux demandes approuvées fera un évier sur. Alors nous ne pouvons pas attendre. Donc, remarquez si je le mets sur cette ligne, c'est le moniteur utilisateur. Gestionnaire d'utilisateurs, obtenez à l'utilisateur un évier sur puis c'est que les résultats. Donc, avec le résultat que comment cela ne fonctionnera pas donc c'est l'un ou l'autre. Donc, si vous êtes fonction n'est pas un puits, alors vous pouvez utiliser les résultats de points. Si vous en faites un évier, utilisez juste le mot G. Ah, attendez et supprimez les résultats des points. D' accord. Donc nous pouvons attendre toutes ces causes et remarquer combien de Terres sont partis quand je viens de dire que j' attends ça. Ils étaient en fait sur le type de béton, qui était nécessaire pour commencer quand j'ai rangé une déchirure. Ces autres erreurs ci-dessous devraient disparaître alors. Vous savez, ce sont les lignes vertes ici. Donc, ces lignes vertes disent que je vois cela ici appelant la fonction asynchrone, mais il utilise aussi les trucs de sinker. Donc si je pars de ça, alors vous voyez que le Responsable disait que c'est ce qu'il peut juste insérer attendre. D' accord, donc la même chose que j'ai dit, c'est quelque chose que les studios ont été de suggérer juste de mettre un poids en face de votre fonction, parce que d'accord, alors on bouge. J' aimerais savoir la situation où j'ai essayé de te protéger de la complication, mais où Brad ? De retour ici sur dso je fais des résultats de rejet. Asynchrone sur le type. Faire un avantage sur le gestionnaire d'utilisateurs obtient l'utilisateur un évier et le voir sur. Alors cela devrait prendre soin de certaines choses sur. Je vais aussi attendre la découverte par je d appeler à ce sujet. Je suis allé attendre l'appel à mettre à jour et je me déplace le long pour créer un Andi synchrone insérer mes mauvaises herbes où il est nécessaire et vous voyez combien de choses se résolvent là. Alors peut-être que je ne parlerai pas autant ? Non, parce que je pense que vous êtes en train de rattraper. Quoi qu'il en soit, je vais juste faire ces changements. Vous pouvez toujours mettre une vidéo en pause à tout moment où, vous savez, j'ai peut-être bougé trop vite et rembobiné là où il ne comprenait pas. En def, tout cela se sent libre de me contacter. Donc, nous pouvons avoir un peu de dialogue nous-mêmes ce qui a été fait. D' accord, donc je suis juste en train de passer à travers. Et je pense que je suis presque fini avec ce contrôleur où une tension une demande a fait tout penser inséré un blé inséré à nouveau un blé. Donc, pour moi, le but est de ne pas avoir de lignes. Qu' ils soient bleu vert sont rouges, mais surtout lire la parole de Dieu signifie qu'il ne fonctionnera pas. Mais qu'ils soient verts ou bleus, suffit de supprimer toutes les lignes, donc à tout moment la suppression n'était pas applicable. Laissez le contrôleur de requête. Donc, nous passons à laisser un contrôleur de localisation sur DSO. Vous pouvez mettre la vidéo en pause ici, essayer celle-ci par vous-même. Je vais le faire, et ensuite on a juste des fichiers informatiques. Bon, donc je suis de retour, ai fait les changements quelqu'un pour passer par chaque fonction sur DSO. Eh bien, j'ai fait les changements, et clairement je ne les ai pas terminés parce qu'ici nous avons les types de feuilles avec des attentes à la trouvaille, tous sur l'ère de liste que nous avons vu quand nous allons laisser des types, contrôles, comprenez. Joignez-moi cet ajustement et voyez ça pour la liste de ce côté. Si vous optez pour une solution plus élégante, n'hésitez pas à la partager. Hum, mais ensuite on peut avancer avec celui-ci. Donc c'est l'index. Fait la fonction synchrone interne hors cours. Mets dans mon loin. Il se déplace à définir leave ont mis en ce que nous attendons sont nous de supprimer les résultats de point du gestionnaire d'utilisateur Dans l'instruction if, j'ai également inséré l'emporté Donc une fois de plus, fois que vous avez une fonction appelée sur la fonction asynchrone, vous pouvez juste éliminer les mauvaises herbes. Il fonctionne presque n'importe où et quoi dire Presque n'importe où. D' accord , alors. J' ai inséré la sortie. Attendez ici la création de la liste des employés. J' ai attendu que le gestionnaire d'utilisateurs obtient des règles. Obtenir les utilisateurs dans un évier rural, enlever les médecins. Ecoute, c'était là dans les détails. Ça va, donc j'en ai raté un. Donc je l'ai fait ici pour la cartographie des employés. Mais j'ai raté celui-là. Il est donc bon de comparer les notes. Je suis sûr que tu m'as signalé si tu faisais du bon travail. Donc, pour les allocations étaient bien. C' est obtenir les allocations de congés par les employés. Andi, c'est fait dans la cartographie. Donc les philosophies diffèrent en termes de la façon dont nous gérons ces causes de fonction et ont été mis. Donc vraiment, en fait, peut-être à des fins éducatives, en fait, que vous auriez pu juste faire l'appel de fonction ici. Hum, ma préférence est vraiment de les mettre dans un terrible. Donc, je définirais une variable où je stockerais ce qu'ils utilisent qui couvre de cette fonction. Appelez. Alors je passais ce verbal en remorque. C' est, euh, un seul complet pour eux. Droit ? Donc c'est ma préférence, vraiment et vraiment. Mais on va le laisser. Je ne suis pas un facteur alphabétisé pour citer trop parce que, eh bien, c'est nouveau. Un nouveau sujet, Andhra. affacter à cette fin n'est pas absolument nécessaire. pour faire entrer ce sujet à travers, donc nous allons simplement avancer le long. Donc, pour l'édition, euh, nous attendons ici le post pour les modifications. Nous attendons le record. Nous aussi ah, succès de blé sur C'est ça pour la conversion ou les contrôleurs. Donc, si je fais une autre construction, alors je vois que cela a été en fait très réussi. Donc, une construction a réussi sur je vais réellement exécuter le programme et aller dans certains de ces contrôleurs. Assurez-vous juste de ne rien casser. Bon, donc je cours mon application et j'adore réussir. Laisse-moi, tu sais, prendre la sienne. Assurez-vous juste de voir ce que je m'attends à voir. Donc ici, je vois que je suis en train d'apporter la tâche de croyance à partir de ce que cela aurait appelé notre trouver tout droit, si je vais à laisser des allocations et je peux cliquer allouer des employés, toutes ces fonctions hors d'eux est au cours de toute exception . Donc, je suppose qu'ils étaient des demandes de congé ici à alors rappelez-vous que tous ces obtenir ou tout ce qui est de récupérer des données. Tous auraient un bean bien converti en fonction asynchrone. Donc je suppose qu'il est sûr de dire que nous n'avons rien cassé quand je viens de cliquer sur le nôtre, j'ai toujours toutes les fonctions que j'avais avant. Ils fonctionnent tous assez bien, donc l'application serait généralement juste faire une meilleure utilisation du système. La ressource est lors de l'interrogation de la base de données et de la récupération des données sur bien avec les utilisateurs interagissant avec elle sur, vous verrez les fonctions asynchrones pauvres au fil du temps. Comme vous le savez, charge du système augmente il fera veut nous à nouveau. Une meilleure utilisation de la ressource est disponible. 53. Réviser et ajouter des modifications à GitHub: Hé les gars, on est dans la section où on va juste revoir ce qu'on a fait et ensuite vérifier nos changements pour être branchés ensemble. Donc, une fois de plus, juste un examen rapide. Ce que nous avons fait dans cette section était d'implémenter nos fonctions asynchrones dans notre dépôt. Donc, chacun de nos interfaces a obtenu les déclarations de tâches pour les fonctions. Les classes de pays qui auraient hérité de la base ou du dépôt héritant de la bête auraient également obtenu ces déclarations ou modifications asynchrones . Nous nous sommes également assurés d'inclure entité, framework core afin que nous puissions tirer pleinement parti des fonctions asynchrones que framework d' entité nous a offertes. Ensuite, nous avons étendu ce travail à nos contrôleurs et actions parce qu'une fois que vous avez été fonction asynchrone, la façon dont nous interagissons avec les changements. Donc, le premier que nous avons interagi avec elle et d'abord la cour a dû être réfractée un peu orteil faciliter ces changements. Donc, partout où nous avions une fonction appelée à, euh pas une fonction synchrone, nous avons dû mettre le mot-clé un blé dur et nous voulons aussi dire que tout pour les actions est synchrone donc cela signifie simplement qu'à l'avenir, nous pouvons écrire tout ce qu'il est synchrone sur. Tirez pleinement parti du mécanisme de programmation pilote qui dot net core nous offre n'importe quel trou dans cette vidéo. Nous allons vérifier nos changements. Donc, comme d'habitude, nous allons juste à notre solution, clic droit, cliquez sur navettes sur. Ensuite, il nous fera savoir que nous devons mettre un message. Donc, je vais orteil, commence à taper et je verrai le dépôt changé. Laissez-moi commencer si vite. Bon, donc mon message lit Changer les contrôleurs déposants sur les ins réels pour soutenir la programmation asynchrone . Bon, donc c'est mon message de validation sur. Ensuite, nous allons juste laisser cette voiture il est aller à commettre tout et couler, ce qui nous offrira de valider les changements localement et ensuite synchroniser avec le numérique. Donc, une fois que c'est fini, nous pouvons aller sur le hub. Nous verrons les changements le plus récent engagement sur le dernier calme. C' est arrivé il y a quelques secondes sur Nous verrons le message de changement là-bas. Donc, comme d'habitude, je vais partager l'orteil spécifiquement cette chance avec vous sur afin que vous puissiez examiner ces changements sur votre propre 54. Examen des motifs de programmation: Hé les gars, bienvenue. Dans cette section, nous allons explorer différents modèles de codage et explorer pourquoi nous en avons besoin. Donc, dans cette vidéo particulière, je veux juste prendre un peu de recul, regarder ce qui sort de la boîte avec ou l'application de base MVC.Net. Et puis nous pouvons regarder pourquoi nous aurions mis en œuvre notre modèle. Parce que pendant que j'ai brièvement fait allusion à la fonctionnalité prête à l'emploi, nous sommes vraiment allés à la mise en œuvre du dépôt Patreon serait, sans vraiment explorer pourquoi nous avons besoin de l'arène de pots de dépôt. Et puis par extension, nous allons examiner les faiblesses du dépôt sur le cern et le week-end entier bien, fois la mise en œuvre de l'unité de travail et quels avantages et inconvénients seront. Alors commençons ça. J' ai le projet de gestion de plomb et ce que je vais faire est de générer un contrôleur et ses vues respectives en utilisant le mécanisme d'échafaudage prêt à l'emploi. Donc, une fois de plus, nous sommes brièvement fait les démarrages où nous sommes allés ajouter pour le contrôle de suivre et d'ajouter, ajouter un nouveau contrôleur. Et puis nous pouvons sélectionner le contrôleur MVC avec des vues en utilisant l'annonce Entity Framework. Et puis nous sélectionnons nos modèles. Donc je vais juste utiliser, disons partir. Trouvons un type de feuille facile. Donc laissez serré, désolé, pas le type de dépôt. D' accord. Donc, je vais utiliser le type de feuille pour générer, pour éraflures. Maintenant, dans les parties antérieures, je voudrais, j'aurais par erreur utiliser le modèle de vue, disons une allocation de vue US ou de type elif VM, non ? J' aurais utilisé la VM à vie et soulever la classe des contextes de données. Et c'était une erreur de ma part, car une fois que vous incluez la classe de contextes de données, ce qu'il fera est automatiquement supposé qu'il s'agit d'une table de base de données. Et s'il n'est pas déjà inclus dans le dossier de données, il l'inclura dans le contexte DB de l'application. D' accord ? Donc, si vous Bach et vous voyez n'importe quelle machine virtuelle et l'une des machines virtuelles qui entendent dans l'ensemble BB, vous pouvez les retirer en toute sécurité. Est-ce qu'ils ne devraient pas être là. Mais quand vous échafaudage en utilisant une classe qui est déjà là. Donc, dans ce cas, vont utiliser des contrôleurs de type Leaf, des vues de contrôleur avec Entity Framework. Et puis nous sélectionnons le type de feuille et nous laissons l'application sur le contexte DB dedans. Et je vais juste lui permettre de nommer le contrôleur dit laisser types un contrôleur et l'ancien problème parce que les types RAW contrôleur, alors ajoutez cela et cette activité, vous n'avez pas nécessairement à faire ce que je fais. Je le fais vraiment à des fins de démonstration juste parce que nous voulons notre discussion. Très bien, donc une fois que l'échafaudage est fait et qu'il a été fait avec la classe de données, alors vous verrez qu'il initialise des contextes. Donc contexte de base de données d'application, c'est sa passerelle ART vers les données. Il a le contexte. Donc c'est le modèle MVC prêt à l'emploi, non ? M debout pour contrôleur CFO vue modèle V4. Droit. Et nous avons traversé ce que le MVC, ce que chaque composant, ceux. Donc, en soi, c'est en fait un modèle. Ce modèle a été développé parce que ce qui se passerait est que vous auriez beaucoup de logique, comme ce qui se passe dans le contrôleur étant mélangé avec le HTML, qui est presque dans la vue. Et puis la connexion de données et les communications de données qui se passent juste là. Ils ont donc essayé d' extraire ces trois fonctionnalités distinctes dans le M pour les données du modèle, V pour la vue, les choses visuelles, et voir pour le contrôle de la logique. Maintenant, quand nous sortons ce contrôleur de la boîte et il injecte le contexte DB de l'application. Vous remarquerez qu'il génère réellement tout ce code pour vous. Vous avez donc la possibilité de lire ou de lire tous les types de contexte. Donc, ce sont juste des contextes de liens simples, types de feuilles aux listes. On a traversé ça, non ? Pourtant, les premiers nos valeurs par défaut lorsque vous allez créer Gua lient à la classe de données. Et nous pouvons modifier cette liste pour dire que nous ne voulons pas apporter une création d'un jour. Il continuerait d'apporter tout cela ou quelqu'un met en plus, ils ne font pas déjà partie du modèle, alors nous pouvons les ignorer en utilisant cette liste. D' accord, donc tout est hors de la boîte et il est facile pour un débutant de ramasser et de commencer à utiliser et ce n'est pas un problème, cela fonctionne pour Microsoft nous a donné un bon modèle à partir duquel commence. La raison même si nous commençons à implémenter un motif au-dessus de ce qui sort de la boîte a à voir avec la capacité de minton et éventuellement la lisibilité. Signification dans ce cas de cette liaison, maison maintenable Est-ce quand nous devons modifier cette classe de données. Et puis nous devons ajouter des champs pour quitter la ville parce que les affaires reviennent. Donc recensement hey, vous savez, type de congé doit avoir ces USA supplémentaires, nous les ajoutons. Bien sûr, nous les modifions et devrons rappeler de revenir au contrôleur, étendre cette liste de champs désossés pour la liste étendue pour les modifications. Et puis c'est un cycle qui doit aller et venir à chaque fois. Et, tu sais, je pense juste que ce n'est pas durable, non ? Alors nous avons implémenté ce que nous appelons MVVM en plus de cela, en plus de tout ce mécanisme. Donc MVVM est court pour modèle, vue. Afficher le modèle. D' accord ? Donc, MVVM est essentiellement l'endroit où nous avons introduit le modèle de vue. Donc, nous avons résumé à quoi ressemble vraiment le type Leaf et l'avons mis sous la forme de modèle de vue. Alors que ensuite s'est débarrassé de cette liaison, la dépendance sur cette liste de liaison. Et puis nous pourrions savoir, dire à quoi devrait ressembler le modèle de vue. Donc, il se liera automatiquement à la feuille de cravate VM, n'est-ce pas ? Des champs supplémentaires doivent aller et nous allons juste laisser le type VM et les ajouter et ils sont ajoutés université parce que nous regardons le modèle, nous ne regardons plus cette liaison, au moins. Bon, alors nous pouvons limiter ce que nous voulons à travers tous nos modèles de vue. Donc, c'est le premier modèle que nous pourrions probablement prêter attention et dire, ok, donc vous pouvez voir où le Model-View-ViewModel a été réellement implémenté. Nous avons donc ajouté un modèle de vue à une sorte de média entre le modèle réel, qui est le type de feuille provenant du verre de type de données, et la vue elle-même, qui est l'affichage des données. Le ViewModel a ajouté ou soustrait les champs que nous avons jugés nécessaires pour les opérations. Donc, en passant à partir de MVVM, parlons un peu de certains des guillemets d'accès aux données générés automatiquement. Donc, nous avons des contextes, dot-dot-dot, IV types, dot ac, celui-ci qui a commencé les valeurs par défaut. Et on les a partout, non ? J' ai dû trouver etcetera, etcetera. Non. Le fait est que si j'avais besoin de se lever façon costume pour obtenir Butler types de congé. Et je pense que nous avons dû faire quelque chose pour obtenir les demandes de congé pour une année donnée ou les allocations de congé de quelqu'un pour une année donnée. Ensuite, cela signifie à chaque fois que je récupère cette liste après n'oubliez pas de mettre sur mon WhereClause et ensuite mettre sur le lambda où et quoi que ce soit. Disons, disons simplement que par défaut est, j'ai dit qu'il laisserait l'allocation ce que nous utilisons les types de feuilles ici. Donc ce juste humour moi, inondé. Donc, je devrais me rappeler de le faire chaque fois que je suis tendance à billard buck leave types après-midi dans l'index et tout autre écran personnalisé après rhomboid quand je fais une liste déroulante où les types de feuilles après se rappeler d'écrire la requête exactement comme ça à chaque fois. Et puis cela conduit à une certaine répétition. Et bien qu'il soit utilisable pour une petite application dans un contexte d'entreprise, il n'est pas durable car les règles métier peuvent changer presque à chaque seconde. Et vous savez, vous devez être en mesure de modifier rapidement l' application en fonction de ces nouvelles exigences. C' est pourquoi nous introduisons cette obstruction que nous appelons le dépôt. D' accord, alors laisse-moi sauter au dépôt. Donc du référentiel de type Leaf. Et c'est l'implémentation à partir du référentiel de type elif et par extension à partir du référentiel du B. Donc, nous avions le dépôt de base parce que nous savons qu'il y en a, là. Ce sont les fonctions de base que nous ferons toujours. On va toujours faire un peu de financement public. Et puis nous pouvons toujours les fermer Mies, exactement comment nous trouvons l'un d'entre eux en lui donnant son propre dépôt. Donc, pour le type Feuille, je pouvais voir que quand je trouvais tout pour les types de feuilles, je voulais me rencontrer, fait. Donc, alors ces requêtes personnalisées ont écrit un 1s, une protéase et utilisé ailleurs s'il a besoin d'être mis à jour, j'en ai juste un pré-installé. C' est donc l'un des avantages du modèle de référentiel. Et tout où le modèle de référentiel peut devenir plutôt ennuyeux est dans le cas où nous devons interagir avec de nombreux dépôts et à être Request Control est un exemple parfait de cela. Nous devons donc avoir une référence à trois dépôts différents parce que nous devions interagir avec trois tables différentes. Dans ce contrôleur. Je veux dire, ça marche. Nous sommes allés jusqu'ici en le faisant. Mais alors, vous savez, pour moi, il était en fait un peu 1B et parce que c'est comme, oh, ouais, je sais que j'ai besoin de ce dépôt. Oh, oui, non, besoin de celui-là, et cetera, et cetera. Alors c'est pourquoi nous envisageons d'implémenter le modèle de l'unité de travail, qui est où nous aurons un référentiel IV ou générique Bs. Et une implémentation de référentiel qui suffira pour toutes les tables qui ont besoin d'accéder. Ou avec toutes les tables que nous avons besoin d'accéder plutôt. D' accord. Donc c'était juste un rapide aperçu de la raison pour laquelle nous l'avons mis dans le dépôt Potter, et j'espère que vous comprendrez pourquoi le beurre de dépôt et n'était pas nécessaire jusqu'à ce stade. Mais alors, bien sûr, souvent pendant les activités d'allocation des congés, vous vous rendrez compte que, ok, c'était un peu ennuyeux. C dans ce cas, c'est moi par endroit où le faire deux fois dans les demandes. On a dû, tu sais. Donc, cela pourrait devenir un peu ennuyeux quand vous devez apporter 56 repos différents, même wafer, vous avez seulement besoin d'une requête ne pas contre l'une des tables. Donc, dans la prochaine vidéo, ce que nous allons faire est de nous asseoir ou de modifier notre référentiel de base pour qu'il soit un peu plus générique. Et puis nous allons implémenter notre modèle de travail unitaire et regarder comment cela peut nous aider à avoir du code plus centralisé , plus de code personnalisable, et même étendre certaines fonctionnalités comme avec le trouver, parce qu'il y a des moments où nous avons dû trouver tout et ensuite écrire un lambda expressions de champ au-dessus de lui. Nous allons donc implémenter toutes ces choses où nous pouvons créer des fonctions filtrables et avoir un référentiel plus puissant. Alors restez autour. 55. Implémenter un repository générique: Très bien les gars, bienvenue. Alors passons à l'intérieur. La première tâche consiste donc à modifier notre référentiel de base. Et tout ce que nous avons déjà fait un bon travail City antilope pour être assez générique. Et puis nous avons les implémentations concrètes par classe. Après avoir été générique, au départ, je voulais en quelque sorte modifier les fonctions ici, à savoir le while, le find, tout le find par ID. Et la facilité existe, non ? Maintenant, ce que je pense est que c'est vrai, non, ils ne permettent que de trouver s'il a un ID, mais que se passe-t-il s'il y avait une condition différente que vous vouliez trouver, alors ce que vous auriez à faire est de trouver tout et ensuite faire un point tout si vous obtenez ce que j'essaie d'obtenir ce job, je sais que vous êtes assez compétent dans LinkDin. Tous les travaux de dessalage. Mais que faire si je voulais trouver s'il y a demandes de congé sans particulier d deux commencent à une date particulière ou tout Mini, quelles sont les demandes de congé XYZ, non ? Ensuite, je devrais écrire des requêtes personnalisées dans chacun des référentiels pour chacun, n'est-ce pas ? Donc nous avons nos contrats et nous avons notre dépôt obèse. Bien sûr. Mais alors si je voulais des requêtes personnalisées pour les demandes de congé, je devrais en avoir un tas ici. Et ce qui est vraiment fait dans l'un d'entre eux est de regarder le feu et ensuite de filtrer tout ce qui est basé sur la recherche de tous les résultats. Et si on prolongeait la découverte tout ça ? Nous pourrions simplement inclure notre expression comme paramètre. Et puis si l'expression est présente, alors elle agira comme notre filtre automatiquement. D' accord, donc c'est ce que je veux faire, au hasard. Donc, au lieu de dire que tout est vide ou que vous savez ce que je vais faire, je vais juste commencer à partir de zéro. Donc, sans modifier le référentiel de base, je vais juste en faire un tout nouveau. Donc, recommençons et faisons-le à partir de zéro pour éviter toute confusion. Je vais donc créer une nouvelle interface. Et laissez-moi le faire en dessous. Donc, dans le même fichier, avons un fichier, que je vais juste créer une interface différente. Interface publique. Et je vais l'appeler générique, et nous l'appellerons s1, dépôt générique. Et ça va suivre le même genre d'incrémentation. Avoir l'abstraction qui est T. Et nous spécifions où t est censé être abracadabra. D' accord ? Et puis je vais avoir à peu près les mêmes fonctions. D' accord ? Mais alors, comme je l'ai dit, nous allons avoir des modifications pour maintenir leur mise en œuvre. J' ai chargé à savoir la collecte. Je veux dire, eh bien, c'est que les analyses ne sont pas dans alist de toute façon, donc je pourrais probablement juste voir la liste depuis le début, non ? Et puis le trouver tout va avoir trois paramètres et je suis juste casse dans la ligne afin que je puisse vous montrer chaque paramètre individuellement. Nous avons donc la capacité d'écrire une expression. Et je dis à cette expression que ce sera un téléphone Sean qui implique, c'est amusant. C, désolé, cela implique un générique qui est le même générique T, une forme de booléen. Et je l'appelle expression. C' est donc une syntaxe. Donc, c'est essentiellement le type de données pour une expression lambda. Très bien, donc quand vous êtes à une expression lambda qui ressemble à j2, et ensuite vous avez votre lambda r et q dot id est équivalent à quelque chose. Écrivez cette expression lambda que vous écririez. Littéralement, c'est le type de données qui facilite le, donc cette valeur serait stockée dans ces expressions. D' accord ? Donc Q représente le thé et votre booléen ici est représenté par cette expression à la fin de celui-ci. Très bien, donc c'est ce que nous facilitons où permettre à quelqu'un de dire trouver tout et ensuite mettre l'expression lambda si vous avez, si vous voulez ajouter un champ qui trouve tout depuis le début, alors faites-le avec. Mais alors ce n'est pas tout le temps que quelqu'un veut un filtre, donc nous devons le rendre nul par défaut. Donc, si aucun n'est fourni, alors nous supposons que, eh bien, nous ramenons juste tous les dossiers. Si ce n'est pas nul, alors nous devons configurer la fonction de telle sorte qu'elle fasse le filtrage, puis retourne. Vous voulez également ajouter la possibilité de, à l'art ou par quelqu'un de dire FUN NCI. Et je vais spécifier que le queryable pour n'importe quel t est si générique, n'est-ce pas ? Et puis je vais dire que je commande ou commande que je peux interroger. On y va. Ordonné queryable pour ce même générique, n'est-ce pas ? C' est donc ce que sera cette fonction. Et je vais appeler cet ordre BY et aussi nul aussi lointain, non ? Parce que lorsque nous voulons le commander, supposons que vous vouliez filtrer, puis que nous voulions commander le filtre. Et voir quelque chose qui ne va pas ici, un support d'angle supplémentaire. On y va. Très bien, alors ce second paramètre nous permet de voir Q point, Q point ordre en envoyant, ou il pourrait juste être commandé par, n'a pas vraiment d'importance. Mais ce SecondParameter nous permet de spécifier que nous voulons commander par une colonne particulière de quelque manière que ce soit. D' accord, donc c'est quoi. Sur les paramètres pour. Et puis quand nous voulions inclure, Rappelez-vous que parfois sur, pour extraire des données et parfois nous devions inclure. Donc, je pense que ce que nous avons fait, nous avons juste traversé et fait comme une inclusion en gros pour eux dans le dépôt. Voyons si je peux trouver un exemple de ce mensonge ici. Nous n'avons pas inclus donc nous avons trouvé tout ce que nous avons dit chaque fois que vous trouvez tout, s'il vous plaît inclure le type de feuille et inclure l'employé. Mais ce n'est pas nécessairement vrai. Ce n'est pas à chaque fois que nous trouverions tout ce que nous voulons inclure. Donc ici, l'Inclus n'est pas facultatif, surtout ici ce n'est pas facultatif, non ? Donc, nous pouvons réellement implémenter quelque chose pour le rendre facultatif. Donc, ce que je vais faire est de créer une liste ou un paramètre qui sera une liste de chaîne de type. Et nous appelons celui-ci inclut et nous avons créé à null, non ? Donc, cela signifie que si je veux trouver tout et je suis inclus dans Je suis désolé, je suis intéressé à inclure les données connexes. Ensuite, je peux énumérer ce que je voulais inclure parce que je veux peut-être une table et pas l'autre. droite. Et dans une autre situation, je ne voudrais peut-être pas inclure quoi que ce soit. D' accord. Donc, je veux juste trouver tous les enregistrements pour cette table particulière sans inclure, sans filtre, et cetera, et cetera. Donc, cela nous permet de réduire en quelque sorte le nombre de requêtes personnalisées que nous devons écrire pour obtenir bac certaines données est-ce que je pense ici comme nous avons l'allocation de vérification. Eh bien, c'est une coutume. C'est très bien. Mais comme nous allons le long d'un où refactored, tout cela est léger. Celui-ci reçoit une allocation par employé ici. Nous avons dérivé une requête personnalisée pour obtenir les allocations, puis mis dans le filtre. Donc, ce que nous faisons vous permettra de simplement appeler findall et d'ajouter votre filtre en conséquence. Alors allons de l'avant. Le suivant que je voudrais modifier est la recherche par ID. Non, je ne veux pas spécifier une recherche par id car il pourrait y avoir d'autres facteurs que je veux utiliser pour trouver un enregistrement particulier. Donc, au lieu de simplement trouver par IBM quand lui donner le même type d'expression ou la capacité de faciliter une expression. Donc, est-ce que je vais juste copier ceci et l'utiliser comme paramètre à la place. Et puis je vais aussi vous donner la possibilité d' inclure d' autres cartes rouges ou d'autres tables connexes, non ? Donc, vous avez l'expression et puis vous pouvez inclure, si vous le souhaitez déjà, si vous en avez besoin. D' accord ? Et puis pour le Xist, disons que c'est la même chose. Je voudrais peut-être savoir si quelque chose existe. Non seulement basé sur l'IID, mais basé sur autre chose, sont basés sur une certaine expression. Donc, cette expression est très puissante parce qu'une fois de plus, elle nous permet de mettre presque n'importe quelle expression ici, et elle va juste exécuter cette expression et les résultats souhaités. D' accord, donc c'est à peu près tout pour la configuration du référentiel générique. Jetons maintenant un coup d'oeil à la configuration de la classe concrète qui héritera de notre nouveau référentiel générique élevé. Et conformément à la convention de dénomination, j'appellerai ce dépôt générique. Et conformément à l'endroit où nous sommes en train de mettre en œuvre et mis en œuvre dans les référentiels, nous ajoutons un BCE, mais que nous avions plusieurs interfaces héritées pour les contrats. Et puis, par extension, nous avons eu plusieurs classes de référentiel héritées, non ? C' est pourquoi, à la fin de la journée, nous avons dû injecter tant tant de repos dans tous les contrôleurs à ce moment-là. Donc, cette fois, je vais juste créer une nouvelle classe et je vais juste l'appeler référentiel générique. Donc, une fois que nous avons ce dépôt générique, je dois lui dire que vous êtes relatif à un générique appelé t. Et vous allez hériter du dépôt générique I, qui est également relatif à un t générique et où t est une classe. Maintenant fait comme nous le savons, nous devons mettre en œuvre notre référentiel Art, désolé, notre interface. Alors allez-y et faites ça. Je vais obtenir toutes nos fonctions comme prévu. Mais maintenant, notre injection va sembler différente. La première ligne va être une ligne familière. Ce sera notre contexte DB d'application. Et puis la deuxième ligne est toute neuve. Ce sera pour un ensemble DB de type T. Maintenant, nous aurions vu le jeu DB, syntaxe que nous avons utilisée pour cela, y compris les bibliothèques manquantes, aurait vu cette syntaxe avant un jeu de DVD parce que dans l'application DB et chaque fois que nous avons ajouté une table, nous devions utiliser DB set. Et puis nous spécifions le type de données, pain, employé, requête, etc. Dans cette situation, cependant, DB set va être initialisé à n'importe quel t. T est très générique. Donc, c'est juste un ensemble de bases de données pour n'importe quelle classe générique va entrer. Et puis bien sûr, nous savons que chaque fois que nous faisons une nouvelle classe, nous injectons juste par notre inversion de l'art d'injection de dépendance du conteneur de contrôle, non ? Donc, nous avons le contexte en cours d'initialisation, mais nous avons initialisé pour être égal au contexte, point de contexte de t. Donc, nous ne sommes pas dépendants. Et l'initialisation de celui-ci. Où l'initialiser après, après avoir initialisé des contextes RDB, alors nous disons à la table, à droite, que vous êtes du contexte et votre décalage, je dirai crée un ensemble DB d'entité T. Donc, chaque fois que vous voyez ces deux-là sont dans les services de renseignement ici, le t est vraiment un générique. Donc, ils l'appellent t ou classe de qualité ou une entité ou t, peu importe. Cela signifie juste, une classe générique que je suis prêt à faciliter toute classe qui me est transmise. C' est ce que je veux dire. Donc, il crée IDB dit qui peut être utilisé pour interroger et voir des instances de tout ce qu'il est. D' accord. Remarquez ce que c'est. C' est donc très que je continue. La porte générique est probablement surexploitée par personne, est très ouverte, non, où n'est pas aussi spécifique que nous l'étions dans notre dépôt, n'est-ce pas ? Donc, le référentiel générique nous permet faciliter un ensemble de fonctionnalités pour presque n'importe quelle table, quelle qu'elle soit, je suis capable d'interagir avec lui comme j'en ai besoin deux. D' accord, alors commençons par les plus simples, les fonctions les plus simples à implémenter. Regardons nos créations. Donc, pour les Crée, Que voulons-nous faire avec le créateur ? Créé est assez simple. Nous avons juste besoin de voir comment ça Et bien, j'ai besoin de rencontrer ces est synchrone parce que bien sûr, nous voulons profiter pleinement de la programmation asynchrone. Donc, il est déjà un ordre synchrone sont les tâches de ce côté. Laisse-moi m'assurer qu'il y a un évier sur ce rouge. Donc asynchrone pour Create. D' accord. Et puis ce que nous allons faire ici, c'est voir DB. Eh bien, la raison pour laquelle j'ai fait une pause, j'ai juste remarqué qu'on retournait toujours un bool, donc on va changer ça un peu. Donc, à ce stade, nous ne retournerons pas un booléen. On fait juste une tâche, non ? Donc, nous pouvons revenir en arrière et supprimer bool de ces opérations. Et nous n'avons pas besoin de sauver non plus. Je viens d'en faire une copie et la paix. Nous mettrons en œuvre le CVE ailleurs. Donc, je vais juste commenter cela afin que vous puissiez aller de l'avant et apporter ces modifications à l'interface du dépôt épigénétique. Le seul qui devrait retourner un booléen existe pour ce que je pense être des raisons évidentes, mais les autres effectuent des tâches. Et nous n'avons pas besoin du C, du moins pas ici. Cela ira dans une autre section. D' accord, alors revenons en arrière. Et donc parce que nous venons de faire ces mises à jour, nous devons prendre le bool de ces flux à travers une démo de mise à jour, tous, prendre toutes les sauvegardes jusqu'à l'humeur des mises à jour. Et puis notre interface devrait cesser de se plaindre. D' accord, alors revenez à créer. Tout ce qui va vraiment arriver ici, c'est que nous sommes du poids. Et puis nous pouvons dire underscore DB Sono dB est notre connexion parce que db n'est pas initialisé à ce qui est juste. Db représente cette table. Mais il utilise également des capacités très génériques pour simplement ajouter, supprimer et mettre à jour, n'est-ce pas ? Donc db.json async. Et ce qu'on ajoute c'est, accord, et c'est tout. Nous venons d'ajouter T. Donc, suivant cet exemple, désolé, pas T, ma mauvaise entité, désolé, plus la concentration là-bas. T, donc nous ajoutons une entité, non ? Très bien, donc avec la suppression, ce que nous voulons faire, c'est que je vais attendre sur le point db de score, supprimer et supprimer Ising. Ok, il n'y a pas d'aliasing de suppression. Cela signifie que cela ne peut pas être une tâche. Très bien, alors retirez et nous déplaçons l'entité. D' accord, alors laisse-moi aller de l'avant et modifier ça. Ce n'est pas une tâche, c'est vide, un peu de refactorisation, mais nous savons que cela allait arriver. Il y a donc un peu de fric sur l'ingénieur à éviter. Je pense que les mises à jour n'ont pas non plus un async. Alors changeons ça pour éviter d'ici. Et puis trouver des mises à jour James dot pour annuler. Et puis la mise à jour est assez simple, est-ce la mise à jour db dot, n'est-ce pas ? Je sais que l'asynchrone est là, donc notre prise de l'entité, c'est bon. Donc, quand nous faisons bien qu'une ligne, quand nous faisons des suppressions, une ligne crée une ligne. D' accord ? Maintenant, regardons un, comme je l'ai dit, nous avons affaire aux plus faciles d'abord, non ? Donc la prochaine que je voudrais faire, l'existe. Alors regardons l'existe ici. Quand nous devons trouver si quelque chose existe, cela signifie que nous devons obtenir tous les enregistrements dans la table. Donc, je vais initialiser une variable i interrogeable de type t. Et je vais juste appeler une requête. Et c'est égal à souligner DB. Bien que, une chose à noter, DB va à l'art, Désolé, je queryable est fondamentalement comme un type de données qui est toujours lié à l'objet db. Donc, quand c'est quand vous êtes allé dans juste la requête va être interrogeable, c'est pourquoi nous devons généralement l'analyser pour les listes sont à i innombrables pour d'autres opérations mais dans wearable, c'est comme toujours attaché est comme une collection des objets de base de données réels lorsque vous l'analysez. Ce n'est plus un objet de base de données stocké en mémoire, il n'est plus attaché à la base de données. Donc, à l'intérieur de ce beurre de dépôt et nous voulons garder tout ce que je portable. C' est pourquoi nous continuons à utiliser l'IA interrogeable partout parce qu'il voulait rester aussi attaché aux besoins évidents que possible, directement sur portable pour le libérer dans la mémoire d'une application. Donc, je peux interroger la requête de type T, n'est-ce pas ? Et puis je peux savoir que C revient. Et je vais juste faire une attente ici, qui veut dire que ça doit être coulé, non ? Retournez notre requête. Donc, la requête no incarne la version portable ICC de tous les enregistrements de la base de données. Et je suis allé voir un médecin. N' importe quelle scène A. Et puis devine ce que je peux faire. Je peux juste passer l'expression. Alors rappelez-vous que l'expression, la valeur de cette expression aurait ressemblé à q, r, n'importe quel jeton lambda. Et disons que l'ID équivaut à dix. D' accord, c'est à ça que ressemblerait cette expression. Donc, si je faisais cette syntaxe ici, ça fonctionnerait. Donc, au lieu de coder en dur cette syntaxe, d'autant plus que c'est générique. C' est donc une partie importante. Remarquez qu'il y a une ligne rouge sous q parce que q ou vraiment pas, n'est-ce pas ? Et l'expression lambda ici n'a pas vraiment de sens parce que tout est générique. Interroger le Bb, il ne sait pas s'il a un champ ID ou un champ de nom ou s'il n'y a pas d'arc ici. Donc, je ne peux pas coder dur le, la vérification pour voir si l'ID existe ici, car il ne sait pas si ce n'est pas l'ID q ne sait pas ce qu'il est. C' est peut-être le cas, c'est pourquoi nous abstrayons sa propre expression de sorte que nous, en tant que programmeurs sur cette situation, quand nous voulons savoir si c'est l'ID, nous écrivons simplement en fonction de l'identifiant, puis en fonction de la table que nous interrogeons, qui sera déterminé par ce que nous passons en T, alors l'expression peut être exécutée. C' est pourquoi nous sommes vendus. Donc, une fois de plus, générique en utilisant l'expression mot et pas en dur codant quoi que ce soit, total. D' accord, c'est donc les premiers jours avant que cette expression ne fonctionne. Alors regardons le prochain facile, qui serait de trouver par le pétrole juste pour bien. Alors c'est celle-là, non ? Très bien. Alors laissez-moi le rendre asynchrone. Je suis sûr que nous aurons des opérations asynchrones que nous pouvons effectuer et voir comment tout cela fonctionne. Donc, la première chose que nous faisons est d'obtenir l'ensemble DB de la même façon que nous l'avons fait dans la, dans la sortie, la requête interrogeable égale db. Ensuite, après avoir obtenu notre requête étant égale à db, ce que je vais faire est de passer par et d'inclure quelqu'un pour dire If include. Alors rappelez-vous que nos inclusions de paramètre nous auraient une chaîne ou une liste de représentations de chaîne des moyens de table au cas où cela n'était pas clair. Donc, cela signifie que quand nous essayons de trouver quelque chose, si nous voulions l'inclure après, disons, nouvelle liste, nouvelle chaîne, liste, non ? Et puis initialisez-le pour avoir des guillemets, guillemets de nom de table des guillemets et fait une vallées de mariée. Donc, je vois si la variable include n'est pas égale à null, alors cela indique clairement que nous voulions inclure des choses avec ce qui est retourné, juste. Ensuite, nous partirions pour chacun et un sera pour chacun. Disons que je vais appeler ça une table, juste pour qu'il soit clair que nous incluons des tables, non ? Donc, pour chaque table qui est répertorié dans ce qui inclut. On va dire « requête ». N' oubliez pas que la requête est égale à la requête. Et nous avons accès à l'inclusion. Et puis je peux dire une table, non ? Parce qu'il s'agit d'une représentation hors du nom de la table. Donc je vois cela inclure tout ce qui entre en inclut ceci. Allez-y et incluez-le. Et puis à la fin de tout cela, je peux maintenant retourner et le résultat de la requête d'abord notre défaut. Et devinez quelle expression. Très bien, donc franchement, dans la trouvaille, la personne X ne devrait pas être nullable. Parce que quoi d'autre vas-tu trouver si c'est nul ? D' accord, donc je vais en fait supprimer le PNL de là et me laisser retourner au dépôt et supprimer le PNL d'ici. Donc, ce qui est nullable est ce que vous voulez inclure. Mais vous devez me donner un expert en bio, que je vais trouver un disque ou comme ça n'a pas de sens, n'est-ce pas ? Donc, nous retournons o sa requête. Tout d'abord, notre asynchrone par défaut. C' est pour ça qu'on y arrive. Ligne rouge asynchrone, expression point-virgule. C' est ainsi que nous implémentons la nouvelle découverte pour être générique. Et puis sachez pour le plus grand, qui est le bon chien. Et c'est le plus grand parce que nous avons les trois paramètres. Donc je veux dire juste la vacance de lentilles britanniques, tous à l'écran à la fois. Très bien, en quelque sorte sur s'incliner. Nous devons nous occuper de s'il y a une expression. Si nous avons besoin de commander par et s'il y a des inclusions. La partie préliminaire va ressembler à ce que nous avons fait avec l'existence et l'amende. Et c'est la première ligne. Nous commençons toujours comme presque tous les FOX. Nous pouvons tout prendre à la partie inclut, encore une fois, cette copie et le ramener dans la dernière balle. Je vais juste réorganiser la citation, art optimiste. Donc nous avons notre objet de requête, Shore. La prochaine chose que je veux faire avant de passer aux inclusions. Et la prochaine chose que je veux faire est de savoir s'il y avait une expression. Donc, je vais voir si l'expression n'est pas égale à null. Droit ? Il y a donc un filtre, non ? S' il y a un filtre, alors la requête ne doit pas être égale à la requête point où expression. Droit ? Parce que si nous voulions trouver quelque chose que nous sommes créés par, désolé, Libye et trouver quelque chose de simple où le nombre de B à nos DS est supérieur à un, et cetera. Donc, vous diriez que q point est supérieur à 21, c'est plus facile. John, c'est ça ? Et bien sûr, tout cela serait dans une expression lambda. Et ce serait l'éruption Oppian n°2. On va bien. Donc, au lieu de vous demander d'obtenir tous les enregistrements et ensuite appliquer au courant, je vous donne la possibilité d'appeler cette fonction, ce golf trouver tout. Et puis tu peux me dire les experts que tu veux, non ? Et puis si cela et moi sommes stockés dans des experts sur si cela a du contenu que nous appliquons juste la clause where en votre nom. droite. Et puis nous avons les inclusions et nous venons de passer par 1A inclut ceux. Je ne vais pas répéter cette explication. Ensuite, nous avons un autre paramètre qui est art ou par quelqu'un pour faire l'art ou par hélas, ce n'est pas le cas. Je ne pense pas qu'à ce stade, vous avez vraiment de l'importance. Si vous faites le premier 1, premier r dans beaucoup de tous, sauf si je pense peut-être en termes d'efficacité, appliquer l'expression d'abord. Peu sont requis pour faire les inclusions et les idéaux de commande plutôt que de commander tout le monde puis de filtrer. Donc, dans ce sens, cela pourrait avoir du sens, mais dans le grand plan des choses, ce n'est ni ici ni ici. Donc, nous le faisons si l'ordre par n'est pas égal à null, alors nous faisons une chose similaire. Nous disons que la requête est maintenant égale à vous-même. Order par, puis l'expression R. Eh bien, la valeur OrderBy qui a été transmise, à droite, sont déjà examinés un exemple de ce que cela pourrait être, est-ce pas ? Oh, en fait, non. Donc cela ne nécessiterait pas beaucoup. Ordre par ordre, par, désolé, ordre par serait la fonction qui prend le paramètre. Donc, si vous regardez juste en arrière la définition et que c'est une fonction, n'est-ce pas ? Donc, l'ordre par est une fonction et il prendra comme paramètre que je peux interroger t, qui dans ce cas Query. Donc, la requête n'est pas égale à ce que toutes les fonctions retournent après avoir ordonné que je puisse interroger. D' accord ? Et puis à la fin de tous ces week-end retour comment nous interrogeons points et tout va dans alist de toute façon, donc deux liste. Bon, alors du bruit quand on le relâche et le renvoie. Et laissez-moi voir quelle est l'erreur. O la méthode n'est pas asynchrone, alors rendons cela facile. On y va. D' accord, c'est ça pour la mise en place de notre référentiel générique, n'est-ce pas ? Donc on a fait deux choses. C' est juste un résumé rapide. Premièrement, nous avons mis en place ce référentiel générique et générique. J' utilise juste le même fichier si vous les quantités dans un fichier différent, c'est bon. J' utilise juste les mêmes fichiers que j'aurai l'ancien code par rapport au nouveau code assez facilement, non ? Vous avez dit que tout ce que nous avons fait un peu de refactoring va avec les Booléens, qui vont à la fonction sûre et les chine de tâche à des fonctions de vide irrégulières, non ? Ensuite, nous avons mis en place notre référentiel générique pour être aussi générique que possible. Parce qu'une fois de plus, qui le veut ? Cette base de code facilite encore toutes les autres classes, toutes les autres classes de données. Donc tout le monde n'existe pas, Sénat rwanda pourrait exister, devrait être en mesure d'utiliser cela. Au lieu de chaque fois que nous introduisons une nouvelle table, nous devons introduire un nouveau dépôt. Et ce jeu de soutien E14 chose. Cela enlèvera tout ce saut entre et aura un code B solide , sauf circonstances atténuantes qui nécessitent un code plus personnalisé, bien sûr. Donc, quand nous reviendrons, nous nous pencherons sur la mise en œuvre de notre dossier hors travail et nous verrons ensuite le vrai travail commencer. 56. Implémenter une unité de travail: Nos gars. Donc, où Bach et savoir ce que nous allons faire, c'est mettre en place nos unités de travail et les dossiers de travail. Bon, alors passons à nos contrats et créons une nouvelle interface. Et celui-ci s'appellera unité de quatre. D' accord ? Et puis une fois que c'est créé, bien sûr, vous devez vous en souvenir, le rendre public. Et puis nous commencerons à mettre en œuvre certaines choses. Donc la première chose, eh bien, en fait, je voulais hériter de je jetable, jetable. Donc, dans nos contrôleurs, il y a une méthode implicite de collecte des ordures appelée disposer, non ? Alors que nous voulons faire est une sorte de crée une surcharge où quand il est disposé, il inclut cette unité de quatre objets. Parce que les unités de travail, comme nous l'avons vu, ont été filées toutes les tables dans chaque fichier. Au lieu d'en avoir 20, les déposants auront une unité de travail qui aura accès à tous. Donc, il vient en quelque sorte avec l'étiquette de prix de l'utilisation de la mémoire volatile ainsi suite pour gérer correctement l'élimination et la collecte des ordures sur correctement. Et donc vous allez implémenter l'IA jetable avec nos unités hors où 1ou M0 point a couru Nolan, nous obtenons des tweets. Vous verrez comment ça fonctionnera. Très bien, donc quand nous voulons faire notre unité de travail, ce que nous devons faire est de faire une référence à notre référentiel générique et aux différentes tables qui devraient être incluses. D' accord, alors laisse-moi faire, laisse-moi, moi, et ça a du sens. Donc j'ai conçu le dépôt, je ne me souviens pas que je référentiel générique que nous venons d'implémenter, n'est-ce pas ? Je dépôt générique nécessite une classe concrète, donc c'est dans le travail je suis lui-même sans doute que nous commençons à spécifier les classes concrètes, non ? Donc, le premier verre que nous pouvons utiliser, type, laisser le type, pas vm, type ludus neve. D' accord. Laisse-moi juste me débarrasser des bosses. Donc, laissez le type et puis je peux appeler ceci un type de feuille simple. Et puis je dupliquerai ce monde et d'autres. Alors qu'est-ce que nous avons des demandes web et nous partons, laisser demandé. Le type de données laissera des demandes. Donc similaire à toujours se trouve les ensembles DB où nous avons le type de classe, mais alors nous avons la version pluralisée qui fait de l'intérieur, je voulais juste cette convention de nommage. Et puis nous avons l'allocation. D' accord, donc je laisse l'unité de travail i, ou au moins je crée des références entre l'allocation de congé, l'allocation naïve de classe concrète et le référentiel générique. Donc non, à travers les dépôts génériques ou nous pouvons faire toutes ces choses merveilleuses avec n'importe qui de ces lunettes. Une base de code. D' accord. Et nous n'avions besoin de rien pour l'employé. Désolé, je sais que je n'ai que trois tables. Ce sont les trois, mais je suis sûr que vous pouvez déjà voir que dans un système d'entreprise quand vous avez 20 tables, il serait plus facile de les gérer toutes ici avec une seule base de code que d' implémenter 20 contrats et 20 référentiels pour ces tables. D' accord, donc une fois que c'est fait, nous avons encore une chose, qui est un moyen et qui est sauvé, non ? Donc, nous devons mettre dans les unités de force, de sorte que cela va gérer cela. Parce qu'une fois de plus, il peut gérer des opérations à partir de plusieurs tables. Donc, il va juste gérer la même opération une fois. Donc, nous savons que lorsque nous implémentons une interface, nous devons avoir notre classe concrète. Toutes les sources descendent dans le référentiel, allez de l'avant et ajoutez une nouvelle classe. Et puis son unité de travail appelée, et ajoutez-la. Et puis vous quittez le travail, héritez de, eh bien, vous l'avez deviné, l'unité 04. Ensuite, nous allons de l'avant et mettons en œuvre cela. Alors laissez-moi vous expliquer ce qui va se passer. Donc vous voyez, parce que nous avons implémenté je jetable que notre appel de fonction dispose ainsi que les autres que nous avons déclaré nos cellules. D' accord, donc la première chose que je veux faire est d'implémenter, implémenter et d'injecter, d'initialiser une instance de notre contexte DB. D' accord, alors on va y aller et faire ça. Obligation DB contexte. Et dans notre construction, travail difficile, contexte de base de données d'obligation, contextes. La deuxième chose qui est un peu à faire est d'implémenter des versions privées de chacun d'entre eux. Donc, pour chaque Wanda publique que nous aurions fait dans le, dans l'interface, nous avons besoin d'avoir comme des objets privés qui les représentent ici dans notre classe concrète. Donc je vais le faire rapidement. Justin, pour lubrifier cet orwell, laissez-moi dupliquer cette fois et amener ça ici. Cela a tendance à être efficace avec mon copier-coller et appeler ce type de congé. Ce que je vais le dupliquer. Et puis vous êtes dans toutes les demandes et vous êtes seul. D'accord ? Donc c'était dû, mais nous avons donc nos contextes dv d'application privée et nos objets privés que nous allons utiliser pour retourner les obstructions et l'encapsulation. Le public est le public face à un. Ce qui serait vraiment retourner notre privé et tout ce qui est dans le privé, r. Alors commençons par la façon dont nous implémentons pour nos types de feuilles. Ainsi, vous pouvez voir que les communistes automatiquement avec un get et set. Mais ce qu'on fait vraiment, c'est. On n'a pas besoin de s'asseoir quoi que ce soit. D' accord, donc ce que nous obtenons de nos types de congés sera l'objet, l'objet privé à laisser des types, non ? Mais alors nous devons faire une vérification des connaissances. On va voir si c'est nul. Ensuite, nous retournons une nouvelle instance du référentiel générique avec le contexte. D' accord ? Donc, alors cette ligne de code ressemblerait à quelque chose si elle est équivalente à null, puis retournerait. C' est si vous utilisez des types de congé d'opérateur ternaire ou renvoyez une nouvelle instance de type feuille. Désolé, je connaissais l'encens sur le dépôt générique suivant le type de feuille et avec le contexte. D' accord, donc c'est pourquoi nous devons trouver le contexte dans cette unité d'où parce que le référentiel générique, rappelez-vous, cette puce de CV a la construction de cela nécessite le contexte. Donc, nous allons juste passer le même objet contextuel juste à travers. Et il sera relatif à n'importe quelle classe a été spécifiée, qui dans ce cas est le type de congé. D' accord ? Certains, obtenir quelques erreurs ici, en fait, en utilisant les nouvelles fonctionnalités, je vais voir Sharpie qui n'ont pas à faire cela obtient lui-même. Je préfère utiliser ma flèche juste là, non ? Donc, ces doses RO laissent des types si c'est équivalent à null. Mais alors je vais raccourcir ça un peu plus. Je vais voir les types de congé R0. Et puis je peux voir à ce stade, point interrogation, point d'interrogation égal, non ? Donc, c'est la vérification null est comme une vérification null qui dit si c'est null, puis renvoyez cela. Donc, il va retourner cela. Et si ce n'est pas le cas, il le rendra. Et j'ai cette époque, je crois qu'on pensait que ça ne devrait pas être en lecture seule. Vous ne devriez pas être lu à droite. Et bien sûr, j'ai besoin du point-virgule. Donc encore une fois, faites tout ça en une ligne comme ça, non ? Que ce soit plus ou moins lisible pour vous, je ne suis pas sûr, mais à peu près. Chaque fois que nous avons une fonction rapide que nous avons besoin d'écrire dans les versions plus modernes de diagnostic C-sharp utiliser cette flèche comme une flèche lambda, puis émeutes tout ce que nous voulons retourner quand cela est appelé, cette construction est appelé. D' accord ? Et d'accord, donc ici, ici, il donne une erreur parce qu'il disait que nous ne mettons pas en œuvre. Nous n'avons sûrement pas besoin des ensembles, alors laissez-moi revenir en arrière et les enlever. Et ces probabilités d'habitats que nous mettons parce que nous ne mettons rien dans l'unité de travail où nous voulons obtenir, n'est-ce pas. Donc, d'accord, ça, ça disparaît. Donc, quand l'unité de travail est causale, il y aura des types de congés à la hausse. Et puis nous pouvons accéder aux contextes et à tout, tout ce qui est implicite à travers notre programmation. Donc, suivant cette syntaxe fera la même chose pour la requête. Donc, laissez-moi juste aller de l'avant et juste copier-coller et ensuite fait les ajustements en conséquence. Donc ici, il ne croirait pas types ce que vous croirez les demandes et les classes concrètes, les demandes. Et ici, ce serait des allocations de congé et des classes concrètes allocation de congé. D' accord ? Donc, vous seul grand quatre va nous donner accès à n'importe quelle table. Disons que si vous aviez une autre table que je devais présenter demain, alors vous créez le privé, créez le public. Bien sûr, il s'assure que c'est dans l'interface. Donc probablement le mettre dans l'interface d'abord. Et puis cela va se plaindre que vous avez mis en œuvre pour créer les privés et tous les points rouges, des lignes similaires. Et vous êtes probablement en train de regarder cette rétine et de dire, d'accord, alors pourquoi n'avons-nous pas fait ce modèle avant de faire le dépôt Patreon ? Eh bien, ils sont tous des blocs de construction et au moins vous avez eu l'exposition au dépôt Patreon déjà nulle part nous pouvons ajouter un autre modèle que nous pourrions jeter dans le mélange. Bon, alors discutons de cette fonction d'élimination sur toute la fonction d'élimination, comme je l'ai dit, va vraiment faire notre poignée ou la collecte des ordures pour l'unité de quatre objets, non ? Donc, typiquement, vous verrez cela implémenté est que vous avez la fonction que nous allons créer, Dieu dispose. Et puis nous appelons ce garbage collection contrôle garbage collector. C' est un service de revendications de journal automatique sur la mémoire usagée. C' est donc très important si vous voulez avoir une application en cours d'exécution efficace. Et il verra GC point supprimer finaliser. Et le, d'accord. Et puis disposer va être, eh bien, laissez-moi juste générer un appel de méthode disposer juste en dessous ici. Et puis il demande essentiellement un booléen. Donc on lui dit que c'est vrai en tout temps. D' accord ? Et puis ici, nous voyons si ceux-ci sont bien, si V, Alors laissez-moi changer cet appartement sur Gamow bruyant, ils l'appellent v, J'aime l'appeler. Très bien, donc si on dispose, alors ce que nous voulons faire est éliminé du contexte lui-même aussi. Donc, pour libérer toute mémoire qui sont une connexion à la base de données peut être utilisé jusqu'à. Bon, donc c'est tout pour l'élimination. Et puis pour la sauvegarde. Et voici où la sauvegarde est assez simple. Nous allons vraiment voir comment nous sur les contextes de partition. Voyons si les changements tels que vus, n'est-ce pas ? Et bien sûr, vous avez la scène Me. Donc, les modifications de sauvegarde se produisent dans l'unité de travail plutôt que dans le dépôt cette fois parce qu'il va toujours le voir apparaître une fois. Donc, sur les changements CFD dérivés du lasso de plomb ou quatre fois dans notre dépôt, nous le ferions juste une fois dans l'unité de travail. D' accord ? Et puis tous ces éléments implémentent notre héritage fonctionnalités que nous venons de définir dans notre référentiel générique. Et cela rendra les requêtes beaucoup plus faciles à travers le monde. Maintenant, la prochaine chose que je veux faire avant de fermer toute cette activité est d'enregistrer les unités pour nos points de démarrage cs. Donc, nous savons que chaque fois que vous ajoutez une nouvelle interface avec le commun humide ou sec, chaque fois que vous ajoutez un nouveau dépôt. Eh bien, cette fois avec l'unité de travail, je peux faire c et services. Et je vais ajouter celui-ci comme transitoire. Je serais passagère. Et j'ai la même unité hors travail. Et vous avez besoin d'un travail dur. D' accord ? Et donc, lorsque nous faisons cela, nous pouvons avoir une implémentation de toutes les opérations liées à la base de données pour toutes nos tables. Une fois en un seul endroit, facilement accessible, facile à voir et à changer. D' accord, alors laissez-nous, dans la prochaine leçon va réellement passer et nous allons commencer par modifier nos types. Contrôleur. Est-ce que celui-ci n'a qu'un seul dépôt. Donc, il serait facile de simplement modifier ce dépôt et ensuite nous construisons au fur et à mesure que nous allons le long. D' accord, alors restez à l'écoute. 57. Contrôle de types de congé de Refactor: D' accord les gars, alors on est de retour sur la publicité. Contrôleur des onglets et laissez-nous commencer notre opération. Donc, la première chose que je vais faire est et je ne vais pas supprimer aucun de la coda, ne commente partout où il y aurait conflit, citez d'autres commentaires. Mais je veux laisser les alcaloïdes d'origine IQ et au moins l' avoir à des fins de comparaison ou ainsi. Je vais aller de l'avant et inclure mon unité de travail et je vais l'appeler souligner les unités hors travail. D' accord ? Et bien sûr, si nous faisons cela, nous devons l'injecter de la même façon que nous l'aurions fait avec l'ondulation réelle. Alors allez-y et faites notre injection. Peu importe où vous tapez, il comprend être structuré. D' accord ? Donc nulle part j'ai accédé ou unité hors objet de travail. Que faisons-nous quand nous voulons trouver quelqu'un pour commenter cette ligne et passer aux neuf prochaines ? Laisse-moi le dupliquer. Donc, la nouvelle façon de trouver tout sera toujours l'unité 04 points. Quelle table est-ce que je veux trouver tout de Ramallah, ces objets publics, sont tout ce que nous avons accès ici. Donc unité hors, nous ne sommes pas des types de laisser, pensé trouver tout. D' accord, juste là, je les trouve tous. Donc si je, je suis, je veux dire, nous sommes tous humains qui auraient pu dire par erreur des allocations de congé ou si vous avez dit que vous avez besoin de logiciels, d'emplacements , de trouver tout, alors évidemment vous auriez une erreur ici parce que c'est revenir à des types d'emplacement évolutifs, non ? Donc, bien sûr, vous savez, les freins et contrepoids dissuaderaient la capacité de commettre certains types d'erreurs ? Non, la raison pour laquelle nous l'avons appelé types de feuilles ici est que je l'ai appelé types de congé dans les unités de travail. Donc si je l'appelle les entités de type sanguin de type feuille t ou quoi que ce soit, quelles sont leurs vertus je l'appelle. Ça arriverait ici. Certaines personnes, quand ils implémentent cela, vous seriez effectivement assis MC Light pour laisser le type repo et laisser les requêtes repo. Je ne vois pas le point de voir à nouveau un repo, je sais déjà que nous avons affaire à de vrais types Unit 04 dot find. D' accord, regardons celui-là pour existe. Alors laissez-moi dupliquer l'original. Et puis je vais dire unité hors travail. Types de laisser. Cela est existe aucune icône de notification ne passe dans l'ID car il attend l'expression que certains sont allés après l'arrivée, l'expression réelle. Donc, je vais dire Q. Et puis quand je fais l'expression ici, il est en fait sait que par rapport à laisser l'onglet, sont les colonnes que je regarde à nouveau. Donc, si je voulais savoir s'il en existe un par ce nom, R1, par défaut, le nombre de b sont par ID. Je sais avoir un meilleur contrôle sur le type de filtre que j'applique ici sans avoir à écrire trois ou quatre fonctions différentes pour faciliter à travers nos quatre scénarios de filtres différents, non ? Donc, je peux dire est existe où l'ID est équivalent à l'ID ici. D' accord ? Et puis n'entendez pas où nous faisons la recherche par carte d'identité. Faites les enfants et commenter quelqu'un pour dire ici que je veux unité hors mot.types inférieurs, pas trouver, géré par, renommé de trouver par ID. Mais j'ai maintenant la possibilité d'écrire dans mon expression Q dot id équivalent à ID. Maintenant, ce que je veux faire est de revenir au repo original pour le type Leaf. Eh bien, je ne pense pas qu'on ait rien inclus pour le type Leaf, mais je voulais juste vérifier. Donc, laissez le dépôt de type. Quand nous constatons que nous n'incluons rien. Je ne pense pas que rien soit lié à ça pour l'inclure de toute façon, c'est bon. Mais si nous devons inclure et quand nous passons à tous ceux qui impliquent inclut et vous verrez exactement comment cela fonctionne. Donc ce serait la nouvelle façon de trouver. Et encore une fois, nous pourrions facilement trouver par n'importe quelle expression que nous avons besoin pour la création. Nous faisons tout ça. Donc même poser cette perle créée où nous mettons manuellement la date créée là et même être modifié, des trucs comme ça. Tu ne manges probablement pas tout. Vous pouvez extraire cette fonctionnalité et nous le ferons dans quelques uns. Mais en ce moment, je veux juste me concentrer sur le, alors laissez-moi commenter cela. Dupliquer KU puis unité de travail. Laissez les types de points créer. Et puis, quelle est l'erreur ici ? Vide. Ok, donc on se débarrasse de tout ça maintenant, non ? Eh bien, en fait, c'est réussi, puis haut ici. D' accord. Donc, ce qui se passe, c'est que quand on en crée un, c'est juste faire le créatif ou les blancs qui ne sauvent pas. Donc, dans l'ancien dépôt, nous semblons après chaque fois que nous avons créé, permettez-moi de revenir à l'ancien dépôt et de le regarder à nouveau. Donc, quand nous avons créé et dans cette mer de reviendrait. Et laissez-moi juste ne pas le faire, ne trompez pas ces changements non enregistrés et retourne l'un ou 0. Alors répliquons ça dans notre unité de travail juste pour que nous soyons sur la même page. Mais alors le problème ici avec l'unité de travail est que ces contextes enregistrent les changements recevant à travers n'importe quelle table. Donc, ce n'est pas assez facile à détruire sur Xj o pour cette opération particulière, était-ce réussi ou non ? Donc, je vais en fait juste supprimer cet outil pour vérifier parce que la plupart des fois, quand il y a une erreur, le catch serait, serait, sauterait de toute façon. Donc, je vais vraiment prendre tous ces 0 succès vérifier complètement. Et ce qu'on fait est juste notre unité hors travail point c. et je le sais à c. Donc c'est comme ça que vous faites. Donc oui, c'est deux lignes. Si vous ne faisiez pas les déclarations if et ainsi de suite, vous le feriez probablement en une ligne de toute façon, menez ça. Mais oui, c'est deux lignes. Ce que je pense que les avantages à long terme ou nous, vous savez, juste le fait que nous produisons une nano est deux lignes. Alors passons à autre chose. Donc, ici, nous faisons la même chose existe et cela ressemble exactement aux détails. Donc je vais juste copier et coller. Vraiment pour le d, pour l'édition, copiez et collez. Et puis pour, eh bien, nous avons modifié ou supprimé de toute façon. Alors regardons l'autre édition null. Donc, pour l'éditeur Post, nous avons la même chose est le succès, vérifier, mètres, commenter tout ce vieux. Je l'ai déplacé initialement, mais je vais juste le commenter. Et puis ce que nous allons faire est, eh bien, la mise à jour n'était pas un synchrone, donc unité de word.lower types Update et nous mettons à jour le type feuille, non ? Et puis on économise. Oh, et sauver c'est juste. Alors on y va. Alors on a fait une chose similaire. Donc ici la suppression, nous l'avons trouvé, et puis nous sommes allés de l'avant et supprimé. D' accord, donc ce que je vais faire ici, c'est penser, ce qui m'a fini de le faire. On en a fait deux de la même façon. En fait, je ne me souviens pas lequel. Rappel. Laissez-moi revenir à la vue pour que je puisse le faire correctement. Je pense qu'on l'a fait à partir de l'indice. Donc, plus que probable, nous l'avons fait. Donc, même comme ça, supprime, nous allons modifier la façon dont cela fonctionne avec. Je vais enlever ça. Les clauses Onclick peuvent constituer un problème de sécurité majeur. Et ce que nous allons utiliser est comme une soumission de formulaire à la publication. Donc, je vais juste les modifier les deux planches avenir, nous voulons utiliser le poste parce que je veux avoir la protection de l'anti 4A Tolkien. Lorsque nous faisons une opération de suppression, la façon dont nous l'avons écrit initialement, alors que c'était facile et il semble propre. C' est en fait un risque pour la sécurité. Il révisera cela dans quelques uns. Donc, je suis l'un d'eux va juste modifier un d'entre eux pour qu'ils regardent de la même façon. Mais une fois de plus, nous voulons aller de l'avant avec cela. Donc ce que nous faisons ici, c'est la découverte. Alors laissez-moi dupliquer les commentaires, l'origine. Et puis je vais voir sur une unité carrée de points de travail laisser types, point trouver et l'expression sera, et puis au cas où il veut noir, je suis mort. Lorsque vous avez plusieurs paramètres, vous pouvez dire des experts sur les deux-points ou comme vous voulez spécifier quel paramètre vous empêchez une valeur quatre, encore une fois pour voir le nom de Parramatta deux-points et ensuite vous mettez la valeur, n'est-ce pas ? Donc j2, désolé, l'expression est q. et cette expression lambda où nous disons q point o, désolé le nom de la fonction est faux sur. Donc trouver se demandait pourquoi ça ne fonctionnait pas. On y va. L' ID de géodonnées est équivalent en ID. Donc, il va retourner un paramètre, ou désolé, l'objet ici. Et puis nous voyons que vous voulez parler pour type de feuille de point supprimer et soulagé qu'il est vide. Donc nous ne devons pas a1 et bien sûr, nous ne vérifions pas le succès ou quoi que ce soit du genre. Enlève tout ça. Bien sûr, l'envelopperait dans une prise d'essai. Donc, ce sont des morceaux cassés, c'est une tendance rapide à attirer, qui est ce que nous avons fait ici. Donc, cela est permis un peu o sur à utiliser de toute façon. Donc je vais juste copier ce code et le coller ici. D' accord. Comme je l'ai dit, nous allons refactoriser nos suppressions. Mais c'est en fait tout pour changer ou le code de contrôleur de type feuille. Pour qu'on puisse aller de l'avant et le tester. Vous pouvez le tester. Je ne vais pas le tester. Donc, je suis vraiment là pour refactoriser et changer un modèle où vous pouvez aller de l'avant et le tester. Je créerais, supprimerais et mettrai à jour, et vous verrez que tout fonctionnera comme si rien n'avait été changé, non ? Mais quand vous regardez la base de code, vous voyez que nous aurions utilisé l'unité de travail au lieu du repo ? Non. Pour cette modification de une à une, ça ne ressemble pas beaucoup à une grosse affaire. Si quoi que ce soit, ça ressemble plus à un dérangement. Parce que parfois nous avons remplacé une ligne potentielle par deux lignes. D' accord ? Donc ce qu'on va faire, c'est o et ici, non ? Alors rappelez-vous, j'ai toujours besoin d'enregistrer les changements. Donc, il doit être en un mot dur, sauver chaque fois que vous faites la mise à jour, n'est-ce pas ? Donc, il a fait le CVE, enregistrer pour la Supprimer, Mettre à jour cela. Bon, donc ce que je vais faire maintenant, c'est passer à la dernière. Ne sont pas bien ventilateur sur le prochain, qui est les demandes d'émissivité et l'allocation Aleve. Très bien, l'allocation des congés est un peu plus facile à gérer. Donc je vais faire les demandes de congés à faire parce que nous avons eu trois retraits différents en interaction avec. Nous allons donc refactoriser celui-ci ensemble dans la prochaine vidéo. Mais je vais vous défier d'essayer de le faire tout seul. Donc je vais faire avec celui-ci hors caméra et ensuite nous pouvons aller de l'avant et comparer que vous l'avez fait correctement ou même que je l'ai fait correctement. Mais on va le faire ensemble. Ainsi, vous pouvez voir exactement comment le modèle d'unité de travail nous permet de convaincre ou générique, désolé, notre modèle de dépôt original un peu plus. 58. Contrôle de demandes de congé de Refactor: Bon, donc nous sommes de retour et nous modifions et laissons le contrôle des demandes ou le contrôleur. Désolé. Donc, je suis déjà allé de l'avant et injecté, n'est-ce pas ? Je n'ai pas encore supprimé les références originales aux repos. Donc, après avoir fini les modifications que nous pouvons revenir en arrière et nettoyer et il verra combien plus facile le code est à regarder. Et je suis camion. Commençons donc par modifier notre index. Donc, il semble que Potter et je vais juste dupliquer une ligne puis entrer et puis nous voyons unité de mots. Donc, notez que nous ajoutons aux demandes de congé très spécifiques, repo, repo. Donc, cette fois, je peux vous dire et c'est hors travail, spécifiez les tables. Donc celui-ci est le point de requête trouver tous Non, pas de filtre ou quoi que ce soit. Donc, c'est bien. Tout va s'allumer en conséquence. Et là, voici une bonne note. Voici une bonne raison pour toute l'expression et la capacité de faire le filtre à la volée parce que nous avons dû examiner affectations des employés et ensuite chercher l'allocation des congés. Et nous avons dû faire une fonction personnalisée pour que l'employé demande de faire cela et dans une fonction personnalisée. Voyons comment nous pouvons réécrire. Ne suivez pas Shun et soyez plus générique. Donc nous aurons l'employé, nous avons récupéré l'identifiant de l'employé. Alors laissez-moi dupliquer ce 1 d'abord. Mettez un peu d'espacement pour qu'on puisse voir exactement ce qui est modifié, non ? Donc, les affectations des employés seront maintenant égales aux allocations de congés de travail unitaires, pas de costume, et dire qu'il n'y a pas de code personnalisé ou pas de coût pour la fonction, très bien. D' accord, et puis nous allons mettre dans l'expression Q lambda Q dot ID employé égal à ID employé. D' accord, donc nous disons que les allocations de congés de travail me donnent tous les autres acquis là où cette condition est vraie. Et nous pouvons faire la même chose pour celle-là. Laisse-moi venir Momento. L' original, Notre voir ce temps est des demandes de congé. C' est donc la table des demandes de congé Unit o oublié. Trouvez-les tous. Où l'expression q point est là un ID d'employé ou bien, ok, Donc, ce sont des demandes par les employés. Alors laissez-moi voir exactement ce qui était utilisé ici. Donc, c'est la discipline d'artefact d'aller voir Donc je peux utiliser ne va à l'implémentation. Et il vérifiait où. Donc c'était l'expression lambda originale, non ? Donc je peux littéralement juste cette expression lambda originale. C' est une fonction personnalisée, tu te souviens ? Mais non, je n'ai pas besoin d'une fonction personnalisée. Je peux faire cette expression lambda et le mettre juste dans le trouver tout. Et nous sommes ravis d'y aller et de me laisser le commenter. Et il fera le même travail. Très bien, Polar hors d'être générique une base de code et nous permettant de lire des requêtes puissantes en utilisant des expressions très simples. Et puis il y a des accrochages parce que rien n'a vraiment changé. D' accord, faisons la même chose pour celle-là. Alors faisons les commentaires de Pickett et ensuite l'unité de travail. C' est ce que les demandes de congé. Donc cette copie ceci, et c'est bon. Et l'expression est q point ID est égal à ID. Ça a l'air bien. Et puis voici un plus grand sur nulle part. Je pense que c'est là que nous avons acquis tous les dépôts qui sont inclus dans celui-ci. Alors, travaillons-nous à travers. Donc, premièrement, nous trouvons les demandes de congé. Eh bien, nous l'avons fait ici, donc je vais juste copier et coller ce code. Bon, comme pour genre, alors on a l'employé qui demande, l'ID de type feuille, puis on doit obtenir le Dieu, cette allocation de congé, obtenir des allocations de congé par employé et fonction de costume de type 1B, non ? Donc, si je vais à la mise en œuvre, je peux voir le truc X-Y qu'il a fait. Il a dû obtenir la période à laquelle cette année. Et puis il a dit, Je emplacements, le sol aura toutes les allocations. Et puis nous avons dit que les allocations me donnent les premiers sont par défaut pour l'employé, pour la sphère et pour cet ID de type feuille, non ? Donc je vais juste copier toute cette expression sur de façon inclaire, nous avons un peu plus de travail à faire, aller après avoir mis le PIR sur. Ce qu'on peut faire de l'intérieur du contrôleur. Nous n'avons pas forcément à le faire dans la méthode, n'est-ce pas ? Donc, je veux dire que c'est un refactoring existe comme un sel où ici ce n'est pas absolument nécessaire à ce stade. Laisse-moi fermer. Bon, donc le contrôleur des requêtes, voilà. Alors je vais le réécrire. Et quand dire l'emplacement var est égal à. Et je vais juste écrire comme un tous les mano 08 unités hors point de travail, congé, emplacements, point trouver. Et c'est que c'était censé en avoir un, donc c'est bien de ne pas trouver. D' accord. Et puis nous avons notre expression, qui est Lindsay ressemble à ça. Mais je suis parti pour modifier le sous-réseau parce que nous avons besoin de point. Alors laissez-moi juste obtenir le pair pour enregistrer var date périodique, heure, point n° 2 année. D' accord, donc je reçois la période non. Et puis on passe à autre chose. Donc, je reçois une petite erreur ici. Emplacements o, et c'est parce que je n'ai pas apporté la queue et le type de feuille a été mal orthographié. Donc B à cette filature sur un type IV. Et clairement q pour l'expression lambda. Et on y va. Bon, maintenant c'est ce que la racine carrée aime. Donc je veux dire, ce n'est peut-être pas aussi soigné que d'avoir cette fonction LM côtière. Mais pour moi, c'est beaucoup plus maintenable et je ne dis pas que cela soit prescriptif. Je ne vois pas ça. La façon dont vous devez savoir implémentée si vous vous sentez à l'aise avec le générique, avec le modèle maintenant Repository orange, puis par tous les moyens utilisez cela. Je vous montre juste une dimension différente de la façon dont nous pouvons obtenir du code écrit et plus maintenable. D' accord, alors on va aller de l'avant et obtenir notre allocation en utilisant l'unité de travail. Et puis pour les mises à jour AC nous mettons à jour ici, non ? Donc, il a mis à jour puis voir si dans celui-ci que mettre à jour et voir si celui-ci. Donc je peux, je vais juste commenter ces deux lignes. Et je vais voir l'unité de soulignement hors point de travail, laisser des demandes, point quoique. Et il croira les demandes. D' accord, donc c'est le premier besoin de pente. Et dans le second sera des allocations de congé. Ce sera Janet qui jalonnera l'allocation. Et qu'est-ce qu'on a à faire après tout ça ? On a juste besoin de voir. Donc, cela va littéralement juste effectuer je semble opération sur une fois. Donc, alors que nous transformons deux lignes de code en trois, le fait est que nous ne faisons pas quelque chose puis sauver et ensuite faire quelque chose que de sauver où laisser le contexte, ni que cela doit être fait. Donc, et nous voyons enfin qu'il est juste engagé et satisfait. D' accord, donc on a commenté quelques lignes. Et, bien, certaines lignes semblent plus longues que d'autres parce que celle-ci, cette ligne entière a l'air un peu plus de chromosome que cette BOD pour moi. Et c'est le premier et je le ferai encore une fois, ça va être plus maintenable à l'avenir, non ? D' accord, donc ici, nous avons le gestionnaire d'utilisateurs qui obtient ça et puis nous n'entendons pas, nous faisons une amende donc unité de travail, demandes de congé de points trouvent. Et dans notre expression lambda, elle n'équivaudrait pas à ça. Et puis nous faisons la mise à jour. Donc j'essaie toujours juste de commenter et réécrire et donc nous pouvons garder une trace des changements que nous faisons. Donc, ce sont des demandes de congé. Réflexions sur les demandes de congé, non ? Et bien sûr, nous devons nous rappeler de suivre cela avec nous. Et c'est un évier. Donc, pour que le So crée, nous arrivons à tous. Donc, commentaires, var, désolé, laissez-moi dupliquer et vous voir dans tout cela pour. Donc, c'est l'une des parties ennuyeux de refactoring est difficile prêter attention et Chen être centre très méticuleux grondé de ces choses. Mais hé, donc nous changeons ce OneNote pour la création. Et ici, nous avons fait la même recherche pour l'employé et les trucs d'allocation. Donc je vais revenir sur emprunté ce morceau de code. C' était donc ces deux lignes. Et juste remplacer celui-ci par ces deux lignes ? Il y avait la même chose, n'est-ce pas ? Leaf type D, OK, c'était la même recherche, juste des données différentes étant transmises. Donc, cela devrait être de type model.predict. Oh, il était l'ID de l'employé, puis l'ID de type feuille de point modèle. Très bien, juste une double vérification pour m'assurer que je fais la bonne connexion entre l'outil. Donc, il a été modélisé sur l'ID de type elif pour ce paramètre. Et celui-là aurait été le point d'identification de l'employé . Et bien que vous fassiez toutes ces choses. Donc, quand on arrive ici pour le créatif, juste peigner l'âme. Et rappelez-vous l'unité 04, points, demandes créent. Et nous passons cet objet de demande de congé. Et puis c'est une scène. Et puis peser l'unité de point de travail. Et je vais prendre tout ce chèque. Donc une fois de plus, je prends tout ce jet parce que plus de 90 quelque chose s'est mal passé, on a attrapé l'exception et on va soudain faire la même chose de toute façon. Donc juste essayer d'être pendant qu'on est en affacturage, je serai plus efficace pour ce qui est de notre opération et je vois que j'ai une flèche ici, alors laissez-moi juste réparer ça. L' employé pointe IID avec je l'ai gardé. Je n'entends pas trouver par carte d'identité. Avez-vous fait un ID NBA si n'importe où à proximité ? Oh, on n'a pas changé celui-là. Cela aurait dû être modifié. Donc je vais changer celui-ci avant d'aller de l'avant. Donc c'est nul Unité 04. Les points laissent des types, pas trouver. Bon, donc pour celui-là, laisse-moi juste le réécrire. Vous obtiendrez les quatre types. Et nous trouvons par l'expression q-dot, ces équivalents. Donc, c'est bon. Donc, je ne veux pas que tu me trompes. Je ne dis pas que c'est dur sur foss que vous le plus et ce sont des demandes soignées, désolé, ce n'est pas difficile sur Fossae, vous devez utiliser le générique parce que si vous aviez des fonctions personnalisées que vous vouliez taper dans mon Yolanda pour monter les fonctions pour des trucs. Vous pouvez toujours implémenter votre propre contrat, votre propre interface, puis avoir l'unité de guerre ou d'autres derbies theropodes héritent de ce diplôme. Donc, chaque fois que l'interface hérite d'une interface. Ensuite, quiconque hérite de cette interface, ce qui, dans le cas du dépôt générique , le sera, ce sera un peu délicat. J' ai eu un train de réflexion et je suis désolé. Mais vous pourriez manœuvrer yo flèche et si vous vouliez vraiment ajouter une fonction personnalisée, quoi pour moi ? écrire de cette façon est beaucoup mieux car alors vous n' avez pas besoin d'avoir trop de fonctions de personnalisation sont sur l'endroit. Un autre modèle que vous pourriez réellement implémenter quelque chose comme la commande et le modèle de requête, où au-dessus de l'unité de travail, vous auriez une couche de commandes où vous interagissez avec la commande. Et la commande aurait en fait les fonctions de costume, ce qui provoquerait alors une unité de quatre fonctions en conséquence. Donc, il y a beaucoup d'obstructions et de couches que vous pouvez mettre sur la fin de la journée, c'est un peu hors de ce dont vous avez besoin. Ce n'est pas une question de le faire avec style. C' est une question de ce qui est maintenable pour vous, durable et à l'avenir, vous pouvez le modifier un add-on plus facilement. Donc je pense que nous avons fini avec le contrôleur des demandes de congé. Nous n'avons rien fait avec l'éditeur, donc nous n'avons pas à les modifier. Oh, voici une ligne de plus. Et puis quand nous avons fait cela, nous pouvons aller de l'avant et nettoyer tout le code qui n'est plus utile. Donc, ce sont des demandes de congé pensé, Oh, ce n'est pas voir donc il n'y a pas de mauvaises herbes étaient alors bien sûr que vous devez attendre unité hors où pas. D' accord. Donc maintenant, nous avons fini de nettoyer le repos. L' ancienne citation de l'introduction en bourse. Si nous ne le sommes pas, alors je suis sûr que d'autres erreurs apparaîtront quand nous avons commencé. Mais maintenant que nous utilisons l'unité de travail, nous n'avons plus à injecter tout ça. Donc, je vais juste supprimer les références. Je les supprime parce que je voulais voir le nouveau code. Donc tout ce qui a été commenté ou en mouvement. Et vous avez toutes les versions du code. Donc, si vous avez besoin de revenir sur les références de la Terre moi, vous pouvez toujours le faire. Mais maintenant que nous les avons enlevés, allons de l'avant et tout ce qui a été commenté, je vais juste prendre tout. Je n'aime pas voir trop de commentaires dans notre code, n'est-ce pas ? Donc l'évaluateur les a déplacés. Et ces activités de nettoyage presque terminé. Et la plupart sont vraiment semblables car comme je l'ai dit, beaucoup d'entre eux comme les requêtes sont 19. Mais nous sommes heureux d'un pays avec plus de lignes de code plus tard. Les opérations qui sont nécessaires, l'enregistrement. Mais l'avantage ultime ou la victoire ultime pour moi était le fait qu'avec une injection, veux référencer un point de référence, je peux accéder à toutes les tables. Donc, au début, quand j'ai eu les trois repos injectés, vous savez, je veux dire, vous pouviez comprendre que j'interagissais avec cette table, cette table et cette table. D' accord ? Et si une quatrième table entrait dans le mélange, alors je devrais passer par l'ensemble du processus de nouveaux contrats, Nouveau dépôt, l'injecter, me rappeler très inquiétant de surprendre, puis en utilisant ce rapport, spécifiquement bonnet avec une unité de travail, si une nouvelle table vient dans tout l'après-midi est bien qu'un, l'interface ici pour l'unité de travail. Et puis pour mettre à jour la classe concrète pour l'unité de travail, assurez-vous que je l'initialise et ensuite nous avons terminé. Et une fois que cela est fait, partout où vous injectez votre unité de travail, vous savez, avez accès à toutes les classes ou à toutes les tables qui ont été définies pour l'interaction par le biais de vos contrats. Donc, pour moi, c'est le méta avantage avec ces unités génériques hors modèles de travail. Comme je l'ai dit, ils sont toujours pour et contre parce que certains bon non, soutiennent qu'ils trouvent méprisants. Ils n'aiment pas le fait qu'après avoir écrit l'expression lambda directement à l'intérieur du contrôleur, qui est un valide, qui est un point de vue valide, n'est-ce pas ? Parce que ça devient une Missy et trop facile d'oublier de faire quelque chose plus tard. C' est donc un point valide. Bien sûr, il y a des avantages et des inconvénients, mais alors, vous savez, pas deux modèles distinctement différents sont, eh bien, un construit sur l'autre, mais vous ne connaissez pas deux façons d'implémenter ce genre de modèle. Vous pouvez utiliser la marijuana vous convient dans votre situation est Maribel contextes que ce qui est nouveau et ce qui est le bus. Donc, nous avons fait le contrôleur des demandes de congé, je vais vous laisser aller de l'avant et faire l'exercice d'affacturage du contrôleur d'allocation. Je vais le faire et il reviendra. Nous comparons et passons à travers. Et puis vous allez juste de l'avant avec une extrémité à l'autre application de modification et de stockage. 59. Contrôleur de congé Refactor de dégagement des allocations de Refactor: Notre gars, donc nous sommes de retour et je voulais commencer sur le contrôleur des requêtes. C' est celui que nous venons de faire, mais il y a certaines choses que j'ai omises. Et j'espère que vous avez au moins testé et que vous auriez vu des erreurs. Donc vous auriez eu Arecibo, le subsonique nul ou médico-légal. Et ces exceptions de référence nulles concerneraient les tables qui auraient été incluses Basé sur le référentiel précédent. Alors rappelez-vous que c'est dans le dépôt d'origine comme pour les demandes de congé qui aurait automatiquement pris avant et a dit que nous voulons inclure ces trois ? Non, dans le générique, nous prenons des dispositions pour inclure ce qu'ils doivent être explicitement énoncés. La raison de cette différence est que vous ne voulez pas nécessairement obtenir tous ces détails chaque fois qu'il veut faire une recherche, n'est-ce pas ? Et pour que ce carré soit en fait beaucoup plus lent parce qu'alors chaque fois que vous trouvez toutes les demandes de congé, il est automatiquement interne joignant tous les détails de ces autres tables, qui pourrait ne pas absolument nécessaire pour cette vue particulière. Tu voulais juste les énumérer. Vous n'avez pas besoin de détails, mais alors vous parlez de Dieu, les détails ne les utilisent pas, n'est-ce pas ? Donc, dans le dépôt générique ou les unités de beurre de travail et nous avons fait des dispositions que vous pouvez voir pour cette demande particulière, je veux inclure ces tableaux. D' accord ? Et donc pour les demandes de congé, commençons par l'index. Donc, je vous montre juste l'image complète juste où déjà changé ou laisser les demandes d'être l'unité de travail. Les requêtes trouvent tout bien, nous n'avons pas fait était d'inclure ou de paramètre pour les inclusions. Alors rappelez-vous que j'ai dit que vous pouvez toujours, quel que soit le nom du paramètre dans la version la plus récente ou C-Sharp, vous pouvez réellement voir ce nom Parramatta deux-points et ensuite dire, que voulez-vous écrire à l'origine, vous aurait dû faire quelque chose comme exprimer que le premier est nul. Exprimez que dans une seconde sur est tous ces paramètres T3 prend expression. Il prend ordre par Annie prend qui comprend LR. Donc, à l'origine, vous devriez dire null pour les experts sur annuler l'ordre par cette valeur pour les Includes. Mais non, si je veux seulement fournir une valeur pour les Includes, je peux juste dire inclut les deux-points et ensuite ai juste la valeur qui devrait être pour ce paramètre. Donc de cette façon, je n'ai pas à passer par chaque paramètre juste pour dire non, je ne veux pas celui-là. est ainsi que vous alliez faire du bateau, y compris vos tables dans ce nouveau modèle. D' accord. Nous voulions donc inclure l'employé demandeur et type de congé parce que dans l'index des demandes de congé, je crois qu'au moins nous montrons le nom de l'employé et que nous montrons le type de feuille qu'ils ont demandé, nous avons donc besoin de ces deux détails. Et si vous, si vous n'êtes pas sûr quand faire l'inclusion Darwin pas trop ne backtracking parce que nous construisons déjà des applications. Donc encore une fois, ce camion de Bach et aller à la page d'index des demandes de congé. Et partout où vous nous voyez faire quelque chose que je ne suis pas ici, où vous avez ce point quelque chose d'autre que vous savez que c'est ce qui a été inclus sont ce est ce qui devait être inclus, non. fallait donc inclure l'employé qui demandait. Donc, il obtiendra le prénom et type nécessaire pour être inclus afin que nous puissions obtenir ce nom. D' accord. Je vais passer en revue le reste des demandes de congé. On l'a déjà fait, donc ce n'est pas beaucoup plus que je dois te montrer. Donc, pour l'index, nous avons l'employé demandeur et le type de congé, sorte que vous pouvez aller de l'avant et mettre à jour ces valeurs dans l'appel de fonction. Nous avons dans les kilomètres, nous devons inclure le type de feuille. Donc, pendant mon congé, je n'ai pas besoin d'inclure les détails de l'employé qui en fait la demande. Parce que la théorie derrière les pages My Leaf que je l'employé révélant ma propre page. Donc nous obtenons tous les détails de celui qui est aimé être. Et puis quand nous obtenons les allocations, vous avez juste besoin de trouver des emplacements à tel point que l'employé et le doess comprennent le type feuille. C' est tout. Et puis mon congé fonctionnera pour les détails que nous devons obtenir qui sont prouvés, qui l'a demandé, et le type de départ. Donc tu vois, c'est ce que je vois. Nous pouvons décider dynamiquement quand nous avons besoin d'un seul détail. Lorsque nous avons besoin de quelques détails, sont quand nous avons besoin de tous les détails, nous n'avons pas la salle, buck tous les détails tout le temps sans raison parce que ici vous voyez que les données approuvées par les employés demandeurs auraient été obsolète pour cette page particulière. Donc, vous ne voulez pas introduire quelque chose qui va signifier la charge du langage de doctorat quand il n'a pas besoin de le faire. D' accord, aller de l'avant, je suis juste en train de voir s'il y avait un autre que je devais en mettre et qu'il n'y en avait pas d'autres. Ce serait donc pour les demandes de congé. D' accord. Bien que le défi aurait été pour vous de finir tous croire, allocation. Et j'ai traversé et il est déjà prêt à aller à toutes les injections et à les remplacer par l'unité d'injection de travail. Et passons à travers. Donc, pour notre accord, laisse-moi aller à l'école une ligne à la fois. Donc, pour l'index, je sais juste comment trouver tout, trouver tous les types de feuilles. D' accord, et puis nous chargeons la page d'index pour l'allocation à l'écran. Pour un congé fixe. J' ai échangé toute la trouvaille juste là et certains d'entre eux j'ai supprimé et ainsi de suite. Et puis après, je me souviens qu'il devrait y avoir des commentaires. Donc comme celui-ci pour vérifier l'allocation. L' allocation de vérification aurait initialement retourné un booléen. Et ce booléen aurait exécuté cette expression en utilisant ces valeurs. D' accord, donc ID MID et quand il a des règles. Ainsi, ils peuvent toujours revenir en arrière et regarder l'allocation initiale de ticks. Mais pendant que nous l'avons fait, nous avons juste défini la période ici. Et puis nous avons dit que les allocations de l'unité 04 existent. Et que je vois ceux existent là où l'ID d'employé correspond à cela, laisser que beaucoup est que sous pair à beaucoup ? C' est ça. Donc, c'est à peu près notre booléen juste là, non ? Et puis ici, nous allons de l'avant et faisons notre Créateur et nos employés dans la liste. Eh bien c'est l'un qui repose déjà sur le gestionnaire d'utilisateurs, donc les nuances n'ont pas touché le gestionnaire d'utilisateurs. On n'a pas construit de repo pour Usama. John, je ne fais pas de logiciel pour le gestionnaire d'utilisateurs parce que c'est déjà implicite à l'intérieur de nos moniteurs d'utilisateurs. Je ne veux pas que ce soit exagéré. Passant aux détails, nous allons de l'avant et nous obtenons les détails pour toutes les allocations. Et donc cette ligne se divise en deux lignes, non ? Donc, nous avons fait l'appel Fang Xiang, quand a fait la cartographie et puis l'appel de fonction. Et ils vont le diviser en appel de fonction, puis le mappage, à droite, afin qu'il soit plus facile à consommer. Donc, dans ce cas particulier, nous avons des cartes rouges où nous faisons une recherche sur l'allocation des congés sur stable. Et puis nous avons l'expression. Donc, cela maintenant, nous avons deux expressions de paramètres pour obtenir l'ID d'employé égal. Donc c'est sous la période, c'était une période. Et bien sûr, trouvez ça là. Et puis nous avons les Incluts, où nous incluons juste la seule chose. Donc, une fois de plus, dans l'origine, notre référentiel aurait inclus deux ou trois autres tables lorsqu'elles sont résidentielles, vous n'avez qu'à en inclure une pour la vue détaillée. Alors, où être un peu plus efficace ici, n'est-ce pas ? Et puis passer à l'édition, quand nous entrons dans l'allocation des congés où alors la même chose, nous avons notre expression et nous avons nos Incluts. D' accord, donc après avoir passé de l'édition, nous allons au poste où nous obtenons le record des robots sous-marins dont nous avions besoin pour faire la mise à jour et puis voir. D' accord, et ce serait tout pour notre contrôleur de l'allocation des congés. Et par extension, c'est vraiment tout pour les unités de travail génériques ou le dépôt générique Patreon et les unités de travail où vous vouliez le geler. C' est donc vraiment tout ce dont nous avions besoin pour discuter pour cette section du module. Et plus tard, nous allons voir comment nous pouvons personnaliser les e-mails assis, comme quand une demande e-mail va, oh, probablement voulu envoyer un e-mail à l'utilisateur administratif. Il suffit de tirer un e-mail ou un congé gagné est approuvé ou, vous savez, il est interrompu avec approbation, rejet ou autre, puis il a voulu envoyer un e-mail à l'employé pour le faire savoir. droite. Donc, nous pouvons regarder les e-mails de notification. Et nous allons aussi nettoyer cette suppression. Comme je l'ai mentionné plus tôt, que nous voulons changer le code ici où nous avons cela. Laisse-moi voir si je peux trouver en congé des types où nous faisons ce onclick. Nous voulons en quelque sorte sécuriser cette optimiste plus. Donc, quand nous reviendrons, nous examinerons ces modifications. 60. Mise à jour - Forte type comprend pour l'unité de travail: Hé les gars, bienvenue. Dans cette leçon, nous allons jeter un oeil à la modification de nos unités de travail pour être un peu plus fortement typées quand il s'agit de la liste des Incluts. Donc, en ce moment, il ne s'appuie que sur une liste de chaînes de type et nous, les développeurs doivent taper les chaînes manuellement. Maintenant, cela peut être atténué pour ceux qui ont des noms de classe, parce que nous pourrions dire nom off et nous pourrions voir employé. Donc, cela rendrait simplement une représentation sous forme de chaîne de l'employé de nom. Donc, cela fonctionne, mais alors ce n'est toujours pas infaillible car toutes les propriétés de navigation n'ont pas un nom de classe correspondant. Par exemple, dans notre je pense que je emplacements contrôleur ou laisser Requests Controller autre, il n'y a pas de navigation. n'y a pas de classe qui corresponde à la demande de l'employé, non ? Donc, ce n'est pas nécessairement infaillible. Mais si vous vous demandez, pourquoi voudriez-vous le modifier ? Un autre problème pourrait être que si nous changeons notre nom de classe ou quelque chose qui est dans le futur ou même pas la propriété. Si je modifie la propriété dans l'allocation feuille stable d'être employé à torsion employé, alors il n'y aurait aucune indication dans le code que quelque chose a changé. Donc, ce serait, il compilerait, il serait construit, puis il serait déployé, puis vous rencontreriez une erreur plus tard. Et les utilisateurs se plaignent que cette fonctionnalité a fonctionné hier, cela ne fonctionne pas aujourd'hui. Et vous savez seulement que vous changez une propriété qui n'a pas cassé le code. Eh bien, il l'a fait à cause de cette typage lâche, droit, ou contraintes lâches sur la propriété. Donc, ce que nous allons faire est de modifier notre référentiel générique et nous allons changer le type de données pour les Includes à partir d'une liste de chaîne 2, ce que nous appelons un I include, je interrogeable HIS, c'est une bouche, mais nous allons Regardez-le ensemble. Donc nous allons sauter à notre dépôt oculaire dans notre dossier de recherche clinique. Et quand nous sommes ici, nous avons tout trouver et trouver. Donc rétinol encore une fois, nous utilisons seulement la liste de chaîne pour nos inclusions. Je vais donc modifier un peu ça. Et ce que je vais présenter va ressembler à notre oeil ordonnable, lecture interrompue ou j'ai ordonné interrogeable. Mais celui-ci va être de type I interrogeable avec le type T. Et j'inclut la double interrogation, qui prend une expression lambda et juste de la même manière. Très bien, donc c'est ce que je remplace cette liste de largeur de chaîne. Ainsi, vous pouvez simplement aller de l'avant et mettre en pause et répliquer cela et inclure toutes les références manquantes en conséquence. Et c'est juste bon d'avoir un grand effet d'ondulation dans tout le code. Donc, si nous passons au dépôt générique, qui est là où tout doit être implémenté, nous pouvons simplement aller de l'avant et modifier les paramètres en conséquence pour inclure ce qui doit être inclus. Et puis nous allons juste devoir modifier la façon dont nous faisons la partie inclusion. Donc, quand nous faisons la liste de chaîne, nous avons dit que si nous avons du contenu dans cette liste, alors pour chaque propriété ou incluse, allez-y et faites l'inclusion. Maintenant, cela va réellement nous donner une fonction appelée include. Très bien, donc cette fois, je n'ai pas besoin d'une boucle. Je peux prendre cette boucle d'avoine, et cette propriété devrait être appelée inclut. Laisse-moi aller de l'avant et arranger ça. Ceci est inclut cela inclut tout droit. Juste pour garder le nom cohérent afin qu'il soit inclus. Donc, tout n'a pas à faire est de dire des requêtes égales aux inclusions, qui est une fonction. Et puis je vais mettre des requêtes. Donc, en d'autres termes, nous voyons que nous avons la requête. La requête, oui. Mais alors pour la requête, je veux appliquer tous les inclusions qui ont été stipulées ici. Alors voyons à quoi le code va ressembler dans une minute, mais je vais juste répliquer ce code dans la trouver toute la version de cette méthode et corriger ce paramètre, non ? Et tout le monde est heureux. Et puis je suis cisaillement. Donc, quand nous l'avons implémenté, je n'ai pas créé de nouveau fichier. Donc, c'est une sorte de mener tous les coûts séparation des préoccupations, bien sûr, parce que je mets trop vite et c'est en fait dans l'équité, a pris un certain temps pour le trouver. Donc, ce que je vais faire est juste de créer un nouveau fichier pendant que nous sommes ici. On doit donc passer à des contrats. Et je vais juste ajouter la classe. Nous savons comment le faire déjà, appelant soit référentiel générique, mais il va vraiment jouer hôte ou interface de référentiel générique, non ? Donc juste là, je sais où trouver mon référentiel générique en tout temps. Allez-y et incluez les références manquantes. Et ça a l'air mieux. Donc maintenant, nous savons où se trouve notre référentiel générique de l'oeil. Nous avons notre référentiel générique. D' accord, et nous avons nos unités de travail quelle minorité ? Et nous pouvons nous appuyer sur cela. Non, regardons ce que nous devons faire dans nos contrôleurs. Parce que non, tout est dans RRE, tout ce qui est en désordre, désolé, tout ce qui avait un Include est savoir désarroi. Alors regardons ce que cette nouvelle syntaxe. On va ressembler à. Donc, dans le tout trouvé, tout ce que j'ai fait, c'est tout trouver. Et puis j'ai dit que je voulais inclure ces propriétés de navigation, non ? Demander le type d'employé et de congé. Donc nul, je peux utiliser une expression Lambda. Donc, je peux dire q point et ensuite dire inclure. Q-dot, incluez. Et j'obtiens une ligne rouge ici parce que j'ai besoin d' insérer ceci en utilisant l'instruction pour Entity Framework Core. Donc, une fois que vous allez de l'avant et que vous le faites, vous pouvez continuer. Donc, vous voyez q expression lambda, Q dot include. Et puis à l'intérieur de cette méthode, vous voulez une autre expression lambda. Je vais juste utiliser x comme Tolkien cette fois. Et puis il me donne toutes les propriétés de la table. Donc, à l'origine, j'aurais voulu X-dot demander un employé. Et puis je peux enchaîner ces déclarations d'inclusion le long. Alors regardez cette partie très attentivement parce que si l'alimentation, si vous ne faites pas attention, Il est facile de gâcher. Très bien, donc inclut, alors nous commençons l'expression lambda et avec ce Tolkien nous disons q dot include. Ensuite, nous avons l'expression Lambda à l'intérieur de l'inclusion, et ensuite nous pouvons enchaîner d'autres inclusions. Donc, je peux voir alors inclure si je veux, qui signifie que s'il y avait quelque chose dans cette propriété que je voulais, je pourrais voir inclure l'employé demandeur, puis inclure quelque chose à l'intérieur de cette table. Droit. Je pourrais aussi dire demander point de l'employé et inclure tout autre chose un bateau, bien que la propriété de navigation. C' est donc une autre façon d'avoir plusieurs inclusions dans l'instruction unique. Mais je peux aussi dire inclure à nouveau, ce qui me donne la possibilité d'utiliser une autre expression lambda et de spécifier l'autre propriété de navigation qui est le type feuille. D' accord ? J' espère que ça ne vous a pas confondu d'une façon ou d'une autre. Sachez juste ce qui est vivant, récapituler rapidement. Quand je fais les Incluts, j'ai une expression Lambda. Ensuite, je dis q dot include. Ensuite, une autre expression lambda à l'intérieur de cette méthode include où je vois que c'est la propriété de navigation que je souhaite inclure. Donc, tout cela suppose de vouloir déclaration grossière, ou au moins cela résume vouloir déclaration alimentaire. Mais alors autant d'inclut que je l'ai, je peux continuer la chaîne et dire dot include, puis une autre expression lambda dans celui-ci. Et puis je peux continuer à inclure ou non les points comprennent, vous utiliseriez puis inclure si vous vouliez la lumière du petit-enfant. Donc, si vous étiez à la table des parents et le proche inclus dans l'enfant et que vous voulez un enfant hors de cet enfant, alors vous diriez inclure l'enfant, puis inclure celui du petit-enfant, pour ainsi dire. Et tu pourrais descendre la chaîne, diriger ça. Donc maintenant, nous pouvons nous débarrasser de cette liste parce que tout est maintenant fortement tapé. Donc, si quelque chose change à l'intérieur de la classe de domaine, alors le code va définitivement casser. Et c'est mieux quand le tribunal rompt pendant le temps de débogage et de compilation que quand il se casse quand il est en production, n'est-ce pas ? Donc nous pouvons continuer à répéter que les pieds en bas pour chaque autre déclaration inclure et nous allons juste les faire ensemble. Donc, c'est juste le type de laisser, je suis juste de copier et de coller le haut. Mais bien sûr, je n'ai pas besoin de demander un employé. Et en voici un exemple. Il s'agit du tableau des allocations de congés. D' accord. Il n'a pas de propriété de navigation de l'employé demandeur. Donc, un ordre utilisant la liste de chaîne, il n'y aura aucun moyen de comprendre que nous essayons d' inclure quelque chose qui n'est pas dans la table de classe actuelle se produisent. Et puis nous obtiendrions effectivement une erreur de Entity Framework Core en voyant qu'il ne peut pas trouver cette propriété de navigation. C' est donc un bon moyen de voir les flèches pendant notre frappe plutôt que lorsque quelqu'un utilise l'application. Donc, nous pouvons aller de l'avant et supprimer cela, obtenir une ligne sans erreur, puis répéter ce processus. N'entendez pas. Donc, cette fois, j'inclue l'employé qui demande oui. Le type de feuille, oui. Et puis notre troisième. Donc, je dis juste point inclure une fois de plus. Et puis dans cette expression lambda où y compris l'approuvé par, approuvé par moi, assurez-vous, d'accord. Et vous voyez encore une fois que vous obtenez des erreurs quand il ne peut pas comprendre ce que vous essayez de faire, n'est-ce pas. cause approuvée n'est pas quelque chose qui peut être inclus, cependant, approuvé par le NB. D' accord. Donc nous pouvons nettoyer notre code, débarrasser de certaines odeurs, et obtenir un nettoyant plus robuste, plus froid, pas vrai. C' était donc le contrôleur des demandes de congé. Je vais juste courir à travers celle-là et te montrer. Donc, ce que j'ai fait était juste de copier et de coller des lignes de l'autre contrôleur dans le contrôle d'allocation de congé. Et puis nous allons juste corriger ces erreurs ensemble parce que maintenant nous pouvons être pleinement conscients de toutes les flèches. Donc, d'abord ou incluez l'instruction using manquante. Deuxièmement, débarrassez-vous des déclarations d'inclusion que nous n'avons pas besoin de croire en celui-ci, c'était seulement le type de congé. Donc, je suis juste en train d'enlever tout ce qui n'est pas nécessaire. Et puis dans la modification, il voit inclure l'employé demandeur. Ce que je sais, je n'ai pas besoin de l'approbation par quatre celui-là. Mais demander un employé, je crois que c'était juste un employé. Donc, au cas par point, encore une fois, il va toujours regarder ce que vous essayez de faire référence ? Est-ce que cette référence est vraiment là ? D' accord, je crois qu'on en a une de plus ici qui est juste une accolade manquante, 0, avoir une graisse supplémentaire. D' accord, donc ce sont deux contrôleurs qui ne sont pas sur le dernier, eh bien, celui-ci n'avait aucune dépendance sur aucune inclusion. Alors laissez-moi aller de l'avant et construire le projet juste pour m'assurer qu' il n'y a pas d'autres erreurs de débogage nulle part dans le code. Et il a été construit avec succès. Et je peux vous assurer que jusqu'à maintenant, tout ce que vous avez fait continuera de fonctionner. Et encore une fois, l'importance de ce refacteur est qu'il réduira la probabilité de vous introduire des erreurs comme T humain dans cette application. 61. Examen des fonctionnalités de sécurité intégrées dans la sécurité: Hé les gars, Dans cette leçon, nous voulons passer en revue certaines des fonctionnalités de sécurité intégrées qui est V.net Core lui a offert. Aujourd'hui, la construction d'un site Web sécurisé est de la plus haute importance. Il y a beaucoup de façons que la personne ne peut pas tacos. Et tandis que certains d'entre eux sont plus basés sur le réseau, comme peut-être des attaques par déni de service. Certains d'entre eux sont en fait sous le contrôle du développeur. Ils ont en fait la responsabilité de s'assurer que ces protections sont en place tombent carrément dans nos laboratoires. Comme le savent les développeurs d'applications, Microsoft connaît bien sûr l'importance de la sécurité. Et vous verrez qu'ils ont déjà un peu cuit dans certaines choses comme si nous examinons nos trucs de gestion des utilisateurs, Lucy, que les mots de passe sont hachés, le même mot de passe ne sera jamais de la même façon deux fois. Et beaucoup de considérations sont allées dans ce genre de choses. Il est facile pour nous de mettre comme autorisé à restreindre l'accès à certaines parties de notre application en fonction du rôle ou simplement avoir besoin que quelqu'un soit connecté, certaines choses sont déjà intégrées. Je voulais donc m'éloigner de cela parce que nous avons déjà exploré la sécurité et le contrôle d'accès, mais ajoute ensuite un niveau d'application. Quels sont les mécanismes qu'ils nous ont déjà donnés ? Donc, une attaque très populaire est la falsification de référence inter-site, CSRF pour l'abrégé. Maintenant, ce type d'attaque permet à un attaquant d'inciter un utilisateur victime à effectuer des actions qu'il n'avait pas l'intention de faire. Si longue histoire, quelqu'un peut probablement écrire comme une forme de JavaScript pour automatiser une option. Et tu seras notre utilisateur habituel, tu crois que tu fais quelque chose. Mais parce que leur script est en cours d'exécution en arrière-plan, ils peuvent manipuler les données sur le site Web que vous visitez. Donc, en tant que propriétaire du site, n'est-ce pas ? Donc, c'était vous en tant qu'utilisateur, votre oreille, vous ne savez pas quoi alors en tant que développeur du site Web, le propriétaire du site, voulez-vous vous assurer que l'attaquant ne sera pas en mesure de manipuler la session d'un utilisateur sur sur toutes les attaques malveillantes. Donc, une façon spéciale de faire ce R1 Lupo que les gens voudraient généralement exploiter serait tout ce qui accepte des données comme Up post. D' accord ? Eh bien, quand vous faites une modification et que vous cliquez sur Soumettre comme nous l'avons traversé avant, vous savez qu'il fait post et puis il vient ici. Mais alors remarquez que tous ces contrôleurs, une fois que nous avons généré ces codes de contrôleur et ces options, juste, ils avaient tous ce drapeau au-dessus de la méthode post, valident le jeton anti-falsification. Donc, ce qui se passe est que chaque ferme que dotnet core génère le automatiquement mis dans, dans la balise de formulaire un anti-falsification Tolkien pour voir qui s'assure que toutes les demandes venant à ce point de terminaison. A la, a un Tolkien valide. D' accord, donc le Tolkien est cuit dans le formulaire vertu de vous générant ce formulaire d'édition. Une fois que vous avez fait cette ferme Tang, elle est automatiquement là. Tu ne le vois pas. Tu n'as même pas besoin de mettre le haut là. Tu n'as rien à faire d'autre. On n'avait rien à faire d'autre. Mais il veut que l'utilisateur clique sur Soumettre. Token va être soumis avec la demande. Et puis cette annotation voit, assurez-vous que ce jeton est valide. Donc, si des requêtes proviennent d'un endroit où le Tolkien n'était pas un système généré et valide, alors il rejettera cette demande. S' il n'y a pas de Tolkien, vous rejetterez cette demande. C' est comme un niveau de protection automatique qui nous est donné. Quand on a mis en place nos types de feuilles, je crois. Et j'aurais fait allusion à la mise en place de la suppression. Rappelez-vous que nous avons le niveau de devoir comme get et la suppression comme la publication. Mais alors nous modifions l'interface utilisateur pour contourner la nécessité d'aller au poste et juste traiter le git sait que dissolvable dans notre capacité. Donc j'ai dit qu'ils étaient des moyens plus sûrs de faire face à ça. Et je m'en occupe juste à ce stade, n'est-ce pas ? C' est une vulnérabilité de sécurité parce que quelqu'un pourrait automatiser nos demandes avec n'importe quel ID, cette option de suppression, et supprimer les données, mais alors nous en avons une plus sûre. C' est pourquoi ils nous ont donné deux étapes pour commencer parce que je voulais m'assurer que la suppression que vous avez confirmée sur qu'elle provenait d'une source valide. Nous aborderons donc cette vulnérabilité de sécurité dans cette section. Un autre type de protection intégrée que je tiens à souligner est celui qui nous est offert par Entity Framework Core. Donc, à cause de la façon dont Entity Framework Core construit ses instructions, injection sql devient très difficile pour un attaquant à effectuer. Donc, l'injection SQL est un type d'attaque où ils rempliraient un formulaire et dans la zone de texte ils mettraient dans une forme quelconque de conditions telles que si vous ne formez pas votre requête SQL, nous utilisons les meilleures pratiques, aussi connu sous le nom d'instructions préparées, ou simplement en utilisant un modèle relationnel d'objet ORM, notre mappeur, désolé, juste l'Entity Framework sont dans d'autres langues. Vous savez, chaque langue a sa propre. Donc Entity Framework est natif à dotnet. Si vous n'utilisez pas l'un de ces sont une fois de plus en utilisant des instructions préparées, alors vous courez le risque d'exposer l'outil, un attaquant vient de les acheter, en mettant une commande SQL à l'intérieur de votre formulaire. Donc, en utilisant notre Entity Framework, la couche Access, base de données, accès, c'est comme un niveau de protection instantané, un niveau de protection très, très capable contre les attaquants réguliers quand ils ont essayé d'utiliser SQL injection. Et il y a des moments où les gens veulent peut-être écrire leurs propres instructions SQL. On n'a pas vraiment écrit le nôtre. Nous nous sommes entièrement appuyés sur EF Core, notre syntaxe de liaison. Eh bien, il y a des moments où les gens peuvent utiliser EF Core ou d'autres bibliothèques qui dapper et finissent par écrire leurs propres instructions SQL. Et il n'y a rien de mal à cela, mais ils vous donnent tous le mécanisme pour préparer les instructions avant de les envoyer à la base de données. Et les instructions préparées signifient que vous créez des paramètres similaires , puis vous branchez les valeurs dans paramètres plutôt que de simplement concaténer l'inflammation fournie par l'utilisateur. Donc, la chaîne SQL. C' est donc un niveau d'incident, niveau de protection à nouveau contre l'injection SQL. Non. Nous allons continuer et la prochaine chose que nous allons faire est de modifier tout notre processus de suppression, non ? Donc, comme je l'ai dit, c'est une lacune de sécurité dans notre application. Vous verrez beaucoup d'exemples le faire comme je l'ai fait. Je veux dire, assez simple pour commencer. Mais à ce stade, nous ne commençons plus. Nous avons une application à part entière et nous voulons la publier sur Internet, donc nous devons nous assurer qu'elle est hermétique. Donc, nous allons passer à travers et corriger certaines de ces lacunes au fur et à mesure qu'elles se présentent. 62. Méthode de suppression sécurisée: Hé les gars, bienvenue. Donc, ce que nous allons faire dans cette leçon, c'est sécuriser notre bouton de suppression. Et ça va être si simple qu'ils vont probablement dire pourquoi on ne l'a pas fait de cette façon dès la première fois ? Et oui, j'accepte ce livre de commentaires où ici non, et c'est juste traiter avec elle. Donc, ce que nous devons faire, c'est, et il y a plusieurs façons. Donc, une façon de voir les gens le faire est la confirmation. Et ils n'utilisent probablement pas seulement le JavaScript ici. Parfois, ils ne se contentent pas de l'utiliser. Ce qu'ils font parfois est le mettre comme des bibliothèques tierces comme une alerte douce et des trucs pour gérer cette boîte de dialogue qui apparaît. On peut le faire. Pas de problème, mais je vais rester simple, assez simple pour être efficace. Parce que ce que nous voulons vraiment est au lieu d' une balise d'ancrage qui va simplement passer cette route avec l'ID d'élément et juste appeler la méthode de suppression ici, je voulais soumettre requête standard avec une valeur valide et T4a Tolkien à la méthode delete ici. Donc, il sait exactement ce qu'il doit enlever. Et c'est en fait un As simple, et je vais juste créer une autre ligne juste au-dessus. Nous pouvons envelopper un bouton à l'intérieur d'un formulaire. Très bien, donc cette forme dans laquelle je suis entré, LET est l'action du tableau de bord B. Votre action est la suppression. Et puis je dirai que vous êtes la règle de l'IDS. C' est toujours cela, mais alors votre méthode est post. Donc, ce qui va se passer, c'est qu'une fois ce formulaire soumis, on appelle ça post action, non ? Donc, au lieu d'avoir cette balise d'ancrage et je vais juste réutiliser cela, mais au lieu d'utiliser une balise d'ancrage, je vais utiliser un bouton et le type de bouton, nous allons taper soumettre, notre type est égal à soumettre. Donc, nous savons que cela représente vraiment un bouton de soumission où il garde toujours nos classes Bootstrap et icônes sur tout. Mais c'est un bouton de soumission qui avertira, confirmera si vous voulez vraiment le faire, puis allez-y et appelez les actions. Donc, je vais supprimer cet ID de route. Je ne veux pas dire ça à l'intérieur du bouton lui-même. D' accord, alors prenons celui-là pour nos étudiants. Donc, ce sont des types de congé. Essayons ça. D' accord, alors essayons ça. Et vous voyez ici que ça provoque notre conception et dire, c'est secondaire, je sais, mais je veux vous montrer exactement ce qui se passe dans le code. Donc, je vais aller à Inspecter Element et vous montrer ça quand on regarde ce qui est là pour ce bouton. Donc c'est un formulaire R. D' accord ? Et puis c'est notre bouton. Bien sûr. Mais regarde ça. Nous avons une entrée automatique. Donc, remarquez tout ce que nous avons fait était de créer le forum sur le batelier. Ils sont achetés, il a généré cette entrée avec le nom. Je pense que c'est à peu près deux traits de soulignement. Demander un jeton de vérification, le type est égal à masqué, et la valeur est égale à ce blob hors flux que Hush. Bon, donc c'est notre jeton anti-falsification. Donc, cette annotation ci-dessus, et je viens de mettre un point d'arrêt ici pour m'assurer que nous le frappons bien, cette annotation au-dessus de la méthode dit, je n'autoriserai notre quête qu'une fois qu'il aura un jeton anti-falsification que je reconnais. D' accord. De cette façon, personne ne peut détourner nos côtés. Je suis juste envoyer notre demande parce qu'ils peuvent facilement comprendre le chemin et juste envoyer notre barre oblique de demande, supprimer la barre oblique un et le premier enregistrement, qui est ce que nous voulons éviter, non ? Donc, quand je clique sur Supprimer, nous obtenons toujours la confirmation. Si je dis annuler, rien ne se passe. Si je le refais, je clique sur OK, puis il atteint nos points d'arrêt. On s'en remet toujours du gamin idéal. Il n'y a pas d'identité. D' accord. Et je suis désolé, je sais exactement pourquoi il n'y a pas d'identité. Allons-y et corrigeons ça. Laisse-moi juste arrêter l'exécution et ensuite on peut aller et courant dans le bouton. Je n'ai pas pris ça, donc DSPS. Donc, ce qui se passe, c'est qu'il a sa propre vente aux enchères agricoles et qu'il est en concurrence avec l'action qui aurait été générée avec cela. Alors supprimons cela et réessayez. Donc, je vais juste supprimer, cliquez. Ok, on atteint le point d'oiseau et on voit que l'identité arrive maintenant. Je vais juste continuer. Et on y va. C' est donc un moyen beaucoup plus sûr de supprimer. Donc, pas beaucoup changé visiblement une fois de plus, vous pourriez l'épineter un peu en utilisant une de ces bibliothèques tierces pour inviter l'utilisateur. Vous êtes sûr ? Êtes-vous sûr fonctionne très bien. Mais alors la mécanique derrière la façon dont cette requête va réellement au serveur n'est pas beaucoup plus à l'épreuve des balles qu'avant cette leçon, cette leçon. Donc, tout ce que vous pouvez faire est de parcourir les autres listes et de vous assurer qu'ils font la même chose. Et je recommande également que vous soit commenter vieux sont juste supprimer cette méthode de suppression parce que nous ne allons pas l'utiliser. Nous voulons juste compter sur la méthode post avec le et T4a Tolkien. Et puis cela prendra soin de tout. Et je le modifie également pour ne pas, pas pour une coche n'importe quel paramètre en dehors de l'ID. Donc, pour l'appeler ce modèle qui était référencé dans les paramètres et juste soulever ce try-catch et je viens de mettre un retour au thème de l'index à la fin de cette opération. Donc, cela a moins à voir avec la sécurité et plus avec juste moi la modification. Donc je pense que mon code a l'air un peu plus propre. Une autre chose que j'ai fait pour nettoyer mon affichage de boutons était deux dans ce téléviseur que nous avons réservé pour les boutons, créer un div avec une règle. Très bien, et dans ce rôle, et juste courir comme un détournement droit. Là, on y va. Donc, dans ce rôle, j'ai un bouton div PRB et je vous donne juste un tiret col quelle que soit la taille. Donc ça pourrait être deux. Il pourrait probablement être un basé sur la taille de nos boutons afin que tout soit en ligne. Donc, le div, div avec une classe appelée tiret T2 pour le, c'est l'édition. Ensuite, nous avons les détails et ensuite la même chose pour le formulaire. Et nous sommes juste pour que vous puissiez voir clairement. Et donc nos boutons seront affichés en une seule ligne afin que vous puissiez aller avant et que juste diriger votre interface comme ça. Maintenant, c'est tout pour trois ou pas examiner ces opérations de suppression afin que vous puissiez aller de l'avant et implémenter ces mesures dans vos autres pages. 63. Envoyer des emails utilisant MailKit et SMTP: Hé les gars, bienvenue. Dans cette leçon, nous allons jeter un oeil à un autre problème de sécurité, c'est-à-dire à l'inscription. Donc, la réalité est que oui, vous pouvez mettre en place un système comme celui-ci pour un usage interne au sein de votre entreprise et bien, ok, seuls les employés de l'entreprise seraient censés y accéder. Cependant, indépendamment de cela, vous voulez toujours probablement mettre dans ce poulet équilibré, assurez-vous que la personne qui s'inscrit confirme qui ils sont à tout le moins. L' ajout de cette fonctionnalité de confirmation par e-mail à n'importe quelle application est donc très important. Et bien sûr, même si je présente la fonctionnalité e-mail dans le contexte de la sécurité, nous pouvons également utiliser cette fonctionnalité e-mail dans d'autres parties comme lorsque le soumissionnaire laisse des demandes, nous pouvons déclencher un e-mail automatique pour eux, des trucs comme ça. Mais pour l'instant, nous allons nous concentrer sur la mise à niveau ou un processus de distribution pour nous assurer qu' un courriel est envoyé au déclarant et qu'il confirme et qu'il peut ensuite accéder au système. Donc, laissez-nous juste examiner à quoi ressemble notre action sur post ou à quel autre gestionnaire. Et nous avons fait quelques changements parce que nous modifions l'utilisateur. Et puis nous sommes allés de l'avant et les avons créés en même temps. Et puis nous sommes allés de l'avant et avons ajouté la règle et les envoyer tous en même temps. n'y a donc rien ici pour confirmer qui vous êtes une fois que vous vous inscrivez. Donc, je voulais une sorte de changement de ce flux aura encore besoin de faire tout cet objet Création était encore nécessaire de procéder si les enregistrements ou succès. Mais nous avions déjà un expéditeur de courrier électronique qui était en quelque sorte intégré. Et j'envoie un e-mail à l'expéditeur dans le code d'origine faisait du travail ici après avoir enregistré qu'un utilisateur n'a pas été créé. Alors laissez-nous, réintroduisons une partie de ce code et ensuite nous allons aller de l'avant et configurer que j'envoie un e-mail à l'expéditeur de classe 2 ce que nous avons besoin de faire. Donc, pour réintroduire ce qui s'est passé ici, nous aurions eu un code généré, non ? Nous avons donc eu ces deux lignes de code. Le code Var est égal à notre IT User Manager. Les points génèrent un jeton de confirmation d'e-mail, asynchrone, et nous passons de cet utilisateur. Donc, certains Tolkien vont être générés par rapport à cet utilisateur. Et puis nous allons encoder ce Tolkien. Et nous stockons ce Tolkien comme une chaîne à l'intérieur de cette variable appelée code. Maintenant, ce code va avoir une touche à la page. Plutôt solaire va avoir une confirmation Pete. Donc, quand on s'est battu dessus, on avait une page appelée Confirmer l'e-mail. Ici, c'est. Droit. Donc, quand ils reçoivent l'e-mail pour confirmer qui ils sont, ils doivent cliquer sur ce lien et il doit charger cette page sur get, il va obtenir ce code. On y va. Donc et encore une fois, c'était tout ce qui était là avant et je l'ai retiré. Vous l'avez probablement commenté. Donc, si vous avez commenté, c'est OT peut le décommenter à ce stade. Mais ce que nous allons avoir est une URL de rappel égale URL point page. La page que nous allons leur dire d'aller est une barre oblique Confirmer l'e-mail. Droit. Donc c'était celui que nous venons de regarder. Et nous passons dans les valeurs nouvelle identité de zone, ID utilisateur est l'ID donné à cet utilisateur et le code est le code qui vient d'être généré. Et puis l'URL de retour est quelle que soit l'URL de retour que nous transmettons à partir d'ici. Il peut être ou non là, c'est marrant. Mais le fait est que c'est l'URL. Allons dans la création. Donc, la prochaine chose que nous devons faire est de confirmer ou de leur permettre confirmer l'e-mail ou leur adresse e-mail en leur envoyant un e-mail, pas vrai. Donc, la ligne suivante serait éveillée et alerte à et à travers ce que la programmation asynchrone introduit. Donc attend, score email expéditeur point envoyer email est évier. Nous envoyons un e-mail à n'importe quelle adresse e-mail a été utilisée avec le sujet, confirmez votre email. Donc, si vous passez simplement le curseur, vous voyez l'e-mail, le sujet et le message. Donc message HTML, ce qui signifie que nous pouvons mettre dans nos balises. Donc s'il vous plaît confirmer votre compte par, puis nous avons la balise d'ancrage avec le href, puis nous les émettons encodé cette URL de rappel que nous venons de construire. Très bien, et en cliquant ici, vous pouvez modifier ce message comme vous le souhaitez. Mais c'est au minimum ce que nous savons. Le code original éclate également si, si les instructions, et il avait effectivement ces deux lignes dans une instruction if pour voir si nous commençons juste, puis les envoyer à la page où ils peuvent simplement cliquer sur, aller de l'avant et confirmer autre, les envoyer à la connexion. Donc, nulle part réellement mis en œuvre dans l'e-mail. Nous n'avons pas besoin de l'ajustement le fail-safe qui nous a été donné arginine est donc ce à quoi votre registre sur la poste doit ressembler. Donc je vais juste laisser ça à l'écran un peu pour que vous puissiez l'enlever si vous n'avez pas déjà l'accord original. D' accord, mais non, nous devons réellement configurer l'expéditeur d'e-mail parce que si cela frappe, alors rien ne se passera, aucun e-mail ne sera envoyé ou quoi que ce soit. Donc, nous devons configurer ou envoyer des séances par e-mail soul dans notre AP settings.js sur le fichier, nous allons avoir ce nouveau poêle pour la configuration. Donc, je l'appelle Email Settings. Et nous allons dire oui, utilisez SSL, le serveur de messagerie. Donc j'ai déjà mis des exemples de trucs basés sur Gmail. Mais la réalité est que dans votre propre entreprise, vous pouvez avoir des paramètres SMTP différents. Donc je vous donne juste une idée de ce qui se passe que nous avons raison par rapport à votre situation. Vous mettez les valeurs, vous mettez le nom de l'expéditeur. Donc n'importe quel email deux-points du système. Et puis tu pourrais mettre le nom de la société à la fin pour que les gens sachent que ce n'est pas une usurpation. L' e-mail de l'expéditeur serait de quel e-mail ai-je envoyé cet e-mail ? Donc, cela pourrait facilement être administrateur à la gestion des congés ne sont pas de réponse, quelque chose comme ça. Gestion des congés et le mot de passe qui sera nécessaire pour accéder au compte associé à cela, n'est-ce pas ? Une fois de plus, tous ces deux doivent être configurés dans ce serveur de messagerie pour que l'utilitaire se connecte réellement et puisse exécuter l'envoi de l'e-mail. Maintenant, en dehors de ça, je vais introduire un nouveau dossier. Et j'appelle simplement les services informatiques, c'est ça. Parce que je mets juste ce service de courrier électronique Cinder, désolé, j'ajoute juste un nouveau dossier et je cite des services informatiques. Et puis au lieu de services, je vais avoir un nouveau fichier de classe que je vais appeler les paramètres de messagerie. Maintenant, cette classe ressemble plus à une classe de modèle et elle va avoir champs identiques correspondant au fichier JSON de paramètres app.js. Donc, je vais juste aller dans vraiment servir le but de est vu à partir des paramètres de l'application dans un objet de ce type, et ensuite nous pouvons les utiliser en conséquence. Maintenant, le fichier le plus important serait une interface que je vais créer. Et je vais l'appeler J'envoie des e-mails aux expéditeurs. Donc c'est un, eh bien, je vais juste mettre tout dans une classe pour nous. Donc, je l'appelle J'envoie un e-mail à l'expéditeur. Et celui-ci est vraiment une interface. Mais on va avoir un cours public. Donc si vous voulez les séparer, c'est bon, mais je vais juste les garder ensemble juste à des fins éducatives. Donc, j'envoie un e-mail à l'expéditeur et cette classe hérite de notre interface. Donc, nos interfaces vont avoir une fonction simple qui va réellement refléter la fonction que nous avons vu ici. Donc, l'expéditeur de courrier électronique qui dit rétrosuivi, même l'expéditeur ici fait référence à l'expéditeur de courrier électronique qui est B faute. D' accord, ça vient avec le système, mais nous allons juste le remplacer par nos propres fonctionnalités. Mais il a cette fonction, Envoyer un email, un évier. Donc, je suis juste de remplacer que l'envoi d'e-mail est couler. Très bien, et donc nous allons de l'avant et implémentons cette interface ici. Nous avons donc cette méthode disponible à travers cela. Donc, je vais d'abord dans cette classe déclarer un objet de type Email Settings. Et puis je vais avoir un constructeur qui va initialiser cela à partir du fichier d'options, non ? Donc, je vais juste voir les options IA, les paramètres e-mail, et puis, et c'est mon petit objet. Je vais aller de l'avant et inclure cette extension. Et puis je m'initialise. Donc, c'est presque comme si j'injecte dans cet objet de paramètres de messagerie locale à partir des options Fichier. Et Options ici me représente. Voir, la réalisation de cette section des paramètres de l'application JSON dans la correspondance se sent comme nous avons discuté l'après-midi de l'âme. Et ça devrait être un volume de points, désolé. Bon, maintenant que nous avons notre objet local appelé bouleverser quelqu'un pour commencer à configurer ce qui se passe à l'intérieur des e-mails d'envoi. Donc, je vais faire une pause à ce stade et je vais inclure une bibliothèque. J' aurais probablement dû commencer avec ça. Ce qu'on doit aller avec deux nouveaux Git et une bibliothèque appelée kit de repas. Il y a donc pas mal de bibliothèques que vous pouvez utiliser et des services tiers. Mais Mailchimp se glisse juste. Et donc celui que je me sens à l'aise en utilisant, donc kit de courrier. Et quand nous le trouverons, nous pouvons aller de l'avant et l'installer. Alors trouve-le et sache que nous avons cette mise en place. Nous pouvons revenir à notre configuration. Donc, la première chose que je voulais faire est de définir un objet de type mime message. Et puis cela me demandera d'inclure les bibliothèques savent que j'utilise mon kit. D' accord, donc nous pouvons juste aller de l'avant et ajouter ce manque ou différence et que mon enfant est courtoisie de notre kit de repas sont et que nous continuons, nous allons voir mon message. Donc, nous ne faisons que construire le message. Maintenant mon je suis signifie juste différents types de données. Tu ne sais pas quel genre de messages. Donc nous utilisons juste un type de message générique pour construire cet e-mail, n'est-ce pas ? Nous ne savons pas s'il y a des photos ou quelque chose comme ça. C' est pourquoi nous utilisons cet objet de message. Donc, je vais dire un message mime de DOT. Donc mon message point de DOT. Et dans cette méthode, nous allons ajouter notre adresse de boîte aux lettres provenant des paramètres e-mail nom de l'expéditeur et paramètres e-mail, e-mail de l'expéditeur. Nous ajoutons donc l'adresse de boîte aux lettres en fonction de ces deux valeurs. Et puis de la même manière, nous devons voir où va cet e-mail. Donc, je vais dire mon point de message à point, ajouter l'analyse de point d'adresse de boîte aux lettres, e-mail. Et l'e-mail est ce qui aurait été fourni dans notre méthode SendMessage. La prochaine chose que je veux faire est de m'assurer que j'ai mentionné le sujet. Donc mon sujet de point de message est égal au sujet qui a été transmis. Et puis je vais démarrer une session de constructeur ou un objet de constructeur. Donc, je vais dire les constructeurs var égaux à nouveau bodybuilder. Et je vois HTML. Le corps Html est égal au message HTML qui est entré par notre méthode. Et si agréable et facile et simple jusqu'à présent, je vais voir mon corps de point de message est égal au corps du message Builder Tool. Donc, c'est juste que ce sont une conversion rapide. Sachez pour après que nous avons préparé notre message, nous avons réellement besoin d'exécuter sont envoyer. Très bien, donc je vais essayer et je vais commencer une nouvelle session de type client SMTP. Et je vais mettre l'utilisation ici parce que je voulais mourir, non ? C' est fini, alors il suffit de l'avoir là. Mais en incluant la bibliothèque pour le client SMTP, nous utilisons Mailchimp pas système.Dans un repas, non ? Kit repas Alors faites attention à cette partie. Donc Mailchimp dotnet, le SMTP, c'est notre bibliothèque. Et puis nous allons valider le certificat d'appel Buck. Donc, nous avons cette ligne, client.write certificat serveur validation appel buck égal. Et nous mettons dans ces valeurs d'objet et dans notre Lambda est vrai. Donc nous disons juste oui, c'est un certificat valide. D' accord. Ensuite, nous allons nous connecter à notre serveur SMTP. Donc nous allons dire, je vais attendre, client.connect est évier. Et puis nous passons dans nos réglages et je comprends ça, ok, et laissez-moi juste gérer ce que cette ligne voit. Donc client.connect, async, paramètres de lot e-mail, service de repas. Si vous regardez juste ce qu'il nécessite, cela nécessite les trous, le port. Est-ce que nous utilisons SSL, c'est ça. Donc serveur de messagerie, port de messagerie et oui, ou en utilisant SSL, nous obtenons ce o et nous disons dot configure comment il tombe, non ? Mais cette ligne rouge est là parce qu'on a dit qu'on n'avait pas vu de scène. Bon, alors je passe à autre chose. Après avoir fait cela, alors si l'authentification est requise pour SMTP, ce qui est probablement tout SMTP sécurisé ce sera probablement, nous allons dire que le client n'authentifie pas un puits et ils passaient dans l'e-mail et le mot de passe. C' est ce que j'ai dit. Ceux-ci doivent être configurés sous-reconnus et le serveur SMTP, Je vais associer pas configurer nos chutes de blé. Et puis nous allons voir le client envoyer une synchronisation. Je suis à peu près tous ces que nous voyons juste configurer, un poids tombe à la fin. Donc, nous allons dire envoyer un message de synchronisation. Donc c'est un message que nous avions construit, envoyer, configurer notre chemin, il tombe. D' accord. Et puis nous allons de l'avant et nous déconnectons asynchrone et configurons une façon qu'il tombe une fois de plus, donc c'est à peu près tout. Et puis si nous frappons une exception, ce que nous voulons faire est probablement juste de lancer une nouvelle exception d'opération non valide, pos message unique. Bon, pour que tout le monde sache ce qui s'est passé. Bien sûr, dans une vraie séance sera probablement pas le faire, mais à des fins de test, nous pouvons laisser cela. Bon, donc notre prochain ordre est d'enregistrer notre expéditeur de courrier électronique. Donc, nous savons déjà que lorsque nous créons nos propres services, nous devons aller dans notre startup. Et puis dans notre section des services de configuration, je vais ajouter un peu je vais juste découper une section quelque part ici. Je vais le mettre juste au-dessus de la cartographie. Et je vais juste mettre un petit commentaire, dit voir exactement ce qui se passe. Donc services.com figure et nous ajoutons des paramètres de messagerie. Et c'est notre module 4, 4 jusqu'à settings.js IN très bien. Configurez donc les paramètres de messagerie. Et je vais dire que la configuration obtient la section Paramètres e-mail, n'est-ce pas ? C' est ce que je vais appeler les options d'IA. Il saura juste que c'est une section sur elle devrait sérialiser dans cela et utiliser n'importe où ailleurs. Ensuite, nous allons également ajouter singleton pour l'expéditeur d'e-mail et l'expéditeur d'e-mail. Donc, une instance de cela va pervious jeter l'application entière sur à peu près savoir, serait bien pour cela pour un tour, mais comme je l'ai dit, ce n'étaient vraiment que des valeurs de démonstration. Vous obtiendrez vos paramètres SMTP et vous pouvez les utiliser. Vous pouvez essayer différents fournisseurs comme envoyer la grille ou le jet mâle. Ils ont tous des serveurs SMTP qu'ils lui permettront d'utiliser pour des coûts relativement gratuits ou très bas. Et encore une fois, si vous êtes dans votre entreprise, vous devriez être en mesure d'accéder au serveur SMTP et de mettre ces informations d'identification au besoin. Soyez très prudent avec ces informations d'identification. Et vous pouvez aller de l'avant et le tester jusqu'à ce que ce soit pour vous inscrire. Mais encore une fois, cet expéditeur peut être utilisé n'importe où. Donc, une autre utilisation pratique, moins axée sur la sécurité de celui-ci, ils en mettront un usage pratique serait peut-être dans le contrôleur des demandes de congé. Parce que lorsque quelqu'un soumet une demande de congé, il sera bon qu'une fois qu'il a été créé et mis dans le système avec succès, vous envoyez un e-mail comme rouge ici. Envoyer un e-mail, un outil, un superviseur sont ceux que nous connaissons obtenir ces e-mails correctement. Lors de l'annulation. Vous pouvez envoyer un e-mail à la fois à l'utilisateur, sorte que vous pouvez envoyer l'utilisateur au superviseur et à l'utilisateur demandeur, n'est-ce pas ? Lorsqu' il est annulé, vous envoyez un e-mail une fois qu'il a réussi et envoyez l' utilisateur de l'outil de messagerie électronique qui le demande à nouveau. Donc ces schon, le fait est que de la même façon que nous avons injecté tous les autres services, comme nos unités de travail, nous pouvons facilement venir ici. Et maintenant ce sont ceux dupliquer l'une de ces lignes et dire que je e-mail expéditeur, expéditeur e-mail, initialiser. Et une fois que nous avons cela, nous pouvons utiliser cet expéditeur n'importe où afin que je puisse voir lors de la création de nos demandes ou mettez-vous les commentaires ? On y va. Je pourrais dire expéditeur d'e-mail. Envoyer un e-mail est synchronisé. Et donc l'e-mail ceci pourrait être les e-mails des superviseurs. Donc je vais juste mettre un e-mail. Je pense que nous utilisons admin ajoute host.com local en tant qu'utilisateur admin. C' est très bien. Le sujet pourrait être une demande de congé. D' accord. Et puis nouvellement demander, une fois de plus, être un fils votre, votre situation, vous prenez ces décisions, non ? Et puis vous assemblez votre message HTML afin que vous puissiez contexte à d'autres bâtiments. Donc il y a tellement de choses que tu pourrais faire, non ? Je ne veux pas forcément mettre trop d'idées dans votre tête, mais je veux juste vous donner le concept et j'espère que vous pouvez prendre ce concept et l'appliquer dans votre propre contexte. Bon, pour que tu puisses faire ce mail ici. Encore une fois, vous pouvez le faire lors de l'annulation. Vous avez tellement d'applications, mais non, vous savez comment configurer votre application et configurer pour envoyer des e-mails où et quand vous en avez besoin. 64. Vue de la section Publier l'ensemble de section: Hé, les gars. Donc nous avons eu tout le voyage sur lequel nous avons construit à partir de la base pour créer la cour. Tout d'abord de la base de données, nous avons exploré tous les écrous et boulons. Mettez-le ensemble et nous avons un beau travail faible et connectez-vous IQ et créer un utilisateur demander congé sur tout semble bien. Non, tout est sur la machine sur la dernière étape. Vraiment ? Pour toute application qui a été développée est de le mettre en production et de le mettre d'une manière que c' est il est accessible orteil d'autres personnes. Donc, comme je l'ai dit, ouvert à savoir qu'on a été dans le studio de Cordon Results et qu'on l'a dirigé chez les gens plus. C' est seulement sur notre machine, les bases de données sur la machine sur. Sauf si nous laissons notre machine allumée pour toujours, personne d'autre ne pourra y avoir accès. Non, pour ce matin, on va regarder à la maison. Vous pouvez publier cette application dans des espaces publics pour d'autres personnes. Maintenant, nous allons juste rester cette fois pour examiner quelques options en cours, juste en vous donnant un aperçu des différentes techniques de publication que nous allons suivre . Donc, le 1er 1 que nous allons regarder est de publier sur un serveur local quand je dis serveur local ne doit pas nécessairement signifier que c'est sur site parce que non, vous savez, vous savez, mouvements de tout le monde des serveurs de code ne sont pas nécessairement dans le même espace de bureau. Donc, quand je dis serveur local, je veux dire vraiment juste un serveur quelque part sur ce dont nous aurions besoin sur ce serveur est, ah, logiciel spécial appelé Internet Information Services, ou II S. Donc c'est logiciel de serveur Web phare sur DSO. Si elle va héberger ou de la machine va héberger une application Web comme nôtre, nous devons nous assurer qu'il est équipé avec II s Andi. Il est prêt orteil, recevoir cela. Donc, nous allons examiner la publication en utilisant IIS ou sur un serveur qui a iis sur. Alors ce serait plus pour un intranet assis à droite. Donc, vous savez, les gens seraient capables de torréfier qui utilise jamais le nom de la machine sur, alors sont notre propre configuration personnalisée pour notre comte sur. Ensuite, ils seraient en mesure d'accéder à l'application en conséquence pour ce scénario doivent également prendre en considération qu'il doit être prêt à être serveur. Donc, que les abeilles de données se trouvent sur le même serveur ou sur un serveur distant, cela va jouer un rôle énorme dans notre capacité à publier Andi. Utilise le haut après. L' autre scénario que nous allons examiner sa publication sur Microsoft Azure. Donc, si vous publiez toe une machine virtuelle sur Microsoft comme votre, c'est à peu près le même ensemble d'étapes que ce que nous venons de passer avec le I s et un serveur cause que le service que j'ai servi considéré logiciel, c'est juste. Mais alors, comme vous l'êtes, nous donne également des instances gérées appelées comme vos applications Web. Donc nous allons regarder, vous savez, signer pour dans une sphère, et elle peut en obtenir un gratuitement pendant quelques mois. Des problèmes de droits, des services gratuits et quelques crédits sur cela devraient être suffisants pour vous aider à démarrer. J' ai déjà Annacone, donc je ne pourrai peut-être pas le faire passer au Sénat. Quoi ? C' est un processus relativement facile sur, en fait, comment nous pouvons déployer l'application Web toe comme votre et aussi faire tourner une instance gérée sur le serveur de base de données ou les servir depuis qu'il a réussi à le faire. Donc c'est en fait un acte d'être un service offert par Microsoft comme votre donc coller nos propres gars. Dans la vidéo suivante, nous allons commencer à configurer un serveur sur, puis à publier notre application pour définir le serveur et ensuite à récolter les salles de cela. 65. Configurer des services d'information Internet (IIS) sur un serveur d'un serveur: Hé, les gars, bienvenue. J' ai ici à l'écran une machine. J' ai une machine virtuelle et laissez-nous voir qu'elle va jouer le rôle de notre serveur de production que nous allons publier sur l'application de base Net à non, juste si complète divulgation. Cette machine virtuelle est en fait dans l'azur. C' est dans mes cônes de vêtements, mais encore une fois c'est la même dynamique. Peu importe où se trouve le serveur est juste une question de l'obtenir ou équipé ce dont vous avez besoin pour héberger une application dot net core. Donc, la première chose que je vais obtenir est IIS installé. Nous devons donc avoir cette application ou cette application serveur Web appelée II s ou services d'information Internet . Donc, si vous êtes sur un serveur ou même si vous êtes sur une machine standard, vous pouvez le faire sur une machine Windows 10. Il peut aller dire que tu veux un orteil. Je ne supprime pas les fonctionnalités Eh bien, il est en fait activé les fonctionnalités Windows sur notre droite, et puis vous voulez activer les services d'information Internet. Donc, si vous utilisez une machine Windows 10 A. N'avez pas de serveur pour au moins exécuter cette expérience. Si c'est bien, vous pouvez aller de l'avant et regarder dans vos fenêtres. 10. Il suffit de frapper. Commencez à taper les fonctionnalités Windows sur. Ensuite, il devrait vous donner la possibilité d'y arriver. Il s'agit d'une boîte de dialogue qui vous permet d'activer les services d'information Internet. Mais je vais y aller. Vous remarquez qu'il y a des boîtes noires. Donc je vais passer par toute cette installation, non ? Non. Mais je veux que vous soyez le serveur. Mais c'est les mêmes options de mise en marché indépendamment. Très bien, Donc, si vous êtes sur le serveur et que vous avez le gestionnaire de serveur pour vous, vous pouvez aller aux règles et fonctionnalités publicitaires. Cela fera apparaître un assistant, qu'il peut simplement aller de l'avant et cliquer sur suivant. Et je pense juste à ça parce que ça n'a vraiment aucune incidence sur ce terrible à faire, non ? Donc je ne sais pas pour votre configuration, mais là je n'en ai pas besoin pour mai. Donc, à ce stade, vous obtenez l'écran, ajouter surgi et les règles de serveur de fonctionnalités, puis vous verrez serveur Web. J' ai demandé qu'il y voit ce qui peut aller de l'avant et prendre cela et cliquez sur ajouter des fonctionnalités, puis passez à la suivante sur. Ensuite, nous serons conduits au même type d'écoute que vous auriez vu si vous utilisiez Windows 10. Donc, à partir d'ici, leurs caractéristiques de carburant que vous voulez certainement activer. Et si vous avez déjà dot net installé ne sont pas ce framework. Installez quelque chose, peut-être prendre autorité sur vous peut ne pas être en mesure de remorquer. Prends-les. Mais à peu près tout ce que vous voyez ici a collé sur mon écran. plaît assurez-vous que vous les avez également choisi sur le vôtre si vous voulez ajouter, um vous savez point net à partir de l'endroit 3.5 fonctionnalités que vous pouvez sur. Je mentionne juste que parce que je veux dire, si c'est la première fois que vous configurez le serveur que vous avez besoin toe peut être configuré pour différents scénarios parce que toutes les applications peuvent être une application principale dominante . Donc, vous voulez vous assurer que vos yeux sont d'autant plus utilisés pour gérer les dernières applications ainsi que les applications héritées ? Si vous l'avez déjà fait, j'ai demandé alors je suppose que vous n'avez pas à bouger les eaux en faisant n'importe quoi à cette seconde. Allez-y et cliquez sur Suivant sur, vous cliquez à nouveau sur Suivant, puis nous obtenons la perceuse ne pas. Donc, ce serait plus commun entre la boîte Windows 10 autorisée ou toute autre machine Windows . Della boîte pour insulter I s sur les installations du serveur. Ils veulent s'assurer que le serveur Web est coché. Allez. Http. Toutes ces fonctionnalités doivent être cochées. Vous pouvez ajouter plus de journalisation si vous le souhaitez, mais au moins assurez-vous que ce que j'ai coché est également pris de votre côté. Donc, je vais juste passer lentement sans entrer dans les détails sur ce que chacun est. Quatre. Et puis on en descend à celui-là. C' est son développement d'application. Vous voulez prendre le développement d'applications ? Andi, je suis littéralement, je suis toujours folle ici et de tout coller correctement. Mais vous voulez certainement dire sûr que vous ajoutez toutes ces fonctionnalités car une fois de plus, vous voulez que votre configuration des yeux soit aussi inclusive que possible deux versions différentes. D' accord, donc je prends tout ça sauf le protocole Web statique socket. Si le serveur dp, je n'ai pas besoin que pour non, je vais m'assurer que j'ai également coché ma console de gestion . Donc je vais juste passer à travers seulement une fois de plus sur alors vous pouvez juste rencontrer, vérifier et assurez-vous et je veux dire, plus vous cochez est plus vous avez de fonctionnalités. Vraiment ? Donc vous savez, vous pouvez choisir, choisir et refuser une fois de plus si vous avez Asare, le serveur que vous n'utiliseriez pas a déjà des yeux installés. Vous n'avez probablement pas besoin de passer par tout ça à l'époque. Cela s'affiche Souhaitez-vous spécifier ? Tu n'as pas à t'inquiéter pour ça. redémarrages sont simplement redémarrés automatiquement si nécessaire. Évidemment, si c'est votre enquête personnelle sur cet effet de levier sinon, s'il vous plaît financer l'administrateur système soldat pour vous assurer que vous faites cette histoire à un moment où personne n'accède vraiment au serveur. Et puis vous pouvez aller de l'avant et cliquer sur installer afin que l'installation de cul puisse prendre un certain temps. Ou peut-être que tu as déjà fini. qu'il en soit, le mien est toujours en cours. Donc, comprenez, pour continuer avec les autres choses que nous devons faire pour commencer, c'est-à-dire obtenir le bundle d'hébergement. Donc, nous où c'est une page familière pour nous parce que nous devions ne pas connaître le SDK. Initialement au moment où nous avons commencé notre projet. Nous étions à l'endroit où est sur 3.1. Donc, si vous avez bean faire les mises à jour pour savoir, alors vous seriez probablement à la version 3.13 ou peut-être un incrément certainement plus élevé alors vous seriez probablement à la version 3.13 ou peut-être un incrément certainement plus élevéà partir de cela. Quand tu fais cette partie, ça n'a pas vraiment d' importance . Nous allons juste obtenir les derniers paquets d'hébergement sur ce discours ont été ajustement pour prêter attention au SP qui lisent le temps Coran sur. Nous regardons les fenêtres et obtenons le bundle d'hébergement pour pouvoir aller de l'avant et cliquer sur Télécharger ce bundle d'hébergement, accord, et il n'est pas chargé, mais ça me dit que la glace doit être activée. Donc, si vous recevez toujours ce message après avoir terminé l'installation, alors vous savez que vous voudrez peut-être revenir en arrière et vous assurer qu'il est correctement terminé ou vous assurer qu' il a été effectivement terminé afin que le mien ne soit pas terminé. Je reçois cette erreur sur. C' est très bien. Je vais juste attendre et reprendre une fois. Aider sur Ok. Donc aucun Isis n'a fini et cela a peut-être pris un certain temps. C' est bon. On peut fermer. Mon serveur n'a pas redémarré, donc c'est aussi bon et ensuite nous pouvons valider que cela fonctionne en allant dans votre navigateur et écrivant simplement dans l'hôte local. Et puis vous devriez voir cette page de lancement. Pas besoin de faire trembler la console de gestion. Il suffit d'aller pour commencer et peut-être taper I s. Ou si vous êtes sur le serveur, vous pouvez simplement utiliser le gestionnaire de serveur et aller dans les outils et aller dans le gestionnaire des services d'information Internet . Très bien, donc si vous êtes sur un PC normal, alors vous voulez aller commencer par écrire s et il devrait apparaître dans les résultats de recherche. Au fait, on est là. Nous avons donc les serveurs de noms de machine. Le nom est SQL. Donc, il a le serveur SQL installé dessus, et c' est là que la base de données sera hébergée pour le haut. Mais quand nous arriverons à ce point, je vais vous montrer ce qui se passe lorsque la base de données n'est pas sur le même serveur que l'application . Non, et je suis qu'on va créer un nouveau site web. Donc, vous voyez, sur le serveur, vous avez ce que vous appelez des sites, et puis nous avons également le site Web par défaut, qui est ce qui a été lancé lorsque vous avez tapé en local entier droit. Donc, je vais créer un nouvel ensemble. Donc on fait un clic droit sur la science va ajouter un site Web et ensuite je lui donne un nom Scient et je appelle juste gestion des congés. Il créerait également un nouveau pool d'applications, que nous allons revenir en arrière et modifier après cela. Mais alors tu pourras aller de l'avant, dire la gestion des congés. Nous allons choisir un chemin physique. Donc, le chemin par défaut pour tout, um I s site Web est généralement dans le lecteur c, puis je nightclub www racines sur Dwell. Tout dans les routes www serait en ce moment les sites par défaut. Je vais juste mettre dans w route un nouveau dossier, et je vais juste l'appeler gestion des congés. droite. Donc, nous allons de l'avant et créer ce nouveau dossier, cliquez sur OK, donc tout ce qui va dans ce dossier sera toujours diffusé sur notre nouveau site. Je quitterai la direction. Je vais laisser la liaison comme http sur puis la loi. Le nom du cheval signifiant trou le fera. Quelle adresse utiliserai-je pour accéder à ce site ? Je vais rendre les choses plus simples. Donc, la chose est encore une fois dans un environnement de production, vous pouvez avoir un administrateur système qui fournira des conseils sur les normes obtenues avec ces adresses et la configuration de ces adresses s et ainsi de suite, mais juste. Non, je les mets juste ici. C' est mon serveur qui vous montre parfois les étapes dans les deux sens. Donc, j'appelle cette gestion de congé que Internet dot com parce que vraiment et vraiment, nous construisons cette application afin que nos collègues puissent utiliser chacun que je peux l'utiliser pour approuver. Laissez sur nos Corporates peuvent l'utiliser, appliquer 40. Donc, il est quelque chose que toute l'entreprise, tout le bureau aura besoin d'accès orteil sur dso nous faisons la gestion des congés, pas Internet dot com sur Nous pouvons juste dire commencer bouleversé immédiatement cliquez sur OK sur, Ensuite, nous obtenons notre site. Donc si j'y suis, alors il va essayer d'aller sur Internet dot com. Donc, le point. Donc, ce que nous devons faire est de modifier le feu des hôtes parce qu'une fois de plus, c'est quelque chose qui est sur le serveur. On ne veut pas que ça revienne. Internet tente de passer par Internet, mais c'est ce qu'il essaie de faire. Alors je vais aller dans mon ordinateur, et je suis allé voir mon frère. Toujours le dossier dans mon système Windows C Drive. 32 pilotes alors e T. T. C. Je suppose que court pour etcetera. Et ils cherchaient ce fichier appelé hosts. Donc, ce fichier hosts nous permet de gérer le mappage du serveur, donc je vois plusieurs enveloppements. Si vous le faites localement, c'est la même chose pour que nous puissions ouvrir ce bloc-notes amusant plus, et il vaut mieux l'ouvrir dans l'administrateur plus parce que vous savez, ce fichier est très délicat, mais ce que nous sommes va faire est de mettre en place une cartographie locale des chevaux. Donc vous voyez le mot couple bas. Donc, si vous n'êtes pas si familier avec les serveurs, hôte local est le nom qui en résulte ce I p, qui est de 1 à 7.0 point 0.1. Bon, Donc chaque fois que vous voyez ceci, je p, c'est synonyme d'hôtes locaux et d'hôte local ou ceci je veux vraiment dire la machine sur laquelle vous êtes . D' accord, alors rappelez-vous que quand vous exécutiez notre application en B, mais plus de chevaux locaux de service appellent sur un numéro de port. C' est la même chose que vous voyez dans la machine. Votre garde sur un numéro de port. Droit ? Notre port par défaut est donc le port 80. Nous aurions pu changer ça pour notre nouveau site. Quoi ? Je l'ai laissé sur le port 80. C' est la valeur par défaut. Port de diffusion Http eso. Ce que je vais faire est de mettre en place une autre cartographie locale de cheval pour dire que le cheval local ou cet hôte local I adresse p peut également s'associer à notre nouveau site, qui est le congé. Gérer signifiait que Internet dot com. Très bien, Donc, si je suis sur la machine et je Ambrose, que cela, alors il va résoudre à l'hôte local et chercher le site Web approprié. Droit ? Donc, je comprends orteil sauver qu'une fois de plus, vous devez être en mode admin sur. Ensuite, je vais juste copier ceci et puis essayer de se vanter à nouveau et nulle part de voir une erreur étroite mais avoir beaucoup plus réconfortante cette fois. Donc non, ça me dit que ça me donne une ère I I s, ce qui veut dire qu'il essaie en effet de frapper le site que nous venons de mettre en place. Donc, je vais aller à ce dossier de site Web qui se souviennent, est appelé à Sea Islet pop route www et puis laisser la gestion sur. Alors je vais juste venir ici et je vais créer un nouveau jeûne pour que vous soyez limité avec certaines des choses que vous pouvez faire ici. Encore une fois, si vous êtes administrateur, vous serez en mesure de faire tout ce que je fais ici où de façon transparente sinon, vous voudrez peut-être créer le fichier et peut-être mes documents puis copiés. Mais je vais juste mettre sur le fichier html point index ici sur c'est toujours un document texte. Ils doivent s'assurer que l'extension voit point html. Donc, je vais juste faire un dossier. Vous deux enfin, hum, étend leur regard au décollage du txt parce que je voulais vraiment être un fichier html sur la plupart des serveurs. La plupart des serveurs, sinon tous, recherchent l'index. C' est la première pièce qu'ils recherchent. Donc, comprenez, pour modifier cela dans l'expérience et je vais juste dire bonjour, je suis juste juste pour prouver que ça fonctionne réellement. Donc, quand je rafraîchis cela va chercher le fichier d'index et puis il va me montrer Bonjour, je s Donc nous avons juste mis en place ou pour un serveur de glissement, au cas où vous savez, c'est votre première fois. J' espère que vous apprécierez cet exercice. Maintenant. Encore une chose que je vais faire ou aurons-nous encore deux choses à faire plus importantes . Nous allons changer notre pool d'applications. Donc je vais retourner voir le manager. Je veux aller aux pools d'applications et ensuite nous verrons le pool d'applications de gestion des congés que nous venons de mettre en place. Cliquez dessus Goto paramètres avancés. Quels paramètres de base ? Désolé. Paramètres de base activés. Ensuite, je vais changer cela de .net CLR pour savoir Gérer froid. D' accord, puis je clique. OK, alors. Si vous le souhaitez, vous pouvez réinitialiser. Je pense que ça s'est arrêté et a commencé à partir. Mais vous montrerez votre maison dans les applications sont en cours d'exécution sur tout ce que vous devez savoir. Si vous cliquez dessus et revenez, alors vous devriez en voir un. Cela signifie que nous avons un site Web ou une application Web en cours d'exécution sur ce pool. Donc, les piscines sont comme des conteneurs qui alertent pour séparer vos sites Web et est la mer Vous pouvez séparer dotnet aux applications de pas rencontré. 4.5 applications de vous savez, la valeur par défaut, qui vient avec le site par défaut sur. Ensuite, nous introduisons un nouveau site. Donc on a celui-là. Mais celui-ci n'a pas besoin d'être un tribunal de gestion parce qu'il va héberger notre application de base dot net . C' est donc le premier des deux choses que nous avons laissées. La prochaine chose qu'il nous reste à faire est de terminer notre installation pour le temps d'exécution. Donc, comprenez, pour revenir à mon dossier, obtenir mon temps d'exécution, puis nous voyons un message différent où il dit s'il vous plaît redémarrer une fois l'installation terminée. Très bien, c'est bon. Donc, nous pouvons simplement accepter les termes et aller de l'avant et installer. Très bien, donc cette installation ne pensait pas beaucoup plus longtemps ou c'était une isolation beaucoup plus courte que celle du I s one. Mais une fois que cela est fait, nous pouvons juste aller de l'avant et rafraîchir notre côté juste pour nous assurer que nous sommes toujours en train de frapper le fichier sur . Nous n'avons pas d'erreurs. Donc, dans la vidéo suivante, nous allons regarder la publication réelle de notre rapide depuis Visual Studio et les déplacer vers le serveur 66. Publier une application à IIS et SQL Server: vous êtes les bienvenus. Donc, nous avons juste mis en place sur I comme serveur sur notre application serveur sur notre machine réelle, où notre application sera hébergée sur DNO. Nous allons publier les fichiers de Visual Studio sur le serveur. Donc, cette vidéo va me faire basculer d'avant en arrière entre studio visuel sur la machine réelle car il y a des configurations qui doivent se produire. Nous devons déployer la base de données qui est nécessaire pour soutenir notre application sur. Nous avons quelques petites choses à faire. Donc, je vais faire de mon mieux pour être clair sur ce que je fais et pourquoi je le fais afin que vous ayez une pleine appréciation comme orteil ce qu'il faut pour obtenir une application en cours d'exécution. Tu sais quoi ? J' ai de l'espoir ici en studio visuel. Je dois le faire. C' est en cliquant avec le bouton droit de la souris sur le projet que je vais publier. Et puis nous avons abordé ce menu. Donc, sur la publication, nous voulons créer un nouveau profil sur. Ensuite, nous voyons que nous avons quelques options du service vers le haut comme votre où la comme votre machine virtuelle et, comme je l'ai dit, une machine virtuelle sur nous. Votre est à peu près la même chose qu'une machine virtuelle sur site. Je veux dire, une machine virtuelle est une machine virtuelle. Donc c'est le même principe, non ? Donc, vous pouvez également configurer. J' ai demandé directement ou FDP. J' aime faire la version du dossier sur cette version complète ou la porte pleine. Euh, méthode, pour ainsi dire, c'est bon pour les yeux sur la version de la machine virtuelle, non ? Parce qu'à la fin de la journée, cela concerne le déplacement des fichiers publiés physiques de votre machine vers l' emplacement du serveur . Droit. Donc, j'aime faire la version plus complète sur la publication locale parce que, vous savez, vous pouvez avoir des problèmes d'autorisation lorsque vous essayez d'aller à 1/3 machine de partie. Votre utilisateur par rapport à l'utilisateur sur lequel vous exécutez peut ne pas avoir l'autorisation. Il ne dirige peut-être pas l'administrateur de Visual Studio et des trucs comme ça, et vous obtenez des zones génériques qui peuvent vous frustrer. Donc, je conseille juste que vous avez publié Vous pouvez juste laisser cette valeur par défaut pour leur sur. Ensuite, nous pouvons aller orteil avancé, puis à l'avance, nous pouvons juste jeter un oeil à certains des paramètres avancés et avoir une appréciation pour ce que ceux-ci voient. Donc, vous avez la configuration publié Stargate Framework. Vous n'avez pas besoin de changer davantage ce déploiement. Ils n'ont pas à changer cette cible ou à temps. On n'a pas à changer ça à peu près. Vous n'avez pas besoin de changer quoi que ce soit ici à moins d'avoir d'autres idées. Bien sûr, nous descendons à l'incendie publié options, il dit Supprimer les incendies supplémentaires cette destination. Maintenant, si vous publiez cette adresse locale, alors vous savez que vous pouvez presque prendre ça en toute sécurité. Si vous publiez un emplacement de partie 1/3, je vous conseille d'être très prudent en prenant cela car cela signifie qu'il effacera tous les fichiers dans l'emplacement avant qu'il ne mette les nouveaux fichiers sur. Alors si vous êtes plein de chemin est mais et j'ai eu des ennuis avec cela dans le passé. Mais si vous êtes plein de passé est mauvais, alors cela peut mener à bout, vous savez, effets néfastes sur d'autres applications qui pourraient être au même endroit, non ? Donc, vous voulez juste vous assurer que votre chemin de dossier est sûr sur Do vous pouvez prendre cela quelque part au ticket. J' ai déjà donné l'avertissement sur les bases de données. Non, nous voulons modifier nos chaînes de connexion. Je vais utiliser cette chaîne de connexion à l'exécution et ensuite je vais faire quelques modifications ici. Donc, le premier du serveur n'est plus la base de données locale parce que, OK, DB est à peu près locale. Remorquez votre machine ou n'importe quelle machine de développement que vous utilisez. Comme vous pouvez le voir, on pourrait juste y retourner par studio visuel dans ah, séance de production. Votre base de données peut être sur le même serveur que l'application Web ou elle peut être dans un autre serveur, Um, ailleurs sur le réseau. Donc, vous voulez mettre les noms des serveurs ? Un bon moyen rapide de connaître le nom du serveur serait orteil peut demander db a ou votre S a T B. A. Être administrateur de base de données est un administrateur système étant. Ou, hum, si vous avez l'accès, vous pouvez juste aller sur le serveur. Donc, dans ma situation, mon serveur sera ou mon serveur de base de données sera sur le même serveur que mon serveur Web Ou bien , donc vous avez le serveur Web et le serveur de base de données. Parfois, on est machine. Un est machine Be. Parfois, ils sont tous les deux machine. Dans mon scénario, ils sont tous les deux machine A. Donc je suis juste allé au studio de gestion, a soulevé la zone SQL Monitor et étudiants, a mis hors de la connexion sur puis regarder ici, je vois et c'est le nom que je dois mettre dans. C' est donc le nom de la machine avec une barre oblique inverse activée. Ensuite, le nom de l'instance. Donc, cela peut très parce que vous pourriez ne pas utiliser SQL expérience pourrait utiliser peut-être développeur ou une entreprise, Et donc l'hôte local serait probablement assez bon pour vous ou l'hôte local que j'adresse p que nous avons examiné. Quand on est assis, je suis, euh dans une autre situation, vous pourriez avoir un encens nommé. Le fait est, si vous savez, si vous savez déjà où bol, vous pouvez trouver comme ça. Si vous ne le faites pas, vous pouvez demander l'aide de vos administrateurs. Très bien, quelqu'un pour copier ce nom de serveur parce que c'est le serveur sur lequel je vais déployer la bête de données. Bon, alors rappelez-vous, c'était un premier scénario que la cour informera les données de la base de données. C' est donc là que ma base de données serait configurée. Donc, je vais juste copier ce nom de serveur, puis revenir à Visual Studio, puis à l'intérieur des parties entre le signe égal après le serveur de mots et le point-virgule, je vais mettre la barre oblique inverse SQL Express. Donc c'est mon serveur. Très bien, Donc le serveur est égal à SQL Express sur puis la base de données quelque part pour changer une base de données de mots initiale comme i n i t I un catalogue d'espace l voir 80 une élégie. Donc je dépense tout pour m'assurer que nous avons le bon air d'orthographe. Alors on n'a rien à changer d'autre. Non. Sur la chose importante à noter est que certaines personnes, mon règlement dédié et très spécifique utilisateurs liés à la base de données, droit, Donc c'est un point de sécurité. Ainsi, dans ce scénario, l'utilisateur Windows exécutera l'application et, par conséquent, il doit également exécuter des écritures sur la base de données. Dans un autre paramètre, ce que les gens font est de créer des utilisateurs de base de données spécifiquement pour l'application sur Ensuite, vous, le développeur devrait les inclure dans les chaînes de connexion pour voir que lorsque vous exécutez cette application dans temps, moi aussi, aussi, connecté une base de données sur laquelle est votre serveur. Ensuite, vous auriez orteil ajouter de l'espace utilisateur que j'égale alors quel que soit le nom d'utilisateur et nousécrivons simplement en utilisant le nom comme espace réservé sur, puis le point-virgule, puis le mot de passe est écrivons simplement en utilisant le nom comme espace réservé sur, puis le point-virgule, égal à quel que soit le mot de passe. Un incident. Le côlon, droit ? Donc, c'est ce qui devrait être proche de la chaîne de connexion pour faciliter un utilisateur SQL qui a été créé pour votre application a ajouté des avantages hors. Ce serait que, eh bien, eh bien, c'est un utilisateur SQL, sorte que cette personne n'a pas d'accès au domaine à quoi que ce soit sur le réseau ne sont pas utilisateur. La Syrie n'a aucun accès au domaine quoi que ce soit sur le réseau Onda. En outre, il n'aurait accès qu'à cette base de données que quelqu'un a obtenu ces informations d'identification. Ils ne pouvaient pas faire beaucoup plus de dégâts que probablement contre la seule application. Donc, vous savez, c'est juste sous le coup de la sécurité. Mais dans mon scénario, je vais juste utiliser mon utilisateur système pour exécuter mon application ainsi que des opérations de base de données . Donc, une fois de plus, vous voulez modifier cette connexion par défaut et dire, utiliser cette connexion à l'exécution. Donc, même si où la base de données locale pour le développement local. Lorsque nous publions, c'est à quoi notre chaîne de connexion devrait ressembler. Je vais également développer la section Entity Framework Migration sur Dennis appliquer cette migration publiée sur Je vais juste aller de l'avant et copier tout ce contrôle à l'intérieur la condition contrôle String, voir tick appliquer migration publié sur la paix. Très bien, donc ce qui se passerait est que le lorsque vous publiez, il cherchera toute la base de données dans la chaîne de connexion, puis essayer de le mettre à jour sont mises à jour des déploiements. Il générera également les scripts pour vous, donc nous aurons en fait un petit travail manuel où nous allons générer utiliser les scripts de migration qui ont été générés. C' est ainsi que vous connaissez l'histoire de tout ce que nous avons fait tout au long ce projet. Ensuite, nous publierons cela sur. Alors nous verrons ce qui se passe. Donc assez sur tout off qu'après avoir configuré tous les paramètres, nous pouvons cliquer, enregistrer, enregistrer, puis créer le profil ou une fois le profil créé. Chaque fois que nous sommes prêts à publier, nous allons de l'avant et cliquez sur. Publier. D' accord, et une fois que ce sera fait, ils nous donneront un lien direct avec le plastique. Maintenez le contrôle et cliquez dessus et il lancera l'explorateur. Suivez les quatre fichiers publiés. Non, Non, c'est toujours sur votre machine. Donc, nous voulons faire est transporté orteil ou destination. Le moyen le plus rapide et le plus simple de nous assurer que nous avons tous pour moi serait de simplement sélectionner. D' accord, cliquez sur l'archive. Non, j'ai l'hiver sur ma machine locale, mais la destination pourrait ne pas avoir avec des roches sur lesquelles est un générique. Cette extension zip est allumée. Allez-y sur archiver tous les fichiers sur Une fois que ce processus est terminé, je peux aller de l'avant et récupérer cette archive. Copier. Allez sur mon serveur. La paix. Non, je suis déjà dans la racine pleine de quatre. Mes sites Web ont le droit d'appeler le fichier d'index. Je suis déjà là. Vous n'avez peut-être pas les autorisations de coller directement ici. Droit. Alors laisse-moi voir si je le fais. Andi, si je le fais, alors je trouve. Mais si vous ne le faites pas, alors je conseillerais un probablement aller à des documents légers, puis coller le fichier là sur. Ensuite, vous déplacez le fichier des documents à la racine pour cela, parce que encore une fois, les autorisations et ainsi de suite. Si vous n'êtes pas l'administrateur système, je n'ai aucun contrôle sur ces choses. Je vous donne juste la propriété du travailleur pour que vous n'ayez pas à aller voir l' administrateur système chaque fois que vous heurtez un barrage routier. Très bien, donc une fois que vous avez réussi à déplacer le fichier zip à votre chute de route ou laisser le dossier de gestion le dossier du site Web sur comme vous le pouvez. Pas de clic droit sur juste extraire tout ici sur. Je vais juste y aller et m'en extraire. Ça ne devrait pas prendre beaucoup de temps, Onda. Eh bien, il est allé dans un sous-dossier, Sénateur. Lissons-les. Je ne veux pas qu'ils soient dans le soutien. Je les veux dans le dossier principal. Je veux la route de la matière hors de ce sport. On y va. Définissez-nous vouloir publier le contrôle A retour ex. Contrôle V en utilisant des raccourcis clavier a beaucoup baissé, donc non, nous avons nos fichiers ici et il peut prendre un peu de temps et juste regarder à travers. Vous voyez toutes les offres, tous les fichiers de référence qui auraient ajouté le long de la façon dont nous avons un fichier de conflit Web sur ce fichier de conflit Web nous permet de configurer fort, donc je vais juste aller à une édition de configuration web avec plus de partie plus plus sur. Alors c'est quelque chose que j'aime faire parce que parfois vous obtenez des erreurs sur ils ne racontent pas toute l' histoire. Les journaux vous diront exactement ce qui s'est passé, non ? Donc quand on fait ça, on va juste changer ça en vrai et sauver d'accord ? Eso Il y a quelques choses que nous devons faire. Un que j'ai besoin de m'assurer d'avoir la base de données. Donc, laissez-moi revenir au dossier sur puis nous pouvons regarder à l'intérieur de ce dossier E f demander vos scripts et si je l'ouvre dans le bloc-notes plus juste rapidement vous voyez qu'il a sur SQL, il a les scripts SQL pour générer à partir de nos tables. Droit ? Et si vous regardez attentivement, vous voyez que vous avez les idées de migration. Ainsi, chaque fichier de migration qui a été généré dans Visual Studio se manifeste en termes off sur instruction SQL pour dire que ce sont des changements qui devraient se produire jusqu'à la toute dernière. Donc, je suis en train de regarder ici le jour que j'aurais créé par inadvertance sont inclus le vert . Les modèles de vue dans mes ensembles de données DB, n'est-ce pas ? Donc, non, j'ai des tables de machines virtuelles, donc je ne sais pas si vous l'avez détectée. J' ai la capacité de rétroaction. Probablement détecté sur, réparé déjà. Je ne l'ai pas fait. Donc, ce serait une bonne expérience X. Non. Pour que je retourne en arrière, les réparer au tribunal, mettre à jour la base de données, obtenir le dernier fichier de migration et republier. Mais voyons où tout cela va prendre pour que je puisse réellement prendre ce dossier entier. D' accord, alors je peux aller sur mon serveur de base de données, non ? Une fois de plus, Toby a-t-il un serveur ? Quoi ? C' est sur la même machine sont sur une autre machine. Vous voulez juste vous connecter. Ensuite, je vais créer une nouvelle base de données en allant l'appeler laisser sur la gestion des partitions parce que c'est la base de données que notre application est la chaîne de connexion recherche, non ? Laissez la gestion des soulignements ou la clé. Donc, cela fonctionne encore une fois, votre base de données pourrait le faire. Vous n'avez peut-être pas accès comme ça, donc vous savez, vous devriez probablement lui dire quoi ? Quant à ce qu'ils doivent faire. Donc je vous donne juste les instructions claires. Donc, après avoir fait cela, vous voulez démarrer une nouvelle requête avec la gestion des congés comme contexte de la requête Vous avez basé les bandes F, n'est-ce pas ? Ensuite, vous pouvez aller de l'avant et cliquer sur Exécuter. Maintenant, une fois que cela est fait et que c'est fait avec succès, si vous venez de coller, je regarde à l'intérieur des tables, vous voyez toute la table. Voici donc quelques-unes des tables de machine virtuelle que j'ai incluses par inadvertance dans tout cela, mais vous le regardez et il a la même structure que ce que vous auriez vu dans la base de données locale . Euh, mis en place. Droit. Ensuite, nous devons nous mettre au travail. Très bien, donc chez mon frère, je vais aller de l'avant et la pointe du frère tendance l'adresse. Laissez la gestion de ce point internet com et nous voyons ici nous obtenons cette paire http de 500 droite ? Donc un certain nombre de choses pourraient se tromper à l'époque. Maintenant, la première chose que je voudrais faire est de regarder les journaux. Non, comme vous le voyez, pas beaucoup. Laisse-moi juste que je jette tout mal. Donc, de retour dans la configuration Web où nous avons activé le journal, il nous a montré que l'ancien fichier aurait été bout long slash STD haute. Quand on regarde dans ce dossier, on ne voit pas de feu de journal ici. Non, la première chose qui va venir à moi est qu'il y a un problème de permissions, parce que s'il y a un problème de permissions, où ou s'il y a une situation où il devrait écrire beaucoup de fichier et il n'a pas écrit , alors il y a des chances que les utilisateurs qui exécutent n'aient pas l'autorisation de modifier ce dossier. D' accord, âme. Je vais aller au sujet de l'IIS sur. Je vais regarder dans mes pools d'applications sur. Ensuite, je vais observer que l'identité et je pense que j'ai mentionné est avant est l'identité du pool d'applications. Non, votre administrateur système peut avoir besoin de modifier les autorisations de cet utilisateur. Je suis en charge ici sur mon propre système, administration de cette situation, donc je vais aller de l'avant sur les paramètres avancés Goto sur. Ensuite, je peux sélectionner l'identité. Donc en cliquant sur l'identité et ensuite sur les ellipses à côté, je peux aller à la construction de nos cônes. Et quand je suis tombé dessus. Je vois ça. J' ai d'autres comptes, non ? Certains comptes probablement plus puissants. Non, c'est une situation très délicate en matière de sécurité. Assurez-vous donc que vous étiez sur ce point par votre administrateur de sécurité. Cependant, c'est ma machine. Je peux faire ce que je veux. D' accord. Donc, je vais lui dire de fonctionner en tant que système local. Donc, je fais cela et cliquez sur OK, puis. Donc, le système local no est un utilisateur plus puissant que l'utilisateur d'identité par défaut. D' accord, et puis je peux juste recycler juste pour m'assurer, puis, puis, si je reprends le rafraîchissement, alors Ok, je reçois toujours cette erreur 500. Mais devinez quoi ? Au moins, je vois le dossier des journaux. D' accord. Tellement inouïe sur. Un autre à y aller. C' est pour ça que vous voyez, c'est une erreur tout à fait différente. Mais je reçois toujours la même chose. Http. 500 ère, Et c'est littéralement toute l'aide que Microsoft vous donne. Et ils vous le disent, vérifiez les Louds parce que ça devrait raconter l'histoire. Cependant, la première fois qu'il n'y avait pas de verrou à vérifier, non ? Donc, je suis juste en train de le faire à travers certains scénarios pour aider p plus facile et quand vous devez résoudre les problèmes. Donc, je vais juste regarder dans ce fichier journal et voir ce qui se passe dessus est de voir qu'il y avait une flèche essayant de se connecter à la base de données sur le serveur, non ? Donc, nous voyons qu'il essaie de se connecter au serveur de liège essaie de se connecter à la bonne base de données pour cela. Cela me dit qu'il ne peut pas ouvrir la base de données demandée par se connecter directement sur le champ de journalisation . Donc, cela me dit que lorsque je vois dans ce groupe de travail barre oblique SQL, c'est l'utilisateur essaie d'utiliser la connexion. Donc tu as une petite formation d'administrateur système ? Non, nous allons examiner une formation aux administrateurs de bases de données. Donc, pour revenir à la bête de données, Ce qui devrait arriver est que quel que soit l'utilisateur exécute l'application, signifie que l'utilisateur que nous venons de définir régit le pool d'applications. Quelles que soient les identités, cette identité doit également avoir accès à la base de données. J' ai donc mentionné plus tôt que parfois vous configurez un utilisateur de base de données afin que vous n'ayez pas à inquiéter d'un bateau quelles identités exécutant vous utilisez simplement l'utilisateur de base de données dans la chaîne de connexion de cet utilisateur de base de données devrait avoir accès à tout faire, et tu es bon d'y aller. Cependant, dans mon scénario, je n'utilise pas un utilisateur de base de données en utilisant les systèmes locaux doivent s'assurer que le système local a accès à la base de données. Alors, ces étapes seraient oh neato arriver indépendamment des techniques. Donc je veux dire, créer un utilisateur est assez facile. Je peux simplement aller à la sécurité donc sur le serveur, mais la sécurité cliquez sur nouvelle connexion. Si vous créez une base de données en utilisant peut simplement dire, vous savez, vous savez, administrateur ou laisser l'utilisation de la gestion des congés de l'argent ou tout ce qu'il est, donner l'authentification de l'utilisateur sq pour donner le mot de passe. Vous ne voulez probablement pas appliquer l'expérience Shin tous les droits parce que vous ne voulez pas que le posturing expire sur cet utilisateur sur. Vous pouvez appliquer une stratégie pour vous assurer d'obtenir un mot de passe fort. Droit. Mais les parties communes après avoir fait tout cela, la partie commune que vous savez quel que soit l'utilisateur il est a est que vous devez aller. Donc, l'exercice de base de données ne va pas à la sécurité. Tu as raison. Cliquez sur plus. Désolé que vous avez percé sur aller aux utilisateurs, puis vous cliquez avec le bouton droit de la souris sur Nouvel utilisateur, puis vous pouvez voir un utilisateur avec sqa connexion ou utilisateur Windows . Tout va bien, alors. Donc c'est une façon de le faire. Une autre façon de le faire serait de simplement trouver les utilisateurs, dans ce cas, système anti-backslaps d'autorité. C' est l'utilisateur que j'ai sélectionné quand j'ai dit système local. Très bien, donc je vais faire un clic droit sur mon utilisateur afin que vous puissiez avoir facilement juste les bons clics que je veux dire l'utiliser que vous venez de créer, droit, clic droit, aller dans les propriétés et puis nous allons pour aller orteil, euh, mappage utilisateur sur. Ensuite, nous allons sélectionner la base de données A C ici. Anti système n'a pas accès à aucune des bases de données, est-ce pas ? Andi ? Il est fort probable que quel que soit l'utilisateur que vous utilisez par défaut, il n'a pas non plus accès à aucune de ces bases de données. Quelqu' un orteil coller la base de données de gestion des congés et vous voyez qu'il dit l'utilisateur, est tout ce qu'il est sur. Ensuite, je vais m'asseoir en tant que propriétaire de la base de données parce qu'en tant que propriétaire, vous serez en mesure de lire, écrire sur tout. Mais évidemment, il est très pauvre, entièrement probablement peut obtenir un peu plus granulaire, mais généralement Billy propriétaire est assez puissant pour ne pas avoir à se soucier de quoi que ce soit d'autre. Ensuite, vous cliquez sur. OK ? Et une fois qu'il est propriétaire, il devrait pouvoir se connecter. Donc on va repartir un hiver. Rafraîchissez, alors. On y va. Nous lançons maintenant notre application, et elle a l'air bien. Hors cours. Vous pouvez utiliser un peu de réparation, mais, hey, hey, pour que je puisse aller de l'avant et essayer de me connecter. Alors rappelez-vous que nous voyons que l'utilisateur admin depuis le début. Cela signifie donc qu'une fois l'application lancée, nous avons une base de données vide. C' est qu'il n'a rien de ou une escapade de développement. Donc indirectement peut les utilisateurs d'arachide Goto. Nous devrions voir sur l'utilisateur admin par défaut là. Très bien, ça a air bien. Donc, je peux aller de l'avant et dire admin à l'hôte local de calme et notre mot de passe par défaut comme il était sur le bas. Nous sommes dans nos applications. Donc à partir d'ici, je peux aller laisser des types sur. Je vais juste aller de l'avant et créer un nouveau type de feuille, donc non, c'est le premier sur le système. Nous avons un peu thr et dire, hé, h ou vous savez, celui qui s'il vous plaît va commencer à allumer le système. Bon, pour qu'ils puissent entrer et commencer à créer. Donc ils vont dire que le congé de maladie a 10 jours pour un an après. Ensuite, nous créons sur. On y va. Si nous éditons cela sur, je vais juste faire avec un corbeau rapide juste pour m'assurer que nous voyons que cela fonctionne sur. Duh. Si je ne suis pas satisfait, je peux toujours supprimer sur Nous sommes les pieds de retour Rien. Droit ? Donc, ici, nous venons de déployer notre application sur Internet directement. Non, retour en studio visuel, j'ai dit que je voulais apporter quelques modifications à la base de données. Je vais juste m'assurer que je n'ai pas les ensembles de bases de données illégaux. Bon, donc ils ne sont pas là. Droit ? Donc, ce qui s'est passé, c'est que, euh j'aurais eu les ensembles DB laisser le type V m droit alors. Ça a généré la table. Laissez les types VM croire ou feuille que gm est tout ce qu'il était. Je n'en veux pas, je ne veux pas. Droit. Donc c'est ça. Je vais lancer un nouveau « mon accord ». D' accord. Certains disent avoir supprimé des tables de machines virtuelles, accord ? Et c'est fait. Et j'ai juste mis en évidence ma vue de base de données juste pour montrer que, vous savez, le tsar de la VM. Il y a qui ont les employés VM sur le type feuille via Mais je vais faire une base de données de mise à jour . Donc, à la fin de cette base de données de mise à jour, j'aurais mis à jour mes bases de données locales. Et si on regarde les scripts de mon Grayson, euh , vous voyez qu'on laisse tomber certaines tables et probablement des sensations. Mais c'est ce que sont les opiacés est censé faire sur. Je peux juste valider. Je peux juste rafraîchir, revenir en arrière et regarder et voir leurs tables no vm. Très bien, si bien. Maintenant, je vais publier à nouveau. Donc, vous savez, nous voulons dire, peu importe ce qui a changé, vous savez, vous le donnez aux RH. Ils ont dit, vous savez, vous devez ajuster ça. Il est juste que nous allons de l'avant sur le clic droit ou le projet à nouveau, Aller à publier sur. Nous avons déjà notre profil. Donc, une fois de plus, ce dossier a publié la technique. Je veux dire, avec le temps, ça pourrait devenir fastidieux, et ils ont plus automatisé avec off faire ça. Mais encore une fois, c'est la version la plus sûre pour moi. Même mon expérience passée où j'ai supprimé par inadvertance certains fichiers importants. Donc, je viens toujours publié localement sur puis se déplacer à travers le réseau. D' accord, gars sont publiés, et je vais les archiver une fois de plus Onda une copie sur le réseau. Et puis voici la partie délicate. Donc, vous savez, euh, ce que j'ai fait dans le passé, c'est tout ce qu'il y a déjà là, je vais probablement reprendre un peu. Donc c'est un nouveau dossier sur les dates, pas vrai ? Et puis mettre tous ces vieux dossiers à l'intérieur de cette sandale de dossiers datés, qu'à cette date, c'était la dernière mise en marche comme je l'avais fait. Donc je peux toujours revenir en arrière, vous savez, ce sont des moyens plus efficaces de le faire une fois de plus. Mais alors dans un monde parfait, vous ne serez peut-être pas toujours en train de fermer certains faits qu'il voit ne peuvent pas bouger parce qu'ils sont ouverts. Donc, vous savez, une fois de plus, dans un monde parfait, il y a des moyens plus efficaces, mais dans un parfait où il suffit de savoir comment prendre la bonne route. Donc je t'apprends la façon parfaite pour que quand tu auras le parfait, tu seras un expert amer. Donc, je viens d'archiver la dernière version. Ah, non, je m'arrête juste sur la nouvelle version. Ensuite, je vais tout extraire mais je vais juste changer le passé ici pour que je ne l'envoie pas le sous-dossier sur. Puis allez-y et extraire andare. Les fichiers sont extraits. Nous avons notre nouveau dans des scripts de mots différents, donc je peux juste cliquer avec le bouton droit de la souris modifier sans partie. Donc, si vous regardez si vous regardez de près les scripts Saleh, si vous êtes déjà familier avec SQL, alors vous savez que vous seriez en mesure de voir qu'il dit, s'il n'existe pas. Andi. Donc, c'est dire que s'il n'y a pas d'histoire ou si cela n'existe pas déjà, alors faites-le. Donc, ce qui se passe est qu'il ne fera que les migrations sont les changements qui ne sont pas encore dans le système, est-ce pas ? Donc, comme nous venons d'ajouter une migration sur la suppression des tables de machines virtuelles. On y va. Donc, quand je prends tout ce script et exécuté contre une base de données existante, la seule façon que nous allons perdre le c'est si nous avons fait quelques changements, les colonnes et des choses comme ça, comme peut-être a changé l'heure du temps Désolé D créé à partir d'être temps de manger. Alors tu sais qu'il va y avoir des détails et peut-être de la corruption, non ? Donc, quelle que soit la corruption expérience Yudof au cours de la phase de développement, faire ce genre de changements, attendez-vous à ce que de votre pire dans la base de données. Ils veulent donc être prudents toute l'année en roulant toutes ces migrations et les changements que vous apportez . Donc, dans ma situation, ce que j'ai fait a été laissé tomber quelques tables. Donc, si ces tables avaient des informations pertinentes, cette migration dirait, les a abandonnées. Cela conduirait à la perte de données soit là où je suis allé copier tout cela. Andi, va à ma rescousse. Eh bien, le studio de gestion va à Bay City à l'intérieur de la fenêtre de requête. Assurez-vous que mes données sont sélectionnées. Cliquez sur Exécuter, puis il a essentiellement dit une règle affectée. Ok, quand je me rafraîchis, alors vous verrez qu'il a fait les changements. Très bien, donc ils ne sont plus dans une table de machine virtuelle afin que vous puissiez déployer les modifications sur la base de données également. D' accord, Onda. Eh bien, je pense que je n'avais que les utilisateurs parce qu'ils ont supprimé le type de feuille. Mais, voyez-vous, j'ai toujours mes données utilisateur directement sur les choses, donc c'est toujours une bonne idée. Vous savez, assurez-vous que le script est exécuté pour vous assurer que la base de données est à jour avec votre nouvelle publication. Il a également après avoir déployé de nouveaux fichiers, voulait au moins recycler votre pool d'applications, sorte qu'il, vous le savez, se rafraîchit. Andi commence à tirer les premiers dossiers, puis je vais retourner sous caution. application Actualiser etare est toujours ouverte en cours d'exécution. Donc, une fois de plus, c'est de sorte que vous auriez déployé une application sur votre réseau local dans une séance Internet . Hum, mais cela pourrait également s'appliquer à un paramètre public parce que ce serveur aurait pu être comme un serveur VPS que vous utilisez pour diffuser les Internets. Les principes, je veux dire à peu près la même chose avec la connectivité de base de données mise en place des yeux, vous assurant que vous avez le bundle d'hébergement installé pour vous assurer que les autorisations sont configurées , Um , d'une manière que votre application peut exécuter sur la machine ainsi que sur les bases de données d'une manière propre et efficace. 67. Créer un compte Microsoft Azure: Hé, les gars dans cette vidéo vont créer ou Microsoft comme cônes Europe. Comme je l'ai dit plus tôt, nous pouvons commencer gratuitement pour accéder à ces sites Web. Nous allons car vous n'êtes pas Microsoft dot com on. Alors je suppose qu'ils vous ont écrit selon votre raison ou votre langue. Mais c'est à quoi ressemble le site. devrait ressembler et vous pouvez lire à travers pour voir exactement ce qu'il ya tout un bateau, c'est un projet de loi étant futuriste, permettant plus de collaboration sur le fonctionnement plus harmonieux dans un espace de vêtements qu'ils sont partout dans le monde sur. Habituellement, vous choisiriez simplement la raison qui est la plus proche de vous. Donc je suis en fait dans la voiture serait dans la raison. Donc ma région la plus proche est nous, notre est nous à l'est, mais ce n'est pas pour cette vidéo. Cette vidéo que nous créons juste leurs cônes n'étaient pas en train de mettre en place quelque chose sur les régions pour l' instant . Eso pour commencer. Nous pouvons juste bien, si vous avez déjà un compte en direct, alors vous pouvez juste aller de l'avant et rester debout avec ce compte en direct. Eh bien, vous pouvez simplement cliquer sur Démarrer gratuitement ici. Ils vous disent que vous pouvez créer un monstre aujourd'hui et vous pouvez commencer avec 12 mois congé gratuit, donc c'est une bonne affaire pour moi. Et si vous faites défiler vers le bas, vous voyez 12 mois de rabais gratuits et populaires services gratuits plus 200$ de crédit, qui expirera dans 30 jours. Donc, ils lui donnent 200$ saké et créer les machines virtuelles qui peuvent créer des ressources est dans le code et expérimenter jusqu'à ce que l'argent soit sur, c'est vraiment juste pour un mois. Mais alors il ya certains services que vous obtenez juste quatre gratuits pour le reste de l'année ne sont pas et puis vous aurez quelques autres services qui sont toujours gratuits pour elle. Donc, ce que nous allons faire est juste d'aller de l'avant et de cliquer, commencer gratuitement sur. Ensuite, ils nous demanderont de nous connecter avec nos comptes en direct. Si vous avez encore un compte en direct, vous pouvez aller de l'avant et l'utiliser. Si vous n'avez pas assez de cônes, alors vous pouvez aller de l'avant et en créer un. Il s'agit d'une option très récente pour vous connecter avec get Hub. Donc j'ai un appel en direct que j'ai utilisé, mais je vais juste vous aider à travers la création d'un premier. Non, le vivant d'un maïs n'a pas nécessairement besoin d'être en direct ou du tout. Ecoute, tachymètre est que je dois être, ah, un compte de repas chaud traditionnel. Il peut s'agir d'un G. Millikan, donc je peux utiliser peut-être la même adresse e-mail que j'ai utilisée ou le tableau de ghetto par militarisés que j'utilise quand je m'inscrit pour des choses. Je peux utiliser ça avec ça. Ouais, huji, repas chaud, quoi que ce soit. Je suis comme la prochaine, et c'est déjà là. Ça me dit que j'ai déjà un compte Microsoft. Donc c'est juste pour moi, cependant,qu' cependant, une fois que vous avez un compte sur l'adresse e-mail, il n'a pas besoin d'être, ah, repas chaud ou de vivre un bateau calme là-bas. Dis créer un compte Microsoft pour vous avec ces lettres e-mail afin que vous puissiez aller de l'avant. Andi, inscrivez-vous. C' est un processus assez simple maintenant. Leur conduite il existait déjà. C' est sur le compte que j'utilisais pour m'inscrire pour le cône gratuit, donc je suis allé de l'avant et j'aime être sur, et parce que je n'ai vraiment pas mis en place beaucoup plus, je pense que votre processus d'inscription va vraiment ressembler à indépendamment. Donc, une fois que vous aurez surmonté l'obstacle de mettre votre adresse e-mail à la suite, alors vous allez probablement finir sur un écran comme celui-ci où on vous demandera vos informations démographiques juste pour la tenue de dossiers, hum, mon pays et ma région est la Jamaïque. Je mets mon numéro de téléphone que je traite ensuite. Alors ils dirent : Tu veux un vérificateur ? Ajouté insisté par téléphone. Ou voulez-vous par art de carte ? Quelqu' un à choisir m'emmène par téléphone et je viens de recevoir le message. Ça n'a pas pris longtemps du tout, donc je suis juste à la pointe. Mettez cet accord, puis vérifiez. Voici une partie qui pourrait vous dissuader si vous n'êtes pas prêt. Ils voudront vérifier votre identité par carte de sorte que vous ne serez pas facturé à moins que vous ne surclassement, ce qui signifie qu'ils ont une manière différente. Appelez les plans d'abonnement si bien ? Non, vous souscrivez à l'abonnement gratuit. Une fois ce plan d'abonnement gratuit terminé, vous ne pourrez plus faire grand-chose sur la plateforme tant que vous n'aurez pas centré sur un nouveau plan d'abonnement . Quels cônes ont cette mise à jour ? Donc, comme je l'ai dit, tout à l'heure. Il y a P comme vous allez et puis il y a le salaire que vous allez avoir un test de barre oblique, qui est celui sur lequel je suis, ce qui est comme la moitié du prix sur le P normal comme vous allez. J' ai donc fourni les informations de ma carte lorsque je me suis inscrit par. Après avoir fait cela, vous pouvez cliquer sur Suivant et accepter si vous n'avez pas de carte ou si vous n'êtes pas à l'aise avec fournir les détails de votre voiture que vous voulez dire que vous pouvez arrêter ici. C' est très bien. Plus tard, quand nous déployons l'orteil, le jury peut toujours voir à quoi cela ressemblera et voir à quel point il est bénéfique pour vous. Hum, mais si vous le souhaitez, alors vous pouvez aller de l'avant et fournir vos informations sur. Ensuite, s'en tenir à l'accord et accepter les termes de l'accord sur. Ensuite, vous seriez sur la plateforme. Donc, je vais juste me connecter à mon compte réel, ma citation sans citation icône réelle, celle que j'utilise sur vous montrer à quoi ressemble votre apparence. Eh bien, en fait, je viens juste d'entrer dans le portail en tant que point com, en espérant qu'il lui demanderait de se connecter. Mais j'ai fait ça. Andi vient de rediriger, pensant le même compte que je viens de mettre en place vers Williams à Gmail dot com toe ce tableau de bord. Donc, c'est le comme votre tableau de bord. Au niveau très basique. Ils ont un panneau sur le côté ici liste ordre. Un certain nombre de services que vous pouvez obtenir. Mais alors parce que nous n'avons pas terminé une configuration ou parce que je n'ai pas terminé la configuration, au moins quand je vais aux abonnements, je vais voir que je n'ai pas d'abonnement, non ? Donc, comme je voyais l'abonnement est tenir la re en tant que client avec les Européens, Vous allez entreprise sont quelque chose. Donc, si je décide plus tard que je veux fournir mes informations, je peux simplement revenir et cliquer. Ajouter, puis cela me apportera orteil compléter la procédure d'approbation où j'ai effectivement eu l' abonnement. Donc c'est un essai gratuit sur qui étaient assis. Sachez juste que vous avez payé pendant que vous allez. Vous disposez d'un support pour les développeurs. Oui, comme tu en as pas mal. D' accord. Donc j'irais probablement avec la paye comme vous allez, mais c'est tout ce qui est dans les étapes, inscription pour que vous êtes sur. Autrement dit, si vous voulez procéder avec cela. Mais pour ce détour, vraiment et vraiment, je voulais juste que tu ailles jusqu'au tableau de bord pour voir que c'est à quoi ressemble un zéro. C' est donc votre portail de gestion de foule. Vous pouvez configurer vos machines virtuelles, mais pour ce cours sera à la recherche de services. 68. Publier des services SQL Azure et Azure: Hé, les gars, bienvenue. Nous allons continuer à apprendre à propos de Microsoft Azure sur l'application Web d'hébergement . Vous auriez donc déjà configuré votre compte sur. Est-ce que vous êtes probablement en train de voir. Vous ne voyez probablement pas ce que je vois en ce moment, mais c'est mon compte. Donc c'est mon payé un cônes. C' est mes informations de carte de crédit. Je suis sur l'abonnement pour payer que vous allez test de développement slash. Bon, donc fondamentalement celle-là. Andi, je l'ai trouvé rapidement. Celui-ci, Al Ozio. C' est une pièce de rechange. Vous auriez pu réduire son « Désolé ». Donc celui-là, euh c'est beaucoup moins cher que le salaire normal que vous continuez. La prémisse derrière c'est que, vous savez, vous voulez juste tester les choses que vous développez. Vous ne voulez pas payer le plein argent pour ces services. Donc, ils ont un peu réduit certains prix pour vous. Andi, c'est un peu plus flexible pour un individu de se débrouiller avec ses parents. Ils peuvent toujours aller de l'avant et cliquer. Activez, et puis vous passez par un peu, vous savez, paperasse de l'oncle. Ensuite, ils vous activent en tant que environnements de test de slash de dev, non ? Non, on a tous les services. Vous pouvez obtenir des machines virtuelles, des services, bases de données SQL et l'outil qui étaient très, très intéressé par serait les services up et les bases de données SQL. Machines virtuelles. Vous pouvez avoir des machines virtuelles. Hum, mais alors, vous savez, si vous déployez orteil en fonction du modèle que vous avez ou que vous voulez, vous voudrez peut-être déployer une machine virtuelle qui sperme qu'ils ont déjà un peu enfermé dans votre VP et l'ensemble du réseau de votre entreprise. Et c'est probablement à des fins d'assurance ou votre déploiement d'une machine virtuelle qui sera ouverte au public. Donc, vous avez votre propre hébergement. Il a installé une machine virtuelle qu'il a là. Il ne veut pas dire et le mettre au public. Je pisse sur la machine virtuelle. Andi, c'est la diffusion sur Internet, et tu es responsable de ça, ou tu ne veux pas les tracas d'avoir à mettre les yeux et à installer une machine virtuelle. Vous voulez juste construire, le mettre sur un zéro et être en mesure d'y accéder via Internet. Alors peut-être que le service vers le haut est le meilleur pour vous. Onda SQL service de base de données Donc c'est ce que nous allons explorer Andi, donc je vais juste minimiser cet angle de retour à Visual Studio sur. Ensuite, j'ai mon profil publié, donc ce profil publié est mon profil de père. C' est ce que j'ai utilisé quand je le faisais localement. Mais maintenant, nous voulons avoir un profil qui nous pousse vers les services vers le haut dans le cloud. Donc, je vais juste aller de l'avant et cliquer sur Nouveau sur. Ils allaient sélectionner créer un nouveau service jusqu'à ce que les services sélectionnés et créer des nouvelles déjà sélectionnés sur. Je vais juste passer à avancé parce que je suis sûr qu'il y a des choses ici que je dois configurer, donc je n'ai pas besoin de configurer la version que nous avons publiée options sur vous pouvez supprimer l'ajout la destination qui est les bases de données de fichiers sur le contexte de données en cours de découverte. Mais nous n'avons pas besoin de changer quoi que ce soit ici, donc vous pouvez simplement aller de l'avant et cliquer, créer un profil sur. Ensuite, il le mènera à un point où il vous demande de signer orteil dans votre unité si que créer un ou se connecter. Donc, j'ai vraiment un signe dans quelque lointain un sélecteur sur alors c'est une signature simple . Donc, vous allez juste de l'avant et mettez votre comme vos cônes sur. Une fois que vous avez fait cela, de nouvelles options s'ouvrent pour vous. Ça peut prendre un certain temps parce que, tu sais, c'est connecté. Il va dans le nuage. Je veux dire, tu sais, mais, tu sais, je n'ai pas à choisir le nôtre. Nous pouvons juste attendre de dire à craindre dans le mal que vous émettez un message d'erreur. Mais une fois que vous voyez quelque chose comme ça, vous savez que vous êtes au bon endroit, alors ils vous demandent de lui donner un nom. Tu peux changer ça si tu veux. Quel abonnement souhaitez-vous publier sous, Um, Um, quel est le groupe de ressources ? Donc, en fonction de mon emplacement, je choisirais d'avoir un groupe de ressources. Quoi ? Donc, vous pouvez toujours en créer un nouveau ? Je pense qu'ils vous donneraient un dans les deux sens afin que nous puissions en créer un nouveau sur donnerto groupe de ressources quelque part pour l'appeler laisser la gestion sur les groupes de ressources sont comme les conteneurs dans le CLO pour dire, comme toutes ces ressources sont dans ce groupe de ressources travaille ensemble, n'est-ce pas ? C' est essentiellement ce qu'est un groupe de ressources. Donc, comme un nom de groupe. Donc je l'appelle laisser la direction le plan d'hébergement ? Non, ils ont un plan d'hébergement gratuit. Donc, si vous regardez la taille, vous voyez que ce sont les différentes tailles, mais ils ont libre. Donc, à des fins éducatives, nous allons sélectionner gratuitement si vous l'êtes. En fait, nous cherchons à rendre public quelque chose. Vous voulez probablement en choisir un, euh et ensuite en fonction de votre trafic, vous pouvez augmenter notre pas hors cours dans une séance d'entreprise, vous savez, vous le feriez après l'est avec votre responsable I t, Juste lequel. Mais je vais aller avec libre l'emplacement, toujours en essayant de choisir un endroit qui est près de vous. Donc basé sur mon emplacement à l'est de nous, nos années de l'Est à son meilleur pour moi, non ? Parce qu'étant les Caraïbes, c'est celui qui est généralement recommandé sur ce est un endroit très stable sur le chemin sur le plan d'hébergement, je n'ai pas besoin de changer quoi que ce soit là. Donc ces noms ici, comme le plan d'hébergement dans le nom hors du haut vous changez ceux selon votre style, votre convention. Vous n'avez pas besoin d'utiliser la valeur par défaut, mais vous n'avez pas besoin de changer la valeur par défaut, puis je clique sur OK, puis sur des services supplémentaires. J' ai donc besoin de services supplémentaires sous la forme de base de données SQL parce que les services vers le haut d'un côté sur littéralement tout ce qu'il fait est d'héberger l'application Web. n'y a pas de base de données qui sera sur le service en amont. J' ai besoin d'un jour. Ce sera un service. Le cheval, ma base de données. Donc celui-ci coûte, bien que je ne pense pas qu'il y ait une version gratuite pour la base de données, mais ensuite le nom de la base de données. Vous pouvez lui donner le nom que je crois. Eh bien, c'est vraiment l'art. Laissez sur la gestion du score. On va te donner le même nom. Laissez sur la gestion du score. On a besoin d'un serveur. Donc, le service de base de données est comme si vous créez un serveur virtuel, puis vous pouvez avoir servi des bases de données sur le port du serveur dis. La réalité est que vous n'avez pas besoin d'entrer et d'administrer la même façon que vous le faites lorsque vous l'installez sur votre machine, n'est-ce  ? Certains sont sortis pour créer un nouveau serveur parce que je n'en ai pas sous mon abonnement actuel , quelqu'un pour créer un nouveau serveur et ensuite ils demandent quel est le nom du serveur ? Bon, donc mon nom de serveur je vais juste l'appeler, um SQL Server. Dash mon nom. droite. Donc, c'est un serveur. L' emplacement. Je remets le pied à l'est de nous une fois de plus. Onda après avoir mis en utilisant le mot de passe humain Onda nom d'utilisateur ne peut pas être générique comme, admettez nos administrateurs. J' utilise juste mon prénom. Ensuite, j'utilise juste le mot de passe par défaut, qui est p à San ssw. Déjà gagné la même posture que nous avons utilisé tout au long de l'application. Mais, vous savez, vous voulez utiliser votre mot de passe approprié. Donc offre cette étape est si il n'y a pas de serveur existant, plus sûr faire avec une entreprise qui a déjà un comme votre compte. Vous n'avez probablement pas à franchir cette étape en tant qu'individu. C' est probablement le cas. Donc c'est le serveur, non ? Donc, je vais juste provisionner le serveur alors une fois que le serveur est provisionné, sachant quand m'assurer que mon nom de base de données est laissé sur la gestion des partitions. Conformément au nom de la base de données que nous utilisons tout ce temps, il remplira les détails qu'ils utilisent dans le mot de passe de la connexion Le nom de chaîne est connexion par défaut. Donc, c'est comme dire que je sais que je devrais remplacer la connexion existante appelée avant connexion, qui en ce moment regarde un BB local, comme à ce stade, va commencer à regarder le nouveau serveur avec le informations d'identification nécessaires. Droite, Alors cliquez sur OK, aan den. Donc, en bas, à droite. Il vous montre qu'il met en place le bureau. UAL comme base de données SQL. Laissez les gestionnaires sur le serveur qui n'étaient que le provisionnement à l'aide de ce plan d'hébergement avec ce service up. D' accord, on. On n'a vraiment besoin de rien d'autre. Tu peux. Je veux dire, l'application analytique à l'intérieur, ce qui vous donnera le zeste de journal en temps réel. Que se passe-t-il ? Vous pouvez ajouter que je pense que vous pourriez coûter quelque part de l'argent. J' essaie donc de réduire les coûts autant que possible. Mais alors vous pouvez aller de l'avant et cliquer sur Créer. Donc, une fois que vous cliquez sur, créé va commencer le provisioning. Toutes les ressources sont nécessaires afin qu'ils puissent lui donner un peu de temps. D' accord. Et une fois que les exercices ne le font pas, nous aurons un site. Où d'autre ? Oh, c' est la déformation qu'on a laissée pour l'UPF. Tu vois, c'était le nom. Je n'ai pas changé de la valeur par défaut, donc j'espère que tu n'es pas tombé sur mes fesses. Exemple sur que vous changez d'années. Quoi qu'il en soit, lorsque nous cliquons sur le lien dans un leader toe cette page de destination donc il nous fait savoir que l'observateur est ouvert en cours d'exécution. Ensuite, la prochaine étape est de déployer au tribunal. Bon, Donc nous devons aller de l'avant et cliquer sur Publier. Donc, en cliquant sur Publier, il va empaqueter la dépendance est et les pousser leurs enfants vers le service pour nous. Donc, après publication, nous recevons nos 500 erreurs. Donc ça me dit juste qu'il ya certaines choses mal, pas certaines choses à noter serait que nous n'avons pas accès à un système de pompiers pour aller regarder les journaux comme nous l'avons fait la dernière fois quand nous sommes dans, je s si je passe sur les pieds comme vous êtes sur la recherche de services que je verrai mon service haut ici et il est en cours d'exécution. Je peux le prendre. Donc, lorsque nous le sélectionnons, nous examinons notre service de démarrage et tous les diagnostics qui s'y déroulent. Nous pouvons jeter un oeil à la configuration qui a été montre que la chaîne fiqh continent. Donc je soupçonne que le spectacle comprend Avancé sur. Je soupçonne juste que la flèche est quelque part ici. Donc, c'est ce que notre connexion par défaut ressemble pas, droit, Onda, Nous pouvons obtenir des détails que toute la semaine et connecter le serveur de magasin. Il est donc à la recherche du catalogue initial. Laissez la gestion Trans se connecter avec cet utilisateur Andi avec ce mot de passe. Mais je soupçonne que cette base de données n'existe tout simplement pas sur le serveur menant à plus de 500 terre. Donc je vais essayer d'accéder à cette base de données. Justo, voir si mon soupçon est que le chariot est fou. Donc, ce que je vais faire est d'essayer d'entrer dans le serveur et je vais utiliser un serveur de l'école Dash. C' est vrai que quoi ? Cette adresse entière comme nom du serveur. droite. Soyez la source sur. Ensuite, je vais utiliser cet utilisateur. Je suis sur cette posture. Bientôt, tu viens de sortir mon studio de gestion. Donc, au point de publier, vous êtes sans doute aux pieds. Vous savez, si vous le faites vous-même, vous allez devoir vous habituer à connaître toutes ces pièces mobiles et à apprécier comment elles fonctionnent ensemble. Donc je vais copier ça. Et c'est mon nom de serveur Andi. Je peux vous dire hors de la mais que comme vous auriez limité les adresses I p que Chan amusant à la base de données. Donc, je pense que quand j'ai essayé de se connecter est soit allé me refuser ou me faire savoir que je peux avoir la permission. Donc, je clique sur Connect. On y va. Votre adresse client i p n'a pas accès au serveur. Connectez-vous à créer une nouvelle règle de pare-feu pour que je puisse me connecter ici, créer une règle de pare-feu pour cette robe d'idée publique que j'ai. Mais la réalité est que sur la base du I S P que je p répondre à mon changement. Donc, ce que je vais faire à la place est de retourner les pieds comme vous allez aller sur le bout de mon serveur de base de données . Donc je pourrais revenir à tous les services à ce sujet. Je suis allé faire apparaître mes bases de données SQL sur Si vous ne voyez pas tout à fait les choses comme je les vois, vous pouvez toujours utiliser les pilules. Donc, à gauche et vous verrez tous les services énumérés là-bas. C c bases de données SQL jusqu'aux services de la même manière. Bon, donc je vais aller de l'avant, cliquer sur le serveur. Donc bien, c'est en fait les abeilles de données. D' accord, donc la base de données existe. Andi, je vais de la vue d'ensemble Goto Ah, serveur. Donc, c'est la base de données elle-même. Mais je veux aller sur le serveur parce que je veux libérer certains des règles de pare-feu, donc je vais être très lâche sur eux. On va juste aller aux pieds. Allô ? Tout ce que je p est juste. Donc, je peux descendre les pare-feu orteils et les réseaux virtuels sur. Ensuite, ce que je vais faire est de configurer la règle. Donc, vous voyez, il refuse l'accès au réseau public. Non, sur. Ensuite, vous pouvez voir un faible services pour accéder au serveur. Oui ou non. Mais je vais tout dire pour le nom de la règle, et ensuite je vais juste mettre en lecture complète. Alors que 0.0 donc 0.0 point 0.0 signifiant de n'importe quelle adresse i p. Encore le plus grand de la plus petite, c'est un 255.55 que 255 Donc, cela est jamais atteindre chaque adresse I P qui est concevable, au moins en ce moment tombe entre les zéros sur cinq cinq cinq. Donc on peut aller de l'avant et sauver ça. Et une fois que cette règle est dans, je devrais être capable d'essayer de me connecter à nouveau sur effectivement obtenir l'accès. On y va. Donc, nous voyons ici que nous pouvons explorer la base de données et je vois la gestion des congés croire que la direction n'a pas de tables, donc la base de données est créée, mais elle s'est stabilisée. Bon, on va faire un petit pas en arrière. Nous avons fait de bons progrès. Nous voyons que nous avons fourni, ou comme service Europe que nous avons, ou comme votre base de données. Mais nous avons un peu facile avec la date des abeilles et le contenu de la base de données. Donc, je vais prendre du recul, et nous allons changer certaines configurations ici dans notre hotte ou des projets locaux afin que la prochaine fois que nous publions, nous n'aurons plus certains inconvénients. D' accord, donc la première chose que je vais faire est de modifier ma colère. Est-ce que GS sur le fichier et je vais réellement orteil créer une autre chaîne de connexion. Il s'agit donc d'une connexion par défaut. Je vais appeler celui-là comme votre connexion. Très bien, donc pour ici, nous allons utiliser la chaîne de connexion sur la chaîne de connexion utilisera sera dans notre port. Revenez également à la base de données. Alors laissez la direction. On verra des chaînes de connexion là-bas. Donc, prendre des chaînes de connexion amène le pilote .net idéal. Bon, pour qu'on puisse rester ce texte, compris ? Pour copier. C' est un presse-papiers. Alors je reviendrai à ma colère. Est-ce que Jason sur ma chaîne de connexion zéro va être cette chaîne. Bon, donc je suis juste le remplacer sur le mot de passe n'était pas leurs employés dans le texte. Donc tu dois mettre ça. D' accord, sur le Yeah. Je m'assure que tout va bien. D' accord. Bien. D' accord. C' est donc notre connexion String toe azur. Quand modifier le début de s nazis pour le rendre un peu plus sélectif. Donc, en ce moment, cela dit que lorsque l'application démarre, elle devrait utiliser la chaîne de connexion D pour la connexion, et c'est bien. C' est pour ça que nous sommes locaux. Mais ensuite, je vais parler un peu des deux. Je vais voir qu'un fils allait couper ça et je veux voir si et nous avons une variable ici appelée Environnement. Et pour utiliser l'environnement, vous devez inclure les environnements sécurisés du système point obtenir la variable d'environnement sur, puis à l'intérieur que nous avons juste les guillemets et travailler sur l'ISS être noyau net sur l'environnement de score. Donc, je vais aussi expliquer ce que tout cela signifie. Donc, je vais dans la variable et nous voyons Est-ce qu'il a la valeur sur Nous cherchons le fils de lait pro. Bon, donc si on est dans l'environnement de production qu'on veut utiliser une autre chose, on veut utiliser autre chose, et je vais remettre la cour qu'on vient d'attraper dans la section I. Donc, si nous ne sommes pas en production et que nous utilisons plus avant les paramètres de loca, Mais si nous sommes en production que je ne veux pas utiliser la connexion de clic par défaut, je veux utiliser ma connexion A zéro. Donc vous voyez, euh, comme votre connexion pour notre production. D' accord, après ça, je vais mettre une ligne de plus pour dire les services. Désolé, les services dot Construire le fournisseur de services sur. Ensuite, je veux dire que mettre le service sur, puis obtenir le service. Ambassade dans le contexte de base de données d'application. Très bien, prenez les vieux espaces traditionnels, puis ouvrez et fermez les guillemets, les points. Et je pense que j'ai sur l'air OFI devine que. Et puis nous voyons des points de base théâtrale mes notes. Donc, cette ligne hors cour devrait exécuter la migration dans tous les contextes qui sont, vous savez, bases de données pouvant être utilisées. Maintenant, nous allons nous concentrer sur cette variable d'environnement. Très bien, Donc quand nous parlons de variables d'environnement et vous voyez, j'ai à propos de l'explorateur rempli ici donc vous pouvez utiliser les experts en code de connexion, um, à certains objets, mais alors ils sont tous genre de retour vers le port de son Comprendre pour fermer cela. Ensuite, je vais orteil, hum, clic droit sur le projet. Allez dans les propriétés sur alors. Le premier âge a des variables d'environnement sur son environnement de base net de la DGCSC. C' était le nom qu'on a tapé, non ? SB net core sur l'environnement de score sur la valeur que nous recherchons pour sa production. Cependant, la valeur ici est développements comprendre ? Pâte d'orteil juste là. Donc je me transforme en production, accord. Et à partir d'ici, vous pouvez avoir d'autres variables d'environnement que vous avez besoin. Mais je vais faire un test ici, donc je vais courir localement, accord ? Andi Art. Donc, ce que ce test va prouver est que notre migration vient de se produire contre la comme votre base de données SQL. Donc, nous avons juste regardé comme leur base de données SQL que vous avez vu qu'il était vide. D' accord, sur ce que nous avons fait, c'était de structurer l'environnement. Variable à la production introduira également de nouvelles connexions à travers lesquelles ils utilisent comme votre connexion sur au démarrage. Nous avons dit que Eh bien, une fois que vous démarrez, alors s'il vous plaît exécuter les migrations contre notre contexte de base de données d'application, ce qui serait évidemment contre la chaîne de connexion sélectionnée. Donc, puisque ma variable d'environnement n'est pas définie à la production, la prémisse est qu'une fois que je clique sur démarrer, l'application démarrera localement, mais elle se connectera aux vêtements SQL Server sur le fait que l'art Donc nous passons un obstacle avec elle apparaissant effectivement le jour. Je vais le faire. Alors voici notre palpitant localement. Donc c'est bien. Jusqu' à présent, je vais retourner à mon studio de gestion et me rafraîchir là-bas. Vous voyez ? Toutes les tables qui n'étaient pas là avant. Donc, c'est notre comme votre serveur SQL. Je sais que toutes les tables ne sont pas là. Donc, cette configuration est essentiellement d'assurer qu'une fois que nous faisons une publication sur l'application est sur le point de s'exécuter, il va s'assurer de faire la migration des abeilles de données de destination comme. Eh bien, ça ne le faisait pas au départ, non ? Donc, sachez que j'ai ce petit lot de choses hors du chemin. Et non, je sais que ma base de données existe. Oui, nous sommes en mesure de nous connecter à l'aide de l'application. Oui. Je vais juste faire une autre publication juste pour m'assurer que tout va bien. Maintenant, une fois que nous publions à nouveau, nous verrons notre écran de connexion à venir et en fonction de l'expérience précédente, c'est toujours une bonne chose de voir sur l'écran de connexion afin que je puisse juste essayer de me connecter Andi, assurer qu'il parle à la base de données des tribunaux et tout ce qui se passe alors je me connecte. Ensuite, nous voyons que notre utilisateur administrateur fonctionne. Très bien, donc je ne suis que des tests sur Internet juste pour m'assurer qu'on parle à la bonne base de données, juste, vous savez, base de combinaison. Je suis allé laisser des types. Je vais créer un nouveau disque sur celui-ci va être malade. Laissez Onda 10 jours. Allez-y pour créer Alright, il est créé. Je vais retourner à mon studio de gestion. Je vais sélectionner l'étoile du type de congé. Donc, c'est le serveur SQL dans les vêtements. Juste été pour sélectionner le top 1000 Onda Uh, on y va. Congé de maladie est là créé Tout droit, donc nous venons de déployer notre SP donna core application toe que votre Ce n'est pas votre formation . C' est juste pour te faire passer. Um il a peut-être eu son, vous savez à sen tours, mais il est juste une question de configurations et une compréhension tenir les petites choses fonctionnent ensemble pour vous donner le résultat final de l'application hébergée orteil parler. Ah base de données hébergée. Tout est facile, Nazir. Nous avons examiné comment nous pouvons nous connecter à l'comme votre instance hors de la base de données, indépendamment de l'utilisation notre studio de gestion sur. Nous voyons également que nous pouvons le faire à partir de notre studio visuel en utilisant ou Flowed Explorer. Si je vais voir, vous devriez voir l'Explorateur de code. Là, nous allons et vous pouvez voir votre ressource est qui sont dans le code de la même manière. Hum, nous avons aussi regardé Toto Auto, et les semis de la base de données ne voient pas la migration hors de la base de données en utilisant cette ligne dans notre départ sur CS, qui juste, vous savez, juste avant ingénieurs la date de cette basée sur toutes les migrations, c'est là que nous avons également regardé le plaisir. Nous pouvons avoir plusieurs chaînes de connexion et en utilisant une variable d'environnement, nous pouvons, vous savez à l'exécution déterminer lequel nous voulons utiliser. Donc, si c'est que je veux recommencer à utiliser le développement, je peux juste revenir dans le clic droit de la propriété, aller dans les propriétés puis De là, je peux changer la variable d'environnement de la production au développement ou quoi que ce soit que je voulais être à ce moment 69. Configurer des pipeline automatisé à l'installation automatisée avec GitHub et les DevOps Azure: Hé les gars, bienvenue à ce stade étaient des développeurs endurcis par la bataille, et nous avons plongé nos orteils dans la piscine d'un peu d'administration de serveur et d'administration de bases de données informatiques . Mais je suis sûr que nous avons fait assez pour régler ou serveur sur notre machine locale ainsi que sur notre base de données. Ou nous avons déployé sur le code et nous avons ou zéro le service fonctionnant parallèlement au service SQL en cours d'exécution. Non, j'ai peut-être fait allusion à plusieurs reprises, surtout quand nous parlions de ce déploiement IIS, qu'il existe en fait une façon beaucoup plus transparente de le faire. Ensuite, vous savez, publier et puis le prendre et copier dans Toto le serveur et ainsi de suite. La réalité est que nous n'avons peut-être pas ce genre d'accès à toutes ces machines. Si vous êtes un développeur senior, vous ne voulez probablement pas nous développer pour devoir passer par cela à chaque fois. Mais vous voulez un moyen plus transparent de vous assurer que c'est la qualité appelée qui est publiée à chaque fois. Donc, nous avions utilisé get home comme notre fournisseur de contrôle de source sur Get Hope fournit ce qu'ils appellent des actions que vous connaissez, mettre dans certaines actions de construction et d'automatisation, une partie de celui-ci dans dot net core ab sport. À mon avis et à mon expérience, ghetto est plus orienté vers le Seigneur et par des choses amusantes pas nécessairement documenter les choses, mais Microsoft a comme votre développement, ce qui nous donne accès à un certain nombre d'outils qui sont incroyables. Hum, pour automatiser la construction sur la publication d'applications dot net pour que vous puissiez y arriver en allant jusqu'au bout . Zero point Microsoft dot com Sur aller aux produits, services et que vos développeurs ups et vous pouvez voir que vous pouvez commencer gratuitement, commencer pour vous avec get top afin que vous puissiez envoyer avec votre compte ghetto. Mais si à ce stade vous vous êtes déjà inscrit avec Microsoft Azure, alors vous pouvez aller de l'avant et utiliser le compte vie Toe enregistrer sur ce site ou bien, techniquement, vous auriez déjà sur nos téléphones sur. Encore une fois, vous pouvez commencer gratuitement en tant qu'individu. C' est génial. C' est comme obtenir un travail, mais avec un peu plus à elle parce qu'ils ont le moteur TFS. Si vous avez déjà utilisé Team foundation server. Sinon, c'est bon. C' est juste un outil très puissant qu'ils avaient depuis des années. Ils l'ont signalé sur le Web. Ils vous donnent tous des outils de planification d'emploi. Vous voyez, je vois que le Seo est ici, CIA et voir, c'est l'intégration continue ou le développement continu sur des déploiements désolés, accord. Tous ces outils sont intégrés. Vous pouvez avoir autant de repos libre que vous voulez. Ce qu'ils seront privés se lève vous donne autant de publics gratuits. Je pense que non, les particuliers sont libres. En outre, il peut déployer des plans de test. Si vous effectuez des tests unitaires sur lesquels vous pouvez être déployé, ils peuvent automatiser l'ensemble de ce que nous appelons le pipeline de libération. C' est ce qu'on va faire. Nous allons explorer de faire un pipeline de publication sur le dessus, partir de l'application ou du site Web que nous avons déjà construit. D' accord ? Non, je suis basculé sur le serveur Web. Et juste comme un rappel rapide, nous avons notre site Web déployé à notre avec notre application orteil déployé sur I i i s site Web appelé gestion des congés sur. Nous obtenons par l'adresse, laisser la gestion de ce point internet com sur justo nous rafraîchir sur la configuration comme, nous avons le pool d'applications dédié à l'application Web sur. Nous avons également la gestion des congés du site Web. Donc non, ce que nous devons faire, c'est mettre en place un pipeline de libération. Tels qui ne sont pas Ceci est un serveur. Il peut s'agir d'un serveur sur votre machine locale. Sont une fois de plus, il pourrait être les vêtements, mais il est un serveur dédié sur elle héberge notre application. Non, nous allons faire est de mettre en place une version par un plan à partir d'un zéro se développe qui est dans le nuage telle sorte que quand nous, vous savez, construisons quelque chose. Peut-être que vous avez tous les deux une solution et qu'on vérifie. Il fait une construction automatique. Assurez-vous que nous n'avons rien cassé. Ensuite, il effectuera automatiquement les déploiements. Donc, je vais le faire manuellement, puis nous allons regarder comment nous pouvons l'automatiser sont basés sur, comme un calendrier de construction nocturne ou un calendrier de sortie nocturne afin que, vous savez, vous faites les deux correctifs aujourd'hui vous l'examinez sur. Ensuite, demain matin, il est dans le système sans que vous ayez à faire beaucoup plus encore une fois , pour commencer, vous pouvez vous connecter avec votre comme votre compte contraire vivant ou vous pouvez simplement continuer avec leur compte ghetto. Donc depuis qu'on a utilisé Levez-vous, je vais aller de l'avant avec le ghetto de retour. Je vais utiliser mon comme cônes, mais le mien est déjà installé et il a été utilisé. Je vais juste le faire à partir des bases pour que nous soyons dans cette lutte particulière ensemble. Donc j'utilise juste mon compte ghetto. Je vais de l'avant et je me connecte. Alors ça va me faire savoir que j'ai déjà un compte. Je continue juste vers le bas. Ça va juste confirmer que je veux lier mes identifiants sur Dennis m'éditant. Sachez que mes références ont été ajoutées au marché. Les informations d'identification « get off » ont été ajoutées à mon compte Microsoft la prochaine fois que j'ai signé et je peux choisir d'utiliser le co-sponsorisé Microsoft existant ou simplement de signer comme je l'envoie pour obtenir de l'espoir. Donc, je ne dis pas avoir et se déplacer tout droit, et je devais juste fournir quelques détails et cliquer sur le suivant, et je suis là. Je suis à l'intérieur de mon comme votre développement. Donc, j'ai eu un étudiant déjà qui un été je me suis fait à son organisation pour un projet qu' il a fait vraiment bon projet aussi. Mais c'est pour ça que je vois ça là-bas. Donc tu ne le verras peut-être pas. Ce que vous voulez faire est d'aller et de cliquer sur Nouvelle organisation, puis l'organisation est comme créer un T. Droite. Donc tu veux juste faire ça ? On peut opter. Ah a annulé d'obtenir des articles promotionnels de leur part. Vous choisissez votre que vous les utilisez. Certains étaient dissidents avec mes bêtes. Utilisez le nom et je vais mettre mes projets à héberger. Au centre de nous, c'est le seul puits, c'est le meilleur pour moi. Donc je laisse le centre de nous, mais ils me font savoir que c'est déjà pris, donc probablement juste ajouter quelque chose et continuer. D' accord. Et puis nous sommes ici dans notre organisation. Donc le nom de l'organisation est Trevor Williams un ? Non. De là, je vais devoir créer un nom de projet. Donc le nom du projet est la gestion des congés, et je vais le nommer. La même chose est appelée. Descendre congé Dash Management. Je peux choisir ce que je voulais être public ou privé, donc je veux laisser cette unité, Private andan, Private andan, Je vais aller de l'avant et crée le projet sur. Ensuite, nous avons un nouveau projet de sorte que vous pouvez juste prendre un moment et regarder. Vous voyez, vous avez plus de choses que d'obtenir UB vous montre au moins à la valeur nominale. Si vous survolez les planches, vous voyez travailler. Je tente que vous pouvez faire des sprints, backlogs tout ici rapports montrent vos fichiers vos commentaires. À la fin de la journée, les mots sont à peu près les mêmes parce que c'est aussi en utilisant je reçois le moteur afin de sortir de son basé sur get que votre développe Leur moteur primaire est également obtenir Donc vous allez voir beaucoup mots sur les phrases dans commun entre les deux. Sachez ce que je veux faire est de lier ce projet de particules à mon projet get top. Bon, donc c'est un projet vide. Je ne veux pas que tu y ailles, Andi, recommence à Andi, le ressentir. Tu vois, c'est vide ici, non ? Donc, je ne veux pas oh avoir des projets séparés orteils. Je veux que ce projet soit lié au projet get up sur La grande chose à propos de Microsoft posséder les deux est qu'ils ont fait que les paramètres de second projet Goto très possibles sur, puis sélectionnez les connexions ghetto dans le menu lcz boards, le secret des connexions allumées. Puis ils disent connecteur, devenir occulte, quelqu'un pour aller de l'avant et connecter mes Collins parce que je suis déjà connecté comme se lever, ça va les orteils. Faites-moi savoir que j'ai juste besoin d'autoriser ça à un centime. Je vais juste aller aux pieds jusqu'au So Ok, je suppose que je vais laisser ça pour une autre fois alors. Donc, je vais juste de l'avant et autoriser comme vos conseils sur. Ensuite, il fera sa magie sur. Ensuite, allez chercher les trucs entièrement tous mes dépôts. Donc certains de nos esprits hors d'eux. J' ai été invité orteil. Mais le fait est que j'ai accès à tous mes dépôts. Donc, je vais aller avec la gestion des congés, puis cliquez sur Enregistrer. Ensuite, je vais devoir aller de l'avant et approuver, installer et autoriser à nouveau. Donc tous ces contrôles sont juste assurez-vous que vous connaissez exactement les risques et ce que vous faites , afin que vous puissiez prendre le temps de lire si vous le souhaitez. Mais je suis juste en train d'avancer. Bon, alors sachez que nous avons établi cette connexion. Ce que cela nous permet de faire est gentil, gérer nos tâches et les problèmes de développe que votre développement relatif vers obtenir sur positif. Donc, c'est un lien puissant sur ce que notre objectif est une fois de plus de mettre en place ah, construire un pipeline et libérer le plan d'incendie de sorte que lorsque nous vérifions pour obtenir de l'espoir, il ne sera pas, comme votre stupide aussi prendre automatiquement. Construis, Andi, tu sais, vérifié avant de le laisser aller de l'avant. Donc, à partir d'ici, ce que je vais faire est d'aller sur les pipelines que c'est une fusée, comprendre pour cliquer dessus, puis c'est Invitations sont toujours créer ou les premiers pipelines comprendre pour créer un pipeline sur. Ensuite, cela me permet de sélectionner quel type de pipeline aimerais-je ? Donc si la cour était résidents que je ferais sur un zéro repos obtenir. Mais si vous regardez à l'intérieur comme une fois de plus, il n'y a rien là. Mais les fichiers sont finis en get hope. Donc, une fois de plus créer un pipeline sur. Je vais choisir la guitare alors je choisis. Levez-vous, puis va orteil m'invite à sélectionner le dépôt. Donc, je vais juste sélectionner mon dépôt de gestion des congés, un intéressant fourni A qui est avoir les autorisations sur Puis je m'ai prêté pour approuver une fois de plus. Très bien, je sais que ça m'avertit que j'utilise un dépôt public, mais ce n'est pas un projet public. Alors, dégage de ce public. Mais c'est privé. Donc je suppose qu'il m'incite à dire, Hey, assurez-vous juste que tous les deux ont le même niveau de visibilité hors cours dans une organisation. Off assis votre code Probablement ce n'était pas probablement votre cordon ne serait pas et ne devrait pas être public. D' accord, quoi ? Je vais juste passer celui-ci du privé au public juste pour que je puisse obtenir que ça commence obtenir une promesse. J' ai juste cliqué sur les paramètres du projet qui ont fait apparaître les détails du projet et j'ai tout changé de privé au public sur je vais économiser afin que je puisse continuer afin que je puisse juste enlever cela. Je viens juste de faire le changement. Je peux enlever l'avertissement sur DSO je vais aller de l'avant et sélectionner SB net dot net core et va créer ce que nous appelons y fichier gmo Mellor. Donc, si vous regardez le fichier, c'est que vous remarquez que vous avez comme, un BCE et ensuite vous avez, genre, tiret sur certains. C' est essentiellement un joli fichier de configuration propre. C' est très populaire. Ils les utilisent chez le médecin. Il est difficile pour moi de ne pas décrire la mise en page, mais c'est une mise en page vraiment propre sur. Si vous faites juste attention, vous pouvez voir qu'il fait certaines choses à certaines étapes. Donc, je veux ajouter une étape de plus à cela. Nous sommes à la fin de toutes ces tâches, et vous pouvez ajouter d'autres tâches. Vous pouvez ajouter plus d'étapes si vous le souhaitez, car si vous avez, comme les tests unitaires à faire avant, vous pouvez approuver la construction que vous ne souhaitez l'ajouter à une étape pour vous assurer que cela se produit et ainsi suite. Mais je veux ajouter une tâche où je lui dis de publier sur des artefacts. Je viens de dire la tâche Dash deux-points publier des artefacts Build au signe un. Très bien, donc cela signifie fondamentalement qu'après avoir fait une construction réussie, je veux que vous publiez ceci, construisez notre ensemble le paquet avec ce nouveau constructeur et tous les fichiers publiés, sorte que épargne-moi les ennuis. Retournez à Visual Studio sur, puis faites un clic droit et un clic droit, publiez et placez-le quelque part. Et ça et ça, et le centre. Droit ? Donc, je vais juste aller aux pieds. Vas-y, Andi, sauve et fuis. Cela dit un sauve slick et courir sur. Alors ça va juste me donner un message de commit. Et je peux juste dire, voir, vendeur sur, une fois de plus, va avoir besoin d'un futile créer le pipeline. Et une fois que cela est en cours, vous voyez que vous pouvez aller de l'avant et quitter le travail. Ensuite, vous voyez l'invite de commande de l'école pour qu'on puisse s'asseoir et regarder le temps et vous voyez toute la cour arriver. Mais en attendant, en fait, je vais changer la vapeur parce que je n'aime pas que le blanc change ça dans le champ sombre. Très bien, c'est simple. Donc, vous allez juste au petit lui étant ici avec l'équipement sur vous sélectionnez thème, puis vous pouvez changer le thème sombre. D' accord. Donc, nous pouvons en donner quelques-uns, vous voyez, pour que ça vous donne tous les pas qui sont en train de traverser. Il va exécuter la nouvelle commande get, lâcher tout. Les binaires sont les paquets qui ont été inclus dans votre projet en cours de construction Exécutez les tests unitaires, puis publiez les artefacts, donc nous allons juste en donner quelques-uns pour terminer. Nous obtiendrons un bon indicateur une fois que nous aurons une construction réussie. Donc si quelque chose s'est brisé au tribunal, cette étape ne serait pas arrivée, accord, donc nous n'aurions toujours pas terminé. Donc la prochaine chose donc c'est la construction, vous savez, ce que je veux faire, c'est mettre en place une flèche de libération. Je vais passer aux libérations. Et puis je suis allé voir que je veux un nouveau pipeline. Ensuite, à partir d'ici, ils me donneront quelques modèles afin qu'ils voient quel type de modèle vous voulez. Voulez-vous les déploiements de service vers le haut ? Donc, cela signifie que vous vérifiez votre accord, ils font la construction, puis ils viennent de déployer comme vous l'êtes automatiquement. Ou voulez-vous que le site Web I I et les déploiements de base de données SQL dans cette situation ? C' est celui qui nous intéresse. Parce que rappelez-vous, nous voulons orteil devrait répondre à la publication de notre référentiel toe notre machine virtuelle réelle avec notre base de données sur die, Je s quelqu'un pour cliquer sur celui-ci, puis cliquer, appliquer, et puis nous avons certaines configurations que nous avons à faire. Donc ils vous montrent juste que, vous savez, c'est l'artefact. Souviens-toi qu'on vient de mettre un steptoe, publier des artefacts, non ? Et puis c'est notre Ce sont les étapes. Très bien, Donc je vais cliquer sur l'artefact d'abord sur, puis je peux choisir d'ajouter un artefact basé sur une construction, ou je peux choisir l'annonce basée sur le dépôt, ou choisir ce ghetto Beeson. Donc, il suffit de choisir dans le dépôt, obtenir des moyens ou tout ce qui est archivé. Appelez ça un artefact. Mais je ne veux pas vraiment que je veux que l'orteil de construction se produise avec des configurations spéciales . Peut-être que nous avons mis en place alors ce sera l'artefact. Seulement quand il est réussi devrait être libéré. Bon, donc je vais faire de la pub pour qu'en utilisant cette liste déroulante, vous devriez voir ce nom hors du pipeline de facture. Basé sur celui que nous venons de créer. Nous venons de créer un pipeline avec la construction, et c'est ce nom là. Ensuite, nous pouvons aller de l'avant sur taquet afin que vous puissiez voir ici les artefacts publiés par chaque personne seront disponibles pour déploiement dans les pipelines de libération. La dernière version réussie a été publiée, publié les artefacts suivants. Bon, donc je peux aller de l'avant. Donc, au moins, nous avons un artefact. Vous pouvez aussi Stadio dire, Voir, vous pouvez planifier un déclencheur de libération pour dire que je vais juste aller de l'avant et l'activer que chaque fois à ces moments, voulez que toe libère une nouvelle version ou libère un nouvel artefact pour potentiel. Relâchez-la. Donc, je ne vais pas à un oblique ? Non, on le fait manuellement. Non, mais je vous montre comment vous pouvez l'automatiser ensuite. La scène serait, euh tu sais, tu peux t'enlever 80 ans. Vous pouvez avoir la production moelleuse, etcetera. C' est donc ce que veut dire la scène. Ils peuvent ajouter de nombreuses étapes pour dire cela. Ok, quand l'artefact est libéré, alors il est passé à travers. Nous pouvons nous éloigner de cet environnement. Cet environnement, etcetera. ce moment, je n'en fais qu'une. Donc, nous sommes juste en train de passer de l'outil de construction , du déploiement sur le serveur, et ensuite nous devons prêter attention à cela. Donc, je vais juste appeler ce déploiement de machine virtuelle unique. Très bien, donc c'est un nom de scène à l'époque. Je vais juste vous guider à travers chacun de ces champs et vous expliquer pourquoi nous pouvons ou non besoin. Non, ce pipeline vous permet de construire le site Web I I à partir de zéro. Donc on a juste traversé. Toutes ces étapes sont entrées, nous construisons le site Web, nous allons construire notre pool d'applications. Nous avons mis en place notre base de données et tout. Ce qu'ils sont ces étapes plutôt lot nous orteil automatiser tous les hors que maintenant la plupart de cela est fait Quelqu'un à réellement pas besoin de la plupart de ces étapes. Droit ? Donc, le temps de configuration que j'ai vu à l'envers peut vous qu'ils allaient voir créer notre opiacé, Donc je l'ai déjà créé. Donc, je vais juste cliquer sur Démarrer parce que je ne veux pas faire de changements. Créer sont ouverts. Cela signifie que s'il n'existe pas, créez-le, évidemment, ou je vais mettre de nouveaux paramètres là, alors changez-les. Mais je voulais juste commencer. Je ne veux rien changer. C' est là. Le nom du site Web était la gestion des congés. D' accord. C' était le nom que nous donnons pour bouleverser. Je s sur alors nous pouvons spécifier où nous voulons. Nos bases de données sont à dos. Donc ils ont ce truc appelé le parc droit, ce qui est, comme un déploiement rapide. Spécifiez la manière dont vous souhaitez déployer la base de données. Nous pouvons utiliser ce pop notre script SQL. Donc, je vais aller de l'avant et laisser le parc allumé. Mettez le nom de la base de données, qui est la gestion des soulignements de congé. D' accord. Si désespérée. Devant ceux, si vous nommez était une école, dit mon et un sans soulignement un avec juste attention que vous mettez les bons noms que les bons endroits. Donc, pour chaque section, nous allons voir si nous avons besoin d'orteils, vous savez, en mettant plus de détails. Donc, si j'aime juste le déploiement cul pour voir plus de détails, plus d'attention est nécessaire pour parler d'un groupe de déploiement. Donc, je n'ai pas de groupes de déploiement. Je suppose que je vais devoir en créer un pour que je puisse aller à l'année qui va faire apparaître cette section de groupe de déploiement sur cette section montre que nous n'avons pas groupes, Donc, le groupe de déploiement est fondamentalement et ici est. Il définit un groupe logique hors machines cibles pour les déploiements. Très bien, vous pouvez donc déployer sur plusieurs machines avec une seule version. C' est juste une question de désactiver le groupe de déploiement pour que nous n'ayons pas une seule machine. Il est de comprendre un groupe de déploiement. Je vais appeler celui-là une fraude sur le terrain de golf lâchement. Donc je ne suis pas là pour vous apprendre à propos de votre pipeline de libération et les détails que je vais juste vous montrer comment régler un pipeline de base et ensuite vos règles d'affaires régiront quel environnement l'obtient en premier, non ? Donc, la prochaine chose que je sais est qu'ils vont bien voir pour faciliter communication entre cette application flux et la machine sur laquelle le déploiement va se produire, qui serait notre serveur. Nous devons exécuter ce script. C' est donc un script Powershell. Au cas où vous n'auriez jamais entendu parler de Porsche, c'est ce que c'est déjà. Peut-être que vous avez entendu parler d'un site accessible avant. C' est à ça que ça ressemble. Tu n'as pas vraiment à comprendre ça. J' espère vraiment essayer de vous l'expliquer, mais je vais juste utiliser un jeton d'accès personnel dans le script pour l'authentification. Et puis je suis allé copier ce script. Et puis il voit courir à partir d'un administrateur. commandement de Portia a triompé. Donc, une fois de plus, cette copie décrit. Ensuite, nous passons à notre serveur sur puis sur le serveur. Je vais devoir mettre en place mes fenêtres Power Shell. Chaque serveur, notre machine Windows 7 vers le haut devrait avoir Portia dessus. La clé est que vous venez de faire un clic droit sur Avez-vous vu Exécuter en tant qu'administrateur. Une fois que vous êtes dans, vous allez sur la base du script et appuyez sur Entrée sur. Ensuite, il va déployer un agent zéro émettant le répertoire c, puis voir Izzy. Agent Andi, donnez-lui un peu de temps. Après un certain temps, vous allez obtenir cette invite. Je pense que j'ai appuyé sur Entrée quelques fois trop, mais alors c'est juste, euh ouais, donc ça va vous donner ces quelques lignes, et puis il enregistre un agent se connectant au serveur et puis voir inter discussions du groupe de déploiement pour l'agent. Je vais juste voir pourquoi pour oui, euh oh, eh bien, eh bien, tu chantes dedans, donc je n'ai vraiment pas besoin, mais je comprends,pour mais je comprends, voir une base de données d'armes, c'est bon. La virgule les sépare. Je regarde dans le directeur où l'agent est créé ou tous les faits à l'appui sont déployés. Ensuite, il est dit, Entrez le cône utilisateur pour le percenter de service pour les systèmes anti-autorité. Souvenez-vous de ça. C' est un utilisateur très puissant. Je vais juste utiliser cet utilisateur pour que tout ce qui doit arriver puisse arriver sur les autorisations soient accordées à Non, notre agent est assis. Oh, donc quand je reviens à zéro, je peux aller à la baignoire des cibles. Je saurais, voir cette machine listée et ce sont les remorqueurs qu'ils demandaient. Donc ils étaient vraiment optionnels, mais bon, d' accord, donc une fois que je vois la machine, je peux me sentir confiant que cette étape est faite. Donc, je vais revenir à ma version par plan, Et puis je peux juste actualiser ce groupe de déploiement, et vous voyez, je travaille avec plusieurs onglets parce que je n'aime pas arrêter et revenir en arrière et ainsi de suite. Donc quand je suis tombé, je vois prod, c'est bien. Donc, non, j'ai mon groupe de déploiement et cette ère disparaît. Je vais regarder à l'intérieur de celui-ci sur celui-ci est particulier parce qu'il n'y a vraiment rien pour changer tout ce qu'il a été pris. Antique tous les yeux. Donc, tout biais signifie si cochez cela si vous voulez dans le style sur les machines. Si c'était un tout premier déploiement, il n'était pas sur la machine. Je suppose que tu le vérifies. On n'en a pas besoin parce que j'ai déjà de la glace. Tout est déjà mis en place. Ensuite, nous passons au déploiement SQL sur. Ensuite, nous sélectionnons à nouveau Prague parce que c'est notre machine cible. Donc, voici une situation maintenant où si la base de données se trouve sur une machine différente, ils devraient configurer une autre machine cible ou un autre groupe de déploiement. Donc, ce serait probablement comme le Web fier contre les droits BB du produit. Mais ils sont tous les deux sur la même machine. Donc, j'utilise juste le même groupe de déploiement sur. Tout ressemblera de la même façon si j'ai percé dans le déploiement de la base de données, nous aurons Teoh pour fournir quelques nous aurons Teoh pour fournir quelques détails sur le serveur. Alors rappelez-vous que notre serveur ou mon serveur est cet hôte local, mais sa boîte SQL Express barre oblique désolé SQL retour slash sq express. Bon, donc le même genre de serviteur et là vous mettez à l'intérieur de la chaîne de connexion. Vous devez vous assurer de cibler les mêmes données. Abeilles, authentification. Nous pouvons laisser l'authentification Windows basée sur la suspension. Nous l'avons déjà déployé sur DSO. Donc ce que je montre, c'est une ligne directrice. Je ne connais pas vraiment ta situation, mais au moins je donne une idée de ce que c'est possible. Donc, une fois que nous avons fait ça et que nous avons effacé toutes les lignes rouges, au moins dans cette section, alors nous pouvons cliquer, enregistrer sur la matrice, Tout comme d'accord, Ne pas avoir à changer ça. Bon, alors ce que je vais faire, c'est déclencher une libération manuelle, non ? Non. droite. Donc, je peux juste le faire et je peux juste cliquer, créer la version. Donc, je vais juste orteil, prendre une note mentale sur tous les fichiers qui sont actuellement dans la gestion de congé Fuller sur les horodatages pour voir si peut-être un hors d'eux. J' ai changé après la sortie, mais je vais aller de l'avant en arrière et il vient de sortir de la machine virtuelle, créer une version sur, alors nous pouvons voir ça sur le côté. Ils confirment juste que c' est un déploiement de Veum. Nous pouvons choisir l'artefact et nous ne pouvons même pas mettre une description de publication. Tu sais, juste pour dire que ça parle vraiment cette tourbière, etcetera. Nous allons de l'avant et cliquez, créez, puis vous voyez que le travail a commencé afin que je puisse cliquer sur release sur. Alors ça va m'apporter un écran d'orteil. Ça va me montrer un peu de progrès sur Ils étaient si gentils. Ils essaient de vous montrer qu'ils ont fait des améliorations, mais je n'ai pas besoin de voir ça. Ensuite, ils vont me montrer que j'ai déclenché manuellement cette construction. C' est l'artefact sur alors je peux traiter déploiement sur. Puis une fois que je fais ça, je pense déployer. Donc, je dis que je veux que vous déployiez la machine virtuelle afin que je puisse cliquer sur ce déploiement sur, puis cliquer sur le jouable, ni sur ce demi-cercle sur. Ensuite, il m'amènera à un écran qui me montre la progression du déploiement sur. Alors, c'est bien fait ? Donc, il a fallu 38 secondes encore mis dans cette libération. Maintenant, laissez-moi revenir à ma machine virtuelle sur Regarder dans le pli sur les fichiers sur tandis que tout semble être là sur est assez bien. Non, je vais faire un CI tangible. Et donc je vais faire un changement à l'écran de connexion pour voir un journal ici. Quelque chose comme ça. Euh, sur. Ensuite, nous verrons comment nous le vérifions dans la version de construction et ensuite chercher l'opiacé. Très bien, donc très petit changement. Et je fais ça pour, tu sais, tu sais, montrer du saké. Vous n'avez probablement pas à faire tout ça, mais je vais juste me lancer, aller de l'avant et commettre ce test de changement pour la libération. C' est tout ce que je fais en guise de note. Ensuite, je vais engager tous les Onda évier sur dso quand je vais sur le ghetto orteil que votre développement, je vois que c'est dans le processus de faire une construction. Bon, donc j'ai juste vérifié quelque chose, et ça fait déjà une facture parce qu'il a détecté que quelque chose que tu arrives ne s'est pas levé. Donc, ce n'est pas un bâtiment pour s'assurer que les changements apportés étaient corrects. Je peux voir les deux changements juste pour m'assurer qu'il est en train de construire correctement afin qu'il y ait un test pour la publication. Donc, il a eu le changement Andi. Il fait juste son travail automatiquement, non ? Nous pouvons donc toujours cliquer sur le travail pour voir les progrès sur. On donne ça un jour. Une fois cette construction terminée, nous voyons que nous avons un nouvel artefact. Donc, quand je vais avec les versions, je peux déclencher une sortie manuelle. Si je veux Andi, je vois ici. C' est quelque chose qui a échoué. Je me demande si c'était ma version précédente. Ce champ. Ok, donc en entrant, je vois que la partie de déploiement SQL semble donc nous devrions probablement faire un peu plus travail que de simplement déployer le sql comme ça. Ou peut-être que nous devons utiliser non pas un sac à dos, mais sur un script SQL. Quoi qu'il en soit, concentrons-nous sur la partie Web pour savoir que nous pouvons comprendre le carré séparé. Donc je veux revenir aux libérations. Très bien, donc c'est le truc avec le réglage du pipeline. Vous pouvez d'abord fluvial technique, mais une fois que vous l'avez automatisé, ce n'est pas quelque chose que vous devez faire tous les jours. Bon, donc je vais créer une nouvelle version. Non, Encore une fois, si je édite le pipeline, si j'ai terminé le pipeline de libération sur Guy aller et allumé stable. Ensuite, je peux planifier un déclencheur de libération dans le déploiement. droite. Donc ça veut dire que je peux faire une sortie nocturne ou pas de sortie anticipée, peu importe ce que c'est. Mais en ce moment, je le fais manuellement parce que je ne suis pas en séance de production. Je n'ai pas besoin de m'asseoir. Très bien, Donc je fais je crée la version et puis je vais de l'avant et je frappe, Créer sur, puis il va commencer la version. Donc je suppose que ça va se sentir une fois de plus sur la base de données. Mais nous avons au moins validé que la jambe Web a été fait avec succès. Donc, en allant et je vois qu'il l'a fait, le procès I Spire est la première partie hors yeux change. Il fait le déploiement réel. Non, d'accord. Et je suis sur elle ici, voyant que ça se sent à déployer parce qu'il ne peut pas modifier l'automobile de fichier. Dll Il est verrouillé par un processus. Donc quelque chose a interrompu cette version sur le serveur sur. Je vais probablement juste avoir à aller sur s'assurer qu'il ya toute la version, toute la ressource est notre gratuit pour l'orteil de libération arriver. D' accord, d'accord. Donc, je suis allé sur le serveur et je viens de redémarrer le web ou les sites Web. Je viens de cliquer dessus et dans un redémarrage a également ajusté un recyclage sur un pool sur. Alors je vais essayer à nouveau, accord ? Donc parfois les libérations se sentent parce que hors de ces choses. Donc, oui, vous tous de rencontrer son. Mais alors vous pouvez toujours savoir, cet échec est presque, je garantis, à certains moments, à certains moments, quelqu'un d'aller de l'avant et de créer une autre version. Donc, je dois lancer des libérations jusqu'à présent. Je vais juste aller de l'avant, créer un autre, alors vous voyez, c'est en cours. Nous cliquons. C' est juste encore, regardez-le. Continuez, puis voyons si la ressource a été libérée. Très bien, et on y va. Nous avons une libération réussie sous caution. Eh bien, cette fois, ça vient de réussir. Il n'y a aucune erreur. Donc si je retourne aux versions, alors oh, ça passe encore par une autre phase. Donc là il champ sur les déploiements SQL que je, comme l'escalade était bonne sur le champ de déploiement SQL, saviez-vous que l'on pourrait avoir un champ, mais revenons à notre serveur pour voir si nous pouvons repérer des différences majeures. Très bien, et on y va. Donc tout ce que c'était adhérer, tu te souviens ? Dit que changerait le journal dans la connexion ici. Alors j'ai fait ce changement. On l'a vérifié dans les culs du ghetto. Vos développements ont automatiquement fait une build validant un besoin d'être validé. Encore une fois, ces étapes sont très basiques, mais vous pouvez ajouter plus de validations, enseigner la construction, enseigner la construction, surtout si vous êtes un développeur senior et que vous voulez plus de contrôle de la qualité sur ce qui se passe dans l'environnement. Mais au niveau de base, il n'a pas construit dessus tenait l'artefact sur. Ensuite, nous avons mis en place cette version. Donc, une fois de plus, si vous vouliez automatiser cela parce que c'était un processus très manuel devant aller à sortie, puis créer la version et ensuite commencé, nous pouvons le faire le pipeline. Donc ça va dans les versions et ils disent, éditer sur. Ensuite, nous pouvons faire un calendrier où nous disons tous les jours à peut-être 3 heures du matin. Vous ne voyez que rejets réguliers si la source ou le pipeline a changé. Donc ça veut dire un. Quelqu' un vérifie dans le cordon et il a passé à travers la construction sur elle est réussie et ainsi de suite. Artefact, une fois qu'il est différent de ce qui obtient, alors automatiquement la porte de libération. Mon objectif aujourd'hui était de vous montrer comment vous pouvez commencer et utiliser pour automatiser entre l'enregistrement au tribunal et la libération dans votre environnement. 70. Édition publie un examen: vous les gars. Ceci est juste une vidéo de présentation pour cette section. Donc, dans cette section, nous avons regardé orteil entier publier notre absence, nous avons regardé Eh bien, deux, peut-être trois scénarios. Basé sur la façon dont vous percevez le premier scénario où nous publions orteil, je suis Andi que j'ai demandé serait sur votre machine locale. Il pourrait être sur une machine sur le serveur ou il pourrait s'agir d'une machine virtuelle dans le vêtement. Un point est que c'est ah, machine Windows exécutant l'information, Internet Information Services application ou les yeux pour court sur le trou. Nous pouvons procéder à la mise en place de l'environnement pour que l'application dot net soit hébergée là. Andi, encore accessible. Nous avons examiné les problèmes d'autorisation qui peuvent survenir à la fois pour l'exécution du fichier ou l'exécution de l'application ainsi que pour la connectivité de la base de données. Onda, nous avons regardé tout pour juste configurer un serveur petites choses à surveiller Andi, vous savez, conseils de dépannage. Nous avons également examiné comment nous pouvons faire des bateaux qui se déploient comme vous, donc nous avons vu le danger de déployer simplement parce qu'il a créé la base de données. La chaîne de connexion était correcte. Tout allait bien, mais aucune table n'a été créée, donc nous avions deux choix que nous pourrions avoir soit essayer d'obtenir un SQL un script qui représente les migrations, puis tendance. Faites-les manuellement sur le serveur de nuage ou, euh, nous avons recours, attirant un code personnalisé à la recherche de toute la variable d'environnement sur le choix chaîne de connexion à utiliser à l'époque, ainsi que y compris cette ligne qui transmettrait automatiquement toutes les migrations hors de façon automatique. Très bien, donc le résultat final de cette section est que vous saurez avoir sur le stagiaire, hum, par une source. Est-ce la version de votre application sur vous avez également une version hébergée dans le cloud de l'application . J' hiverne les deux scénarios parce qu'il faut être pratique pour votre contexte. Directement, Def. Il y a un autre contexte que vous avez. Alors vous savez, vous pouvez vous sentir libre de me tendre la main et de me faire savoir le jour où je ferai de mon mieux pour vous aider à traverser ce