ASP.NET integral y desarrollo de Entity Framework | Trevoir Williams | Skillshare
Buscar

Velocidad de reproducción


1.0x


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

ASP.NET integral y desarrollo de Entity Framework

teacher avatar Trevoir Williams, Jamaican Software Engineer

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Ve esta clase y miles más

Obtenga acceso ilimitado a todas las clases
Clases enseñadas por líderes de la industria y profesionales activos
Los temas incluyen ilustración, diseño, fotografía y más

Lecciones en esta clase

    • 1.

      Introducción

      2:49

    • 2.

      Crea una cuenta de GitHub

      2:28

    • 3.

      Instale Visual Studio 2019 Community Edition

      10:14

    • 4.

      Actuación: instalar Visual Studio 2022 Community Edition y .

      2:16

    • 5.

      Crear . Proyecto de aplicación web núcleo

      5:51

    • 6.

      Tour de la aplicación núcleo de ASP.NET

      23:25

    • 7.

      Migrar el proyecto al .

      5:12

    • 8.

      Actuación: migrar el proyecto a .

      5:57

    • 9.

      Diseño de sitio web de la

      21:16

    • 10.

      Setup la base de datos de bases de datos, los modelos y las migraciones

      32:39

    • 11.

      Repositorio de la dependencia y inyección de dependencia

      25:36

    • 12.

      Implementar la función de base de datos y el marco de la entidad

      25:35

    • 13.

      Configura los vistas y AutoMapper

      32:04

    • 14.

      Revisar y añadir cambios a GitHub

      8:00

    • 15.

      Configuración de la Controller y las acciones y el controlador de la forma de la forma

      12:20

    • 16.

      Configuración de la imagen de tipo de Setup

      18:44

    • 17.

      Configuración de la autoría del tipo de

      23:17

    • 18.

      Configuración de la versión de la edición de la

      19:43

    • 19.

      Configuración de los detalles de la autoría de la forma de la forma de dejar de dejar

      6:06

    • 20.

      Configuración de la versión de la eliminación de tipo de

      14:55

    • 21.

      Añade una tabla de datos de tipo de débito y los íconos increíbles

      29:31

    • 22.

      Revisar y añadir cambios a GitHub

      8:06

    • 23.

      Descripción de la autenticación principal de ASP.Net

      25:53

    • 24.

      Personalización y proceso

      36:02

    • 25.

      Revisa la funcionalidad de la sesión de la sesión de

      11:02

    • 26.

      Añade roles defectos y usuarios de Admin

      32:19

    • 27.

      Acceso del usuario con la autorización de la rol

      19:10

    • 28.

      Revisar y añadir cambios a GitHub

      2:32

    • 29.

      Dejar la descripción de la imagen

      2:02

    • 30.

      Dejar la posición : cambios de base de datos

      11:55

    • 31.

      Dejar la imagen : crea una visión

      44:42

    • 32.

      Dejar la posición - lista de empleados

      29:53

    • 33.

      Dejar la posición de autor: mira la presencia de la identidad para el empleado

      36:55

    • 34.

      Dejar la posición de persona: edita la ubicación para un empleado

      30:15

    • 35.

      Revisar y añadir cambios a GitHub

      4:30

    • 36.

      Descripción del módulo de envío de las peticiones de la falta del empleo

      2:06

    • 37.

      Module de la acción de las solicitudes de casas: cambios y los ViewModels

      9:21

    • 38.

      Módulo de las peticiones de bodas: configuración de la configuración

      33:37

    • 39.

      Module de las solicitudes de bodas: configuración de Admin Index

      11:33

    • 40.

      Module de la participación en las casas: crea una solicitud de - parte 1

      34:01

    • 41.

      Module de la participación en las casas: crea una solicitud de - parte 2

      40:44

    • 42.

      Module de las solicitudes de bodas con las claves de bodas con las que las personas con Requests de la autorización de

      40:02

    • 43.

      Module de las solicitudes de permisos con la participación de la participación en la participación en la participación en la que se los

      15:00

    • 44.

      Revisar y añadir cambios a GitHub

      7:38

    • 45.

      Previsión de temas de AdminLTE

      1:23

    • 46.

      Crear una página de la composición

      8:43

    • 47.

      Configura AdminLTE y dependencias

      39:01

    • 48.

      Arcos y incorporaciones esenciales

      14:00

    • 49.

      Ingreso y páginas de registro personalizadas

      9:59

    • 50.

      Revisar y añadir cambios a GitHub

      3:11

    • 51.

      Funciones de repositorio y síndrome de

      17:41

    • 52.

      Controladores y acciones indígenas

      16:11

    • 53.

      Revisar y añadir cambios a GitHub

      2:37

    • 54.

      Revisión de los patrones de programación

      12:18

    • 55.

      Implementar un repositorio genico

      30:01

    • 56.

      Implementar la unidad de trabajo de trabajo

      14:54

    • 57.

      Controlador de los tipos de licencia de refactor

      13:02

    • 58.

      Controlador de las peticiones de votos de falta de Refactor

      18:45

    • 59.

      Control de las ubicaciones de ausencia de la

      9:21

    • 60.

      Actuación: el tipo de forma extendida para la unidad de trabajo

      11:53

    • 61.

      Revisión de las características de seguridad de construido en la seguridad

      7:26

    • 62.

      Método de eliminación de seguridad

      6:56

    • 63.

      Envía correos electrónicos con MailKit y SMTP

      19:24

    • 64.

      Descripción de la sección de publicación

      3:50

    • 65.

      La información de la información de Internet (IIS) en un servidor

      15:46

    • 66.

      Publica la aplicación a IIS y SQL Server

      29:39

    • 67.

      Crea la cuenta de Microsoft Azure

      7:12

    • 68.

      Publica a Azure App y Servicios SQL

      24:07

    • 69.

      Configura la pieza automatizada con GitHub y Azure DevOps

      32:40

    • 70.

      Revisión de publicación

      2:13

  • --
  • Nivel principiante
  • Nivel intermedio
  • Nivel avanzado
  • Todos los niveles

Generado por la comunidad

El nivel se determina según la opinión de la mayoría de los estudiantes que han dejado reseñas en esta clase. La recomendación del profesor o de la profesora se muestra hasta que se recopilen al menos 5 reseñas de estudiantes.

830

Estudiantes

--

Proyecto

Acerca de esta clase

Descripción general

Aprende a crear un sistema de gestión de la ausencia de los ausentes del número con ASP.Net Core 3.1, el marco de la Entity, Code-First y el patrón de repositorio. Este curso completo te mostrará cómo utilizar las bibliotecas de Visual Studio, Microsoft SQL Server Express y explorar el desarrollo dinámico con Bootstrap y JQuery y varias bibliotecas de primera final.

ASP.NET Core 3.1 es el marco moderno y de la plataforma de Microsoft, de la Microsoft, para crear aplicaciones web preparadas para empresa. En este curso, aprenderás todo lo que necesitas para crear aplicaciones de ASP.NET Core 3.1, desde la comprensión de la estructura y los archivos hasta la creación de una aplicación web completa.

Actuación a . NET 5 *NEW*

. El NET 5 es el último de las tecnologías de SDK de Microsoft, y mientras desarrollamos esta solución con . NET Core 3.1, nosotros hacemos una mejora a . Maleta 5 con muy mínimo esfuerzo. ¡Todo que todo funciona en todo!

Por qué aprender ASP.NET Core 3.1

Microsoft . NET es la plataforma que conduce la tecnología de negocios de muchas de las principales corporaciones de los Estados Unidos de los Estados Unidos y muchos otros otros países. Es la tecnología predominante utilizada para impulsar la tecnología empresarial de empresa. Las empresas eligen. Es una red porque su escalar, y reliability, en la calidad de la calidad.

El . El lenguaje de la elección para aprender es C#, ya que es una de las lenguas más utilizadas hoy. Es un lenguaje de programación de propósito general que puede abordar casi cualquier problema, desde el escritorio hasta las aplicaciones web dinámicas. Como cierto, hay una alta demanda para todo el mundo. Los desarrolladores de la red en una variedad de industrias, así que significa que más trabajos están disponibles para los candidatos con una fundación construida. Tecnologías de netas.

Construir una base fuerte en . Programación el núcleo neto:

  • Build una aplicación web totalmente basada en datos con tecnología de avanzada

  • Conéctate con una base de datos con la entidad y el núcleo del marco básico

  • Patrón de dependencia y inyección de dependencia

  • Entender cómo funciona el patrón de MVC (modelos, opiniones y controladores)

  • Comprender C y . Sintesis la web principal

  • Entender la autenticación del usuario con ASP.NET Core Core

  • Entender cómo utilizar los modelos, ViewModels y AutoMapper

  • Usar Bootstrap para diseñar y manipular el diseño general

  • Administrar paquetes con NuGet Manager

  • Aplica la composición de sitio web con AdminLTE

  • Configuración de GitHub para el control de origen

  • Configuración de IIS en la máquina local (o Windows Server)

  • Configuración de la cuenta de Microsoft Azure

  • Publicar . Aplicación en base de base de la base de la red de IIS a IIS

  • Publicar . Aplicación en Microsoft Azure

Contenido y descripción

Para tomar este curso, tendrás que tener un conocimiento de la programación orientada de objetos, si no C#. Aunque no tienes mucha exposición a la . Ap

Este es un curso enorme. Más de 15 horas de contenido premio, pero se dividió con inteligencia para destacar un conjunto de actividades relacionadas basadas en cada módulo en la aplicación que se construyas. También verás la solución de problemas y el desafío de los errores mientras realizamos, aplicación de las las mejores prácticas, la redacción de una lógica eficiente y comprensión por qué los desarrolladores hacen las cosas de forma que funcionan. Tu conocimiento crecerá, paso a paso, a lo largo del curso y se te pondrá el desafío de ser el mejor que puedas ser.

Al momento de terminar el curso, habrás movimiento en la clase de Visual y examinado los errores de lógica y sintaxis tan mucho, que será la segunda naturaleza para ti cuando trabajar en la . Entorno de mos. Esto usará tus nuevas habilidades aprendidas en un uso práctico e impresionar a tu jefe y colaborador.

El curso está completo con archivos de trabajo en GitHub, con la inclusión de algunos archivos para que te resulte más fácil de replicar el código que se está demostrado. El autor mientras trabajas con cada clase y recibirás un certificado de conclusión verificable al final al final del curso.

Conoce a tu profesor(a)

Teacher Profile Image

Trevoir Williams

Jamaican Software Engineer

Profesor(a)

Habilidades relacionadas

Desarrollo Desarrollo web
Level: All Levels

Valoración de la clase

¿Se cumplieron las expectativas?
    ¡Superadas!
  • 0%
  • 0%
  • Un poco
  • 0%
  • No realmente
  • 0%

¿Por qué unirse a Skillshare?

Mira las galardonadas Skillshare Originals

Cada clase tiene lecciones cortas y proyectos prácticos

Tu membresía apoya a los profesores de Skillshare

Aprende desde cualquier lugar

Ve clases sobre la marcha con la aplicación de Skillshare. Progresa en línea o descarga las clases para verlas en el avión, el metro o donde sea que aprendas mejor.

Transcripciones

1. Introducción: Hey chicos, bienvenidos a este curso titulado completo dotnet Core 3.1 y Entity Framework Development. Yo soy tu instructor, trampilla Williams. Este es un curso muy detallado para ponerte en marcha y programar en el entorno de dotnet Core en poco tiempo. Y algunos de los objetivos que esperamos cumplir para este curso son construir una aplicación web totalmente impulsada por datos. Entender cómo fluyen las aplicaciones de dotnet Core. Construir programa totalmente funcional utilizando el patrón de repositorio y la inyección de dependencia. Y algunas de estas expresiones pueden parecer más aterradoras, pero a lo largo de este curso, voy a simplificar. Todo es muy amigable para principiantes, es muy detallado. Y al final, deberías ser un desarrollador de dotnet completo. También veremos primero en espera, funciona el patrón MVC. Llegaremos a una mejor comprensión de C Sharp y sin duda consejos y trucos. Y vamos a obtener una muestra de usar frameworks front end para darle estilo al diseño general y el aspecto y la sensación de nuestra aplicación web. Ahora bien, hacer este curso es muy, muy beneficioso para ti. Dotnet es uno de los más populares. El conocimiento se utiliza para construir emprendimiento de las aplicaciones. Los desarrolladores tienen una demanda muy alta. Se trata de una tecnología muy predominante y es un conjunto de habilidades extremadamente importante para tener en esta época y época. Durante la duración de este curso, estaremos usando Visual Studio 2019 Community Edition, que es un entorno de desarrollo muy, muy potente en la herramienta de elección cuando estás haciendo desarrollo de dotnet. Y nos permite integrarnos rápidamente con otros frameworks front-end como bootstrap, jQuery, Font Awesome, y muchos otros. También viene con la integración de Git, lo que nos facilita la integración con GitHub para nuestros propósitos de control de fuentes. Y viene con muchos Management Studio para nuestras actividades de gestión de bases de datos. En última instancia, quiero que esté preparado para abrirte al mundo de la programación dotnet, no necesitarías algún conocimiento de HTML, CSS, y programación orientada a objetos si tienes algún conocimiento de bases de datos filamento, eso también es bueno. Pero en última instancia, una vez más, esto es muy detallado. Entonces aunque no seas que te adaptes a estas tecnologías, hago muy fácil que te pongas al día y te sientas proficiente en poco tiempo. Esto es solo una vista previa a escondidas de la aplicación que estaremos construyendo juntos donde estaremos permitiendo que los empleados puedan solicitar licencia y configurando algunas características administrativas para que los usuarios de administración puedan administrar esos solicitudes de licencia. Entonces si los están aprobando o rechazando y mostró la historia. Por lo que todo esto una vez más, será dinámico. Vamos a estar peinándolo usando Bootstrap y admin LTE. Y nos vamos a divertir. Entonces solo prepárate para rodar. 2. Crea una cuenta de GitHub: Oye, los chicos de este video estarán creando o levantando cuentas. Este es un paso realmente sencillo. Ponte de pie. Hace que sea muy fácil para nosotros inscribirnos. Sólo tienes que ir a que te salten de palma. Eso es G I T H u b dot c o m. obtener hub dot com on. Aterrizarás en este terreno de juego. No, desde aquí, si ya tienes una cuenta y puedes iniciar sesión y prácticamente puedes dejar de ver el video aquí si no lo haces, sin embargo, sin embargo, entonces el formulario del Senado está aquí mismo. Se puede hacer un poco de lectura. Basta con obtener una apreciación de para qué está el ghetto B. Y todo es un barco. Ellos sí tienen precios, por lo que sí ofrecen planes empresariales y planes de educación y diferentes planes para diferentes situaciones. Pero para el desarrollador solar para muy pequeños, ya sabes, equipos que tal vez no sean emprendedores nunca de lo que sí te dan ah lote gratis. Por lo que para inscribirte, solo necesitas poner un nombre de usuario en una dirección de correo electrónico y una contraseña en Una vez que hayas proporcionado todas esas cosas y siempre que tu nombre de usuario sea lo suficientemente único fuera de curso entonces haces clic. Date de alta en gueto el. Deberías estar dentro. Por lo que ya tengo una cuenta, Algunos ajustes reales Asignando viste a mis hermanos se están volviendo locos tratando de proporcionar información, así que solo voy a iniciar sesión con mi cuenta existente. Entonces eso es mi lo que puede usar. Estás usando a él o a e militaristas para iniciar sesión. Y la contraseña en aquí estoy. Este es mi foso de aterrizaje. Por lo que en realidad te dan, como, un sentido fuera de la comunidad. Es casi como un Facebook para desarrolladores. En cierta medida, puedes seguir a las personas una vez que estén siguiendo a las personas, ves sus actividades en la página de aterrizaje de la gripe. Puedes saltar a tu repositorio. Entonces, obviamente, si eres nuevo para levantarte, entonces no tendrías nada listado a un lado aquí. ¿ Qué? No soy noticia. He estado bastante ocupado. Um, poniendo contenido en bajar casi cualquier pequeño proyecto de mascota que empiece. Tengo un get over positivo, en realidad necesito pasar y limpiar esto en También, he tenido estudiantes que me agreguen a su descanso en el pasado. Eso que ya sabes, podríamos colaborar. A lo mejor están teniendo un problema y yo sólo podría verificar su cordón a través de los re posits. Muy todas esas cosas son, ya sabes, posibles a través de esta justa, poderosa herramienta. Pero una vez que has creado tus conos y estás firmado en Ondo bien, obviamente no verías lo que estoy viendo una vez más. Pero entonces eso completaría el signo de activo 3. Instale Visual Studio 2019 Community Edition: Hey, chicos, en este video se estará instalando Visual Studio 2019 Community Edition Ahora para llegar al sitio web de estudio visual, escribimos en visual studio dot Microsoft dot com Photo No te veas raro studio, y nosotros quieren conseguir la edición de la comunidad. Por lo que sí tenemos profesional y sí tenemos empresa. Pero en la edición comunitaria es gratuita para individuos sobre usuarios académicos en ditz. También abierto, señor. Entonces, una vez más , um, si estás en una sesión entre prensa, deberías conseguir empresa y tienes que pagar una licencia por eso. Pero entonces para nuestro proyecto de mascota, un proyecto individual o proyectos académicos propósitos de código abierto, comunidades ahí es gratuito y está totalmente impulsado y esperando ser utilizado. Por lo que simplemente ponemos a la comunidad en ese entonces que los detonadores no son señor para un instalador. Por lo que solo hacemos clic en ese Insultado que acaba de descargar Run. Se inicializará Onda. Podemos seguir adelante con nuestras instalaciones para que podamos continuar en que tan solo nos pesca unos cuantos archivos . Está bien, así que después de que termine con esas cargas de trabajo iniciales, entonces lo que hará es preguntarnos. ¿ Qué paquetes deseamos instalar para apoyar lo que sea que vamos a estar desarrollando. Entonces, como dije, estamos desarrollando una aplicación web, Así que necesitábamos SP dotnet y paquete de desarrollo Web o carga de trabajo en. Entonces tomamos eso, um, tomamos esa caja aquí en adelante luego a la derecha y dijimos, Ves que nos están dando una pequeña lista de lo que se incluirá. Por lo que el último marco de red de puntos es de cuatro puntos lo. Entonces ya sabes, es que estamos consiguiendo 4.4 a 4.6. Por lo que entiendo para seguir adelante en la teca. Todos estos todos estos puntos marco neto 4.6 punto 1.2 punto siete punto lo apuntan. Pero eso no es todo, sin embargo. Necesitamos ese núcleo Met, pero entonces este curso se basa en dot net core 3.1, que es el último. Pero si vas con visual studio y se están llenando 0.1 para que podamos dejar eso solo después de esto, entonces te mostraré cómo conseguir 3.1. Además, ya que vamos a estar haciendo un poco como tu manera de cosas, sólo voy a tomar el cuadro A cero. No tenemos que modificar mucho más allá. Sólo estoy marcando esa caja. Asegúrate de que tenemos cualquier biblioteca que requeriría que puedas hacer un desglose. Basta con ver qué más está disponible para ti. Seguro. Dejó el desarrollo de plataforma cruzada de punto net core. Si haces clic en esa carga de trabajo, entonces obtienes algunas cosas más del núcleo neto de puntos. Pero creo que muchos de esos ya están incluidos en la carga de trabajo de desarrollo Web ya que nota que el espacio total aumentará con cada carga de trabajo que elija. Entonces solo voy dedo del pie en Tick the 01 on. Solo voy a asegurarme de tener la carga de trabajo multiplataforma de punto net core en las cargas de trabajo de desarrollo web y red de puntos de SB . No estamos haciendo mucho desarrollo con como tu para que lo puedas llevar si quieres. Si tú Si sabes que tienes el espacio, eso está bien. Y fuera de curso, cuanto más tices más tiempo te llevará la descarga. Pero no voy a tomarlo para esta partícula,Por supuesto, Por supuesto, así que una vez más sólo tenemos el sp dot net y desarrollo Web, y tenemos el desarrollo de la plataforma cross de darknet core en los números uno a hacer clic, Instalar en, entonces eso iniciará la instalación, que es realmente un don 't load. Por lo que en base a la velocidad de Internet, esto va a variar en longitud. Algunos apenas quinto reanudan cuando todo está terminado aquí. Está bien, así que este proceso está terminado. Burba tomó sólo desaprender nuestro en su ver que requieren que reinicie mi computadora con el fin de completar esta configuración. Entonces voy a decir que no. No, no es que no necesites reiniciar, pero hay algo más que quiero mostrarte antes de que te deje reconstruir. Entonces voy a decir, no sé cuál es básicamente simplemente no va a completar la instalación todavía. Pero solo voy a minimizar esto y les voy a mostrar que necesitamos descargar las herramientas de punto net core 3.1 en, así que ya tengo eso abierto y se puede llegar a este sitio web a través de dot net dot Microsoft dot com on. Entonces estoy en slash Don't Lord, donde me está mostrando que no puedo conocer las herramientas dot net core 3.1 o el tiempo de ejecución para eso específicamente así como dot net framework cuatro puntos it. Por lo que en realidad acabamos de instalar visual studio con el marco dot net. Cuatro puntos. Se trata de herramientas, así que no necesitamos prestar atención a eso. Pero sí necesitamos el núcleo 3.1 encendido. Yo sí dije antes que el núcleo net dot está construido para múltiples plataformas. Es plataforma cruzada. Entonces ves que las ventanas no saben que el Lennox Stone Lord, que los McCoys no y tienen un médico no Señor. Está bien, así que iremos con las ventanas. Estoy usando una máquina de Windows en te estoy enseñando en base a Windows. Pero dicho eso, cualquiera que sea un año en ti no conoces el que te conviene en DWI Corre el up así que soy Winton. Simplemente no cargue el punto net core runtime on. También voy a no conocer el sdk de punto net core, así que solo voy a no saber la X 64 porque estaba 64 bits encendido. No podemos saber eso al instalarlo. Entonces, cuando el instalador se apaga, es bastante sencillo, un slick in star on. Entonces hará lo que tenga que hacer en. Entonces verás que fue exitoso. Entonces realmente no tardé tanto en instalarme. Solo voy a volver y también a conseguir el sdk. Entonces lo que obtuve fue un tiempo de carrera. Fui a descargar el SDK no sdk corto para kit de desarrollo de software. Entonces ahí es donde estarán las herramientas de desarrollo real, um, puestas disposición para que el estudio visual interactúe con previo aviso. Están diciendo que este lanzamiento solo es compatible con visual Studio 2019. Por lo que si tienes 2017 o una versión anterior, entonces es posible que quieras actualizar. Entonces eso no sé. ¿ Simplemente instalemos eso así y luego iniciemos A viene con una instalación de palo, dejemos que haga lo suyo. Y luego dice que todo se instaló con éxito y usan todos sus propios tiempos y todos los demás señalándonos. Los diferentes documentos que podemos usar para tu recurso es para que podamos cerrar eso. Sé que hemos hecho todo esto. Entonces puedo reiniciar las computadoras. No quería reiniciar y luego olvidar los pasos. Entonces solo me aseguré de instalar todo y luego solo hacemos un gran reinicio Onda baja la computadora para hacer lo suyo. Está bien, así que sepan que Ari Start está completo. Cartas. Adelante y despide Visual Studio 2019 en. Puedes encontrarlo yendo al menú de inicio, y probablemente puedas simplemente escribir Visual Studio aparecerá ya anclado mi estudio visual 2019 a mi menú Inicio, así como a mi barra de tareas. Por lo que con solo hacer clic en este ícono morado que se parece a ese signo de infinito, lanzaremos nuestro estudio visual la vez que se ponga en marcha. Te anima a iniciar sesión o crear una cuenta, y puedes hacerlo más tarde. No, con la adición de la comunidad, en realidad te dará un poco, como un tipo de sensación de prueba de 30 días si no inicias sesión. Entonces si eliges, no sabes, tal vez más tarde y después después por la línea, ves como están diciendo, o ha caducado o algo así. En realidad es sólo decir que esperan que tú iniciaste sesión quiere iniciar sesión. Entonces no hay experiencia de caducidad que tengas parte, así que solo voy a iniciar sesión en la cuenta de windows, y esto son las ventanas son conos. ¿ El Microsoft es un maíz que me duro mucho antes? Andi. Este es el que abusar para cualquiera como tus actividades relacionadas que nuestra casa entiende para seguir adelante e iniciar sesión Una vez más, puedes crear un conos de Microsoft o, si ya tienes uno, solo úsalo al iniciar sesión. Entonces si optaste por iniciar sesión o dijiste no saber, tal vez más tarde te lleven al discurso donde te pregunten qué estilo te gusta. Tan oscuro, tema oscuro es toda la región. Yo t todo bien. No, pero puedes elegir el tema que sea apropiado para ti en la configuración de desarrollo. Voy a poner ese dedo desarrollo web. Entonces, General, Sí, está bien. Pero entonces, ¿qué desarrollo? Ese tipo de poner ciertas cosas en ciertos lugares para que sea más obvio para que lo veas. Muy bien, Así que una vez que hagas todo eso, puedes iniciar estudio de resultados No, solo no importa. Soy dedo del pie firmando sentir porque estoy en un servidor y son ciertas restricciones, nuestras propias ciertas actividades. Y así solo estoy destacando eso para demostrar que si dijiste no saber, tal vez más tarde, entonces esta es una pantalla que obtendrás. Una vez visual studio Florentines, se te pedirá que inicies sesión y a la derecha. Ya ves que tienes un juicio de 30 días. Por lo que una vez más, su periodo de evaluación como y que por favor inicie sesión remolque una gran cantidad de productos. Todo lo que realmente necesitas hacer es iniciar sesión en ese mensaje de evaluación desaparece. Alguien es un letrero una vez más. Está bien, sé que me ficharon. ¿ Ves eso? Tengo el cono personalizado que tenían a mi contenido. Y entonces ese mensaje de evaluación realmente se ha ido. Y así puedo recoger ropa. Y luego esta es la pantalla de lanzamiento para Visual Studio 2019. Por lo que desde aquí, puedo revisar algo de un Control fuente. Puedo abrir un proyecto existente, abrir una carpeta local para crear nuevos proyectos. Entonces vamos a hacer una pausa aquí mismo. Si llegaste tan lejos, entonces eso es perfecto. Has instalado resultados Studio 2019 Community edition on. Entonces ya estás listo para la siguiente actividad. 4. Actuación: instalar Visual Studio 2022 Community Edition y .: Oigan chicos. En esta lección estaremos instalando Visual Studio 2022, que se envía con dotnet six, que es el dotnet más rápido hasta la fecha. Entonces para empezar, solo necesitamos ir a las descargas de Visual Studio dot Microsoft.com slash. Y luego vamos a seguir adelante y golpear la descarga gratuita en la edición de la comunidad, que luego nos dará un instalador. Por lo que una vez que ejecutemos ese instalador, podremos seleccionar las cargas de trabajo que queramos. Las cargas de trabajo realmente se refieren a las bibliotecas o a las bibliotecas de soporte para el tipo de hasta que te interesa crear. Entonces en este caso, definitivamente queremos conseguir ese desarrollo web ASP.Net en carga de trabajo de desarrollo web. Pero entonces si te interesan otras tecnologías, puedes seguir adelante y seleccionarlas. Para que veas que tengo varias cargas de trabajo seleccionadas con desarrollo de Azure, NodeJS y desarrollo de escritorio. Para que puedas seguir adelante y dividirlos también. Creo que van a venir muy bien con otros proyectos que podrías terminar construyendo todo en general, una vez que hayas hecho eso, puedes seguir adelante y golpear Instalar, lo cual se haría por la esquina inferior derecha. Por supuesto, cuantas más cargas de trabajo selecciones es mayor será el tamaño de la descarga. Entonces una vez que hayas completado eso, entonces puedes continuar. Ahora cuando termine esa descarga, es posible que obtengan ciertas opciones que no voy a conseguir porque ya la tengo instalada. Entonces esto te guiará a través de lo que espero? Podrás obtener una opción donde llegues a elegir tu tema. Como puedes ver, estoy usando el tema oscuro, pero entonces sí tienes la opción de un tema claro, un tema azul. Y la cosa es que Visual Studio 22 tiene muchos más temas que sus predecesores. Por lo que aunque no quieras encender los temas iniciales, puedes conseguir todos los temas si los necesitas. Además, es posible que se te pida que inicies sesión. Entonces si ya tienes 2019 instalado en tu máquina y acabas de instalar en 2022, ya iniciaste sesión en 2019, entonces probablemente no te pedirá que vuelvas a iniciar sesión. No obstante, si esta es tu primera instalación de Visual Studio, posible que se te pida que inicies sesión o crea una cuenta en vivo, que punto te gustaría solo usar tu Microsoft emitida en vivo en todos los loci me enseñan un mucho conos com, o simplemente puedes seguir adelante y crear uno. Y si yo si mi memoria me sirve correctamente, puedes usar otra dirección de correo electrónico que no sea de Microsoft, secreta saliva, frío. 5. Crear . Proyecto de aplicación web núcleo: ustedes chicos en este video, vamos a empezar a crear nuestra aplicación Web dot net core. Esto se puede iniciar disparando a un estudio visual. Si aún no lo tienes abierto, entonces cuando llegues a este punto por aquí probablemente estaba en blanco para ti porque hiciste una instalación fresca. Hice una instalación fresca. Tan solo demuéstrame. Pero tengo otros proyectos en los que he estado trabajando, así que los tendré a un lado aquí donde tipo de muestra tus proyectos recientes. Pero para este ejercicio, vamos a estar creando y quieres hacer click, crear nuevo proyecto y luego usar la barra de búsqueda en la parte superior, solo escribiremos la palabra core. Entonces cuando escribimos en corte, se tipo de filtrar todas las plantillas de proyecto relacionadas con núcleo dominante en porque estamos haciendo específicamente una aplicación Web, puedo ser más específico y CSB dot net core on. Entonces se filtrará una vez más y después nos dará la plantilla de aplicación web sp dot net core para que podamos seguir adelante y hacer clic en este, y queremos asegurarnos de que es el que tiene C sharp. Es posible que veas otras con F Sharp y tal vez vb dot net. Pero queremos el con C afilado y luego damos click siguiente y luego le damos un nombre. Alguien debería estar llamando a éste. Vete. Hola, amigo Manag's ya que estamos creando un sistema de gestión de licencias, así que es dejar encendido la gestión de guiones. No tenemos que modificar nada más a menos que tengas una ubicación específica en la que desees poner tu proyecto. Entonces todo lo demás puede quedarse tal como está, y simplemente van a seguir adelante y hacer clic en crear después de hacer clic crea allí. No nos preguntamos qué tipo de andamios o preset. Um, ¿sabes qué? Con qué quieren crear un proyecto para que podamos crear un proyecto completamente vacío. Podemos crear uno con una e p I, ya sabes, plantilla. Podemos hacer con una plantilla de aplicación Web que podemos hacer con una plantilla NBC acto angular GS, etcétera. Por lo que para este ejercicio fueron seleccionando la plantilla de aplicación Web M. V c. Quieres asegurarte de que este es ese mitt core y no dotnet framework. ¿ Verdad? Entonces sí expliqué ese framework dotnet y no Niko son amable fuera diferente. Por lo que queremos asegurarnos de que estamos en darknet core. Y también queremos asegurarnos de que la versión off dot net core sea 3.1. Por lo que tengo bastantes listados aquí. Puede que no tengas tantos, pero deberías tener core 3.1 si no tienes core 3.1, luego vuelve al video de instalación en Inténtalo y configúrelo una vez más. Entonces estoy seleccionando core 3.1 a la derecha y dijeron que están preguntando, ¿Queremos configurar para https? Quieren habilitar el apoyo médico. Yo quiero dejar esos como no. Por lo que estoy seleccionando aplicación web con NBC dot net core 3.1 en entonces para la autenticación. Voy a cambiar esto de ninguna autenticación dedo del pie cuentas de usuario individuales. Entonces lo que esto hará es realmente darnos el marco para la autenticación en nuestra aplicación donde podemos crear y Andi usar usuario A conos nativamente están fuera de la caja. Muy bien, así que solo voy a seleccionar conos de usuario individual. Haga clic en Aceptar, entonces podemos seguir adelante y hacer clic en crear una vez más en Entonces se iniciará el proceso creando el proyecto. Una vez que ese proyecto se crea con éxito de lo que ves, una interfaz que se ve algo así, puedo tener personalizar mis interferencias porque en realidad puedes moverte alrededor de los compradores de acoplamiento . Él puede introducir otros que tal vez no veas. Entonces, por ejemplo, creo que por defecto, la solución Explorer suele estar debajo del lado derecho. Entonces eso es probablemente lo que estás viendo. Um, en realidad tengo una preferencia por ello en mi lado izquierdo, principalmente porque, ya sabes, como lectores occidentales o leer de izquierda a derecha. Entonces partiendo de la izquierda, yendo a la derecha, es más fácil para mí. Pero quiero decir, al final del día, puedes atracar en desacoplar estas dos barras. Como usted desee. Si tengo aquí una barra de herramientas que no estás viendo en la tuya y solo puedes ir a ver en, entonces podrías hacer clic y ves experiencia en la encuesta de Team Explorer. E Todos esos. Todas estas o la mayoría de estas son barras de herramientas que aparecerán en nuestro doctorado Si no quieres tal vez una barra de herramientas sea, ya sabes, siempre mostrada como, por ejemplo, el explorador de soluciones, tal vez quieras más bienes raíces para tu cancha de lo que puedes usar este pequeño alfiler aquí. Esa es su auto hide, y puedes hacer clic en eso y se esconde auto. Andi. Solo aparece cuando lo repasas y le das clic ahí. Cuando pierdes mientras hay foco, puedes hacer lo que tengas que hacer. Y cuando hayas terminado, solo puedes hacer clic en él y se volverá a esconder, ya sabes, solo volver a esconderte. Entonces es Es un tranquilo, versátil interfiere. Puedes tipo de personalizarlo, mover las cosas a tu preferencia. Por lo que una vez más, tengo experto social a mi izquierda. Andi, me gusta cuando está ahí para fácil acceso, tener una grande ya sabes, las pantallas tienen suficientes bienes raíces. Esta página de aterrizaje que te dan algún recurso es que pueden, ya sabes, empezar rápidamente con código de construcción. Pero para esto, puntajes iban a estar construyendo una aplicación específica sobre hacer muchas más cosas de las que cualquiera de estos artículos probablemente te mencionaría para que puedas meter las nuestras propias en el siguiente video. Vamos a pasar por el explorador de soluciones, y vamos a tener que saber, vamos a pasar por y entender exactamente qué estamos viendo y cómo todos estos componentes juegan un papel en ayudarnos con nuestra aplicación desarrollo. 6. Tour de la aplicación núcleo de ASP.NET: Oigan, chicos. En este video, estaremos mirando la estructura de carpetas fuera de nuestra recién creada aplicación Web SP dot net core 3.1 . No, nuestra herramienta de elección es visual studio Community Edition 2019 on In the Solution Explorer que el nos permite. Podemos ver todos los archivos que se encuentran en nuestro proyecto. lo son, bueno, empecemos con lo que hay en la parte superior Así puedes ver que este tipo de vista como un árbol son más altos del Ártico. Superiores te regalan todos los archivos. Todo es un tan archivo o algo más. Por lo que me paro en la parte superior. Por lo que este es un archivo de solución. Entonces si no estás tan familiarizado con visual studio en proyectos en Visual Studio, lo que hacen es crear Llamamos un archivo de solución, que es como un director general para todos los proyectos que podrían estar dentro de una solución. Por lo que puedes tener una solución y tiene un proyecto Web. Tiene ah, ver biblioteca clase afilada. Se puede tener un proyecto de escritorio. Se pueden tener múltiples proyectos dentro de una sola solución. En esta situación que tienen una solución, va a dejar la gestión y tenemos un proyecto. Por lo que la solución está en la parte superior. La mayoría en el proyecto sería el segundo en esa lista. En eso está nuestros proyectos Web. Y si haces clic, como que te muestra que es realmente solo un archivo XML que está resaltando, ya sabes, ciertas propiedades que el proyecto o solución tendrá que mantener un seguimiento de lo que se está haciendo . Por lo que la solución está en la parte superior y suele tener ese cuadrado con ese logotipo de infinito que tiene el estudio visual. Y luego tenemos el proyecto Web después de eso, y somos proyecto, ya sabes, los iconos tipo de pistas te dan en cuanto a qué tipo de proyecto es. Entonces este es nuestro proyecto Web, Andi. Es otro director como para todos Off los archivos que se usarán se crean dentro del proyecto Web. Entonces, ¿esto qué proyecto representa todos nuestros sitios Web que estaban a punto de desarrollarse? No, solo paseando por los servicios conectados F. Y si estropeas eso, te pieles, puedes en servicios conectados. Los servicios conectados incluyen, como Microsoft, ya que sus servicios tal vez desarrollen servicios. Cualquier cosa que pueda ser se puede conectar al proyecto y utilizar como un servicio Web o un servicio adicional. Puedes usar eso como esperanza para este video. No me meteré en eso. Yo sólo quería entender lo que estás mirando. Y entonces tenemos dependencia es así si expandiste dependencias de lo que estás viendo analizadores . Por lo que Dominic Cork viene con unos analizadores que nos ayudan con nuestra depuración y o análisis de rendimiento. A medida que avanzamos, tenemos marco. Entonces sabemos dónde usar el punto net core up desde el trabajo en la tienda dot net core framework referencias en, luego paquetes donde realmente sabemos qué tipo de paquetes estaban usando y un paquete puede ser, Ya sabes, como 1/3 biblioteca de fiesta que es una utilidad. Entonces, por ejemplo, bootstrap se lanzará en versiones anteriores que podrías descargar. Bootstrap. No es que no puedas saber Lo siento, pero no se implementa de esa manera principalmente. Pero el punto es, si tienes 1/3 de biblioteca de fiesta que quieres incluir en tu proyecto, entonces no sabes lo que llamamos un paquete usando una herramienta llamada new get. Entonces si eres realmente la dependencia es y ves algo llamado gestionado, obtienes paquetes arriba. Otra pantalla que te muestra lo que está instalado. Entonces tenemos todos estos paquetes y recuerda que habíamos hecho conos de usuario individuales y creamos un proyecto. Entonces cuando lo miras, ves el punto net core esa identidad que te acerco. Entonces ese es un paquete que no cargamos en ciertas bibliotecas, el manejador de conexión almacenar datos abejas. Y luego, si el deseo de la biblioteca no está ya instalado, siempre puedes ir a Bro's. Encendido. Al menos se les adeudarán todas las bibliotecas disponibles en la nueva plataforma get. Entonces aquí está geek donde no puedes saber que Jake usa referencias aquí mismo sin ir manualmente y conseguir los archivos. Um, tienes la parte superior del otoño. Tienes bastantes de ellos que algunos pueden significar algo para tu yo conozco algunos yo no, y eso está bien. Simplemente señala que es importante que incluyas el pre-lanzamiento cuando estás buscando porque estamos usando esa noche 3.1, que es totalmente nuevo en DSO. Algunas personas pueden no haber publicado um, muy públicamente el darknet tres puntos la versión dark net core 3.1 fuera de su paquete por el momento . Entonces al incluir el pre-lanzamiento de lo que estamos poniendo a disposición de nosotros ese lanzamiento para Donald y la inclusión. A continuación, tenemos propiedades. Y si entramos en propiedades, ve lanzar la configuración de césped que Jason, que abre este archivo, No tenemos que tocar nada aquí. Pero esta es la Srta. Guy. Tan sólo un incendio con algunas directivas que cuando estamos lanzando, esto es lo que se espera que hagamos. Por lo que puedes modificarlo si sabes exactamente lo que estás haciendo. Si no, entonces puedes dejarlo tal como está y cambiarlo caso por caso. Nuestro próximo tenemos o www ruta No. Www Root folder tiene nuestros archivos estáticos. Y cuando digo archivos estáticos, me refiero en el archivo CSS, cualquier archivo de script Java o cualquier lib tiene el bootstrap en la consulta JIA. Por lo que viene con esas cosas ya construidas. Viene con el bootstrap, um, um, referencias de archivo por defecto. Entonces si planeabas usar bootstrap, entonces no tienes que ir muy lejos porque ya está aparte del proyecto temporal que habríamos creado si quisiéramos algún archivo JavaScript que fuera a estar desarrollando . Lo ponemos aquí sitio no CSS. es básicamente solo ahí deja de archivo que nos dan que podemos modificar si quieres agregar cosas que me bootstrap, no necesariamente nos dan. Entonces, con todo, cualquier cosa que sea un archivo estático del lado del cliente. Nos dan el marco en cuanto a dónde ponerlos en el mar. Asiste, y por lo general son archivos CS y GS no estarían haciendo cada archivo dima necesariamente en un proyecto como este. Por lo que realmente son los archivos CSS y JavaScript los que se crearían y colocarían en estas carpetas todas esas que están en la carpeta www Root. A continuación, tenemos áreas en Daz. Entramos en el asunto de la identidad. Exploraremos lo que entra aquí. Pero las áreas es básicamente como una segmentación fuera de sus aplicaciones. Tienes, como un área de administración versus y empleados era versus yo uso su era de gestión. Entonces por defecto, debido a que incluimos la autenticación de usuario, obtuvimos identidad como área en su Está vacío. No, pero cuando lleguemos a ese punto, lo ves Philip un poco más. A continuación tenemos controladores. No, me refiero a no haber pasado mucho tiempo explicando lo que realmente significan el MTV y el mar en NBC, pero representan modelos, vistas y controladores. En DSO, tenemos una carpeta cuatro controladores, y notan que tenemos un lleno de cuatro modelos. Son eran una carpeta para vistas. No, el controlador. Ya que parece persona, es decir, lo explicaré primero bastante dicta lo que debe hacer la aplicación Web. Entonces cuando alguien hace clic en una página cuando hace clic en un enlace, más bien está solicitando contenido. Están solicitando un pitch. Entonces cuando el click en ese enlace, esa es nuestra solicitud, cual se envía al controlador. Por lo que Controller recibe una solicitud el. Entonces cuando reciba la solicitud, dice, Vale, Vale, esta persona solicitó este enlace o este contenido en base a la información que me estoy metiendo . Después devolverá el contenido lo mejor que pueda. Si no puede, entonces se obtiene así cuatro o cuatro errores, por lo que el controlador literalmente está tirando de las cadenas en función de lo que el usuario está solicitando versus lo que la aplicación tiene para ofrecer, dijo Usuario. Entonces déjame ponerlo en un término un poco más simple o bien dentro del contexto de lo que está en el archivo real. Por lo que en los controladores vendidos Aranda hemos ganado el control y se llama controlador domiciliario. Entonces eso es un controlador de casa de patrón de nomenclatura. Entonces cualquiera que sea el nombre fuera del controlador, tenemos ese nombre y luego el controlador de palabras, y siempre debe estar en comunidad. Es igual que en entonces nuestro expediente. Este fue generado para nosotros por lo que sólo podemos ir a través de él y mirarlo. Vemos que tenemos controlador de casa de clase pública. Por lo que el mismo nombre del archivo es el mismo nombre de la clase que hay ahí. Y está heredando de nosotros una clase base llamada controlador y esa que insiste, siempre que Onda comience con índice. Por lo que los índices suelen ser la primera página que señores en cualquier sitio web. Entonces cuando vas a molestar amazon dot com bulled up come youtube dot com. A la primera página que aparece suele llamarse índice, independientemente de la extensión de esto que PHP dot html Sea lo que sea, es Casi siempre se le llama índice. Y así si fuéramos de la tienda del bro, deja la gestión y solo ve al domicilio. Por lo que dijo, deja a la gerencia bajo dicha barra casa, entonces lo primero que haría es tratar de encontrar índice. Muy bien, entonces home slash index es el contenido que nosotros los usuarios estaríamos solicitando en DSO. El controlador va a comprobar si tiene un índice de función arrastrado. Si lo hace, entonces dice, ¿Qué hace índice debo hacer? Entonces dice vista de retorno. Entonces la vista es lo que el usuario ve eliminación de artes Tener em wear V nufc model view controller. Entonces el controlador está viendo me dieron una solicitud de un usuario en dso me voy a hacer lo que se me manda a puerta. Este es el contenido que ese usuario debería ver, que es la vista cualquiera que el usuario apoye la vista. Entonces si miro en mi carpeta de vistas, entonces voy a ver ah carpeta con el nombre correspondiente para mi controlador. Por lo que tengo controlador domiciliario. Ese es el nombre de mi controlador Tener carpeta de abuso llamada home on DSO Forever función que se define dentro de mi controlador. Por lo que al menos índice y privacidad. Si miro dentro de esta carpeta de vistas para todo el controlador, entonces debería ver algún archivo con el mismo nombre. Por lo que tengo un archivo de índice. Perdón. Déjame simplemente volver allí rápidamente tener una función de índice derecha llamada índice y vista de retorno. El expectativa es que cuando diga Return View vaya a mirar por dentro esa carpeta con el nombre correspondiente para algún archivo con el mismo nombre que la función. Por lo que para la privacidad, se ve un archivo llamado Privacy Arrow. Candido Algo diferente ¿Esos retornos de ti con algún contenido en él tan pronto se metieron en eso? Por qué es un poco diferente, pero al final del día fueron una visión giratoria sobre el trabajo a devolver vista aquí. El tribunal es idéntico, pero entonces sabe contextualmente que está devolviendo la vista que corresponde con la privacidad del nombre . Por lo que busca en la carpeta y encuentra un archivo con un nombre correspondiente. Entonces desde que empezamos con Index, veamos la vista de índice. Entonces si no me gusta el índice, ¿ves eso? En realidad solo está cargando y está viendo Vale, um, cada uno remolcando Bienvenido. Entonces esto es un html cinco, pero note la extensión, digamos, C s que html on Esto es una extensión especial porque entonces nos permite el tipo off inyectar C acorde agudo en nuestra página como yo quiero. Está bien, así que aquí se puede ver que esto no se parece a HTML. Esto no es html un alto. En realidad está un poco apagado como un tipo C agudo de híbrido C Sharp html tipo de híbrido. PH Muy bien, así que si estás familiarizado con PHP, entonces ese tipo de acuerdo es aplicable en un archivo HTML CS. Ahora la página de error predeterminada está aquí, y está regresando de ti. Pero es una vista en alguna parte, y está devolviendo algún modelo de vista de error. Entonces note que independientemente del nombre, no echemos un vistazo al nombre de esto. Pero si estás familiarizado con C Sharp y esto es realmente una clase, esto es tan declarar clase. Estaba devolviendo una vista con alguna clase que va a tener algunos datos. Se nota, viendo solicitud i d. Y es decir cuál debe ser el contenido fuera de esa variable. Esencialmente, esto es contenido, así que una vez que vas a estar produciendo contenido, eso no es estático. Por lo que el contenido estático es así. Yo lo mecanografié y lo dejé. No obstante, base en esto, basado en lo que declaro esta clase estar en el pasado a la vista, entonces eso puede ser contexto. Entonces puedo ver si es este tipo de ferro en este tipo de mensaje off, etcétera, etcétera. O tal vez quiero que se muestren datos. Y una vez que los datos son dinámicos, contenido se va a mostrar de lo que estamos usando es el modelo. Entonces tuvimos el Vienna See, tenemos los puntos de vista. Tenemos los controladores. Ahora estamos viendo la M, que está en los modelos. Tenemos unos modelos para entonces, en este modelo tragar, tenemos un modelo llamado error view model on you. Observe que ese es el mismo que se está declarando o inicializando aquí con algún contenido al ser pasado a alguna vista que debería corresponder con la palabra error o llamado Eric. Si miramos en las vistas y mirando compartido en, entonces mira en el pozo en el share porque verán que tenemos ese error, no CSS html view file ahí. Muy bien, así que cuando esto sirve fuera de la época, Pidge, realmente va del dedo del pie, Servir arriba Esta vista con algún error de texto y error ocurrió mientras hacía su solicitud el. Entonces te da ese mismo aviso de idea de solicitud que está citando del modelo de doctor solicita ideas. Por lo que señala en el controlador donde una solicitud de modelo de revisión I d. Así que una vez que se renderiza esta vista, tiene cualquier contenido que se puso en un modelo de revisión, puede acceder a ella en. Entonces podemos imprimir dinámicamente ese es el dedo del pie de nuestros usuarios usando, bueno, bueno, la sintaxis nítida de C. Entonces mira, tenemos una declaración, y eso es lo que quise decir con el tema CS. de Malala fue el tipo de inyectar algún C agudo con sobre html. Está bien, así que moverte con suerte tener un mejor agarre de la NBC. Sé que fui como un curso brusco, pero no te preocupes, tenemos todo un curso por delante y llegaremos a entender todo a medida que avancemos . Por lo que tenemos la configuración de la aplicación que Jason aquí es donde cadena de conexión grandes cuerdas se configuran en conjunto. Queremos que el registro se maneje en dso esta conexión predeterminada más o menos. Puedes cambiar el nombre si quieres, pero está ahí en el esto va a crear una base de datos en un servidor llamado TV local. Entonces sí dije que estamos usando SQL Express. En realidad estamos usando una versión más pequeña fuera de SQL Express. Y eso se llama DB local, que tipo de viene incorporado en el estudio visual. supuesto, podemos acceder a ella en estudio visual o podemos utilizar este estudio de gestión. Pero eso depende de nosotros. Por lo que son ciertos ajustes fuera del cebo de abejas ahí ciertos ajustes que podemos poner aquí en acceso y está en un archivo de configuración. Entonces si necesitamos cambiar algo, solo venimos aquí,lo cambiamos, lo cambiamos movemos o programamos el archivo CS. Este es un archivo estándar que viene con aplicaciones centrales, y en realidad es igual que un Isar inicial. Por lo que es solo crear el ambiente para el dedo del pie de aplicación del núcleo médico. Start up and exist in on then o startup dot CS tiene más configuraciones para nosotros, lo que Doctor core es muy modelo en la naturaleza. Podemos poner en conectores estado el foso, um, ya sabes, ya sabes, las cosas de referencia aquí puerta Francia, las de allá. Al final del día, este expediente este conflicto inició ese alto el fuego. Disculpa viene con una inicialización de configuración en. Podemos figurar que configuramos diferentes servicios que se necesitan. Entonces, por ejemplo, necesitamos toe connect a la base de datos que se define por la Cadena de Conexión por Defecto, que acabamos de ver en el sentado arriba para que podamos cambiar la cadena de conexión aquí. Pero entonces tenemos que asegurarnos de que cambiemos la cadena de conexión. Podemos cambiarlo en el archivo de conflicto. Lo sentimos, pero tenemos que asegurarnos de que si lo cambiamos en el archivo de conflicto, que lo cambiemos en el arranque que referencia de archivo CS. Además, podemos configurar ciertos valores predeterminados sobre nuestra identidad. La identidad, una vez más, es lo que estamos usando. Mango del dedo del pie, autenticación y autorización. Configuramos servicios para controladores con vistas y lecturas. Una página es así que una vez más, dot Net Core es versátil se puede utilizar para aplicaciones web de escritorio o incluso aplicaciones móviles de consola . Por lo que es posible que no necesariamente necesites todos estos dependiendo del contexto. Entonces cuando montes el proyecto, tu startup, ese alto el fuego va a lucir muy diferente en base a qué tipo de proyecto es el que estás creando. Por lo que detienen la aplicación, no necesitarían controladores y no necesitarían Razor PGE. Nuestra aplicación Web lo hace. Nosotros hacemos eso. También contamos con una función de configuración para el entorno. lo es hacer ciertas cosas en función del tipo de entorno, y estamos usando ciertas funciones de rotación en autenticación en estamos sentando cómo debería ser el patrón predeterminado para que estés navegando. Por lo que hay número de cosas que podemos configurar. No vamos a hacer ningún cambio, son demasiado intrusivos en los cambios en este video y lanzar el curso Hicimos los cambios caso por caso. Entonces sepan que hemos visto cómo se ve el lleno de estructura y tenemos un mejor entendimiento apagado. ¿ De qué no se puede Y creo que me salté la carpeta de datos. Entonces la carpeta de datos me salté sobre ella las mangueras de la carpeta de datos, nuestro contexto DB sobre nuestra migración. Entonces nuestro contexto DB es un archivo donde cuando estamos sentados la base de datos, no vamos a entrar en SQL Server y crear la base de datos lo tradicional que íbamos a estar usando una técnica llamada Code First, donde en realidad acabamos de ir para construir clases que modelarán lo que son las tablas se verán . Tienes que agregarlas a este archivo el. Entonces tenemos que ejecutar lo que llamamos migraciones, que en realidad generará la base de datos para nosotros en base a esos modelos que habríamos creado son esas clases de datos son. Entonces no voy a meterme en eso en esto. Solo quiero que entiendas lo que hay en la carpeta de datos, pero bien sabe lo que quiero hacer es realmente ejecutar esta aplicación tal como está, para que podamos ver cómo se ve nuestra aplicación Web fuera de la caja sin modificaciones hechas. Por lo que hicimos clic en hielo expresó esa flecha verde en. Después inicia lo que se llama un proceso de depuración donde se comprueba. Si tienes algún error de sintaxis o alguno, cualquier cosa en tu corte va a impedir que se ejecute, por lo que hace todos esos cheques en. Después, al final de esos cheques, lanzará un navegador con tu aplicación. Por lo que este es el estudio visual en modo de depuración. Está bien, así que en realidad te bajan el dedo del pie click a través de tus archivos Onda, pero se toma diagnósticos y muestra cualquier actividad en función de tu uso fuera de la aplicación. Si bien es en esta mañana en aquí, vemos que nuestra aplicación está cargada para que pueda hacer clic en la nuestra. Si puedo hacer clic en casa tan embarazoso que el directorio de índice o la vista de índice en el controlador de casa siempre va a ser el predeterminado. Eso se puede cambiar, pero siempre va a ser el predeterminado en DSO. Recuerda, vimos que h una etiqueta en algún otro remolcador P. Está bien. Y luego, si haces clic en privacidad de lo que crece, es la privacidad slash casa. ¿ Ves eso? Si cambio eso en mi índice derecho, entonces va a volver derecho a nuestro discurso de índice en entonces en estudio visual. Si bien queremos ver todo o aplicación se está ejecutando, Lo que podemos hacer es en lo que llamamos puntos de ruptura. Entonces digamos que estoy experimentando alguna forma de época y no estoy exactamente seguro de por qué. Son donde esa flecha es, um, puedo establecer un punto de ruptura. Vamos a ver aquí. Por lo que este punto de freno, solo tienes que hacer clic a lo largo de este panel entre la barra de acoplamiento en las líneas del cable, por lo que el más bien, mayoría se girará invertido cuando esté en esta sección. Pero entonces volverá a la normalidad aquí. Al hacer clic, ves ese punto rojo y esa línea está resaltada en rojo, ¿ verdad? Entonces voy a broz el índice una vez más encendido, entonces lo que va a hacer es golpear esta función y luego proceder a hacer lo que hay en la función . Pero entonces se hará una pausa en el punto de descanso, porque ahí es donde quiero que la aplicación se detenga o más bien déjame hacerlo en el terreno de privacidad . Entonces me voy a hacer una pausa en devolver la vista por privacidad. Entonces voy a volver a seguir. Entonces voy a ver la privacidad y luego no pierde el foco en los hermanos, y luego resalta la línea donde está. Entonces es en que estás a punto de hacer este proceso. En este punto, puedo elegir saltarse significando que puedo ir línea por línea, que son bajos. Yo para ver todas las variables y todos los valores que se están estableciendo, o simplemente puedo continuar o presionar f cinco para continuar. Entonces la solicitud procederá como debería. Muy bien, así que eso es esencialmente agujero que ejecutamos global o aplicación. Si voy a iniciar sesión en eso, creo que voy a obtener un error porque son ciertos pasos que o no me dieron un error. De acuerdo, hay ciertos pasos que necesitamos para compañía antes de que podamos realmente hacer esto. Por lo que registro de fugas de hecho. Entonces creo que conseguiré ese error y ahí vamos. Por lo que parecía que había una falla de operación de la base de datos en. Tenemos que hacer algunas migraciones antes de poder proceder. Entonces eso es lo que está en actividad para un posterior no. Pero para no, solo quería que comprendieran cómo funciona el estudio visual y cómo se resuelve nuestro proyecto para que pueda realmente revelar fuera de esta ventana del navegador. Andi, una vez que cierres la ventana del navegador, visual studio saldrá, desacreditará más que volver al modo donde te permite escribir código libremente. Entonces eso es todo para el tour fuera del lleno de estructural para la aplicación de puntonet core 3.1. En el siguiente video, comenzaremos a montar el Leo. Entonces viste al Leo solo saber que ya tenía ese tipo de sensación de bootstrap. Pero sólo vamos a seguir adelante y hacer algunas modificaciones, al menos para empezar 7. Migrar el proyecto al .: Oigan chicos, en este video vamos a discutir cómo actualizar 2.In a las cinco o incluso instalarlo si nunca han instalado ninguna.net framework en absoluto. Tan dominante cinco es todo abarcador y en realidad es retrocompatible con un montón de cosas que tendrías en tu aplicación ASP.Net o tu dominate core 3.1. No obstante, si sí deseas a mi pactado para.net cinco, entonces este video es para ti. Por lo que nuestro viaje comienza con una simple búsqueda de Google para.net cinco, podemos seguir el primer enlace y luego eso nos llevará a una era en la que bien descargaríamos el SDK o el runtime o bullet. Realmente no hay limitación en cuál deberías. Por lo que instalarías el SDK para que Visual Studio te brinde todas las herramientas que necesitas para poder crear una aplicación cinco dominante, mientras que el tiempo de ejecución es más establece bibliotecas para que puedas hospedar la aplicación como en iOS. Por lo que puedes comprobar en mi otro video sobre hosting dominar aplicaciones core. Y los pasos que debes seguir para instalar el tiempo de ejecución, prepararte como, y publicar tu aplicación. Entonces para el SDK, queremos descargar la versión apropiada en, digamos, si estás en Mac, Linux, Windows, tienen un paquete de instalación para ti. Para que puedas seguir adelante y hacer clic en el que corresponda. Iré con el x 64. Y una vez completada esta descarga, obtendrás este instalador, lo que te permite simplemente seguir adelante y hacer clic en Instalar. Se pasa por cualquier puesto de control de seguridad F2. Y es un proceso bastante rápido y directo, por lo que te avisará y fue exitoso. Si no fue exitoso, probablemente quieras volver a comprobar que obtuviste la versión correcta. Yo no soy ni Rachel, al apoyo de Microsoft. De cualquier manera, si tienes la pantalla de seda, entonces estás un paso más cerca. Por lo que de nuevo, adelante y haga clic en Cerrar. Y luego si vas a estar creando nuestro nuevo proyecto, entonces puedes seguir adelante y lanzar Visual Studio. Haga clic en Crear proyecto 2-0 plantillas. Y vayamos con una aplicación web core. clic en siguiente y dale un nombre. Entonces esto es solo una muestra, así que no seré demasiado formal con nada mojado y haga clic en Crear. Y luego en esta pantalla podrías seleccionar Dot NYC core 5 de la lista. Y luego eliges la plantilla adecuada con la que deseas trabajar. Cambia cualquier otra cosa, y luego sigue adelante y haz clic en Crear. Entonces así es como puedes crear tu primera.net. Entonces en el caso de que ya tengas aplicación core, tal vez 3.1, entonces lo que haríamos de arriba graduado es aún traer el proyecto. Haga clic en su cuál es el archivo del proyecto, y luego esto sólo mostrará la configuración XML, XML detrás de él. Y luego vas a hacer algunos cambios. Entonces donde veas detonar núcleo arriba 3.1, No quieres cambiar eso a.net core o.net, lo siento, 5. Entonces así como eso.net de cinco puntos o déjame simplemente hacer que se haga en más grande así que es más obvio. Por lo que querrás simplemente reemplazar el punto. Sigo viendo Dot.net Core up 3.1 con net 5. Ese es el paso número uno. En los siguientes pasos te harían actualizar tu paquete o referencias. Entonces Randall, todos mis paquetes que verían 3.1, en realidad querría cambiarlos a tal vez cinco, ¿verdad? O podría hacer una construcción. Bueno, mi compilación en realidad está sintiendo porque, al ver que mis dependencias no están a la altura de lo que estas esperaban, que es lo que estamos a punto de arreglar. Entonces déjame tomar ese enfoque diferente en lugar de construir o hacer cualquier otra cosa, podemos hacer clic con el botón derecho en nuestro proyecto, ir a administrar nuevos paquetes get, y luego mirar instalado. Y luego verás todas las actualizaciones disponibles de tal vez 3.1 a cinco o de cualquier versión en la que estuviera porque tengo algunas otras que no son dependencias de Microsoft directamente y están ofreciendo las opciones de actualización. Entonces voy a seguir adelante y seguir adelante y hacer todos estos objetos. Entonces voy a hacer clic en actualizaciones, seleccionar todos los paquetes, y cargar la actualización. Y luego después de eso es ejercicio, si hago otra construcción, entonces veo que todo se ha actualizado con éxito. Entonces, en pocas palabras, tal vez tu proyecto sea diferente mío en cuanto a las dependencias y las bibliotecas que estás usando. Pero los pasos soy yo y tú instalas el SDK, vienes y cambias tu marco objetivo, actualiza todos tus nuevos paquetes get. Y entonces deberías estar bien para ir con.net cinco. Si vuelves a tu archivo de proyecto, entonces verías que todos ellos han sido cambiados a 5. De acuerdo, así que esos son los pasos que puedes dar para actualizar tu serie de páginas. Aplicación Mvc a.net cinco. 8. Actuación: migrar el proyecto a .: Oigan chicos, bienvenidos de nuevo. Entonces en esta lección, solo voy a guiarte por actualizar tu proyecto desde dotnet 52, dotnet seis. Ahora bien, esto es completamente opcional, y solo estoy sugiriendo es que si tomaras el zambullido y ya actualizaste tu proyecto desde dotnet, tres puntos uno, dotnet Core 3.12 puntos neto cinco, como la lección anterior hubiera sugerido. Si no tomaste esa promesa, puedes continuar más allá de esta conferencia y solo continuar con el resto del curso usando dotnet Core 3 punto 1, 0.net Core 5 es retrocompatible con todo de dotnet Core 3.1. Por lo que yo sugeriría que usted hizo la actualización sin embargo. No obstante, para esta lección en particular, dotnet Sikhs son dotnet Core six sólo se envía con Visual Studio 2022. Entonces si estás usando Visual Studio 2020 para y ya has creado el proyecto usando dotnet Core 3.1 o dotnet Core 5. Entonces esta lección es para guiarte sobre cómo actualizar ese proyecto a dotnet 6. Entonces, una vez más, ya tienes Visual Studio 2022 y tienes el proyecto en dotnet cinco o dotnet Core 3.1, entonces esta lección es para ayudarte a actualizar a dotnet six. De lo contrario podrá proceder con el resto de este curso. Todo lo que estamos haciendo en este curso es compatible con versiones forward. Aunque, a medida que avanzas, ves que Visual Studio 2022 sí proporciona alguna funcionalidad que no verás presente en 2019. Por lo que en cuanto a la experiencia, es posible que tengas diferentes cosas apareciendo en tu pantalla. Entonces verás en mi pantalla, sin embargo, los conceptos generales siguen siendo los mismos. Ya basta de mi monólogo, empecemos. Por lo que el primer paso es pasar a nuestro archivo CSS. Ahora, estoy consciente de que probablemente no estés muy familiarizado con el núcleo de dotnet y eso está bien. Iré muy despacio. Ahora, verías que ya estoy en dotnet, en net o arriba 3.1, ahí es donde estoy empezando. Entonces eso significa que si todavía estás en no core 3.1, lo que estoy a punto de hacer también funciona. Por lo que vamos a primera fecha o actualizar esto para ver net 6. Entonces vamos a tomar dos paquetes nuevos y colocarlos justo aquí debajo del grupo de artículos para las referencias de paquetes. Así que ten cuidado al escribir estos paquetes de referencia incluyen Microsoft dot, ASP NET Core, JSON Patch, y la versión es 6. Lo mismo aplica para las extensiones de puntos de Microsoft versión abstracciones de almacenamiento en caché en 6. Para que puedas golpear pausa y escribir esos desactivados. Un cambio más que vamos a hacer es a la app settings.js archivo ON. Entonces vamos a reemplazar estas dos líneas, las líneas 89, o al menos para mí allí, 89, pero Microsoft colon warning y Microsoft dot hosting dot información de por vida. Y vamos a reemplazar eso por la advertencia de colon de Microsoft dot ASP NET Core. Asegúrese de poner entre las comillas correctas y los tribunales estén viendo, como lo ven aquí, golpear pausa y replicar en consecuencia. Ahora después de haber realizado esos cambios, puedes construir la solución para que puedas mantener presionado Control Shift y presionar B. O simplemente puedes ir a Construir y seguir adelante y golpear esa opción. Y eso te sugerirá es que tienes ciertos activos que están fuera de sincronía. El motivo de esto no está en ninguna parte usando dotnet six y nuestras versiones aún no están hechas. Entonces si ya estás en dotnet cinco, entonces vas a ver versiones con cinco. Ya los habrías actualizado a cinco. Estarías viendo el mismo tipo de error. Entonces lo que tenemos que hacer es hacer clic derecho nuestro proyecto y luego bajamos a Gestionar paquetes NuGet. Y tal vez no estés familiarizado con esto, pero a medida que avanzamos en este curso, estarás interactuando más con el gestor de paquetes. Por lo que esta es una herramienta que te permite asegurarte de que estás usando la versión correcta de bibliotecas para la versión de dotnet que estás usando actualmente. Entonces si miras debajo de las actualizaciones, verás que vino pre-empaquetado con ciertas bibliotecas, ciertos paquetes. Y muchas de las versiones están apagadas. Tus versiones podrían ser diferentes a las mías, pero a estas alturas todas necesitan estar viendo seis. Entonces lo que puedes hacer es seleccionar todos los paquetes y luego presionar Actualizar. Y luego puedes seguir adelante y ponerte de acuerdo y dar click Ok a cualquier sugerencia que recibas. Y una vez que eso actualiza el dolor se despeje, puedes golpear build de nuevo y luego hacer una reconstrucción esta vez. Por lo que esto limpiará la solución, restaurará todos los paquetes, y se asegurará de que vea todo de acuerdo a lo que espera. Y una vez que eso se hace sin éxito, entonces se puede proceder. Entonces así es como se actualiza a dotnet 6. Por lo que ves incluso si no actualizaste dotnet cinco, aún puedes dar la vuelta y actualiza dotnet 6 de dotnet Core 3.1. Por lo que estos sí disfrutan del curso. Como dije, Visual Studio 2022 es diferente a 2019 en, en cuanto a algunas de las características. Por lo que estarás experimentando ciertas cosas como IntelliSense mejorado, más sugerencias de IA. Y puede que no veas eso en mi pantalla porque estoy usando 2019, que es una versión más antigua. No obstante, todo lo que se enseña es bastante igual y retrocompatible. Por lo que no debes tener absolutamente ningún problema. Yo reajusto en consecuencia. Así que continúa y diviértete. 9. Diseño de sitio web de la: Oye, los chicos de este video comenzarán a modificar algunas de las estéticas alrededor de nuestra aplicación. Entonces lo tengo en la gente más de lo que esta es nuestra aplicación en. Se puede ver que es muy llano, pero nadie es simplemente es más o menos es más así. No les importen los espacios en blanco, pero algunas modificaciones que vamos a estar haciendo incluyen cambiar el nombre que aquí se muestra. CC dejan en el manejo de puntaje. Ese es el nombre real fuera de nuestro proyecto. Pero ese podría no ser el nombre de la propia aplicación. Entonces aprendemos a cambiar esto. Llegaremos a entender que podemos cumplir con los cambios una vez. Son ciertos cambios una vez ideales. Rep. Ricky lanza la aplicación porque o punto net core aplicación da o algo así como un laico bajo pH donde cambiamos las cosas una vez y se cambia globalmente. lo que notan que la barra de knave en el pie de página son estáticas, independientemente fuera de la página o encendido si voy a la privacidad es el mismo nervio bar Onda pie de página. Si voy a registrarme, es la misma barra nerviosa en pie de página. Está bien, ¿ entonces sabes qué es eso? Ahí ciertas cosas que son consistentes. Y eso se debe a que hay un archivo base que se puede modificar dedo del pie. Ya me conoces, estas cosas tipo de estática sobre global en nuestra aplicación. Entonces de vuelta en Visual Studio, y simplemente cerraré esto saliendo del modo de depuración, y luego volvemos a estudio visual on. Vamos a estar entrando en los puntos de vista. Fuller. Vamos a expandirnos, compartimos en. Nos vamos de puntera diseño punto CSS html. Por lo que eso abre una gran pizza HTML. Si has hecho algún trabajo con HTML y por extensión bootstrap, entonces deberías serlo. Ya sabes, deberías poder navegar por dónde en este discurso. Aquí hay algunas cosas que son un poco diferentes al tema estándar de la paz. Pero a medida que avancemos, los explicaré. No hay problema. Entonces tenemos el estándar Iham de formatos, o lo que yo llamo el esqueleto, donde tenemos o no tipo o declaramos sus declaraciones en la parte superior o tirón de cabeza y o cuerpo tirón todo eso dentro de donde html tina tirano en el interior off head. Tenemos ciertas metaetiquetas que se requieren para que seamos ambos globalmente aceptables en nuestras posibilidades sobre también tener son sensibles. Sitio web en estos Esto es requerido por Bootstrap para gasta diseño de sitio web responsive. Entonces tenemos nuestro título, así que lo primero que quiero cambiar es el título. Entonces ven aquí tiene permiso en la gestión de puntuación, que son los liteks OG que dijimos queremos dedo del pie deshacernos de. Entonces también te darás cuenta de que es Tiene esto a la señal y algo que está algo resaltado, enojado y no parece del resaltado, todo HTML o texto estático. Entonces una vez que ves el exterior en ese gran resaltado sobre el texto, eso significa que es sintaxis de afeitar o C nítida en html. Prácticamente así. View data es un tipo de variable que está disponible para nosotros dentro de nuestras aplicaciones de punto net core , y podemos tipo de sentar los datos de vista para ser lo que queríamos ser desde el controlador en adelante. Entonces eso es lo que se imprimirá en esta sección fuera del título en luego el guión y dejar la gestión extática. Entonces en realidad sólo voy a cambiar esto. Fui a llamar a nuestro núcleo de aplicación, dejar gestión así para más contexto, más o menos cuando vas en amazon dot com y haz clic en el discurso de crédito. Si miras en tu Tubb, sí te das cuenta de que ves productos guión, amazon dot com. O tal vez ver guión de amazon dot com. Algunos indican fuera Qué buscapersonas en esto es casi todo lo que hacen. Amazon dot com sería estático. Eso nunca cambia. Pero entonces te dicen dinámicamente en qué buscapersonas basado en cuando crezcas. Entonces si vuelvo a controladores son más bien si vuelvo a las vistas fuera de casa en I Click Index de lo que ves aquí que realmente estamos configurando el View data title Toby Homepage on, entonces en el layout va a estar imprimiendo lo que ponga en ese título y luego guión , lo que sea estática fija que puse ahí. Entonces por cada pieza que crearemos, podemos si quieres. Si quieres ser así de meticuloso, no hay problema. Simplemente asegúrate de que eres muy particular sobre lo que pones ahí. Por lo que homepage hyphen core leave application es lo que se cargará cuando nosotros Breaux's así nuestra página de inicio on para privacidad, será política de privacidad, guion core leave management todo bien, por lo que para que vea la sección de datos trabaja en. Entonces ves que estamos haciendo referencia a nuestra hoja de estilo bootstraps, así como al sitio que CSS y vincula el sitio CSS slash. Ese CSS y eso va de nuestras raíces www usa Fuller. Ese sitio en éste va desde la carpeta de bootstrap lib Beast CSS on en que tenemos los archivos bootstraps. De acuerdo, así es como funcionan esos enlaces y por extensión que es similar para el archivo de script. lo que los guiones suelen ser referenciados en la parte inferior de la página para que la P se rinda antes de que los archivos de script rendericen porque, ya sabes, no queremos que mantenga a nuestra gente esperando en DSO Técnica moderna nos haría poner el archivos de guión en la parte inferior de la pizza que un contenido puede dominar hasta que se cargue el fuego de tira . Entonces tenemos eso puesto. También tenemos una sección llego a la sección Suficiente, ya sabes, empecemos modificando sobre barra suficiente. Así son suficientes. Bar es un bootstrap barra suficiente en def. No estás tan familiarizado con bootstrap Party quiere más refuerzo con lo que puedes hacer con Bootstrap, entonces puedes ir a su página web, obtener bootstrap dot com, donde tendrás acceso a todos fuera de su documentación, ejemplos, etcétera. Entonces Bush, arriba 4.4, es lo último. Eso es y eso Bueno, no estoy seguro si son cuatro puntos para eso viene con el proyecto, pero definitivamente son cuatro. Entonces tu si no eres el último y estás bastante cerca de lo último en una vez más cubre edificio, por lo que no tenemos que prestar atención, mucha atención a las indicaciones de instalación. Pero si quieres entender, aguanta lo suficiente por obras y haz que las clases trabajen. Entonces podemos ir con el dedo del pie. Creo que es documentación en. Entonces podemos buscarte para burlarte si inicias utilidades que sus componentes. Andi, Como puedes ver, es un documento bastante grande, pero en componentes y tenemos nuff comprador. Entonces cuando hacemos clic en barra suficiente, entonces nos lleva a la sección donde realmente podemos mirar el núcleo que se requiere para suficiente comprador. Y ese es el ejemplo de lo que la cancha de abajo rendirá para ti para que puedas ser tipo que puedas usar esta, um, guía para entender mejor la cancha, pero voy a estar caminando por algunos de los cambios que estaremos haciendo para nuestra aplicación. Entonces, en primer lugar, no quiero unas barras lo suficientemente ligeras. Tenemos una opción apagada la luz encendida. Dark on. Déjame sólo volver atrás. Onda te muestra las diferentes opciones. Tienes a Siberia. Tienes cabello azul oscuro, Tenemos azul claro. Yo quería ser suficiente bar oscuro en BG Dash dark. Entonces voy a volver a mi cancha y veo aquí no tengo barra de luz de salpicadero. Eso es casi el defecto. Entonces voy a ver dash dark en ir a cambiar esto a B G dash dark. Pero entonces si borro que hago espacio cultural, entonces ves el estudio visual court tipo me da, um ya sabes, algo de lo que llamamos inteligencia. Por lo que te ayuda a medida que vas junto con tu cancha. Incluso con clases de bootstrap, lo hice RBG dark. Por lo que estoy seleccionando BG dark on. Ese es un cambio que estoy haciendo que voy a hacer algunos cambios en mis propiedades de navegación . Por lo que para cada enlace que aparece en barra suficiente, necesitas un aliado con la clase ahora ítem encendido. Entonces tienes un tío remolcando con Charles. ¿ Las clases para el ataque del ANC ya quieren que se vean Así que quiero que se tome para ser guión de texto . Yo quería ser blanco. Creo que puedo ver el derecho de una esposa. Entonces necesito que el texto sea blanco porque el comprador nuff va a estar oscuro. Está bien, así que me lo estoy invirtiendo aquí. Está bien, así que mi novela ing encendido, entonces el texto guión blanco va a hacerlo texto blanco en área spe es ser controlador, ojos iguales a casa. Y la acción es índice. Entonces eso significa que cuando hago clic en esta casa Ling está bien, como lo hicimos cuando entramos en el libro. Más deciden venir sobre dónde el hogar y los vínculos de privacidad. Por lo que este es el enlace home on. Este es el enlace de privacidad. Al hacer clic, el homelink va a buscar el controlador llamado home. Correcto. Y sí establecimos que tenemos un controlador llamado home right on. Entonces va a buscar la acción. Es una acción es más o menos esa función que mostré el interior fuera del controlador para que veas que se llama resultado de acción. Entonces la acción es que la función en hizo. Debe tener el índice de nombres. Por lo que está buscando una acción llamada Index. Y así cuando hago clic en casa, esa es mi solicitud de usuario para ver la acción de índice o vista en el controlador de casa. Entonces cuando haga clic en casa va a buscar en primer lugar que los controles de ese controlador no existan y se obtiene un error. Está bien, entonces, si sí lo encuentra, entonces va a buscar la acción dentro de ella. Y si no existe, también se obtiene un temprano. Si sí existe, entonces va a hacer lo que sea que esté dentro de ese espacio. La función en este caso sólo está devolviendo la vista, Así que no es nadie para buscar en la carpeta Vistas para la colección de vistas de inicio correspondiente en. Entonces se va con el dedo del pie. Render nuestro contenido de índice. No, el contenido del índice está sobre cada una charla que dice Welcome y nuestro Peter que tiene algún vínculo y alguna narrativa sobre esa cancha nocturna. Entonces lo que pasa es que cuando hacemos clic en que este es el tono Leo, cualquier vista que sea devuelta por sobre acción se renderiza dentro del cuerpo de Orender. Muy bien, así que este es nuestro bateador. Seis adelante con barra suficiente y luego pasamos a la sección de contenido. Entonces una vez más, estoy haciendo todo esto, asumiendo que tienes alguna exposición a HTML on. Por lo que sabes que Mishima PGE Después de hacer tu hit y tinas de cuerpo las cuales se requieren absolutamente necesarias para una estructura adecuada. El nuevo estructura tu página de la sección de bateador que suele tener suficiente por en tus pancartas y lo que sea. Y luego tienes el contenido que está en la página en todo eso, la mayor parte del pie de página. Entonces si lo miras de cerca, ves que son masculinos Peach tiene la sección de encabezado con nuestra barra suficiente derecha la cual tiene todos nuestros enlaces en. También tiene, ah lo que llamamos un parcial para las funciones de carga. Está bien, pero entonces también tenemos un dar que tiene una clase llamada contenedor en esto es las secciones principales que es la sección de contenido off todo molesto on. Cada vista se renderiza dentro de esta sección que es por qué o la vista puede ser tan ligera porque no tenemos que pasar y ser claros Todo fuera de la sintaxis html y todo. Cada vez que tenemos de ustedes, solo necesitamos enfocarnos en el HTML que se requiere para eso. Particular bit off contenido a renderizar dedo del pie el pH. Está bien, vamos. Por lo que se renderiza como en esta sección, dentro del contenedor en Contin Aires, una clase bootstrap que nos da, como un lindo 80% de relleno en cualquier pantalla que se esté viendo. Está bien, así que solo estoy caminando por esto regresará y modificará nuestra barra suficiente un poco en un rato porque son algo sonny a nuestros traseros pasando, agregamos, tenemos nuestro contenedor, que renderiza nuestro contenido de vista cada vez. Y luego tenemos nuestro pie de página. Entonces nuestra sección de pie de página no voy a modificar la estética fuera de ella, pero sí quiero modificar el contenido. Entonces tenemos la copia, um, um, por ciento copia, química. Y esto nos da ese derecho de autor de firmar. Entonces quiero cambiar esto, y les voy a mostrar algunos pedacitos fuera. Um, sintaxis de afeitar. Entonces recuerda que navaja nos cierran dedo del pie poner c agudo en lugar de cuatro sintaxis html. Prácticamente así. Voy a modificar este año, Toby más dinámico porque ahora mismo es 2019 y en realidad estoy grabando este video en la víspera de Año Nuevo así que literalmente mañana va a ser 2020. Entonces solo estoy dando a conocer eso para que en adelante cuando veas 2020 en mi Pie de página, a pesar de que empezamos 2019 año cuándo sentarse 2020 por eso. Por lo que sistema a 19 y es estático como 2019. Entonces yo soy lo que va dedo del pie. Usa algunos c afilados para hacerlo más dinámica. Voy a decir a la hora de la fecha de la firma , está bien, y entonces puedo ver No. Entonces si alguna vez quisiera saber la hora No, Como estoy hablando, usaría el cronometrado. No, Pero entonces quiero sólo el año para que pueda ver punto en. Entonces solo consigue el año. Entonces lo que va a hacer es tener el copyright de firmar, luego obtener el año como actúa el tiempo que se está cargando la aplicación Web, o el año según la hora en el servidor del que está saqueando, Así que mi computadora es precisa, bastante preciso. Entonces mañana cualquier cambio 2020 entonces mi día será 2020 si la hora del servidor es incorrecta. Lord aplicador son el tiempo de la computadora está mal, entonces Obviamente este valor va a estar mal. Pero el hecho es que es dinámico. No va a ser 2019 incluso cuando sea 2020 y 2021. Entonces solo estoy haciendo eso un poco más que y me convierto en solo demostrando. Todo c agudo se puede insertar en nuestro HTML con bastante facilidad a través del arte del motor de afeitar en. Entonces estoy cambiando este texto en DSO. También deben decir gestión de las licencias básicas. Y voy a copiar esto para que no me haya pisado de nuevo dejo ese enlace de privacidad y luego tenemos o script, um, um, archivos que se están cargando. Por lo que FRG query script fire siendo cargado el bootstrap JavaScript fire siendo cargado en nuestro sitio personalizado ese archivo Js, que también viene de nuestro doblete de tu ruta. Gs Fuller. No, por favor señala que con scripts y con CSS, el orden importa. Entonces eso significa que a veces intentas instalar algunos, ya sabes, como una cantera J. Guitaramos algo, y luego pones las referencias de guion por encima de la referencia de Jake Worry. Eso es un no, porque entonces simplemente te pones un rosy no va a funcionar y luego ves Oh, Dios mío, ¿qué estoy haciendo mal? No puedo hacer esto. Por lo que importa la orden. Entonces solo recomiendo que cualquier archivo de script adicional que vas a estar agregando que no sean Jake o, er, bootstrap. Acabas de ponerlos debajo. Simplemente siguen agregando, agregando , creo que creo que nunca puse por encima De acuerdo, esa es una buena regla de pulgar fuera de curso, caso por caso. Si entiendes lo que estás haciendo, entonces está bien. Pero solo para mantenerse alejado de problemas, si no estás tan seguro, solo siempre agréguelos a continuación en. Entonces tenemos nuestra intersección aquí. Entonces recuerda, deja que Orender cuerpo, que está renderizando fuera de nuestros puntos de vista. En esa sección, tenemos sección de render bien, lo cual es causado scripts, que nos pierdo los scripts de inserción en la vista caso por caso, porque puede que no necesitemos cada script cinco para cada vista individual. Está bien, entonces quieres reducir nuestros incendios, El Señor en qué páginas. Entonces a medida que avancemos, veremos el propósito fuera de esto, pero solo te estoy haciendo saber para qué sirve. no tienes que quitar. Puedes si quieres. No tienes que hacerlo. Yo diría que no lo son entonces ¿Entonces qué? ¿ Vamos a hacer? No, solo hace toques finales. Almacenar bar suficiente. Yo sólo quiero cambiar en la parte superior aquí, donde tenemos la primera sección sobre deuda diciendo gestión de licencias y quiero poner en la aplicación en la que es gestión de la licencia de puntuación. Por lo que este es el texto que se imprimirá en la propia barra de navegación. No tenemos que molestar mucho más, pero sólo voy a añadir algunos otros enlaces aquí. Entonces tenemos casa. Tenemos privacidad. Tengo algunos otros enlaces. Ese es nuestro dedo clave, nuestras actividades pendientes. Entonces escribí 1/4 y solo voy a reemplazar el acorde existente por la nueva cancha y solo te daré un rápido recorrido por lo que estoy haciendo. Algunos reemplazan el enlace de privacidad con mi cable adicional en DSO. Una vez más, estamos construyendo un sistema de gestión de licencias. Entonces lo primero que pongo en la privacidad policial es uno que es solicitar permiso. Sólo voy a asegurarme de que mi texto también sea blanco. Está bien, así que solicita permiso. Eso es lo que estará haciendo el patrón. Y entonces tengo otro, y éste está en forma de desplegable. Entonces así es como lo haces caer Don en. En realidad, acabo de tomar el ejemplo cord de bootstrap dot com porque sí tenían un ejemplo desplegable . Y en su ejemplo desplegable, dijeron que para conseguir un enlace desplegable, correcto, ese es un enlace desplegable que necesitamos ir a l Necesito toe have core que se vea así . Por lo que acabo de copiar esto y luego modificar las partes que quería una clave. El goteo. No enlazar texto sobre la acción real ni sobre los remolcadores de anclaje. Más bien. Entonces me podría esa modificación en. Entonces tengo los artículos desplegables y los tengo todos. Pero a medida que avanzamos, los estaremos llenando a medida que ponemos en las funciones. Después nos encontraremos con el trabajo de los enlaces. Entonces ahora mismo, ese no es mi objetivo. Yo solo quiero que mi nuez bar se vea un poco como lo que espero lucir. Andi, sólo voy dedo del pie, uh, teca este texto guión blanco y asegúrate de que esté dentro de cada elemento desplegable para asegurarme de que toma estos blancos. Pero yo sí. Entonces solo voy a ir a depurar y ver cómo se ve. Está bien, así que esto es lo que parece, verdad? No. En dso se ve que el número ha cambiado demasiado oscuro en hizo tantas cosas son todavía no toma dash blanco. Entonces ves que están escondidos por aquí. Pero entonces los otros son Así que esas son pequeñas cosas que sabes mientras vas a lo largo prueban y luego tus aliados Oh, actualmente no me dejaba cambiarlo en otra cosa. Te das cuenta de que cambié mis edificios de gota a texto Eso es blanco mientras que el desplegable es blanco Así que todo aquí es blanco, Así que sólo voy a ir por mí. Esas modificaciones en lo bueno es que en realidad se puede cambiar la cancha mientras está en modo debug. Entonces déjenme empezar con el parcial. Entonces voy a encontrar mi explorador de soluciones, que puede haber cambiado de posición opuesta sobre voy a ir al show de pyre de registro. Por lo que este iniciar sesión mangueras parciales, los enlaces para la tala y registrar algunos cambiando este dedo blanco. Y voy a cambiar este a blanco también encendido, luego ahorrar. Entonces solo puedo conocer el cambio y ver incluso volver a mi modo de depuración Refrescar on down Una vez los cambios se reflejen, entonces sabes que has hecho algo bien? Entonces simplemente me adelanté y me hice todos los cambios. Estos texto dash dark on dso saben que estás viendo todo. Muy bien, entonces tenemos nuestro nombre de aplicación. Podría ser un logotipo. Ya sabes, solo lo estoy haciendo nosotros nombre de aplicación ahora mismo. Andi. Entonces, cualesquiera que sean los cambios que hagamos, se ondularían a través de cada vista que se va a renderizar dentro de esta sección, que está entre nuestra barra de navegación en nuestro pie de página encendido. Entonces esa es una puntera de introducción rápida haciendo cambios estéticos a su aplicación como le parezca conveniente. Si tienes que sentir tal vez tengas el administrador, lt. Sea lo que sea, sea cual sea el tema que tengas o lo que sea Mira y sientas que vas por solo me pueden los cambios una vez en el layout stocks CSH en un archivo en día serán globales. Toque su aplicación si desea más de una carga y en realidad puede crear otro archivo en capas sobre una base caso por caso. Te refieres a ese archivo Leo dentro de la vista. Todavía no hemos creado ninguna vista. Entonces cuando llegamos a ese punto, entonces se ve a lo que me refiero con referenciar. Está en la vista para que puedas seguir adelante y yo esos cambios y cualquier otro que te parezca conveniente. Andi. En el siguiente video, comenzaremos a crear nuestra base de datos. 10. Setup la base de datos de bases de datos, los modelos y las migraciones: Hey, chicos, Bienvenidos de nuevo en este video, vamos a empezar a modelar sobre base de datos, y en mi pantalla hay un modelo de datos real fuera de lo que vamos a estar creando usando nuestro marco de entidad llamado first Technique. Ahora, este es un diagrama de modelo de datos en. Déjame ver si puedo hacerme un poco más grande para ti. Está bien, Así que lo tengo va a ser más grande en la pantalla. Andi comer rectangular, o cada caja representa Ah, mesa. Entonces ven aquí que algunos tienen el nombre son las palabras ISS be net al inicio. Entonces tienen s peanut las afirmaciones de usuario son usuarios de maní etcétera? Estos son todo tipo off auto generado por nuestra identidad. Um, construido en funcionalidad de identidad que nos da por s p dot net Core sabe que tenemos algunas otras tablas que estaremos creando manualmente por ahí. Aquí abajo. Dejar historias. Deja asignaciones tipo Steve. Puede que queramos más uno. Nosotros me queremos menos a medida que vamos junto con refinado el diseño on. Eso es lo que corte primero nos baja a hacer manteniendo todo alejado para el diseño de base de datos en cancha. Apéntate en un tipo de estructura para que podamos yo tal como avanzamos, Así que solo te estoy dando una visión general de lo que estamos a punto de crear y notar que las relaciones se crearán serán caminando por cómo serán cada una de estas cosas facilitado en nuestros reales los adultos. Ahora vayamos así a estudio visual y empecemos a diseñar o a clases. Entonces, primer lugar, tenemos una carpeta aquí llamada Data on. Lo que pase en los datos es, ya sabes, se recomienda que tenga que ver con la base de datos. Entonces usando cancha primero, lo que estaremos haciendo es crear algunas clases de corte que se convertirán en el ritmo de los establos que acabamos de ver. Pero para empezar, queremos generar nuestra base de datos están configurados por beat obesos on, para que podamos seguir trabajando con esa base de datos. Entonces lo primero que queremos hacer es ir a nuestra configuración up que Jason on tenemos la conexión predeterminada con la conexión String toe. Nuestra base de datos de esta cadena entera representa una conexión. Cadena de los diferentes motores de base de datos. El string puede tener un aspecto diferente. Um, estamos usando ah, construido en motor de base de datos llamado BB local. Se Zaveri Avery versión Light off SQL. Y es especie fuera nativa. Bueno, viene con estudio visual. Por lo que al instalarte resultados a ti, habrías conseguido ese motor de base de datos en DSO. Esa es la que estamos usando. Entonces para conectarnos a ese motor, necesitamos decir que el servidor es igual a en. Entonces ya debería estar ahí. Local db slash slash m. S que un db local por lo que no tendremos que cambiar esa parte. Pero entonces para base de datos bienvenidas en esta sección debería ser el nombre fuera de la base de datos que queríamos crear. Entonces nos dio Ah, bueno en nuestro nombre degenerado con una buena, Pero eso no es necesariamente lo que quiero. Eso es bastante bocado. Entonces solo voy a simplificar un poco esto. Voy a llamarlo gestión de la licencia. Entonces voy a quitárselo todo eso en bases de datos igual a dejar gestión. Entonces cuando ejecutamos bien, necesitamos ejecutar para generar la base de datos en nuestra base de datos se debe dejar en la gestión de puntuación . En eso estamos buscando. Entonces podemos dejar todo lo demás dedo del pie los impagos por no. Al menos no tienes que molestar a los de entonces si recuerdas cuando probamos el dedo del pie registrate . Nos dijo que necesitábamos configurar la base de datos y necesitábamos hacer una migración y todo tipo de palabras de fantasía. Entonces, ¿eso es todo lo que vamos a hacer? No. Entonces, de espaldas, lo que va a pasar es que tiene migraciones. Entonces si vamos a la carpeta de datos y las migraciones para sus y vemos que tenemos aquí un archivo con un montón de ceros y es crear esquema de identidad Así que si echamos un vistazo rápido en este archivo de migración veremos que tenemos un open my third on. Si colapso que vemos que también tenemos ah método aburrido. Entonces los callos basados en el método don 't. De acuerdo, déjame quitarme estos entonces. El up methods es dejarme crear estos y estas son las restricciones para las creaciones. Por lo que se va a crear una red SP Rolls s maní usuarios. Todas estas cosas son por defecto. Y si miras en los usuarios de SP, ves todo fuera de las columnas y las restricciones que tendrán todas estas cosas maravillosas . No les estoy diciendo que estudien este archivo y se conviertan en experto en este incendio necesariamente esto se generó una vez más también porque seleccionamos usuario individual consular creando nuestro proyecto en A medida que avanzamos, veremos que este tipo de archivo se generará con los diferentes cambios que hacemos bien, Así que dedo del pie efecto una migración. Lo que queremos hacer es buscar la consola del gestor de paquetes, por lo que debe estar en la parte inferior de la ventana visual studio. Si no está ahí, entonces se puede disco para ver Onda. Lo siento. No ver pero tontos realmente herramientas. Después obtienes el gestor de paquetes en las consolas del gestor de paquetes. Al hacer clic en eso, entonces esta ventana que he resaltado aquí debería estar a su disposición el. Entonces lo que veremos es actualizar las bases de datos de efectivo. Por lo que en realidad hay dos pasos para esto. Pero entonces el primer paso ya es una especie de cuidar porque ya tenemos el archivo de migración . No voy a meterme mucho en eso Cuando empecemos a construir nuestra base de datos, se ve la relevancia de eso. Pero tenemos primero la migración. Lo que necesitamos hacer es actualizar la base de datos, así que jugar base de datos básicamente dice si hay una base de datos que voy a cumplir con los cambios como me gusten. En base al archivo de migración que es más reciente en diff, no hay base de datos que esta. Comando realmente va a seguir adelante y crear la base de datos en base a los archivos de migración que están disponibles. Entonces cuando diga arriba la base de datos y presione enter va a entrar en nuestro propio fuera de procesamiento, se va a construir un proyecto sobre. Entonces una vez que eso sea exitoso, entonces conseguiremos un mensaje viendo hecho. Entonces si no recibiste mensajes de error, no recibiste ninguna escritura roja ni cada escritura amarilla, y es algo mira esto que significa que algo salió muy bien. Entonces una vez que hayas hecho eso, entonces podemos verificar que se creó una base de datos basada en el nombre que pongas tu. Por lo que pongo licencia en el manejo de puntaje. Por lo que espero ver una base de datos llamada Leave on the Score Management. Entonces para llegar a las bases de datos, lo que haremos es ir a ver en. Entonces buscaremos el objeto SQL server explore. Entonces esto es como una administración de servidor SQL incorporada um, dashboard, dashboard, que el estudiante de visa pone a disposición de nosotros por defecto está mirando la instancia de DB local que está incorporada en el estudio visual. Por lo que ya lo tengo aquí. Puedo ampliar este expandir servidor SQL en luego dentro de SQL Server, verías a incienso db locales. Entonces vamos con el m s s que un db local como se describe en nuestra cadena clínica y ampliaré eso en entonces en la lista fuera de bases de datos veo gestión de dejar. Entonces si me expando, dejo castigo y expando las tablas entonces veremos que algunas tablas fueron creadas en base a esa última migración en nos pone como un historial de migración que es solo una mesa de camionaje sobre todo fuera esas está siendo tablas de red que vimos en nuestro diagrama anterior de Montel. Entonces así de fácil fue lanzar todas esas tablas requeridas para nuestra autenticación yare usuario en administración de reglas, se mantiene si intento volver a registrarme, no debería obtener un error sobre, ya sabes, Falta base de datos Bloqueo de operación derecha. Debería funcionar. No. No obstante, nuestro trabajo no se hace porque todavía tenemos algunas otras tablas que se requieren que no son necesariamente sólo sobre los usuarios y así crear nuestras mesas lo primero que voy a hacer y entender para colapsar lo que no es absolutamente necesario a la tarea que nos ocupa. Alguien para cerrar la migración, encontrar ropa o g hijo archivo en. El primero que queremos hacer es crear en como una tabla de perfiles de empleados. Entonces voy a escribir Clickbait er goto clase de anuncio en. Entonces voy a crear un nuevo archivo en Ball una nueva clase y lo estoy llamando empleados. Es una clase con el nombre apagado. El elenco es empleado. Alguien para hacer clic, agregar y luego esto me da en clase de empleado No en empleados usualmente tiene nombre, apellido impuesto I D. Fecha fuera de cumpleaños articulación. Se pueden agregar otras cosas. Ya sabes, lo que sea que compensa a empleado en la organización trabajas con lo que Estas son las propiedades con las que estoy trabajando en Soto en nuestra propiedad puedes mientras puedes ir por el largo camino y derecha cadena pública el nombre fuera del propiedad que en este caso será de nombre el. Entonces solo podemos tener imaginario ponerse en el set. Ah más corto. Somos forma más rápida de hacer esto es escribir la palabra prop Eso es P R O P. Presionada dos veces. Entonces. Visual studio tipo de genera esa línea para ti, lo que el tipo de datos volvería a ser string. Presionó hacia arriba para pasar de tipo de datos toe nombre de propiedad y el nombre es apellido encendido. Después te dispersas, entras y luego te desplazas a la siguiente línea. Entonces, cualquiera que sea la forma que encuentres más fácil de hacerlo, puedes hacerlo de esa manera. Pero una vez más, estamos haciendo nombre, apellido Impuesto I d. en fecha de nacimiento. Y así es como se espera que se vea nuestra clase. Nombre, apellido Impuesto I D fecha fuera de nacimiento. El conjunto off course dos días están fuera tipo beat tiempo están encendidos. Entonces podemos tener uno más para que solo pueda duplicar este terreno sosteniendo en control y presionando b aviso. No tuve que destacar a los leones fuera de curso. Se puede copiar y pegar, pero con sólo hacer clic en la línea en mantener en control y Presidente de ello se duplicará tantas veces como lo hagas Esa combinación de teclas en Voy a poner esto como lo hizo creado significado bit. El registro de empleado fue agregado a nuestra base de datos para que puedas agregar tantos como quieras. Entonces eso fue sólo un ejemplo. No voy a seguir adelante con el lo creado. Entonces así será mi perfil de empleado. Ya lo sabes? Otra cosa a tener en cuenta es que el empleado prácticamente es el usuario, por lo que no quiero tener una tabla de usuarios y una tabla de empleados separada. Me gustaría la tabla de usuarios, que tiene uso en la contraseña on ¿Conoces otros pequeños detalles sobre el usuario que ayudan con la autenticación también pueden tener los detalles de lo que debe tener un empleado así con el fin de extender esa tabla. Entonces recuerda que la tabla de usuarios se genera realmente para nosotros, y puedo simplemente volver a escalar objeto Explorer en expandir ese usuario estable en Mira las columnas en Entonces las columnas tendrían, ya sabes, un I D, que es una clave primaria. El nombre de usuario un normalizado usándolo la dirección de correo electrónico. Por lo que todas esas cosas ya están incluidas en la SB net Usuario estable, pero luego quiero estas propiedades primer Nombre, apellido impuesto I D datos fecha de nacimiento conjunta dedo del pie También sea ah parte de esa tabla de usuarios. Entonces lo que voy a hacer es extender este dedo de mesa también tienen estas propiedades para hacer eso. Lo que voy a hacer es usar la herencia. Entonces usa nuestro colon en eso. Voy a especificar un nombre de clase, que, en este caso, es identidad Usuario. Entonces identidad usuario es, ah, clase que representa el establo. Esto es spin it usuario estable está representado por el usuario de identidad de la tabla. Te diste cuenta de esa línea roja. Podemos simplemente hacer clic ahí en entonces si terminamos, obtenemos esa pequeña bola blanca que está sugiriendo cómo podríamos arreglarla en el fix porque es incluir alguna biblioteca faltante, que es la identidad del núcleo de red SB. Entonces, con sólo incluir esa biblioteca en nuestra lista de bibliotecas en la parte superior, vimos el problema. Y entonces no tenemos más errores para nuestros empleados, Gus. Ahora podemos rodar estos cambios directamente a la base de datos, parecen al mismo tiempo por uno creando una migración y luego actualizar en la base de datos. Por lo que primero voy a volver a nuestra consola de gestor de paquetes. Entonces esta es la primera clase que he agregado en Bueno, antes de llegar allí, en realidad hay un paso más que necesito completar, que es el anuncio it. Por lo que nuestros archivos DB Context. Por lo que necesito hacer click en la aplicación db. contexto son así que vemos aquí esa es la clase y se llama contexto Devi de aplicación. Pero su verdadero poder viene de su herencia fuera del contexto db de identidad de otra clase Justo en Entonces tenemos ah constructor aquí. Entonces debajo del constructor, necesito decirle que en la construcción de la base de datos al hacer lo que sea que hagas por defecto, también necesitas estos son estos establos así que de lo que más recientemente creado Table son empleados, que está heredando del usuario de identidad. Por lo que necesito ver público en entonces decir db set open under bracket. Noté que la inteligencia me está guiando a medida que voy, Así que necesito empleados en ese entonces. Entonces esta es una clase que espero convertirse en una tabla, pero que necesito darle unos nombres reales. Voy a llamarlo empleados en entonces tengo mi genérico get Andi sit. Entonces no, acabo de crear propiedad dentro del contexto db de la aplicación y te dije que debería ser una parte del conjunto de DB. Entonces siempre que esté generando la base de datos de datos en base de datos, lo que sea que necesite hacer, necesita asegurarse de que la clase de empleado esté contabilizada. En él se despliega en una mesa o por la forma que la definimos. Se extiende la clase de usuario de identidad, son usuario SP. Es que el usuario también incluye lo que los empleados tienen para ofrecer. Entonces cuando hacemos eso, entonces podemos ejecutar una migración. Entonces volvemos a nuestra consola de gestor de paquetes y luego decimos, agregamos la migración de guiones, luego le damos un nombre. Entonces por supuesto que quieres mantener a Indian escaneado fuera único para que podamos rastrearme los cambios a la base de datos. Es fácil decir, Oh, Oh, eso es lo que hice en ese momento. Entonces voy a ver empleados agregados comen puntos porque eso es lo que hicimos. Agregamos los puntos de datos de empleados que identifiquen clase de usuario en. Entonces una vez que agregamos migración y presionamos enter se va a construir sobre, luego generar ese archivo de migración sobre esta migración generada. La grasa en realidad va dedo del pie tienen lo mismo arriba y no funcionan que acabamos de ver en el otro. Entonces en la función up que ves aquí, realidad está haciendo algunos en columnas, y está viendo ad ah column off types, string TSP users. Aquí hay uno fuera el momento de unirse. Se lo está agregando a la fecha de nacimiento de los usuarios de SP Net, todos los puntos de datos que dije que quería ser parte de los usuarios de S cacahuete. Se los va a sumar a su corazón. Entonces eso es lo que sí sabe esta migración cinco. Después de hacer todo eso. Lo siguiente que quiero hacer es subir el it la base de datos prensa entrar, y luego llegamos a notar que esto se ha hecho. Entonces si volvemos a nuestro explorador de objetos mientras, ya tengo la tabla abierta, Así que si solo hago clic en él y hago clic en refrescar, que creo que solo va a refrescar toda la vista de todos modos, bien, y luego volvemos a perforar, no entres en nuestra mesa. Entonces se ve que las nuevas columnas aire ahí que sí nos hemos unido con un poco de nacimiento eran nombre, apellido impuesto I D. Así que en realidad eso es lo fácil que todavía sea. Esta base de datos Y si no queremos una columna. Podemos volver atrás, quitar la columna de ella. Pero luego fuera de curso, tenemos que hacer una migración y luego actualizar una vez más la base de datos. Entonces, esencialmente, si tuvieras que compartir este frío con alguien, o sé que este proyecto sobre ti les dijo, Vale, aquí hay un proyecto. Necesitas una base de datos. Simplemente podemos ejecutar la base de datos de actualización. Y lo que realmente va a hacer el motor es pasar del primer archivo al archivo más reciente , y en realidad va a lanzar todos esos cambios usando los métodos open on para saber exactamente qué cambios necesita hacer a crear la versión más reciente fuera de la base de datos en base a dónde estaba el proyecto, como en ese momento. Está bien. Entonces es por eso que la técnica de primera cancha es algo fácil de rastrear. Qué cambios se están haciendo en tu base de datos. horas extras Onda ayudan a la gente a saber exactamente qué está pasando cuando está bien, así que agregamos una mesa o extendimos una mesa. Pero tenemos tres mesas que necesitamos actuar. Entonces solo voy a seguir adelante y crear otra clase. Doy click derecho, data click, add picking class on. Entonces la siguiente tabla que vamos a sumar es dejar historia. Por lo que agregamos Dejar el historial encendido. Simplemente voy a seguir adelante y en todas las clases antes de empezar a poner alguna propiedad en ellas. Entonces tenemos historia de dejar. Tenemos tipo de licencia porque, bueno, ella se va. La historia va a creer registro. El tipo de hoja es una licencia tipo off que la persona tomó con su paternal maternal o, ya sabes, vacaciones. Entonces vamos a tener la tabla de asignación de licencias, que también está almacenando qué? Cuántos días tiene cada empleado por cada tipo de baja derecha para que puedas tener 10 vacaciones estas pero cinco sesenta etcétera, etcétera. Entonces esas son las tres mesas que se estaban configurando para comenzar con Onda a medida que vamos por la primera Andi más fácil de hacer realmente creerá tipos porque las otras tablas tienen dependencia es de tipo de licencia, así que voy a crear o ir volver a nuestra clase tipo licencia el. Entonces lo que voy a hacer es poner en tres propiedades. Entonces recuerda que puedo decir prop de nuestra parte en su lugar. Entonces eso es público. Yo d yo no lo hice d lo siento. Por lo que la idea sería la clave primaria fuera de la mesa. Por lo que siempre es bueno. descenso de base de datos siempre tiene una clave primaria. Otra propiedad sería el nombre del nombre siendo el tipo apagado. Deja tu nombre fuera del tipo off leave. Entonces nombre de cadena en abajo. Uno más, Lo que se haría tiempo sobre esto se crearía escritura. Está bien, estoy mezclando mis líneas aquí. Por lo que una vez más, se puede t este tipo de forma más corta de escribir en las propiedades. O puedes escribirlas en el largo camino. De cualquier manera funciona. Pero entonces necesitamos lo que llamamos atributos. Todavía tipo de especificado a la base de datos que cuando estás generando esta tabla, esto es lo que se requiere para estos, verdad? Entonces, por ejemplo, voy a poner unos atributos clave sobre la propiedad I. D. Está bien, Entonces eso es precisar que esta es la propiedad clave y tiene una línea roja. Volveré a ello después después entonces por el nombre. Voy a precisar que este se requiere así en bases de datos y se puede mucho no están solos lo sabe así sin la palabra t bird t requerida. Entonces esto habría generado Bean como una columna que alos sabe qué entonces No tiene sentido crear un tipo de hoja sin nombre. Si no hay nombre, entonces no puede haber un tipo de hoja, ¿ verdad? No voy a ser tan duro y rápido en la fecha creada porque puedo forzar ese valor más adelante. Pero al menos quiero mostrarles que tenemos esos homenajes para tener el corchete, la palabra o el nombre fuera del atributo y cerrar corchetes. Por lo que las líneas rojas indican una vez más que falta algo para que podamos pasar por encima de él, haga clic en nuestra bombilla y llegar hasta ahí la solución. O podemos. Si sólo estamos escribiendo, no podemos molestarnos con la mayoría. Simplemente te encuentras con las corrientes van justo en medio del mundo y luego aguanta el control y presiona punto. Entonces nos dará una sugerencia sobre el menos así que esa es otra tarjeta de tiburón teclado corto que puedes usar. Por lo que solo voy a seguir adelante con la sugerencia del dedo del pie incluir los datos del modelo de componente sobre las notaciones en tipo de licencia. Entonces tenemos llave. Por lo que la base de datos, usted sabe que esta es la clave principal para el establo y se genera sobre el significado requerido que esto se debe generar como no nieve. Y luego puedo ver si este archivo siguiente archivo a modificar es dejar asignaciones para dejar una ubicación. Tendrá la propiedad i d que también va a tener esos atributos clave. Entonces sólo voy a controlar eso, conseguir la sugerencia y dejar que se haga. También vamos dedo del pie tienen propiedades para el número fuera de estos que estarán en forma de entero on para las fechas en que se cree el registro. Por lo que tenemos público en número fuera de estos en tenemos el día ser creados el. Entonces vamos a tener referencia sobre los empleados por los que se están haciendo estas acusaciones así como el tipo off baja que se están haciendo de nuevo las acusaciones. Entonces, solo pensémoslo. Yo soy empleado. Tengo un yo d on. Me están asignando cinco, que es el número de descuento en estos días de enfermedad, ¿ verdad? Entonces estoy recibiendo 56 días, así que necesitas saber quién soy o quién es el empleado así como el tipo apagado. Deja que este número fuera este es ser una púa a la que aplicas dedo del pie aplicado. Perdón. Entonces lo que tenemos que hacer saber es ver público Así empezaremos con la referencia de los empleados. Entonces decimos empleados públicos. Muy bien entonces podemos simplemente darle a la propiedad el mismo nombre que los empleados se pongan establecidos. Entonces esto es decir hacia motor de base de datos que necesitamos de alguna manera asegurarnos de que estamos haciendo referencia a los empleados o que el dedo del empleado a quien este registro de asignación de licencias va a estar relacionado con los detalles fuera de que los empleados están disponibles para su selección. Si estoy mirando esa asignación justo en, entonces voy a ver empleado I d. porque todavía necesito esa propiedad para el empleado i d. que es lo que realmente a menudo así empleados. Entonces en realidad, el empleado i d va a ser una cuerda ¿Y por qué sé que es una cuerda? Porque si entro en mi explorador de objetos y miro esta propiedad cuatro me iate está en environ Shar No es cebolla. Por lo que tradicionalmente en yo siempre enseño cuencas posteriores que usan en su uso Ah Geo I d. Muy bien, una identificación única que suele ser alguna vez una cuerda larga. Y eso está bien. Entonces sólo voy a decir, Cadena pública encendida, luego ver empleados I d. en el get y sentarse. Está bien, Entonces no, parecía que para cualquier empleado I D se hace referencia aquí. Puedo obtener todos los detalles y almacenar en lugar de los empleados, objetos que está aparte creen clase de asignación o registro justo en. Entonces haremos cosas similares para nuestro tipo de hoja porque aún necesitamos saber qué impuesto de licencia hay. Podemos querer los detalles, así que solo voy a poner el tipo de licencia en el tipo de hoja i D. No a otros atributos o bien, otro atributo que hay que agregar es uno para la clave externa, donde realmente podemos dictan el nombre que debe tener la clave externa en la mesa mientras no es muy diferente aquí, así que solo voy a decir, clave externa en la clave externa para los empleados. Clave foránea es empleado I d. on. Lo volveremos a ver para el tipo de licencia en su licencia tipo I D. Así que se ve un poco redundante. No, porque esos son los nombres reales de la clave externa, pero, um, propiedades. Pero luego en la siguiente tabla, se ve donde en realidad viene muy bien. Pero luego ves que he leído líneas, y eso es porque necesito incluir algo más. Por lo que solo uso mi bombilla. Deshazte de esa referencia en esta ocasión. Es anarquía de datos anotaciones esquema de puntos. Entonces sepan que puedo guardar este archivo y luego pasar a la siguiente en esta siguiente es dejar historia y dejar historias bastante picos. Yo sólo voy a apurarme, escribirlos, y luego sólo te haré saber lo que se hizo son así que vete. La historia va a tener muchos más datos que las otras dos tablas, y sólo vamos a caminar por ellas primero. Entonces empezamos con la clave, que, como dije antes, es tradicionalmente un entero. Después pasamos a nuestra primera referencia clave extranjera. Ahora, recuerda que dije antes que la clave externa, um atributo no puede decirnos cómo queremos que nos llamen. Entonces quiero decir, trato de mantenerlo como el mismo texto de texto, pero podría ser diferente en tu caso, pero el hecho es que una clave extranjera está solicitando empleado al que me dediqué. Entonces ese sería el empleado que está solicitando las hojas. Entonces esa es otra clave externa referenciada sobre tabla de usuarios o tabla de empleados. No, probablemente te estés preguntando, OK, pero la mesa de empleados no tenía un I D. Así que si vuelves a nuestra clase de empleados, recuerda que ponemos cinco propiedades. Aquí están seis Propiedades cinco, Pero entonces estamos extendiendo identidad usuario. Entonces cualquier identidad que el usuario tenga como propiedades propias, que en realidad puedo hacerlo, es un poco difícil ver qué identidad usuario tiene la oferta como propiedades propias. Pero entonces, si vamos a la base de datos, se pueden ver las columnas que hay allí de que los empleados realmente encarna esta clase de usuario de identidad . Entonces lo que sea que sea de la clase de usuario de identidad o de la ESPN it usuario estable que queremos ,en realidad podemos acceder a ella solo haciendo referencia o tabla de empleados, , porque nuestra clase de empleados está heredando las propiedades de la identidad usuario. Entonces quieres la idea de los empleados. También tenemos nuestro público iniciado público terminó, por lo que de cuándo a cuándo debe salir ser aplicable. Tenemos el tipo de hoja. Por lo que estoy solicitando estoy solicitando una licencia de esta fecha a esa fecha en adelante. Yo quiero este tipo apagado. Vete, derecha. Busca vacaciones, etcétera. En. Después se hizo la solicitud el día en que fue acción y acción aquí presenta si fue aprobado o no. Entonces ven aquí que tienen aprobado toro público y este toro boonies sí o no? Pero también tiene un signo de interrogación. Entonces ese tipo de me da un pequeño tramposo. ¿ Dónde puede tener el tercer estado fuera? No. Está bien, entonces esto significa que es notable por lo que se puede poner con un estado no aprobado o ah, sí. El valor no son ningún valor. No, obviamente significaría que está pendiente. No significa que la acción lo haga aún así lo hizo la acción estaría en blanco. Si bien esto es no. Una vez que el estado fuera de esto cambia, entonces la expectativa es que nos aseguremos de que la acción de fecha también cambie el. Entonces tenemos otra clave foránea vinculando dedo del pie nuestra mesa de empleados en esta ocasión esta aprobada por I D. Así que quiero decir, eres un empleado, tu haciendo la solicitud. Quien lo esté aprobando probablemente también esté en empleados fuera de la empresa. Por lo que queremos saber quién aprobó. Um, tu permiso es para siempre. Acción, Estás de permiso. ¿ Qué? Ellos lo aprobaron se lo niegan. Andi. Por lo que podemos rastrear quién lo solicitó, Quién lo aprobó en Algunos lo hizo a veces y detalles en torno a lo que se estaba solicitando. Entonces eso es lo que nos tiene reservada la tabla de la historia de la licencia. Sepa, una vez que hayamos creado estas tres clases de datos, necesitamos asegurarnos de que las envolvemos en el contexto db de la aplicación. Entonces lo hicimos con la mesa de empleados puesta. Entonces tenemos que asegurarnos de que lo hagamos con las otras tres mesas. Entonces en esto siguiendo el mismo patrón que es una base de datos pública establece el nombre fuera de la clase que se creó en entonces el nombre fuera de la tabla, por lo que notarás que tengo Esta es mi convención de nomenclatura donde llamo a la clase por su singular estados. Pero entonces llamo a la caja por su estado plural porque la cinta suele ser una colección fuera las propiedades que conforman un estado singular. Correcto. Entonces esta es una instancia fuera, y esta son muchas instancias, ¿no? Entonces quiero decir, puedes poner en tu propio nombre y convención. No hay nada duro y posible eso, pero esto es mío. Por lo que tengo historial de dejar, dejar historias, dejar tipo de licencia tipos dejar asignación para salir. Las asignaciones son tan sepan que he hecho todas esas cosas con las tablas se establecen de mis clases de datos. Andi, he resuelto el contexto DB. Lo siguiente que voy a hacer es iniciar o en otra migración, alguna que es una migración add dash. Y luego quiero decir que sí dejé tablas de detalles encendidas en, presione, enter y luego esto generará sobre nuevo archivo de migración en def. Acabas de caer en las migraciones y ves cada archivo. Así fueron el 1er 1 El que hice. Empleados que conozco son más recientes uno en su pueden ver que es tiempo perplejo. Subraya Cualquiera que sea el nombre que le dimos en el comando Enseguida. Puedes tomarte tu tiempo y analizar lo que se está haciendo. Si lo deseas. No voy a pasar tiempo en eso. Simplemente voy a seguir adelante y ejecutar la migración haciendo arriba la base de datos. Entonces usando el comando up abierto en flechas de teclado. En realidad puedes recorrer todos los comandos que alguna vez hayas en esta consola. Entonces la base de datos y presione entrar, voy a esperar hasta que eso termine. Muy bien, Así que recibí un mensaje no sin errores. Y si vuelvo a mi SQL server Object Explorer y lo refresco, luego vuelvo a mi base de datos en tablas, entonces debería estar viendo todo fuera de las tablas S bean it existentes así como mis asignaciones de licencia , mi licencia historias sobre tipos de licencia. Y si miro las columnas que las columnas y la fecha que como los nombres y los tipos de datos deberían todo tipo de corresponder con lo que diseñé y se ve dónde están las claves extranjeras , todo se ve bastante en orden. Entonces esa es la creación de mi base de datos. Por lo que una vez más, se recomienda cualquier tabla que desee crear la preferida, Por favor, para que usted ponga la clase de plantilla. Yo lo llamo una clase de plantilla o la clase de datos que digo está en la carpeta de datos. Recuerde, para agregarlo al contexto BB de la aplicación como una clase o propiedad de conjunto de bases de datos en, entonces necesita crear una migración usando la consola del gestor de paquetes. Por lo que ves, agrega la migración de guiones el nombre fuera de la migración encendido. Entonces una vez que eso se haga, entonces se ve la base de datos de optimismo. Si no tienes errores, entonces deberías terminar tan lejos como yo. Si tienes algunos errores, siéntete libre de contactarme y te puedo ayudar a trabajar con ellos. 11. Repositorio de la dependencia y inyección de dependencia: Oigan, chicos, bienvenidos de nuevo. En este video comenzaremos a implementar o patrón de repositorio en encender nuestro proyecto con inyección de dependencia. Ahora, antes de entrar en lo que esas palabras de fantasía significan inyección de Independencia del Repositorio. Echemos un vistazo a una aplicación al nivel más básico. Acabamos de configurar las clases de datos u objetos de base de datos los cuales nos cargan para generar una base de datos. No hay ninguna aplicación que se deba su con su sitio web A o es en esta aplicación stop, incluso un móvil arriba la mayoría de estas aplicaciones, sobre todo si interactúan con una base de datos o alguna forma de beat a una tienda. Nos están permitiendo como usuarios hacer cuatro cosas con esos datos. O está permitiéndonos crear los datos, leer los datos o, ya sabes que los asientos lo revisan. Actualizar datos significando hacer cambios. Se eliminan los datos existentes o eliminar datos para pantalones cortos. El acrónimo de esas cuatro operaciones es de muchedumbre crud. Ver para crea R para leerte para actualizaciones en antes de eliminar. Entonces una vez más, no importa lo elegante que se vea la aplicación, no importa azada llamativa. Es cuando golpeas el delete para ver una animación y todas esas cosas, no importa todo miradas llamativas al final del día. El funcionamiento más básico es que es eliminar datos de la base de datos o crear beat y una base de datos, ya sea presentártelo. Ver click en tu perfil en tal vez Facebook y estás viendo toda la información que ingresaste previamente. Entonces estás viendo. El dato está leyendo los datos. Si haces un cambio en tus datos, tu perfil en Facebook, entonces estás actualizando los datos. Eso es todo al final de la B. Así que nuestro patrón de repositorio prácticamente es un patrón muy popular. Es una manera de escribir y estructurar tu corte. A eso nos referimos cuando decimos patrones en DIT es muy, muy popular en el desarrollo de aplicaciones a nivel empresarial. Nos ayuda a puntera restringir agujero. Interactuamos con los datos y creamos capas son propiedad de las operaciones de base de datos, la lógica empresarial en la U. S. Así que pasamos algún tiempo. No te podemos hacer. Yo, que sería más defender la mirada y sentir en. Esa es la presentación al usuario. Y entonces la lógica empresarial probablemente vendrá más en los controladores cuando empecemos a construir deben nuestros controles para diferentes modelos. Pero ahora mismo nos estamos centrando en las operaciones de la base de datos, y ahí es realmente donde va a entrar en juego ese patrón de repositorio. Por lo que voy a crear una nueva carpeta en esta estructura del proyecto. Entonces entienda, colapso del dedo del pie, todo lo que no es absolutamente necesario ahora mismo voy a crear dos nuevos Fuller's el 1er 1 Y con solo hacer clic en el proyecto, voy a dar click derecho en eso. Voy a ver Add on, luego carpeta y luego el 1er 1 lo voy a llamar contratos en. Entonces la segunda carpeta Hijo iba a repetir esos pasos. Voy a llamar a Repositorio. Sé si estabas tomando nota, pero mientras yo tenía esta seleccionada, esta cancha en realidad se modificó ya que agregué más, um, carpetas. Por lo que ves, creado para interesarse por los contactos bajo Carpeta Repositorio. Por lo que no necesitamos ver este expediente. De verdad. Podemos cerrar eso. Entonces lo primero que quiero hacer es agregar uh, contrato en los contratos son más o menos los interferencias es por lo que son positivos son patrón de repositorio nos tendrían crear interfaces, clases onda que implementan la interfaz. Entonces nuestros interfieren es como una plantilla para lo que son clase debería tener, y eso voy a explicar. Entonces el primer contrato que voy a crear, solo hago clic derecho en ir anuncio en. Después fui a ver clase, pero realmente no estoy creando una clase. Estoy creando un interferir. Entonces usar este mismo cuadro de Poppel on iba a seleccionar interfiere en lugar de en Entonces voy a llamar a este me repositorio bestias. Muy bien, Entonces, Entonces, como dije antes, por lo tanto, por lo tanto, grandes operaciones que cada base de datos, mayoría de las bases de datos o aplicaciones más bien nos permiten hacer contra la base de datos que es crear datos, ver datos o manipular los datos ya sea que lo estamos eliminando, están haciendo un cambio. Entonces lo primero que voy a hacer con esto interfiere es que voy a hacerlo muy genérico porque cada tipo fuera de la tabla de base de datos o en nuestra situación, los empleados de clase de datos o clase de dominio están a la altura. Yo miro, tu hijo deja historia. Todos van del dedo del pie una pérdida o un cuatro discapacidades para realizar multitud contra los récords que están en estas tablas. Entonces voy a crear esta base, interfiere en ir a hacerla pública en esta interfaz basada se va dedo del pie, tener algún genérico identificar aire llamado T en que solo voy a ver una clase de colon fueron t . Entonces lo que esto está diciendo es que estoy haciendo esta interfaz lo suficientemente genérica como para poder pasar cualquier clase aquí en esa clase debería poder realizar cualquier operación que me voy a poner en línea. Muy bien, Así que esto está haciendo que este repositorio base genérico lo suficiente en las operaciones genéricas o globales que cada clase son cada tabla debería poder realizar sería crear, actualizar, eliminar en vista parte. Entonces, habiendo hecho eso, realidad voy a justo de inmediato las operaciones que se deben implementar una vez que estemos implementando operaciones de base de datos en torno a cualquier clase que se esté pasando. Entonces el 1er 1 que voy a hacer es encontrar también estoy usando I colección. Entonces esta es la legendaria clase de colección de cómics. Entonces si estás familiarizado con C sharp, sabes que Ver Sherpas Una serie de colecciones que tienes lista tienes innumerables, como wearable. Yo colecciono es lo suficientemente genérico que casi puedes ser cualquiera fuera de esos. Pero entonces si no estás familiarizado con C agudo que solo pienses en ello como un ar e. Está bien, entonces esto es sólo decir que estoy aceptando cualquier tipo off ari off objetos que pudieran pasarse . Por lo que cualquier tipo de zona fuera que sea una colección fuera de tipo T T sería tu clase. Pero entonces, porque estoy haciendo té y haciendo genéricos o té, aquí solo hay un genérico identificar Raro decir que cualquier clase donde creerán tipo dejar historial puede ir allá en la operación sería encontrar todo lo que significa que soy devolviendo todo de la base de datos. Y si estás familiarizado con las bases de datos y SQL, eso será como una estrella selecta de cualquiera que sea el nombre de la tabla que sea difícil. Entonces ese es el hallazgo todo encendido. Entonces el siguiente a ver sería el dedo del pie si quisiera ver solo un registro, y probablemente quisiera encontrar ese solo registro por I D. Así que estoy creando otra función. La creación fue como un bateador de funciones para ver algo de clase. Quiero encontrar ese registro por I D. Y estoy aceptando algún parámetro entero llamado idee, pero sí sabemos que puede que no tengamos parámetros enteros. Puede que tengamos otra, pero eso está bien. Podemos dejarlo como entero para que ningún otro comando set off sería crear actualización y eliminar. Entonces voy a poner esos en en estoy viendo toro porque quiero indicar, como todo el éxito fue esta operación, Sobule regresará sí o no en basado en DS Arnott, puedo usar mi lógica empresarial toe handle Hold the u te presento el era nuestro éxito al usuario, ¿verdad? Entonces no quiero meterme demasiado en eso. Yo sólo quiero decir que aprecio lo que está pasando ya que estamos construyendo sobre esta clase. Por lo que este repositorio basado clases yendo dedo del pie tienen función ah para obtener todos los registros fuera. Cualquiera que sea el tipo de clase que busco tabla Busco Quiero encontrar un registro específico basado en el i d. Eso se proporciona Andi quiero crear alguna entidad fuera del tipo T Así que el nombre de la variable es entidad que sea lo suficientemente genérica en el tipo Eesti, que también es genérico y lo mismo para actualizar y eliminar en nuestra operación final, sería guardar ahora una vez más, esto es todo genérico y esto es una base. Esta es una interfaz base, por lo que eso significa que cada otro interfiere para cualquier otra tabla específica debe heredar de esta base porque estas cuatro operaciones están aquí definidas para todos en entonces en esa interfaz en particular, si hay otras operaciones que necesitaba para esa mesa en particular, entonces podemos implementarlas ahí. Entonces como primer acto, voy a implementar un repositorio para nuestro tipo de licencia. Ya que esa no tiene dependencias, esa debería ser la más fácil querer. Implementar a alguien para hacer clic derecho o carpeta de contratos Ir anuncio agregar en clase C. Pero una vez más estamos agregando un inter cuotas con aviso de que la convención de nomenclatura para las interfaces sería yo en lo que sea. Entonces en este caso, lo estoy llamando. Dejo tipo repositorio, ¿verdad? Eso es eso. Esa es mi convención de nomenclatura. Entonces solo hago clic en Agregar en, Entonces cuando eso crea su uno, quiero hacerlo público para evitar cualquier error en el futuro. Entonces puedo saber mucho mi dejo repositorio toe leave type repositorio Lo sentimos Teoh heredar de mi repositorio base. Así que acabo de hacer base de repositorio Justo en ese entonces. Recuerde que basado en repositorio debe tener algún tipo algún tipo de variable siendo declarado con él algún tipo de clase hermano siendo declarado con él y decisión Eric Así que ya estoy tratando con el repositorio tipo hoja. Entonces voy a pasar en el tipo de licencia como en mi auto. Completa es que está completando informal, pero eso no es lo que quiero. Quiero dejar tipo y fui a presionar escape esta vez en lugar de entrar. Entonces el tipo de hoja es una clase con la que esperaba interrumpir. Está bien en entonces fuera de curso me va a dar un error porque están en carpetas diferentes , diferentes espacios de nombres. Sólo necesito incluir eso. Por lo que acabo de superar su control en tope completo y luego presiono enter, y luego agregará esa referencia a la carpeta donde está encendido el tipo Leaf. Entonces tenemos. No es agregado. Entonces así es como haces para hacer que esta interfaz herede o abandone el tipo de, o un repositorio Abejas. Entonces sepan que tengo ID de plantilla lo que debería pasar. Y una vez más, estoy tratando de mantenerlo simple porque estamos en el inicio eso esto me voy. Repositorio no es nadie para definir las operaciones de base de datos que realmente se implementan en nuestro repositorio. Entonces voy a seguir creando clase y esta vez va a ser una clase en una carpeta de repositorio Alguien directamente que haga clic en Agregar ir a clase en la clase Leavitt US on. Entonces voy a llamar a este repositorio tipo de dejar. Está bien en. Entonces hago clic en. Entonces no, tengo una nueva clase que se llama repositorio tipo hoja. Está en blanco encendido. El expectativa es que lo que se definió dentro de este repositorio se defina dentro del aviso de discusión. Nada se definió en este repositorio en Esto interfiere más bien, pero está heredando de I base de repositorio, que tiene cinco funciones definidas, lo que significa que esperamos toe para cinco funciones declaradas más bien sobre. Por lo que esperamos definir el comportamiento fuera de esas cinco funciones dentro del repositorio de tipo off leaf . Por lo que la forma más rápida de meterlos es heredar de nuestro repositorio de tipo encendido. Te explicaré por qué no sólo heredamos de I repositorio bestia por aquí. Eso voy a explicar, pero por no, sólo trabajemos con esto. Por lo que dejo el repositorio de tipo encendido. Yo sólo estoy copiando eso en eso voy a hacer que herede de eso y luego una vez que haga eso, vas a separar la línea. No. En primer lugar, necesito incluir el espacio de nombres donde están los contratos, Entonces use aviso de que la línea roja sigue ahí. Si me muevo esta vez, es una flecha diferente. No es decir que no implementa el miembro Interfiere y nota que parece todo fuera esas funciones que vienen de la base del repositorio. Está bien, entonces se espera que si estoy heredando de esto interfiera que cualesquiera funciones que se estén declarando una vez más conocidas se estén declarando aquí. Pero todos están siendo declarados aquí y su base de póster está siendo heredada por dejo repositorio de tipos en DSO Al heredar dejo repositorio de tipos. Básicamente está heredando el hecho de que estas funciones necesitan ser definidas en por lo que solo puedo usar mi bombilla una vez más interfaz NC implementa y solo va a vaporizar e implementar todas nuestras funciones. Asociar id con nuestro repositorio obeso? No. Ahora digamos que hay ciertas funciones y esto no explica por qué no sólo estamos heredando del repositorio abejas? No, estos son sólo el croata básico. Una vez más, esos son la base. Esas son las cuatro millones de funciones que siempre haces en cualquier función en cualquier mesa. ¿ Verdad? Pero entonces tal vez haya función Ah que solo dejo tipo Repositorio necesita saber. Entonces la base no se molesta porque si la base sabe que todos los demás que hereda de las abejas también lo sabrán. Por lo que puedo seguir adelante y definir otra función aquí mismo en DSO Dentro dejo repositorio de tipo en DSO Cuando deje tipo depositante hereda de ella, sabrá todo lo que la base sabe así como cualquier cosa que su correspondiente repositorio interfiere sabe. Entonces digamos que quería uno que me devolviera algo de colección porque éste es específico. No, tiene que ser fuera tipo de licencia. Está bien, entonces esta vez no es t No hay t dentro de este contexto. Por lo que quiero una colección off leaf tipo on. Entonces se supone que esta función tiene que conseguir empleados por tipo de licencia. De acuerdo, digamos que quería que todos los empleados que han tomado un tipo particulado fuera de licencia entonces esto va a llevar al acusado del TPIY siendo el i d para el tipo de licencia er particulado . Ahora que he definido esto por dentro, dejo repositorio de tipo. Si vuelvo a la clase heredadora, entonces ves la línea roja está ahí en la flecha saber es que no he implementado todas las funciones en eso es porque no se ve que una función es una parte apagado. Dejo repositorio de tipo para que pueda seguir adelante e implementar interfaz en él solo agregará esa función a la lista fuera de funciones a definir. Entonces con eso, voy a hacer una pausa en dime te permitirá seguir adelante y crear los otros repositorios, las otras interfaces y clases de repositorio corresponsal para dejar una ubicación en el historial de licencias . Te voy a dejar que hagas eso. Yo lo voy a hacer. Yo lo voy a completar para que puedas referenciarlo. Pero quiero que sigas adelante y trates de que te sientas fuera de hacerlo tú mismo. Está bien. Por lo que espero que pausas el video y lo pruebes tú mismo. ¿ Qué? Estoy a punto de pasar por lo que esperaba que hubieras completado. Y si no lo hiciste, eso es hallazgo. Entonces vamos a pasar juntos y encontrarás que el recurso es para estos archivos creados en el recurso es para este video. De todos modos, lo que íbamos a hacer era crear el I leave a location repositorio. Dejo repositorio de historia Onda. Lo mismo para las clases de repositorio reales. Entonces si completamos su asignación exitosa que dejar debería verse así. Recuerda ponerte a tu público si no se genera ya con él. Interfaz pública. Dejo repositorio de asignación encendido. Estamos heredando del repositorio bestia con la clase apropiada que es dejar una ubicación en la misma para la historia. Tenemos el mismo formato parecen mantequilla y solo el nombre diferente en estamos seguros de heredar para la parte de tipo de clase correcta a continuación para las respectivas clases reales. Entonces estamos heredando. Dejo repositorio de asignación el cual acabamos de rodar avena La implementación para las funciones inter honorarios dentro del archivo de clase on. Hicimos lo mismo para el repositorio de historial de licencias. No, hay una cosa más. Y esto sería como el inicio de nuestra inyección de dependencia. Nuestra mirada a lo que realmente es la inyección de independencia. Pero necesitamos toe en realidad que estas clases de repositorio sepan sobre la base de datos, así que sí, saben sobre las clases y todas esas cosas, pero no encarnan la conexión real con la base de datos. Andi, si recuerdas esa aplicación, el contexto DB realmente encarna esa conexión. Entonces esto es como nuestra puerta de enlace y nuestro puente a la base de datos en sí. Por lo que en realidad mangueras todas las funciones off o marco de entidad justo aquí en la conexión real a la base de datos. Por lo que necesitamos un objeto fuera de tipo aplicación contexto BB en entonces que nos va a mucho para interactuar realmente con la base de datos. Entonces en volver al 1er 1 que hicimos, que es dejar repositorio de tipo en la clase ante nuestro creador y la implementación fuera todas las demás funciones, voy a declarar privada, leer en Lee o propiedad el. Voy a hacer fuera de tipo aplicación contexto BB on. Entonces voy a llamarlo bien, subrayado db Muy bien, Así que el patrón para propiedades privadas usarás un guión bajo cuando tu nombre e amenazas que eso sea como un bonito diga que si alguien viene, César llamado. Ellos saben todo subrayado. Eso significa que es una variable privada son lo que sea en tu lado de clase. Entonces ese es el paso uno. El segundo paso es crear un constructor para nuestro repositorio. Por lo que tenemos público Andi, o lo hará el atajo para constructores su un C T O. R. Y primero arriba dos veces en él realmente genera ese bloque constructor fuera de cancha para ti. Por lo que debes estar familiarizado con o PR Constructor es cualquier función que tenga el mismo nombre que la clase y hace alguna inicialización es cuando esa clase se llama Orenstein. Ella odiaba Así que en esta situación, lo que esperamos que esto haga es inicializar el remolque. Ah, copia fresca de nuestra variable de contexto db de aplicación. Entonces te diste cuenta de que dice que está definido, pero nunca es uso. Es justo ahí. Entonces lo primero que quiero hacer es realmente darle a esto un parámetro en la prueba de un perímetro fuera del mismo tipo que estoy a punto de inicializar entender? Para copiar eso on call it aplicación db context, pero no subrayado db. Entonces este es privado y éste está entrando a través del constructor el. Entonces solo vamos a inicializar el privado para ser cualquier valor que entre a través del instrut el constructor. Perdón. Entonces nuestro constructor no es el dedo del pie inicializado tienen esto. Entonces así es como se ve la inyección de dependencia en este es el paso uno. Esto no es todo. Ahí está la inyección de dependencia. Está bastante fuera de unos pasos, pero este es el 1er 1 Así que este bloque fuera de cancha necesita estar presente en cada archivo de clase de repositorio . Entonces, ¿sólo vamos a copiar esto? Lo escribimos una vez en dejo repositorio, así que solo me fui a copiarlo, y voy a ir a dejar una ubicación, y lo voy a poner ahí en lo que voy a cambiar es solo el nombre fuera del constructor causa obvio para el constructo. El nombre no puede creer repositorio de tipo. Entonces solo estoy dentro para asegurarme de que eso le hace al auto su nombre. Entonces voy a hacer algo similar en la historia de las licencias. Andi, simplemente cambia el nombre en entonces nuestras clases de datos o son clases positivas están casi listas para la acción. Por lo que hemos hecho un poco fuera de trabajo configurar este marco en una vez más el repositorio Potter y sus militares que es un patrón. Es una estructura. Entonces si lo haces con estos tres y te encuentras cinco mesas más en el anuncio de Utah, entonces espero que sigas el patrón y hagas esto cinco veces más. Para cada una de esas mesas, puede parecer tedioso, pero al final de las fechas atrás estructura que te permite mantener aún mejor tu cancha , porque corta mucho la repetición, te ayuda centraliza tu cancha y facilita el mantenimiento con el tiempo. Está bien, así que en este momento o las funciones están definidas, pero realmente no tienen ninguna funcionalidad. Simplemente van a lanzar excepciones, y las dejaremos así en el siguiente video donde realmente pasamos y definimos las operaciones de la base de datos en este video, solo estamos poniendo en el suelo que estamos poniendo en el fundación en Lo último que quiero hacer es remolcar extraño el conocimiento fuera de estos archivos de repositorio y su propósito es a nuestra puesta en marcha que CS fuego. Entonces entramos en este archivo brevemente, y vimos que teníamos una función de servicios CONFICKER que, ya sabes, se inicializa es algunas cosas. Entonces voy a agregar un poco más de inicialización está aquí, y lo haré después de la inicialización de la base de datos en estos inicialización czar toe, agregar nuestro repositorio o contrato en relación clase repositorio toe the dot net core aplicación. Correcto. Entonces lo que voy a hacer es decir servicios no encendido. Después fui a ver la escuela de anuncios después tenemos nuestra primera clase, y voy a ver dejo el repositorio de tipo encendido, luego poner una coma. Entonces estoy fregando que dejo repositorio de tipo a su clase de postura mucho aire, que es dejar repositorio de tipo encendido. Entonces voy a cerrar los frenos y el semi colon. No fuera de curso ahí en líneas porque necesitamos incluir los espacios de nombre. Por lo que solo uso mi control atracado. Andi, incluye ese espacio de nombres para el repositorio de tipo I leave, que son los contratos en. Entonces haré lo mismo aquí en incluir el siguiente espacio de nombre para nuestro repositorio. Está bien, está bien. Entonces una vez que agregamos escolarizados, ponemos en nuestro repositorio o interfiere en sobre clase de repositorio, Entonces si obtienes alguna línea roja y probablemente solo quieras revisar tus referencias arriba , asegúrate de que tengas el nombre correcto especie para los archivos respectivos en. Entonces vamos a hacer eso por cada uno fuera de nuestro pierce. Por lo que tenemos dejo tipo repositorio. También tenemos le dejo historia repositorio er y también tenemos dejo un repositorio de ubicación . Y ya ves, están apareciendo las líneas rojas? No, porque se está dando cuenta de que hay algún desajuste entre los interferidos a los que se hace referencia en la clase de repositorio. Entonces, para limpiar eso, sólo podemos asegurarnos de que sólo los estamos escuchando correctamente. Entonces solo voy a copiar el nombre de los interfieres y moverlo y luego quitar el I. Y así todo es,ya sabes, ya sabes, nuestro inicio de ese reloj fusible de archivo CS. Terrible eso. Por lo que sólo voy a dedo anuncio algunos comunes aquí a ver. Por lo que esta sección se ocupa de agregar referencias para repositorio sobre contratos para iniciar archivo. Está bien, así que ese es el comentario que agregué para ese apartado. Entonces una vez más, para tantas otras tablas de datos que podamos tener querer crear un contrato para esa tabla, ¿quieres al creador clase positiva de esa tabla? Entonces y luego solo los agregas en esa sección dentro del inicio sobre la clase CS. Por lo que esos son algunos pasos hacia la implementación o patrón de repositorio. Por favor, señala que una vez más, todas las funciones que se habrían implementado están prácticamente vacías. Simplemente van a lanzar excepciones. Entonces en nuestro siguiente video realmente empezaremos a poner en las operaciones de datos por clase o por función más bien para que podamos tener alguna operación de base de datos beat en nuestra aplicación. 12. Implementar la función de base de datos y el marco de la entidad: Oigan, chicos, bienvenidos de nuevo en este video estaremos configurando nuestra funcionalidad de base de datos. No. En nuestro video anterior, pasamos por y empezamos a implementar sobre repositorio, patrón o interfiere está en las clases de repositorio para heredar de las interfaces. No obstante, cuando implementamos las funciones que habrían sido o alineadas en las interfaces, no pasamos por desconectar la funcionalidad real en estas funciones. Entonces tenemos la función de creación toro aquí, pero solo es lanza y no implementa excepción. Y ese es básicamente el caso para cada uno de ellos. Entonces vamos a pasar por la configuración de uno fuera de los repositorios y comenzamos con el repositorio tipo hoja . Este es el 1er 1 que montamos en den. Voy a hacer una pausa y permitirle configurar a los demás. Y entonces podemos pasar por ello juntos. No. Ah tipo relieve clase de repositorio. Está heredando de dejo repositorio de tipo que, si echamos un vistazo a eso, también está heredando del repositorio base en. Tiene su propia función en esa implementación en que interfiere. Entonces tenemos alrededor de seis funciones de sus abejas de póster y luego tenemos una función adicional del repositorio de tipo I leave en DSO sobre heredar clase o clase de repositorio tendría un total de siete funciones que necesitan ser implementadas. Ahora voy a empezar a escribir en funciones en el mismo orden que aparecerían en la clase interfiere. Eso no es por ninguna razón en particular. Es sólo, ya sabes, en la construcción. Si no estás tan familiarizado con el marco de entidad, te voy a llevar paso a paso, mostraré cómo puedes usar el marco de entidad para interrogar la base de datos. Entonces vamos a empezar con el hallazgo de colección I. Además, la idea detrás de esta función es que una vez que se llama a esta función relativa a cualquier repositorio y a cuál de su clase se está ocupando, cualquiera que sea la tabla robando con ella debería recuperar todos los registros de esa tabla. Está bien, entonces para el contexto, si querías remar la cuadrícula de todos los tipos de hojas que se comen el sistema, entonces necesitas obtener todos los registros de tipo hoja de la base de datos. Y así hay que encontrar todo bien. Entonces al implementar esa formación, vamos a encontrar todo en su derecha aquí bien en las expectativas que estaban devolviendo alguna forma fuera de colección del ritmo, un tipo de hoja que una vez más es solo una clase sobre. Simplemente puedo sostener el control y dar click en él irá a la implementación real fuera de la clase. Nuestra definición de la clase más bien en ella nos mostrará qué es. Es una clase de base de datos o una clase de datos, dijo Deby. Clase más, Quieres ponerlo. Pero el hecho es que es una tabla en la base de datos y está representada en nuestro proyecto como una clase llamada tipo hoja . Entonces quiero cada sencillo quiero una colección fuera de registros que se pareciera a esta clase más o menos en esta función, que es encontrar todo lo que fui a borrar este trono, no implementaste excepción y entonces me voy dedo del pie invocó mi conexión a la base de datos . Entonces para más video anterior, habíamos establecido una mala conexión a través de esta variable llamada DB, alguien para usar en la partitura DB y luego lo voy a decir punto y entonces te darías cuenta que tienes bastantes derivaciones de forma disponibles para ti, pero luego, lo más importante, comienzas a ver que realmente tienes las tablas necesarias disponibles para los empleados de CLC, ves, deja tipo Lo que sea que configuramos en nuestro contexto DB como una clase de datos que puede ser accedido, un notado tipos de hojas está ahí. Entonces realmente podemos acceder a ellos a través de DD. Entonces para sacarme de esa lista después del punto solo me aferro al control y al espacio de prensa, y eso trae de nuevo esa inteligencia encendida. Entonces puedo empezar a escribir tipos de licencia encendido. Entonces necesito dedo del pie convertirlo en una colección. Así que sólo con decir, db los tipos de hojas que literalmente está ejecutando una estrella selecta de la declaración Leaf Types. Si estás familiarizado con SQL, si no lo están, entonces más o menos esto es sólo decir, Devuélveme todos los tipos de hojas. Eso es literalmente. Bien. Pero entonces, porque lo necesito en alguna forma de colecta, voy a ver que para listar dispararlo. Entonces ah, lista en C Sharp es una manera muy, muy flexible de conseguir una colección que se puede utilizar en múltiples aplicaciones. No hay que hacer mucho mecanografiado después de eso. Simplemente puedes decir que la enlistemos, pero luego te das cuenta de que es que tiene una línea roja porque es que no devuelven un valor porque está esperando que estemos devolviendo una colección fuera tipo de licencia. Entonces todo lo que necesito hacer realmente es sólo un retorno, él cree tipos que enumerar en algunas personas. Es decir, todo el mundo tiene un patter de cita diferente, y algunas personas tendrían probablemente pone cena virus onda variable una manera agradable, rápida de declarar de variables que pueden salvar nuestros tipos de licencia. Onda, eso es igual de dedo este, que los resultados de esta afirmación. Entonces lo que sea que se devuelva de esta declaración se almacena dentro de fuera, deja los tipos encendidos. Entonces podemos devolver tipos de licencia para que todos lo hagan de manera diferente. Podrás desarrollar tu propio estilo. Cualquiera que sea más rápido o más fácil para ti, eso está bien. Um, pero al final del día, siempre y cuando entiendas lo que está pasando, entonces eso está bien. Entonces estamos consiguiendo todo en su salvamos. Yo alivio tipos. DB dejar tipos a listar. Entonces estamos girando todos los escalones de hoja, y le estaban echando el dedo del pie un c afilado aseado al que llamé al menos, que es como un Ari glorificado. Está bien, lo siento. Tienes que tener un número de siesta apagado. Los objetos son valores son realistas y flexi puede crecer. Se puede contraer. Puede ser cualquier número en cualquier momento. Entonces es una colección muy flexible que, como dije, como dije, Así que sólo la lanzamos dedo del pie echar lo que se devuelve aquí a nuestra lista fuera de tipos de licencia. Y entonces acabamos de devolver eso. Entonces cualquier cosa que esté llamando a este formulario hijo debe estar preparado dedo del pie recibir una lista de tipos de licencia , arte, y eso es todo. Eso es todo lo que necesitamos para obtener todos los tipos de hojas de nuestra base de datos. Ahora, el siguiente que necesitamos implementar es multado por I. D. Entonces ese escenario para esto sería que queremos ver los detalles fuera de AARP tipo de hoja articular . ¿ Verdad? Entonces ya ves que tenemos enfermizo donde salen vacaciones. Con esta forma de eso, solo quiero ver vacaciones. A lo mejor esos son error ortográfico. A lo mejor hay algún detalle que quería ver quién lo creó. Lo que sea que haga clic en él solo para ver ese solo registro. Entonces en ese escenario, necesito encontrar ese tipo de hoja específicamente, y estoy usando el I D, que es la clave o clave principal en la base de datos. Estoy usando eso para identificar de manera única ese particular, um, um, hojear eso. Entonces el siguiente que estoy implementando está bien por lee. No. Encuentra por i d retornos en hoja tipo objeto. Ni una lista, ni una colección, sino un solo objeto, porque, recuerden, estamos encontrando uno en particular. Está bien, así que voy a quitar esta línea fuera de cancha encendido. Entonces voy a salvar a Ire. Tipo de licencia. Está bien es igual a en su una vez más, voy a llamar a mi D V, que es mi conexión a la base de datos. Mi objeto de base de datos que en la mesa con la que estoy tratando es una vez más dejar tipos encendidos. Entonces en esta situación, realmente sólo necesito encontrar una. Entonces tengo dos opciones aquí. Puedo decir eso y c encontrar por lo que nos dan una función real llamada hallazgo que recibe como parámetro cualquier identificación única que debería bien, cosa que debiera identificar de manera única un registro en lo que sea en orden tabla estamos viendo en que simplemente pasamos esos permisos es para que sepamos que cuando lo estamos haciendo, necesitamos pasar ese identificador único encendido, luego a diferentes trabajos. Hará el resto en encontrarlo basado en ese identificador único en. Entonces sólo regresamos. Tipo de licencia. Muy bien en. Eso es todo. Al revés escribir esto Y probablemente lo veas escrito de esta manera también. Y acabo de comentar Pensamiento es que se podría decir, db dot la tabla Onda se leave types. Y así es que aquí es donde estás en un comentario. Si quieres frío, eso no es ir del pie o quieres escribir algo que no sea lo que interfiera con la cancha. Acabas de poner slash, slash y eso vendrá en el dedo de esa línea. Entonces es un db dot leave tipos on. Entonces dices punto y luego tendrías algo puesto. Simplemente elimino esto rápidamente para que pueda conseguirlo con la inteligencia primero o por defecto Así primero o por defecto, y luego entras en alguna Lambda, um, declaración. Pero aún no estoy listo para eso. Vamos a estar haciendo eso más adelante, así que no voy a entrar en eso todavía. Está bien, así que esa es otra forma de hacerlo. Otra cosa. Otro ejemplo. Cuando nos volvemos más sazonados con la sintaxis del marco de entidad así que encontrar por I d on. Entonces nos preocupamos, encontramos un tipo de hoja con ese articular i D. Lo cual es único, que en fuego se devuelva y se almacene dentro de esta variable y y estamos devolviendo esa variable y notamos que esa condición se satisface porque visual studio sabe que tipo de hoja se está devolviendo en el tipo Leave es el tipo de retorno esperado. No, vamos con los pies un poco más divertidos. Entonces pasamos a la creación. Entonces esto es cuando estamos creando tipos de licencia de alguien se siente fuera de la granja, haga clic en guardar, y luego la siguiente velocidad se refresca con la búsqueda de todos los datos. Por lo que los grandes refrescos en lo que acabamos de agregar se exhiben ahí. Por lo que la función crear necesita toe excepto los datos en realmente lo ponen en la base de datos. Está bien, así que para o crear función, lo que vamos a hacer es que vamos a ver base de datos conectada en el objeto DVR de partitura justo en. Entonces vamos a especificar la tabla, que es tipos de licencia, por lo que señala que deberíamos estar recibiendo alguna variable o algún objeto fuera de tipo dejar encendido. Lo estamos llamando entidad. Por lo que una vez que golpea esta función, se supone que recibe datos en el formulario fuera de la entidad. Entonces db que dejan los tipos encendidos. Entonces vamos a decir ese anuncio porque este tipo es realmente como una colección. Dejar tipos es literalmente una colección fuera de registros de la tabla tipos de dejar. Entonces estamos diciendo que solo quiero agregar esta entidad o este nuevo tipo de hoja. Entonces la colección de tipos de hojas existentes Así que estamos viendo conectada la base de datos, dame los tipos de hoja de tabla son todos los de la colección fuera de registros de tipos de licencia en esta nueva. Entonces agrega una brisa abierta y luego ves, hasta la inteligencia se guía aquí y diciendo que lo que está esperando es algo fuera tipo tipo hoja Ahora puedes llamarlo entidad, así que lo llamaremos entidad. Ahora bien, esto podría haberse llamado cualquier cosa, y no tenía que llamarme entidades solo entidades llamadas entidad porque la definimos para ser entidad aquí. Pude haberlo llamado todo BJ. Pude haberlo llamado. Pop es que no importa. El hecho es que estamos recibiendo algún tipo de datos Andi en este caso específico tipo off leaf, y sólo lo estamos llamando entidad. De acuerdo, así que eso es sólo un nombre de objeto como un hombre muy ocupado en. Entonces nosotros Básicamente se acabaron con eso. Entonces decimos, D d, eso es tipos de licencia que anuncian, pasamos en la entidad. Está bien, entonces hay una cosa más que hay que hacer después de que pasemos eso y eso es lo mismo . Pero realmente no voy a escribir en la función de guardar todavía, así que solo voy a hacer un comentario ahí para poder recordarme que necesito guardar mis notas. Esto está esperando un booleano. Entonces estamos consiguiendo una línea roja aquí porque uno no está regresando hasta que no está devolviendo el valor de los datos del auto. Entonces solo voy a dejar ese comentario. Ahí iban a volver en d arreglarlo más tarde. Entonces solo voy a seguir adelante e implementar otra en la siguiente. En línea estaría arriba, por lo que para hacer una actualización, básicamente está siguiendo el mismo patrón. Nos conectamos o base de datos. Obtenemos nuestra mesa, los pasos, luego llamamos a la función, y como somos una golpiza, nos dan una actualización de forma hijo. Ahora puedo decir que esto es un alivio porque atrás en el día, en días anteriores, off entity framework no fue tan fácil. Entonces no, podemos ver esa actualización sobre pasado en la entidad igual el mismo entonces, teniéndome ese cambio, todavía necesitamos verlo. Entonces eso es otra cosa que necesitamos para guardar aviso. tenemos una función de decir, aún no la hemos implementado. Entonces cuando lleguemos a implementar, entonces pasaré y limpiaré el resto. Está bien, así que hicimos eso para actualizarlo en el siguiente En línea sería eliminar. Entonces tenemos nuestra lectura que tenemos o creamos. Tenemos nuestra actualización sobre ninguna redacción o eliminar bien para borrar. Es más o menos el mismo patrón que hemos visto antes sobre lo que vamos a hacer es conectar o base de datos, obtener nuestra tabla. Si tipos en, Entonces decimos punto En esta vez queremos quitar Todo bien, así que no es creer esta vez, pero se quita en. Estamos retirando esta entidad de la colección en Una vez más. Necesitamos guardar dedo, así que por favor, no puedes escribir esta línea. Eso está bien. Se hará algo, pero no se comprometerá con las bases de datos. Al igual que un compromiso con la base de datos. No esta carrera. Una base de datos, en realidad. Ejecutar la consulta. Está bien, entonces, no, tenemos que averiguar qué tiene que pasar en nuestra caja fuerte. Entonces, para guardar, voy a quitar esto. Andi, todo lo que realmente sucede en o guardar es que vemos en el marcador. ¿ Obtuvo la base de datos? Y luego vemos cambios de guardar, y eso es literalmente todo lo que tiene que suceder. Para verlo cambia. Por lo que literalmente podrías haber puesto esta línea aquí. De acuerdo, así que una vez que digas DBC de cambios, podrías poner esa línea ahí. Pero entonces porque fuera de todo lo estoy escribiendo, estoy esperando un toro. Entonces si fuera la función de evitar, entonces estaría bien porque las funciones vacías no devuelven valores. Por lo que al hacerlo evitar la forma, hijo, todo hubiera estado bien. Pero eso no es lo que tenemos. Tenemos un toro, así que vamos a trabajar con lo que tenemos. Por lo que se espera que el lingote diga que sí. Arcángeles no hicieron ningún cambio no se hizo. ¿ Todo bien? Entonces, cuando guardamos los cambios, necesitamos saber dónde se realiza realmente el cambio. Porque si esto se hizo, entonces se espera que se haga el cambio solo para verlo por cada otro donde indiqué que necesitamos realmente, Seve. Entonces cuando hagamos guardar los cambios, esto va a devolver algún formulario fuera en GIA que digamos, um si si casa algún registro hubiera sido editado bastante bien, Así que esto es cuántos de los registros se editan. Entonces eso significa que nunca debe ser menor que uno en una situación como esta, si estás borrando algo que al menos se debe cambiar una cosa. Si estás agregando al menos una cosa debería estar cambiando. debe cambiar tu operación en esta sola cosa. Por lo que eso significa que siempre deben devolver algo mayor que cero. Entonces voy a convertirlo en un retorno booleano al ver retorno. Y luego fui a mí esto en una declaración lógica. Muy bien, donde voy a ver, devolver el valor si devuelve el cajón de resultados cae. Si el valor devuelto por esta función, guardar cambios es mayor que cero. Entonces este lingote no está satisfecho porque va a evaluar esto. No guarda cambios, pero creo que unas mejores infraestructuras Es menos confuso, embargo, y probablemente funcionará mejor es si solo lo pongo en una respuesta verbal. Vier cambia es igual dedo del pie en el marcador. Db dot guardar cambios. Muy bien, entonces esto no es nadie para almacenar algún entero para el número de cambios que se necesitan en eso. Voy a regresar después de eso si los cambios son mayores que cero. Entonces si es genial que termine aquí, entonces eso es bueno. Si no lo es, entonces bueno, obviamente tenemos un problema, ¿ verdad? Entonces guardamos los cambios y luego regresamos. Si lo es, si el cambio se hace mayor que cero significa que nunca debe ser cero en una situación como esta encendida para que podamos devolver lo que nos dé nuestra función de guardar. Entonces en nuestra función de actualización, no vamos a regresar. A ver, si es así, aquí hay un flujo. Actualizamos la entidad en la base de datos, Luego golpeamos el retorno on. Llamamos a la función segura en la misma función que está regresando. A booleano me va el dedo del pie el cambio encendido. Entonces dinos sí o no. Si los cambios eran realmente ver qué Lo sentimos guardó el cambio. Andan nos dicen si esos cambios realmente se guardaron o no. Y luego cae esa tienda de regreso. Entonces esta función de actualización en cada otra función no será verdadero o falso si fuera seguro. Entonces solo voy a tomar esta función de retorno guardar de aquí en adelante, ponla en el delete on notice. Toda esa línea roja se va también en la creación en esa línea roja también desaparece. Muy bien, así que esos son los cambios que se requieren dedo del pie tienen o multitudes operaciones abiertas corriendo dondequiera que crea fuera de la élite. No queremos implementar ni conseguir empleados por hora de hoja todavía. Voy a dejar ese en blanco. Si quieres intentarlo, entonces eso es bueno. Pero dejo esa en blanco hasta que lleguemos más en remolque nuestras aplicaciones. Pero ahora mismo te estoy desafiando. Toe, adelante y repita estos pasos en las otras clases de repositorio. Entonces, empecemos con la historia de dejar. Um, quería ir por y hacer el crear la elite, el encontrar todas esas funciones para este historial de dejar y cuatro repositorio de asignación de licencias . No, en realidad hago una pausa en la grabación y espero que paren el video y en realidad lo pasé y lo hicieran. Pero yo lo voy a hacer. No. Ah, y espero que hayas trabajado inteligentemente, ¿ verdad? Para que puedas copiar y pegar y cambiar lo esencial porque la cancha debe tener más o menos la misma. Es el mismo patrón justo al otro lado del tablero. Entonces este es mi repositorio tipo hoja. El que hicimos juntos. En realidad solo voy a copiar de pie estas funciones, y luego voy a ir a mi repositorio de asignación de licencias sobre me fui hacia el este en esta es una calle. No necesito esa. Entonces si hiciste eso, espero que estés consciente de que no lo necesitas. Pero entonces tengo un montón de errores porque no, parecía que no estoy implementando y eso es porque mis tipos de datos faltan mucho por lo que realmente puedo hacer un hallazgo y reemplazar donde voy dedo del pie, Solo toma dar asignación. Todo lo que es tipo de licencia. Yo sólo voy a sustituir por las palabras. Dejar una ubicación, derecha, alguien dedo del pie bucle, control f encendido. Entonces usa esta zanahoria aquí, que deja caer el en la sección de hallazgo y Ripley alguien dedo del pie encuentra licencia, escribe En este archivo en. Voy a reemplazarlo por. Dejar una ubicación encendida, entonces puedo ir uno por uno en reemplazar. Está bien. Está bien. Kendall, señor, por favor. Todo encendido, entonces después de haber sustituido a todos. Entonces ves que mis errores se aburren y ya termino. Está bien. Entonces esa es una manera agradable, rápida y fácil de realmente simplemente replicar la cancha. Porque una vez más, es el mismo patrón, ¿no? Hay otro nivel de obstrucción que podríamos hacer en el repositorio Procter. Y donde en realidad solo escribimos esto enfriado y simplemente imponemos a qué clase se aplica. ¿ Qué? Yo estoy dejando ese nivel fuera de esto. Haz Toro en solo mantenerlo sencillo. Entonces lo voy a hacer otra vez por dejar historia en ir a hacer sólo Ah, copiar y pegar. Entonces una manera agradable, rápida de hacer el reemplazo. Simplemente puedo resaltar la palabra y luego hacer control f y automáticamente rellenará lo que se resaltó. Entonces lo busco o lo tengo mezclado. Por lo que busco dejar un lugar, Andi, lo estoy sustituyendo por historial de dejar. Y entonces sólo puedo hacer nuestro lugar. Todas las 14 ocurrencias fueron llamadas por teléfono y reemplazadas el, entonces. Bueno, tengo un ligero tema aquí porque entonces esto es historias de licencia son I s e s lo siento. Por eso, sí. Por lo que sólo tendré que ir manualmente a rendirme. Coloca estos en ese entonces. Ahí estoy yo. Ya terminé. Entonces para asegurarme de que no tengo errores, lo que podemos hacer es hacer unas construcciones rápidas. Pueden usar esto, pero a veces no necesariamente quieres lanzar. Tan molesto. Y así solo quieres comprobar si hay errores. Simplemente puede aferrarse al turno de control en dboey. Y entonces esos iniciados se construyen donde simplemente pasa, comprueba su código y asegúrate de que todo esté en orden y que estés libre de errores . Y veo aquí que estoy teniendo un fallo, lo que indica que tengo una lista para que puedas hacer clic en un lanzamiento para ver en qué están los errores . Yo sólo voy a ir aquí. Está bien. Perdón. Esa fue alguna referenciando a chica de un videoarte anterior. Entonces lo arreglé rápidamente. No tenía la biblioteca de carritos para el tipo de hoja de repositorio de la isla. De todos modos, si vuelvo a hacer una compilación sobre, entonces veremos que una compilación, Sucedida, conocida, falló. Y así si hago click más temprano, tengo cero errores. Eso es bueno. Entonces, no, que hayamos completado un repositorio, aunque para asignación de licencias y dejar historial no necesito volver a mi puesta en marcha en Let my start by my middleware. Por lo que este fuego de inicio representa lo que llamas medio. Dónde están el medio donde las configuraciones. Tengo que hacerle saber que ya contabilizaron sus otros repositorios. Dejo repositorio de tipo. Está bien, así que necesito sólo pasar. Y yo sólo estaba destinado a controlar de Onda. Duplicar los de entonces solo estoy intercambiando estos auto, dejo historia de historia en asignación de licencia de morir. Está bien, eso lo sé. Tenme esos cambios. Necesito asegurarme de que los interfieran y la clase mucho Así que sólo voy a asegurarme de que de la versión ojo de un lado de la izquierda el día, tengo la clase correspondiente a la derecha, Así que acabo de hacer eso rápidamente. Acabo de hacer una copia en paz y quitar el y todas estas cosas. Entonces si quieres escribirlo Oh, está bien. Si quieres hacerlo de esta manera. Eso es bueno. Además, cualquiera que funcione más fácil para ti, nadie fuera. El principio detrás de este tipo de patrones es que no quieres que el dedo del pie ponga demasiada lógica empresarial a muchos lugares de tu aplicación. Cada capa debe ser específica y responsable de una cosa. Por lo que en mis primeros días, solía poner muchos cheques aquí mismo en la sección de repositorios fuera de mi aplicación. ¿ Dónde está este cheque? No. ¿ Es esto lo sabes? ¿ Esto está vacío? ¿ Debería devolvérselo o no? Dejé de hacer eso porque sólo quiero que este archivo sea justamente operaciones relacionadas con TBIs. Encendido entonces en el controlador. Ahí es donde hacemos todas las cosas de fantasía. Entonces hacemos nuestras validaciones que son bonitos cheques para hacer nuestros cheques policiales en el controlador en eso es donde la lógica real puede sentarse. Entonces eso es todo para este video que hemos configurado con éxito o capa de acceso a datos en conectarlo a la base de datos. Entonces por supuesto, aún no has visto mucha acción, pero estamos haciendo el trabajo en tierra a medida que crece la aplicación, entonces tenemos una fundación y una plantilla a partir de la cual podemos replicar lo que hay que hacer 13. Configura los vistas y AutoMapper: Oigan, chicos, bienvenidos de nuevo En esta lección estaremos configurando o viendo modelos Onda configurando auto mop er antes de meterme en nada dedo del pie pesado. Um, que pasa y explica cuando te guardo modelos, qué significa exactamente eso. Y luego echaremos un vistazo a Autumn Oper on. Entonces entraremos a la cancha real. No, para empezar, un modelo es una obstrucción de la tabla de base de datos en el nivel básico. Eso es todo. En nuestro caso, realidad es la plantilla para la tabla de base de datos porque estamos usando un patrón de primera corte . Por lo que entidad para turbia inicio bajo te crees la base de datos. Todavía lo hacen. Pero tradicionalmente se crea el detalle abejas en. Entonces crearías un diagrama de modelo fuera de esa base de datos dentro de tu proyecto de estudio visual en. Entonces ese sería el modelo fuera de sus abejas de datos, y sería similar a la base de datos. Diagrama moderno, ¿verdad? No, En esta situación, realidad habríamos escrito C clases afiladas en. Déjenme simplemente usar el tipo de hoja, por ejemplo. Por lo que escribimos C clase afilada llamada tipo hoja. Le dimos una llave llamada I D uh propiedad requerida llamada nombre Onda. Le damos una propiedad beat time on. Entonces avanzamos ingeniería esta clase C afilada. Muy bien, Lo hemos hecho avanzar en una tabla real y la tabla se generó en nuestros datos Abejas y acabo de encontrar rápidamente esa tabla, y está en nuestra base de datos de gestión de licencias en. Aquí vamos. Entonces tenemos i d, que es una clave primaria, que es idéntica a la i d. Aquí tenemos nombre on, Hemos d creado para que todo lo que habríamos definido en esta clase se creara como una tabla. Por lo que este es un modelo para nuestra mesa conocido con unos modelos de vista bloqueables. Se trata de una abstracción adicional del modelo de escarabajo real. Por lo que no quieres necesariamente interactuar directamente con esto Si no lo haces duro. ¿ Desea utilizar esto con fines de base de datos? Pero entonces por generar nuestros puntos de vista y hacer ciertas operaciones en el controlador? Entonces vamos del dedo del pie, tener lo que llamamos modelos de vista que son más obstrucción fuera de esto encendido. Entonces tendremos que convertir los datos del modelo de vista al modelo real antes de pasarlo a nuestro informe que habríamos configurado toe, en realidad. Terrio la operación de base de datos? No, mencioné otra cosa en el título. Se trata de nuevos modelos en configuración superior de otoño. Por lo que Autumn Upper es una biblioteca que nos permite hacer esa conversión fácilmente. Por lo que vamos a estar pasando por configurar modelos de vista para un tipo de hoja en. Estaremos implementando Otoño Superior No. Lo primero es lo primero. Voy a estar poniendo todos mis modelos de vista dentro de mi carpeta de modelos en tu proyecto. Entonces de mis controladores de contratos, Peter tiene todos los archivos de clase de abejas de datos reales. Voy a cerrar esos. Pero entonces los modelos no tendrán nuestro modelo de vista. Por lo que sólo voy a dar click derecho en nuestra carpeta Modelos se cuela. Agregar acerca de una clase el. Entonces estamos llamando a éste. Dejar tipo encendido. Entonces puedes sonar las palabras modelo de vista si quieres. Yo solo quiero llamarlo VM, así que esa es mi convención de nomenclatura. Si te sientes mejor mecanografiando modelo de resumen, eso está bien. Pero eso son solo mis convenciones de nomenclatura. En lugar de decir vista modelo asi vm en entonces Bueno, más o menos esto es una obstrucción de la clase de base de datos original, así que realmente solo voy a copiar estas propiedades de aquí en adelante puestas aquí. Por lo que probablemente te estés preguntando. OK, entonces ¿por qué Copiar y pegar? ¿ Por qué? ¿ Por qué molestarse con el modelo View si realmente es solo una copia sobre la paz? Por lo que hay situaciones en las que puede que tengas más. Son menos propiedades dentro del modelo de vista de las que tendrá esa clase real de Beat Abi . Entonces ese es el punto de esta obstrucción, porque tal vez en la página de edición hay ciertas cosas que no querrías mostrar en y en el índice. Peter. Ciertas cosas tal vez quieras mostrarme. Quieres poner en una propiedad adicional sobre calcula sobre la marcha, por lo que el modelo de vista tipo de te da ese tipo off flexibilidad dedo del pie. Personaliza la experiencia que quieras. Usuario tohave. Entonces la vista Recuerde, discutimos que las vistas son lo que ve el usuario, por lo que la vista que se genera se basaría en alguna clase los campos que se exponen, los datos que dice acceder toe. Por lo que al usar un modelo de vista se puede con una rampa arriba o tonificada en la cantidad de datos que una persona tiene acceso dedo del pie en nuestra vista particular, otra cosa que nos permite hacer es el cumplimiento de ciertos pre controles en nuestras vistas. Entonces cuando digo predicar excepto yo, como en una forma, dame querer requerido se siente me dan querer algunas estipulaciones, nuestra propia validación de datos. Entonces, por ejemplo, puedo poner la propiedad requerida en el modelo de vista en DSO fuera de curso después de incluir esa biblioteca. Está bien en, entonces, Una vez que eso esté incluido, Lo que esto hará es salir cualquier vista que sea, generar que heredar. Se trata de datos y su comportamiento desde este modelo de vista se va a hacer cumplir que nombre se requiere . Entonces si tengo un formulario cuando tengo un formulario para crear un tipo de hoja y hay que poner el nombre fuera de ese tipo de hoja, no pueden enviarlo vacío porque este es nuestro campo adquirido. Yo, sin embargo, no quiero cumplir, sea creado requerido, porque eso es algo que voy a estar sentado en la caja cultivada. Entonces no soy uno para mí, y eso requirió. Entonces probablemente te lo preguntarías. OK, entonces si estoy sentado en el cable de fondo, molestame por el instante, y ese es un punto válido. Entonces una madre vivió de la obstrucción es que a veces se puede tener un modelo de vista diferente para diferentes propósitos. Entonces, por ejemplo, este podría ser el modelo de vista de detalle donde voy a acortar cada detalle de embarcaciones. Este artículo Andi, puedo tener otro. Por lo que algunas personas dividieron estos en diferentes archivos de algunas personas. Usa un archivo global en solo tener las diferentes clases dentro de ese archivo. Por lo que estos son los detalles del deporte alrededor. Este es el modelo de vista de detalles en entonces mayo antes del crear modelo de vista. No necesito el derecho I. D. Y para los detalles esto no sería necesario porque esa pantalla por lo que no hay necesidad requerir datos ya que los detalles que realmente está mostrando la OTAN. Este es un lado creativo tú modelo, sólo el yo D. Porque, bueno, bueno, no hay idea en el momento de la creación, sin embargo, sin embargo, se requiere el nombre para la creación en ese entonces. A lo mejor en el momento de la creación, realmente no como la fecha. Entonces estas son pequeñas cosas que puedes hacer con tus modelos de vista. Como dije a ya sea tonificado en su barco, cantidad fuera de datos que se están exponiendo a la vista que lo estará heredando o dedo del pie aumentar la cantidad fuera de datos. No, cuando lleguemos realmente a generar las vistas y los controladores, entonces apreciarás por completo por qué estaríamos tomando haciendo este duro trabajo, porque visual studio realmente genera bastante fuera de cancha para ti cuando usas el andamios. Y así si te rascas, seis se siente y solo necesitas hacerlo, entonces no tendrás que pasar tiempo limpiándolos. Si estás andamio encima de ti, modelo que ya diseñaste dedo solo tienen los campos que necesitas para esa vista en particular , entonces no tienes que pasar tanto tiempo limpiándolo porque ya pasaron tiempo sentado en el modelo de vista. Entonces es un tipo de situaciones de gallina y huevo, un flujo de efectivo en una. Es el que prefieras cuando lleguemos al punto de los andamios, entonces veremos el verdadero poder apagado de los modelos de vista. Muy bien, así que para las otras dos clases de datos que iban a estar enfocándose en lo que crees, asignación y dejar el historial, voy a crear modelos de vista, y estoy literalmente solo fui a hacer un directo abstracción fuera de la clase de datos, y sólo voy a agregar algunos atributos violeta de son a ellos. No soy un dedo pasar tiempo limpiando y ciudad o BTS versus crea. Dejo la VM tipo lead tal como está, Pero entonces voy a seguir adelante y hacer el historial foliar y dejar la asignación de manera diferente. Así que sólo voy adelante y creo una nueva clase una vez más en este será para el historial de licencias y llamé a VM encendido. Creo que agregamos. Entonces sólo voy a hacer una más para la asignación de licencias. Muy bien, Así que tenemos o dejamos una VM de localización o dejamos el historial y el tiempo de salida. Los archivos GM son así para la asignación de licencias. Como dije, entiendo hacer una copia directa en, entonces sólo voy a modificar las anotaciones de datos. Por lo que esos atributos que ponemos en la parte superior esos se llaman anotaciones de datos. Por lo que para dejar al aprecio removido. Las claves son clave más externa porque esas no son absolutamente necesarias en una VM, por lo que son absolutamente necesarias en la clase de datos. Bueno, no son necesarios en el modelo de vista en ese entonces. Aquí ves que la vista Mes está haciendo referencia a una clase de datos, por lo que está tratando de hacer referencia a la clase de datos del empleado y está tratando de hacer referencia a la clase de datos del tipo hoja. Pero entonces, idealmente, no queremos que Toby haga referencia a la clase de datos desde algunos modelos. Entonces tienes Model debería hablar con nuestro modelo de vista sobre necesidades una clase. Empiezas a disuadir clases, Así que por eso tenemos esa obstrucción. Entonces eso significa que necesito configurar un modelo de vista para empleados también tan interesante para crear eso rápidamente. Muy bien, entonces. Aquí hay otra situación donde ver modelo podría ser útil porque cuando queremos mirar a cualquier empleado donde realmente, no puedo usar un registro? Y si recuerdas la tabla Usuarios, que es una rápida red de usuarios, que es de lo que nuestra clase de datos de empleados está heredando, por lo que los empleados realmente nos dan todos estos datos. Realmente no necesitamos mostrar todos estos datos. Estamos mirando a un empleado. Realmente sólo necesitamos tal vez el yo d. el nombre de usuario la dirección de correo electrónico en cierta clave. Um, está fuera de los datos, por lo que un modelo de vista una vez más nos ayuda el abstracto. Ciertas cosas desde el nivel de la base de datos en el enfoque en lo que realmente necesitamos ver así que sólo voy a hacer referencia a ciertos combustibles clave. D uso un nombre e comida en las que agregamos, que se le unirá fuera de nacimiento. Nombre, apellido en impuesto I d. Muy bien. Entonces tomé las propiedades del día de la clase de empleados que nos pusimos. No, sólo voy a sumar los otros de la mesa. Entonces quiero que esto esté de lado mientras estoy escribiendo para poder girarlo por la duración fuera de mi a Por mi ejercicio aquí el día, solo tiempo estas quickie No. Algo a tener en cuenta es que mientras estamos escribiendo o cuando estamos escribiendo estos a través, necesitamos asegurarnos de que la ortografía que ganó mucho los tipos de datos Qué hay en el pozo, la tabla de datos o la clase de datos. Entonces no puedo tener cadena usándolo aquí, pero estar referenciando char usándolo aquí eso fallará. El mapeo se sentirá porque entonces son dos propiedades diferentes en. Entonces no sabrá que esto coincide con eso. Por lo que la escritura vespertina sostiene el i. D. El nombre de usuario en el correo electrónico. Yo más el caso y yo más mucho cápsula de datos Environ estrella es necesito una forma de B C de ver cadena. Entonces tengo que decir, string on ¿Usó el nombre es camello cased guardó un caso tú y terminarás después de mí. Claro, yo mayúscula a cualquiera y parezco para el correo electrónico con una e mayúscula on. Entonces voy a agregar cuatro número en que va a ser el final de este ejercicio, por lo que prob on full number se almacena como environ char Así que para el número debe ser una cadena aquí en el número de teléfono. Por lo que esto en realidad lo ayudará a marchar hacia atrás la clase subyacente para los empleados que es usuario de identidad. Entonces todo lo que más me he hecho con la base de datos, así que no así puedo simplemente arrastrarme en ella y me da que mi estado de verdad. Siempre es bueno que cuando estás escribiendo código, solo hables construye. Puedo señalar donde te falta. Entonces me doy cuenta, sé que no regresé y corrijo las épocas en la asignación de licencias VM así que no, puedo cambiar esta tienda empleados VM y puedo cambiar este uno de los pies dejar Eso albergará un detalle. Perdón. Esto debería ser sólo volver atrás y comprobar y asegurarse de que estoy escribiendo. Por lo que fue Dejar que vía mis detalles. Deja tipo B. M. Así que acabo de utilizar los detalles. Ya que los detalles tendrían todo lo que necesito que debería volver en ese corazón objeto y no hay errores en entonces sólo sabe que Leave allocation. Veum debería estar esperando algunas propiedades fuera de empleados de tipo empleado VM en tipo de licencia con detalles. Deja ese GM para que una vez más pudiéramos pasar y crear diferentes modelos de vista para los empleados. Ya sabes, uno para ver, uno para la creación, otro para este. Para eso, depende de ti. Lo voy a hacer en ambos sentidos enfermo y al menos tener una plantilla y ver cómo puede funcionar en DSO. Seguiremos adelante con los más ligeros, así que voy a seguir adelante y sí dejar la historia. Yo lo voy a hacer rápidamente aquí para que pueda positividad aquí e intentar traer sobre la propiedad usted mismo. Entonces podemos continuar juntos. Muy bien, así que traje todas las propiedades y eso cambió todos los deseos erróneos al modelo View o clase VM correspondiente en entonces, claro, tenemos que tomar todos estos atributos porque no son en el cable en unos pocos modelo. No, podemos empezar a agregar algo de validación. Alguien para volver a dejar asignación en primer lugar. Poner en alguna validación. Por lo que se requiere el número de días libres porque cuando están llenando el formulario y sentándose en la asignación, necesitan ver el número fuera de estos que tiene quien sea. De acuerdo, um, otra cosa que la asignación de licencias necesitará Tohave es acceder a la lista de empleados y a la lista de tipos de licencia. Si notan que esto es realmente uno, esto no es una lista. Se trata de una entidad llamada empleados. En Esta es una entidad llamada Tipo de Hoja y con la correspondiente I DS, derecha. Entonces mientras está almacenando mientras la tabla de datos va a almacenar una idea de empleado y un tipo de licencia, yo lo D. De verdad. Al permitir que el usuario philo, la lista requerirá que lo seleccione de una lista desplegable en. Por lo que necesitaremos incluir algún mecanismo que represente la lista fuera de los ítems que tendrán los empleados y la lista fuera de los ítems que tendrán los objetos tipo hoja son así . Esto incluirá, en nuestra opinión, modelo on voy a utilizar en innumerables esta vez. Entonces y yo innumerables sobre ahí estaban usando un tipo de datos llamado Seleccionar menos todo bien, Tim Onda. Nosotros vamos a llamar a este uno empleados. Entonces esto representa una lista desplegable de los empleados en la base de datos, y luego sólo voy a incluir esa biblioteca. Está bien, vamos, entonces haremos lo mismo viendo para el tipo sobre hoja. Así que tienen empleados. Y digamos que sólo tenemos tipos de licencia. Entonces una vez más, los pobres fuera del modelo de vista, esto va a verter la vista. Esto es lo que el usuario está viendo, y lo que necesita ver es un desplegable o algún formulario fuera de lista del que puedan serpentear una selección. Por lo que estamos poniendo en el selecto esto en nuestra clase de modelo de vista porque son mucho más flexibilidad con los tipos de datos que aquí se soportan de lo que hubiéramos tenido en la clase de asignación de licencias real que se utilizó para modelar la base de datos. Entonces lo hemos hecho para la asignación de licencias, y estoy bien vestida para ir a dejar la historia encendida. Simplemente revisaremos que en vemos aquí que todo se ve en orden, cambió a todos los empleados y los detalles. Referencias. Bueno, este paso en realidad se va a utilizar para almacenar la licencia. Las referencias son peticiones, más bien Andi, si fueron aprobadas o no. Entonces solo pensando que tenía Si alguien está llenando una solicitud de licencia, entonces van a poner en la fecha de inicio. El final. Es, um sobre Ben. Necesitan seleccionar el tipo fuera de licencia que están solicitando. Entonces eso significa que necesito una lista desplegable para el tipo de estos. Entonces solo voy a usar el mismo innumerable de asignación de licencias y ponerlo justo aquí abajo , porque entonces estos son los tipos de licencia sobre eso. Yo solo incluyo esa referencia faltante. Y luego voy a agregar algunos atributos a lo que considero necesario por lo que fecha de inicio que definitivamente se va a requerir cuando la persona esté solicitando Leave on. Eso sí incluye esa referencia rápidamente. Um, el Indy, definitivamente se va a requerir. El pozo, eso es todo lo que se requiere. ¿ En serio? Por lo que puedo determinar a los empleados solicitantes, o estaremos determinando eso por lo que el usuario tendría que proporcionar esa información para que no tengan que cumplir con el Andi requerido. El ocho acción solicitada. Todos esos se pondrán en aprobados. No tiene que serlo. Entonces, ya sabes, en un caso por caso sabes lo que se requiere y lo que no es cuando estás pensando hacia adelante. Pero al final del trato, siempre podemos volver y podemos añadir Restar en modificar como veamos conveniente como nuestra aplicación , cae. Entonces eso es todo para apagar los modelos de vista, al menos para no, eso es todo. Um, no, lo que tenemos que hacer, Se instaló para el otoño superior. Entonces, como decía, necesitamos una manera de convertirnos. Los datos que se proporcionan en este tipo de clase en un objeto fuera de este vidrio pasos. Entonces cuando se trata de una solicitud de licencia entra. Entonces tal vez me podrían haber hecho un mejor trabajo llamado en esta mesa, dejar historia. Podría tener peticiones saltantes, pero sólo trabajemos con ello. Entonces deja historial cuando ah solicitud entra a esta mesa sobre los empleados. llenan todos estos puntos de datos. No son puntos de datos. que la base de datos reconoce porque se trata de VM y la base de datos sólo reconoce creer tabla de historial proveniente de o clases de datos. Correcto. Entonces eso es lo que reconoce. El historial, no dejar historia. VM. Entonces eso significa que podríamos sentarnos manualmente y reconstruir, dejar historia, objeto y poner, asignando todos los valores que provienen de la VM en remolque. La clase de datos correspondiente. Andi, ese será un método muy tedioso. Funciona, pero es tedioso. Y así vamos a trabajar de manera más inteligente, no más difícil. Por lo que tenemos una herramienta llamada Otoño Superior que en realidad mirará las dos clases que hemos dicho que estas dos necesitan mapear. Estos dos necesitan demasiado en. Entonces va a mucho las propiedades entre sí. Entonces eso es lo que estaba diciendo. Tienes que tener mucho cuidado y estar seguro de que eres mucho en el caso y mucho en los tipos de datos . Se va a buscar capital, nuestro capital e empleado solicitante. Yo d en ello. Se va a ver Ok, debería estar dejar historia y estoy mapeando para irme. La Historia V no tiene esa misma propiedad. De acuerdo, tomaré el valor y lo asignaré, y hace ese tipo de automáticamente. Por lo que sólo vamos a pasar por los pasos fuera, configurándolo en. El DWI puede avanzar después de eso. No, para conseguir el otoño superior, vamos a estar usando nuestro nuevo gestor de paquetes get para que simplemente podamos ir a nuestra solución . Explorador, ¿verdad? Haga clic en dependencias click Administrar nuevos obtener paquetes y luego si teme aterrizar en instalar Just Goto bro's on. Asegúrate de tener la preliberación incluida marcada y vamos a buscar Auto Mahbur. Entonces vamos a estar llegando a bajar. Estas bibliotecas iban a estar consiguiendo Autumn Oper y vamos a estar consiguiendo extensiones de Autumn Oper por dependencia. Inyección no son así Vamos a dar click en eso. Podemos simplemente deslizar la flecha hacia abajo una vez. Simplemente deja que eso empiece a descargarse en. Entonces Newgate hará lo suyo, obtendrá el paquete y lo colocará en el carrito. Coloca dentro del proyecto y luego una vez que eso esté hecho, entonces si vas a instalado, verás listada ahí Así que los ánticos ilimitados son claros la búsqueda. Pero no. Se ve que el automóvil está listado entre sus paquetes instalados. Si dejaste caer en dependencias y paquetes Goto. Y también verás listado Autumn Oper justo ahí no hay. Entonces volveremos al Breaux's y buscaré nuevamente la Alta Otoño porque no estoy terminada. Entonces todo término superior en entonces. Estamos buscando este. Por lo que estamos buscando extensiones. Inyección de dependencia de Microsoft en. Entonces, ¿qué? No conoces esa versión para John siete. Una vez más, asegúrate de que se pegue la preliberación de incluir. Sé que eso se descarga. Tengo ambos en mi proyecto, así que solo puedo parecer débil construir. Siempre se recomienda que una vez que instale un nuevo paquete o lo construya para que lo sepa, todas las referencias son algo así horneadas. Entonces sólo el cambio de control y ser y hacer una construcción rápida y nuestros edificios se completan con cero flechas y así podemos seguir adelante. Entonces, no, donde tenemos las referencias que los paquetes dedo del pie otoño superior, Pero no, necesitamos que nuestra corte sepa qué hacer con el otoño superior. Entonces lo primero que vamos a hacer es crear una carpeta pequeña. Entonces, ya sabes, queremos mantener nuestro núcleo limpio. Entonces en cualquier momento que tengas un poco de cordones son pequeñas clases. Necesito hereje y discreto. Una carpeta. Dale un buen nombre. Entonces lo estoy llamando éste. Mapa ings están bien fregando Zia on. Entonces quiero crear un archivo de clase ahí dentro. Alguien que llame a este archivo cruzado Auto mi quemadura. Muy bien, para que ese nombre no chocara. Ese es mi nombre para mi clase. ¿ Entonces ese nombre esa palabra realmente se estrellaría? No, dentro de esta clase, lo primero que voy a hacer es heredar de, ah, archivo u otra clase llamada perfil. Entonces yo sólo voy a hacer eso. Y luego un cargador de referencia de esta rodilla Aún poniendo nuestro uso otoño mi personal. Se está referenciando a nuestra biblioteca. Está bien, así que otoño, una biblioteca de la prisión o la dependencia que acaba de agregarse a través de ti consigues en algún lugar referenciándolo. Entonces vamos a montar un constructor para nuestro podría nosotros. Entonces tal vez esto sería un poco confuso si yo desde que le di el mismo nombre. Entonces sólo voy a cambiar este nombre dedo del pie mi parte superior. Entonces en lugar de llamar a nuestros moldes otoño un primo quieres llamarlo mi superior? Justo, quita cualquier confusión, ¿verdad? Por lo que siempre es una buena práctica que cualquiera que sea el nombre del archivo de la clase, también nombre a la clase dentro. Muy bien, así que acabo de renombrar el archivo a mapper dot CS en la clase. El nombre es muh para Andi sabe que estoy creando sobre constructor en. Entonces dentro de este constructor, voy a crear los trapeadores que deberían existir en nuestra aplicación. Entonces déjame solo hacer uno en explicar a medida que voy, alguien que diga crear todo bien, corchetes angulares abiertos. Y luego voy a ver qué dos clases deben mapear. Entonces ya ves, es como que te dice, ¿Quieres una fuente? Yo quiero un destino, ¿verdad? Entonces, ¿cuál es la fuente? Puedo ver una fuente sería una clase de datos. Entonces, vamos a ver. El tipo de licencia es Clase Anita. Entonces quiero que eso fregado. Entonces adelante. Entonces sí tuve dos clases son para ver modelos para lyft tipos de detalles dejar tipo y que crean los pasos que voy a hacer uno apagado. Entonces quiero que la clase de datos tipo hoja, que es mi fuente, esté mapeada a mis detalles. Dejar tipo confianza lo sentimos y es Veum. Detalles dejan tipo VM para que la clase de datos, que es nuestra fuente se motive a mi destino, que es mi modelo de vista, para luego entender incluir todas esas referencias para que todo el mundo sepa de todos. Está bien, entonces, no, la fregona sabe que debería crear, um arriba o vamos Esto está creando una fregona entre la fuente, que es nuestra clase de datos yare clase de destino on. Entonces solo cierro esos aparatos ortopédicos, luego semi colon. No, La cosa con las óperas de otoño que literalmente hará fuente del destino, lo que significa que si estoy tratandode obtener datos de aquí para almacenar aquí, entonces sabrás de ello se basa en la dirección. Por lo que tiene, ah, función. Entonces después del abrir y cerrar, muy sitio Express dijo que Y entonces quiero llamar a otra función llamada reversa mapa, que luego verá que se puede mapear en cualquier dirección. Entonces de esa manera no tengo que hacer una noche y ver esto a aquello y aquello a este derecho, eso debería decir, clase de datos, el modelo U Motor on view a data class, reversa mop con automáticamente saber que está bien, ya sea dirección está bien por mí. Está bien, así que puedo hacer eso con los detalles y luego, ERM consciente de los GM's. Entonces donde detalles sobre dónde. Crear tiempo de licencia. Entonces definitivamente tendríamos que hacerlo porque esperamos que la parte superior de Otoño anote un mapa de esta clase posterior a este modelo de vista. Entonces tenemos que ver modelos aquí, y por cada modelo de vista que tenemos, tendríamos que hacerlo esta semana. Entonces eso es lo que dije. Podrás romper tu punto de vista, madres, para ser muy específicos al tipo de ustedes, o simplemente puedes hacer uno global, por lo que esto se haría una vez. Entonces lo que puedo hacer ahora es simplemente duplicar estas líneas en ese entonces, ¿no? Todos los demás mapas ings para historia, asignación sobre empleados. Entonces solo voy a hacer una pausa del dedo y hacer eso. Y puedes hacer una pausa aquí también en día intenta hacerlo antes de que reanude. Está bien, así que ya terminé. Acabo de duplicar esas líneas y cambié todos los nombres de la clase de datos en el modelo de vista en De retuve el mapa inverso. Entonces esto es más o menos todo lo que necesitamos. Y para cada otra clase de datos y cada otro modelo de vista que alguna vez se introducirá. Sólo tenemos que agregarla a esta lista fuera de los pings de mamá. Entonces el siguiente paso es toe en realidad dejar oh, nuestra aplicación middleware o donna core inicializar otoño superior. Y estos mapas ings entraron para que la aplicación se está ejecutando son así que vamos a hacer eso yendo tor start sobre archivo CS y luego necesitamos agregar un nuevo servicio. Entonces déjame solo poner un poco de espacio aquí. Por lo que agregaron estos tres servicios para sobre nuestro presente para repositorio. Está bien, entonces, no, voy a añadir otra, y voy a encontrarme con ésta para nuestro top otoñal. Entonces voy a decir servicios punto en entonces veré Odd lema, ma, ma, por ningún aviso se detuvo el inter pecado. Y eso probablemente sea porque necesitas incluir alguna biblioteca para obtener esta función. Pero déjame simplemente terminar de escribirlo viejo antes de que vayamos y añadamos algo. Entonces estoy viendo en otoño arriba on. Entonces voy a decir teclear apagado, luego en aparatos ortopédicos. Voy a ver el nombre fuera de la clase, que teníamos como marcadores. Entonces recuerda que lo llamábamos Ma por eso se acabó y está en el nuevo espacio o en el lleno de mis pings. Entonces fregona er aan den, Eso es lo que va a estar aquí. Entonces no, necesitamos incluir algunas referencias que necesito decir usando Autumn Oper primero para que este teléfono mostrado sea reconocido. Está bien, así que le damos un poco de broche porque llamamos o trapeador de clase er, pero realmente no debería tener ese nombre porque mapeador es Noah Clase conflictiva, Así que voy a llamarlo mapas en su lugar. Entonces voy a volver a mi archivo, que es mi superior, ese CS, ese CS, y voy a renombrar este archivo toe maps. Entonces el recubrimiento con los estudios que si cambias el nombre del archivo, preguntará si debe pasar y realmente en las clases bajo referencias dentro ahí, tan trapeadores lejanos iraníes. Y así cambió automáticamente el nombre de la clase y el constructor. Dos mapas para mí, así que entienda, para ver si eso vuelve a mi startup y en su lugar voy a decir type off trapeadores justo en . Entonces, cuando incluya la referencia, me preguntará si quiero incluir la referencia para ese archivo, que es mi archivo de clase esta vez. Entonces, solo repasemos lo que acabamos de hacer. Por lo que estamos agregando un nuevo servicio, y estamos viendo que cuando sabes que nuestra aplicación principal se está iniciando. Queremos un servicio que agregue en otoño archivo de configuración superior en el tipo off o informe este archivo mops en este archivo de mapas o clase viene de nuestra configuración que hicimos con todas las mops. Entonces, no, Al final de este ejercicio, cuando realmente estamos realizando nuestras operaciones con un modelo de vista encendido, estamos obteniendo datos y necesitamos convertirlos de la versión del modelo de vista a los datos aulas en porque el repositorio honorable no está buscando modelos de vista está buscando clases de datos. Por lo que necesitamos convertir los datos almacenados en el objeto de modelo de vista en datos de remolque que se almacenan en el objeto de clase de datos que se pueden pasar al repositorio y por extensión, la base de datos. Y así otoño superior cumplirá con ese proceso fácil. Entonces no hemos visto el automóvil, y en realidad, sólo estábamos sentados en sólo conseguir una apreciación de por qué necesitamos ver modelos y por qué necesitamos Autumn Oper encendido . Entonces cuando estemos configurando nuestros controladores, entonces veremos el verdadero poder apagado ambos. 14. Revisar y añadir cambios a GitHub: Oigan chicos, en este video, estaremos revelando sobre los cambios o trabajaron hasta este punto. Onda. Estaremos subiendo nuestro proyecto para levantarnos. Ahora empecemos revisando lo que hemos hecho hasta este punto con nuestro proyecto, hemos configurado sobre clases de repositorio que hemos configurado o conexiones de base de datos. Hemos configurado algunos modelos de vista. Inicio de Oper de Otoño. No hemos tocado nuestros controladores y aún no hemos tocado nuestros puntos de vista. Pero al menos hemos hecho el imperio al que es modelo, cuál es una operaciones relacionadas con datos? No, siempre es bueno mantener conos relativamente cortos fuera de lo que estás haciendo. Significa que implementas algo, lo revisas. Um, por lo que el control de fuentes está diseñado para ayudar a los equipos a colaborar incluso como desarrollador individual para ayudarte a mantener un seguimiento de lo que es lo que estás haciendo. Entonces con eso en mente, cuando haces grandes cambios o implementas algo nuevo, quieres revisarlo porque cualquier cosa puede pasar del pie de tu máquina local o donde sea que estés según cuando lo revises en la central repositorio. Al menos tienes una copia de seguridad de los últimos cambios que se hicieron. Por lo que nuestro motor de control de fuentes off choice es ghetto Bob on dit es una plataforma en la nube y usted o debería haber creado una cuenta ya. Y si no lo has hecho, entonces puedes justo y yo solo voy a cerrar la sesión mi levántate rápido. Si vas a conseguir hope dot com, entonces se te dará una hoja de registro aquí mismo en la primera página. Esto proporciona un uso único nuevo tu dirección de correo electrónico y una contraseña y estás en. Si ya tienes una cuenta, puedes seguir adelante y esa sesión, y luego crearemos un repositorio para nuestro proyecto. No. Una vez que te hayas inscrito en nuestro registrado, podemos proceder con el Visual Studio Onda. Podemos seguir adelante y agregar este control de fuente de proyecto para que tengas dos opciones para hacer esto. Verás en la esquina inferior derecha en proyecto a control de fuente en el Control de fuentes y haces clic en eso y ves regalo o puedes hacer clic derecho en la solución y verás una opción. Esa es su solución publicitaria al control de fuentes. Ahora, si no ves ninguno o no ves se pone, entonces eso significa que necesitas no cargar, conseguirlo generalmente viene con visual studio, pero tal vez algo salió mal y no lo conseguiste, Así que siempre puedes sólo tienes que ir toe get dash s c m dot com o puedes Google al menos son buenos . Yo no era Fuego también se pone dash SCM dot com, y sólo se puede ir al amanecer Señores on, entonces sólo marcar el don 't Lord. Si estás usando Windows fuera de curso, entonces esa es la que es para ti. Pero puedes elegir de acuerdo a tu sistema operativo en. Entonces una vez que instale eso, puede darle a su computadora tal vez un reinicio y luego volver a abrir su proyecto en. Entonces deberías ver que conseguir Icahn como opción, así que voy a seguir adelante y dar click. Ponte así en el control de fuentes y me lo llevo. Y lo que hace es crear un repositorio local, así que get crea dos repositorios, pero get crea un repositorio en la máquina en la que está, así que si está en tu máquina, entonces tienes I repositorio en tu máquina. Pero entonces el estudio visual también está muy estrechamente integrado, con plataformas de alojamiento de control remoto de fuentes como la guitarra, por lo que va a forzarlo a guardar cambios antes de que cree tres Paluch localmente. Pero entonces también está preguntando, ¿ dónde quieres crear la copia de seguridad fuera de tus palabras de cordón local? Creó una copia local fuera de tu cable para que tengas una copia local fuera. Tus cambios son locales rastreando tus cambios. Pero no, es preguntar. OK, ¿quieres empujarlo como tus servicios div up? ¿ O quieres usar la barra del gueto? Algún otro tipo off obtener repositorio remoto. Entonces te va a preguntar eso a diez centavos usando guitarra porque esa es mi arma de elección para este tutorial, alguien a decir publicado para conseguir hub. En este punto, podría pedirte que inicies sesión. Ya sabes, estoy usando más o menos la misma tow log in. Ata todo juntos para que no me vuelva a preguntar. Sabe quién soy, así que sólo voy a dejar el nombre Leave Dash management. Se puede poner en una descripción. Si quieres en, ¿puedes hacer clic en publicar, Así que si eliges repositorio privado, entonces la gente no podrá verlo en tu perfil, por lo que eso significa que tienes que agregar personas manualmente en, entonces eso podría incurrir en costos si necesitas sumar a muchas personas. Pero entonces, si lo dejas público que todos puedan ver. Entonces, claro, ya sabes, si tu información sensible quería público para Pero para los efectos de este tutorial, quiero dejarlo público para que puedas ver mi perfil, ve a mi guitarra y ver el código fuente. Si necesitas algún refuerzo fuera de lo que se hace en estas lecciones, así que voy a seguir adelante y hacer clic en publicar, y luego se va a trabajar algo de magia en. Entonces al final eso se va a refrescar el dedo y muéstrame que el repositorio fue creado con éxito. Andi. Me está dando un enlace a esos repositorios. Si hago clic en este enlace, entonces será el dedo del pie del Bro el repositorio ingettable con todo fuera de la cancha que he escrito hasta la fecha, Sisi fue creado. El último compromiso fue hace dos minutos. Si entro a la carpeta que estoy viendo todas mis carpetas y archivos en los que he estado trabajando, y para que este sea un lindo caballo de remordimiento, esa versión fuera de mis canchas Si mi computadora se estrella, ¿no? No. Entonces puedo volver, levantarme y conseguir la última inversión comprobada. Entonces por eso digo que es importante revisarlo cuando hagas grandes pasos en tu cita . También es una buena práctica. El pollo llamó. Eso funciona porque si trabajas en equipo no quieres tener un error en, entonces intentas checar en esa época. Entonces viene alguien más y se lleva tu cordón. Eso es lo que llamas check out cuando lleguen aquí cordón. Y luego tienen contendientes Arisa que fueron tu culpa, ¿ verdad? Por lo que siempre código de pollo que funcione tu costa y luego te sigues adelante. Entonces esa es una linda manera de colaborar a Snow desde aquí, y solo puedo despedir desde aquí. Puedo incluir más información crear. Yo me leo para que lo sepas, si la gente se encuentra con este expediente o este reportaje, saben exactamente lo que es un barco. Puedo ser más descriptivo agregando, bueno, bueno, una descripción en la página en la parte superior, así que esta no es una descripción. No sabe lo que es un barco. Él puede agregar un wiki Para que las personas que yo, ya sabes, esto es una plataforma de código abierto. Entonces tal vez estás creando algo que quieres compartir con la gente. Se puede crear un malvado, que es como un problema apagado registro O r problema, Andi solución tipo de documentos. Si es que quieres sumar más gente, Toby, los colaboradores son colaboradores a tu proyecto, y puedes ir a ajustes y puedes acudir a colaborador. Entonces esto. Por lo que configuraste un proyecto de equipo. Tiene que ir con colaboradores, y luego solo puedes encontrarlos usándolo y a ellos. Y luego todo fuera, estarías en un equipo trabajando en ese repositorio central. Está bien, así que así es más o menos como consigues tu cancha desde el estudio visual a la tina encendida. Entonces a medida que avanzamos y construimos más modelos cada vez, nos aseguraremos de revisar esos cambios y mantener este repositorio optado por ocho 15. Configuración de la Controller y las acciones y el controlador de la forma de la forma: Oigan, chicos. En este video, comenzaremos a construir nuestro módulo de gestión tipo hoja, y comenzaremos con los controladores. En este video, vamos a estar creando un nuevo controlador para nuestros manejos de tipo hoja antes de que un continuum fuera a pasar un poco de tiempo explicando el trabajo completo de los controladores, o ¿qué regla? El súplica de verdad no es así. El controlador hace exactamente lo que su nombre sugiere que controla. Controla el flujo entre la solicitud de un usuario sobre el contenido en un servo. consecuencia, está al timón de cualquier interacción Web con su aplicación. Por lo que los proyectos cuando lo creamos venían con control domiciliario ya están ahí y listos para su uso. ¿ Y tú? Pasamos algún tiempo explorando cómo funciona. Vemos que casa es realmente el nombre fuera de la zona. Pero entonces el patrón es que tenemos ah nombre y luego el controlador de palabras. Siempre es camello camello Andi. El controlador hereda de una clase base llamada Controller, que es proporcionada por el proyecto. El controlador tiene ciertas funciones que se llaman acciones en. Estas acciones tienen nombres sobre la caza de retorno con base en la necesidad. Entonces a pesar de que tanto índice como privacidad verán vista de retorno. Lo que realmente pasa es que si solicitas contenido para el discurso de índice fuera del controlador de casa de lo que ha sido para golpear esta acción y ha sido para devolver vista, entonces lo que realmente hace cuando se devuelve, ver es que entra en el vistas comprobaciones de carpeta. Si hay una carpeta con el mismo nombre que un controlador, por lo que el nombre de los controladores es home. Tiene que haber una carpeta llamada Home On. Entonces necesita ver de ti con el mismo índice de nombre, lo que hace. Necesita ver algún archivo, que es ah dot CS Iham de archivo en. Entonces devuelve el contenido de ese archivo en eso es lo que ve el usuario. Por lo que para empezar a crear nuestro modelo, necesitamos armar a la multitud. Las operaciones están en la clase de administración del tipo de hoja son tablas más bien, por lo que el primer paso es configurar un controlador. Y entonces empezaremos a configurar las vistas, su acción en el controlador. Entonces, empecemos. Por lo que para crear un controlador, hacemos click derecho en la carpeta de controladores, vamos a agregar. Entonces vemos en la parte superior fuera de la lista. Tenemos controlador, por lo que seleccionamos eso en, luego se les dieron las opciones a menudo controlador vacío. Entonces verás, Home Home Home tiene algunos llamados Podemos conseguirlo vacío, que significa que sólo como una cosa básica el espacio de nombres, las bibliotecas sobre el hecho de que es una clase llamada como lo llamemos heredando del control. Y luego hacemos el resto para que podamos elegir vacío. Podemos elegir uno con lector en acción Así viene detenido con las acciones básicas de multitud como estoy diciendo que nosotros las acciones somos estas funciones en cualquier interacción con la aplicación está realmente lleno aquí que crear, leer, actualizando bien nuestro borrador de datos, para que podamos obtenerlo con lo básico pero genérico y y fuera de curso tenemos que escribir el cable para ello. O podemos seguir adelante hacer el controlador NBC con vistas usando entidad framer. Entonces, ¿qué? Éste lo hace. Yo baja. Nosotros también. Crear un controlador centrado alrededor en un cuatro clases de datos, la sala donde salimos mal. Creamos clases de datos en este caso, deje tipo, y luego generará todo fuera de las operaciones de multitud usando entidad para tu Así que voy a hacer esto en primer lugar en el número uno para mostrarte por qué este no es el que vamos para presionar hacia adelante con. Entonces el en el básicamente venerado edificio una aplicación central dominante que no estás usando modelos de repositorio y vista y todas esas cosas de lujo. Entonces esta sería la opción con la que vas donde solo seleccionas esto. Se da clic. Añada que desde este cuadro de diálogo seleccione la clase de modelo. Entonces puedes en la lista seleccionar cualquier clase que quieras. Andi, En este caso, voy a ir con tipo de licencia. Por lo que es tipo de licencia proveniente del espacio de nombre de datos lionizado clase de datos on. Entonces elijo el contexto que sería aplicación Devi contexto Andi. No tengo dedo del pie toque nada más, pero nota que está generando el control y en para mí sabe que está construyendo un controlador basado en la clase de modelo tipo off leaf. Por lo que es el controlador de tipos de dejar. Entonces hago clic en agregar Y cuando se haga ese proceso, tenemos un controlador con mucho código generado. Entonces conseguimos un controlador con mucha cancha y también nos dieron una nueva carpeta en nuestras vistas llamada Leave Types of Sobre un control de tipos de licencia ahora que una carpeta llamada Leave Types con un número fuera de archivos uno para cada off las operaciones cuerdadas están en, así que crear los leads, Detalles e índice harían antes de leer y editor antes optimista. Ahora bien, si miramos el cable que se generó en este controlador, vemos que incluye nuestro contexto DD de aplicación, que, recuerden, recuerden, es como sobre gateway a la base de datos. Veo que se inicializa. ¿ Es de la misma forma en que lo inicializamos en o repositorio? Y a medida que continúas examinando qué hay, vemos que tenemos una acción llamada Índice. Pero tenemos un archivo en nuestras vistas tipos de hojas de carpeta llamado Index. Entonces por cada acción que se generó en nuestro controlador de lo que tenemos un archivo de vista correspondiente para esa acción. Entonces ves que quiero decir, es más o menos hace mucho fuera del cortejo para ti por crear para ver a uno es darte al capataz, y el otro se ocupa de la acción de presentación. Entonces después de llenar el formulario y luego dar clic. Presentar este. Http post version off create maneja los datos erráticos, consiguió y hace cualquier comprobaciones pre y post que necesite hacer lo mismo se puede decir sobre la edición. Tenemos el editor y tenemos el formulario en el archivo correspondiente, pero y también tenemos la versión post fuera de la acción. Tan realmente interesado lo suficiente que el andamio hubiera hecho mayoría fuera del cortejo para ti. Y entonces probablemente te estés preguntando, entonces ¿por qué molestarte con el repositorio si podemos generar todo fuera del marcador? Bueno, el hecho es que sí, genera , sí, funcionará. Pero luego hay ciertas restricciones o limitaciones a lo que realmente puedes hacer ciertas validaciones que puedes hacer porque recuerda que no queremos tocar las clases beta y el enforcer y validaciones como la longitud, y tú saber ciertas pequeñas cosas que el usuario debería estar viendo. Queremos tipo de crear que vivan de la obstrucción entre nadie ve el usuario y lo que experimenta la base de datos. Entonces por eso te tenemos modelos toe manejar las generaciones de vista, y tenemos las clases de datos toe manejar la interacción con los datos abejas en Eso es de lo se trata ese patrón, creando que vivan de la abstracción y mantengan capacidad. Entonces lo que voy a hacer es que sólo voy a quitar estos. Entonces sí, lo generé. Sólo le estaba mostrando a su anfitrión. Andamios trabaja a alguien para borrar el controlador en den. Voy a eliminar esa carpeta vistas también. Por lo que estos nunca existieron en lo que a mí respecta. Entonces se acabó la demo, y no, haremos el trabajo real. Por lo que voy a volver a los controladores con razón haga clic en Agregar controlador. Y esta vez sólo voy a hacer un controlador genérico con acción de lectura correcta. Entonces no hay nada heredado en éste. Es sólo general on. Vamos a llenar los vacíos y generar los puntos de vista a medida que avanzamos, así que estoy creando eso con lector en acciones en como agregar. Entonces le voy a dar el nombre leave types on troller, así que haz click add so una vez que eso esté hecho y terminamos con un controlador de aspecto muy genérico, aquí no hay nada espectacular. Sí, hay algo de calidad. Danos a todos fuera de las acciones que crean los dos crea do y es etcétera. Pero si miras dentro de ellos. Todos ellos están vacíos. El único que realmente tienen es la vista de retorno. Entonces vamos a, primer lugar configurar este controlador toe heredar nuestra clase de repositorio. Entonces lo que pasa con la inyección de dependencia es que no vas a ir del dedo en realidad referencia a la clase misma. Pero solo estás haciendo referencia a los inter honorarios que implementaron o que la clase ha implementado. Y luego otra dimensión a esto es que necesitamos también hacer referencia al Oper de Otoño que vamos a estar usando. Entonces voy a empezar con un privado encendido, Uh, Uh, podemos hacer que solo lea, pero sólo voy a hacer que se encienda la oración. Voy a decir que dejo tipo repositorio, Y entonces fuera de curso ha sido pedirme que incluya la referencia para ese archivo algún distante . Si tenía alguna pista sobre esa referencia, entonces voy a llamar a este reporte. Por lo que subrayan los informes. Recuerda, una vez que tengas privado, usamos un guión bajo. Eso es sólo un poco convención de nomenclatura son convención de cortejo Eso nos ayuda a ley, lo que es lo actual. Entonces voy a hacer que se lea sólo ahí, diciendo que debo hacerte leer sólo lo hago leer. Entonces eso es para la re encuesta sobre eso. Yo sólo estoy en duplicar esto y voy a incluir me fregó er on, luego fui a llamar a este ma arriba on. Entonces voy a hacer esa referencia. También usando ópera otoñal fueron incluyendo esa referencia para I trapeador. Er Así que esta es una demo off. De lo que realmente es la inyección de dependencia. Por lo que la inyección de dependencia es solo referenciar a un objeto, e implica cuáles son las dependencias ahí para ese objeto. Entonces estoy haciendo referencia a los interfieres aquí. Pero entonces esta interfaz conoce las funciones que deben llamarse, y por extensión, llamará a la clase de repositorio. Entonces, sí, eso es un bocado. Eso es algo académico. Pero pasemos por ahí y veamos exactamente cómo funciona, verdad? Por lo que necesito un servicio constructor usando la clave. El tiburón se sentaría son aan den. En este constructor, se espera que pase en dos parámetros, uno para el repositorio y otro para mi mamá superior. ¿ Verdad? Entonces de la misma manera que hicimos el contexto DB. Estamos haciendo esto, pero luego me estoy quitando los subrayados aquí. Entonces eso es que dejo reportero de repositorio y soy mapeador superior Andi adentro. Fuera de esto, sabremos inicializar informe para tener el valor fuera del tan subrayado re veneno para tener el valor fuera de nuestro parámetro re pool on on the enjambre upper va a tener el valor off o parámetro mop er Y así acabamos de completar formar algunas partes fuera inyección de dependencia en remolque, este nuevo control para siempre control que vamos a estar haciendo por cualquier reporte que vamos a necesitar. Vamos a tener que hacer estas líneas. Por lo que en algunos controladores en adelante, probablemente vamos a necesitar alguna funcionalidad del repositorio de tipo I leave así como del empleado it repositorio. Entonces vamos a tener que incluirlos de la misma manera en inicializarlos en nuestro constructor. Ahora, con eso hecho, habría completado la configuración inicial de este controlador encendido. No hay mucho más que hacer en esta lección de partículas. En la siguiente lección, comenzaremos a configurar o vista de índice. Muy bien, entonces en el siguiente video, seguiremos desde aquí. Pero si has completado esto, entonces buen trabajo 16. Configuración de la imagen de tipo de Setup: Oigan, chicos, Bienvenidos de nuevo en este video, comenzaremos a sentarnos o indexar acción a la vista para controlador tipo relieve. Ahora, ya hemos configurado o controlador e incluimos. Nuestra dependencia está en la forma fuera del repositorio tipo hoja y sobre mapeador. Y no, necesitamos escribir alguna cantidad fuera de la cancha tal que cuando alguien brose esté al controlador de tipos de hojas o para dejar tipo de discurso a ese módulo. El primer artículo que van a ver es Index, y tenemos que mostrarles algo en la página del índice. En su forma actual, no tenemos ninguna vista. No. ¿ Qué? No tenemos ninguna carpeta que corresponda. ¿ Está encendido el controlador tipo hoja? No tenemos ningún contenido para mostrar. Entonces nos fuimos dedo del pie uno escribir código que nos vamos de punta a consultar la base de datos, recuperar todos los tipos de hojas en la base de datos en, luego devolver una vista que esto por favor todos esos registros, Se acabó, usuario. Entonces lo primero que voy a querer hacer es en realidad encontrara todos los tipos de licencia. Entonces, dentro de la acción, voy a utilizar mi objeto de repositorio en forma de subrayado Re pull on. Voy a llamar a la función que definimos que se supone que devolverá todos los tipos de licencia porque el índice va a ser una lista de los tipos de licencia que están en la base de datos . Entonces voy a usar Vier para definir alguna variable, y estoy llamando a tipos de licencia on. Entonces voy a hacer que sea igual dedo del pie lo que sea sobre punto de reporte y cuando digo no use note que nos sacamos todas las funciones que habríamos definido frijol dentro de nuestros repositorios tipo hoja quiero encontrar todo porque devuelvo todos fuera de ellos. Entonces solo voy a ver que la gente no se entere. Entonces lo que sea que esto devuelva se almacenará dentro de fuera tipos de licencia. No hay en cuenta que esta función find all está devolviendo una colección off leave type objetos. No es devolver tipo de licencia, vista, objetos de modelo. Entonces recuerda que pasamos por el hecho de que nuestra vista necesita obtener objetos de modelo de vista, no los objetos de datos. Entonces no, necesitamos mapear lo que se devuelve en un formulario de nuestra clase de datos o ver clase de modelo. Por lo que voy a guardar modelo de fuego en el modelo va a representar la versión marcada fuera los datos hasta el momento, Madre va a ser igual dedo del pie o trapeador er objeto dot mop y luego mapa nos baja para definir que estaban consiguiendo esto o tenemos un fuente lo que significa que estamos obteniendo la clase de datos en esta situación. Pero queremos ser el otro, así que veremos cuál es la fuente y cuál es el destino nuestro lo que estamos metiendo, qué queremos. El lodo, Toby Al final los resultados mapeados deben estar en el en la operación. Siempre es él arriba. Entonces en realidad estoy obteniendo una lista de esto. Entonces esto realmente está regresando. Por lo menos algo de mi colección. Pero si volvemos a la definición de función encendido, acabo de sostener en el control y para desrecortado y fui a buscar todo y puedo hacer click derecho O más bien déjame ir a mi repositorio tipo hoja on. Aquí vemos que o encontramos todo está regresando al menos a la derecha. Por lo que voy a ver que quiero que mi superior esa fregona me quite la lista. Entonces la lista está fuera tipo de licencia porque eso es lo que volvió a dejar tipos Es una lista fuera, literalmente. Dejar tipo encendido. Después fui a ver coma y luego quiero fregar la lista de la clase de datos. Deja tipo toe una lista fuera de nuestra lista A fuera de nuestro tipo de licencia el objeto M en. Recuerda que también lo fueron. Por lo que creé herramienta en Dime fue a usar los detalles, dejar VM Así que creo que uno es bueno para esta situación. Entonces los detalles dejan esa VM Muy bien, Así que así es como defendiste su directa la lista de palabras, y luego abres un corchete de tío, y luego especificas el tipo de datos que debería tener la lista, Así que esto puede ser después en camber de tipo string. O puede ser un tipo de objeto, como, como, en este caso, tipo de dejar, que está sobre personalizado definido para nosotros que hemos creado algún mapeo a partir de una lista fuera de la clase de datos tipo hoja toe una lista fuera de la vista detalles del modelo. Deja el tipo V M encendido. Entonces al final de eso, necesito cerrar el corchete de ángulo inicial desde sobre mapa. Entonces voy a ver qué objeto debe ser. ¿ Qué objeto son los objetos? Los datos deben ser mucho Así que los datos realmente vienen de tipos de licencia porque eso es lo es mangueras lo que se devuelve de sobrefunción, porque voy a copiar eso y ponerlo dentro de esas llaves encendidas, luego cerrado. Entonces no, tengo un montón de líneas rojas. Necesito pasar por Onda. Fregar eso. Entonces me fui dedo del pie incluir todas las bibliotecas que se puedan ver en. Entonces lo manejé. Estamos consiguiendo una tierra roja más donde parecía que no puede convertir de I colección del sistema No genérico I colección a lista genérica del sistema. Está bien, así que tengo dos opciones. O puedo poner un a lista al final de esto o porque no tenía la disfunción realmente está regresando colecciones, incluso sangrientas que enumerar en la función aquí. De verdad está regresando yo colección así que ya sea puedo cambiar. Es decir, siempre puedo usar esto para solo ser lista, o puedo cambiar esto y honrar a los pies. Entonces lista Andi, Eso hará otra conversión. Entonces, sí, está regresando. Yo lo colecciono devuelto lista aquí. Después regresó. Lo hace yo colecciono, y lo estoy volviendo a convertir a lista y entonces todo está bien o realmente puedo cambiar de lista aquí toe I colección. Entonces lo que sea que esté subiendo estoy arriba puede ser de casi cualquier tipo de datos genéricos de cualquier trato genético en su momento. Mientras se definan las paperas, entonces no tienes ningún problema. Entonces solo lo voy a dejar aquí como ah dot para listar en que soluciona nuestro problema en entonces saber que hemos conseguido los datos en luego hemos marcado los datos. Marcamos los datos y los estaban almacenando datos dentro de los modelos. Si pasas el cursor sobre el modelo, ves que está realmente fuera de lista de tipos. Detalles VM en Eso es lo que queremos pasar nuestros puntos de vista de los datos pasados. A nuestro juicio, sólo necesitamos dedo del pie haber vuelto vista. Y luego en la brisa abierta ponemos los datos que se deben pasar. Por lo que ahora o ver una vez que esté cargada, tendrá acceso a cualquier dato que esté presente en el modelo. Y por eso sigo diciendo que nuestras madres de vista mucho más versátiles que la propia clase de datos porque puedo poner casi cualquier cantidad de datos estáticos así como el enemigo más adelante en mi vieja clase, Andi, puedo manipular y mantener el masaje debe formarse antes de que la vista realmente lo consiga. Entonces no, necesitamos realmente generar la vista que mostrará los datos de ese modelo. Por lo que para generar la vista, tenemos dos opciones. Podemos ir manualmente y con razón cuidar y abrir una nueva carpeta y luego darle el nombre tipos de hojas y luego crear una vista fuera de curso Eso fue un gran estudio visual múltiple hace que sea fácil para nosotros. Como vimos con andamios, fue mucho más fácil. Pero pensamos andamios o sin generar todo el controlador y todas las vistas, podemos hacerlas individualmente sin embargo, haciendo clic derecho en la cosmovisión. Y luego vemos la opción a la vista el. Entonces desde la vista de anuncio, definimos el nombre para que el nombre se hubiera heredado de cualquier acción la vista para la acción que estamos implementando, Podemos especificar una plantilla. En este caso, quisiera una lista. lo que un índice suele ser una lista, por lo que en realidad nos dará frío que los Jurados una tabla enumerando todos los registros de los que se devuelven, o consulta, podemos rutina la clase modelo o la clase modelo tendrá también mucho lo que fueran los datos que estaban regresando. Por lo que nuestras clases de modelo fuera de detalles Deja tipo VM para que solo pueda encontrar eso en los detalles de la listeria . Deja la VM encendida. Puedo dejar encendido el contexto db de la aplicación, luego seguir adelante y dar click en. Y una vez que se hace esa operación de andamios, entonces terminamos con una carpeta con el mismo nombre que nuestro controlador. Deja tipos dejan tipos en la vista correspondiente para lo que acabamos de generar, que es índice en. Si miramos la ización marina de archivo, vemos que se ve, bueno, algo único. Pero lo que realmente es solo un detalle en la parte superior con un link de crear. Entonces esa es una plantilla, ¿verdad? Por lo que la lista Tempe nos da un botón de ángel y etiqueta para crear una tabla con columnas, y estas columnas están determinadas por qué columnas están disponibles en la clase de modelo que se utilizó para la plantilla. Entonces si miro hacia atrás los detalles, dejo detalles, deja tipo V M. Eso es espera en el control y persona click. Entonces veo que teníamos columnas I D nombre en sí creado y como resultado, el discurso de índice sabía que legalmente debería dejar fuera yo d en listado superior. Correcto, porque no necesariamente siempre enumeras la clave principal cuando estamos viendo datos. Pero no lo hizo a través del nombre en el ser creado en. Entonces pone suficiente para cada uno. Entonces esta es alguna acción de Reaser sucediendo donde es para cada elemento que regresa en modelo. Entonces modelo es una palabra clave que representa los datos que hizo bien. Por lo que podría haber nombrado a esto cualquier cosa que no necesariamente necesitara nombrar modelo desde el lado del controlador. Pero en la perspectiva de vistas, el modelo de palabra clave con un mayúsculo y representa lo que d top que cortó. Andi , Sabe que consiguió una lista. Si miras la parte superior aquí, ya ves, eso es defender eso. El modelo es por lo menos nuestro que conocía, Maribel. Off type este tipo de objeto, que es detalles Dejar tipo VM. Entonces es ver que sé que conseguí una colección. Y así por cada elemento de esta colección, quiero una nueva regla con dos columnas, una para el nombre en una para la D creada o tres columnas. Entonces uno para mí, Uno para el creado y una columna dedicada dedo del pie editar detalles y eliminar enlaces. Muy bien, así que sólo vamos a tomar esto para prueba rápida Ejecutar este pinto entrar en modo de depuración. Por lo que hice clic Son start on y veremos si esta obra arte o aplicación se ha puesto en marcha. Y luego me voy a ir con el dedo a manejar y hacer clic tipos de licencia. Pero si notan que en la esquina inferior izquierda está justo en la de Astor, porque realmente no configuramos ningún enlace para esto, Así que solo voy a volver atrás y todavía en el barco amarrado Ir a mi solución Explorer, encuentra mi carpeta compartida en vistas sobre un Lee Haute. Por lo que mi Página Leo tiene los enlaces en. Entonces vamos a ver toda la semana sobre enlazar en bien, establecer un ancla, establecer un ancla, hablar con el control del dedo del pie de redirección y una acción particular en un controlador. Entonces tenemos remolcadores ayudantes aquí, y solo podemos decir SP dash, y luego el 1er 1 queremos este controlador. Entonces el controlador con el que estamos trabajando es tipos de licencia, y luego vuelvo a ver SP dash el 1 de diciembre. Acción sobre la acción que quiero es índice Así que en otras palabras, cuando se hace clic en este ataque tío por tipos de alivio, la expectativa es que se vaya a buscar la acción de índice dentro del controlador de tipos de hojas en DSO. Cuando encuentro esos cambios y guardo, vuelvo a la página web y refresco, Entonces voy a intentarlo de nuevo. Está bien, en cuando me refresqué, noté que el cambio no se hizo. Y eso se debe a que a veces lo necesitas Puede que necesites reiniciar un proyecto o quizás necesites dedo habilitar esta cosa llamada Rose Erling. Así que sólo voy a dedo del pie ir y habilitar enlace del navegador Enseguida. También voy a reiniciar mi motor d barco solo refresca todo sin importar y todos los cambios que he hecho deben reflejarse. Está bien, así que el proyecto se refresca y voy a seguir adelante y crece una vez más para dejar tipos en esta ocasión, el enlace está arriba y ahí vamos. Entonces, no, donde en la página que tendría los datos. Por lo que estamos viendo la tabla con una columna para nombre y una columna para Did Created en aviso . Todo d creó este tipo de Kate en. Es literalmente la forma en que lo escribimos en la clase. Es así como se presenta aquí, lo cual no necesariamente es deseable. Pero eso es lo que es, y alguien que te muestre cómo podemos modificar la vista modelo toe manejar este tipo de experiencia . Yo estoy y no tengo que hacerlo manualmente en el archivo de vista. Pero no hay datos porque aún no hemos agregado ningún registro. Si pudiera crear nuevo, entonces se va dedo del pie dado error, porque entonces buscaba la vista de crear en aviso que diciendo que no podía encontrar nada dentro de cualquier lugar llamado Crea que CS HTML. Eso es porque aún no has generado esos televidentes, así que al menos sabemos que está funcionando si hago un punto de ruptura. Por lo que voy a volver a mi proyecto para volver al controlador en ir a establecer un punto de ruptura en la primera línea fuera de nuestras acciones de índice, Entender, Entender, para refrescar que pagó a alguien para volver a hacer clic en el enlace en entonces se va a golpeó los puntos de freno. Es sólo que se está encendiendo. ¿ Te vemos aquí dónde? De acuerdo, golpea el punto de freno y luego entra en los costos de la función. Voy a usar F 11 dedo del pie, dar paso a paso en lo que está sucediendo. Y así va en remolque. Nuestra clase de repositorio, está llamando a encontrar todo en. Entonces va a usar ese acorde que escribimos toe interrogate para ver si hay algún tipo de hojas . Y si me encima veo que un condado cero no había tipos de licencia para ser traídos. Entonces voy a seguir con 11 y luego sale de la clase de póster de costilla vuelve al controlador. Ningún tipo de hoja en el controlador tiene todos los datos que necesita se conocen en este caso. Y luego sobre mi superior entra en acción entonces si yo sólo hago si 11 vemos que hace el mapeo y luego regresa de ustedes. Y así solo hago f cinco para simplemente continuar e ignorar cualquier otro ladrillos encendido. Después vuelve a cargar la página para que podamos ver que todo está funcionando como como lo hemos cableado toe work. Ahora te voy a mostrar cómo puedes hacer ajustes en el modelo de vista que afectarán retención. Estas jugadas se hacen en la vista. Entonces fui a salir del modo de depuración porque puedes cambiar algunos llamados en modo de depuración. No puedo cambiar alguna cancha. Por lo que el cable del modelo de vista se encuentra entre los que pueden resultar difíciles de cambiar mientras está a la vista en modo de depuración. Entonces voy a ir a dejar el tipo VM encendido. Entonces voy a agregar un atributo sobre la propiedad creativa de escritura en. Entonces esta va a ser exhibida en entonces esta súplica no es tener un aparato ortopédico y entonces puedo ver nombre es igual dedo del pie y luego voy a decir escritura creada, así que notó que voy a poner un espacio aquí porque venía o Camel K es sólo de la misma manera. Entonces dije, este nombre de juego es igual a hizo espacio creado. Por lo que se ve más lector amigable, alguien dedo del pie refrescar. Voy a hacer esos cambios yendo al modo de depuración otra vez y ver qué diferencia hizo eso en la pantalla. Muy bien, entonces nuestra aplicación está abierta. Nosotros bro de dejar tipos y luego notarías que la impresión es diferente. Etiqueta es diferente, así que eso es lo que podemos controlar las etiquetas fuera o se siente en nuestras vistas sin tener que hacerlo manualmente, porque te puedes imaginar si tenemos 10 vistas que están usando este mismo modelo de vista encendido entonces para esas 10 vistas por las que tienes que pasar y cambiarlo manualmente. Entonces estamos usando el modelo de vista. Simplemente lo cambiamos una vez. Simplemente decimos, cuando te están exhibiendo, se está exhibiendo así. Muy bien, así que hasta nombre nombre es una especie de genérico. Probablemente pueda poner un nombre para mostrar fuera del tipo de hoja, identificar o dejar el nombre del tipo. Sea lo que sea quiero ponerme los suyos. Eso es lo que realmente se renderizará en la vista al usuario. Muy bien, así es como funcionan los modelos de vista con vistas y facilitan el mantenimiento. Muy bien, así que sólo un resumen rápido de lo que hicimos. Configuramos nuestra vista de índice donde usamos o dependencia punta de inyección hacer un cuadrado B dos b llamado, y usamos brazo superior para fregar los datos provenientes de la base de datos a la estructura del modelo de vista . Y luego generamos la vista en base al modelo de vista pasado en los datos, y verificamos que impactó en la base de datos, consiguió los datos se conocen en este caso en hizo la operación como se esperaba, En el siguiente video, vamos a trabajar a través de nuestras acciones de creación en. Después comenzaremos a crear datos para que la próxima vez que veamos la lista fuera tipos de licencia en la base de datos, entonces habrá datos que Toby mostrará. 17. Configuración de la autoría del tipo de: Oye, los chicos de este video estarán trabajando a través de configurar o crear acción para nuestros tipos de licencia , controlador y modelo. En el video anterior, ya habríamos configurado o indexado, donde canteras para todos los registros en la base de datos sobre Ben los devolvió, generó la vista que los mostraría fuera de curso. No hay nada en la base de datos, por lo que sabemos cuándo hacer el create para que podamos empezar a crear registros y realmente ver que estamos interrogando a la base de datos. Entonces voy a bajar a Meyer, crear opción on, crear opción on, entonces lo que voy a hacer es generar una vista basada en el modelo de creación de valor de dejar. Entonces solo voy a volver a mis modelos e ir a mi modelo de vista tipo hoja y el Aquí tenemos el crear dejar tipo VM encendido. Todo lo que realmente necesita es el nombre porque tenemos nombre, nos d se generará una vez que se inserte en la base de datos en. También, seremos responsables de asegurarnos de que lo proporcionamos creado. Pero queremos que el usuario consiga una granja donde todo lo que tienen que proporcionar es un nombre para el tipo de hoja que están creando. Por lo que voy a volver a mi controlador en voy a generar ¿Alguien ha dirigido la vista de palabras, Haga clic en Agregar vista. Y entonces ya está implicando que está creando que se debe crear el nombre de View porque conoce la acción en ir a elegir una plantilla. Crear andan. El modelo de clase que voy a utilizar es el create leave type VM. Entonces, como dije antes, puedes o crear un modelo de gran vista, y luego pasas tiempo limpiando la granja o cualquier vista que estés generando. O puede dedicar tiempo a crear múltiples modelos de vista específicos para cada vista que pretendas tener. Por lo que tengo los crea dejar tipo vista modelo en. Voy a dejar todo lo demás como está y dar clic en agregar. Entonces ese andamio genera esos pocos bien, así que nosotros y coincidente era donde al parecer que había los pocos no se podía generar porque requiere de una clave primaria en él tiene que definirse. Entonces por esa lógica, no podemos usar ese modelo de vista o idea en particular detrás del modelo de vista para crear esa vista , así que ten cuidado cuando elijas los sentidos cuando los escupes, tienes que incluir la clave. Entonces en base a eso, solo voy a seguir adelante con los detalles. Deja tipo VM porque esa tenía un atributo clave y voy a seguir adelante y volver a dar clic en Let It Andamio la vista. Entonces espero que aprendas esa lección que sabes necesitas tener cuidado con las sensaciones puestas. En términos generales, andamios esperan tener una clave primaria. Entonces, basado en esa lógica, mi enfoque inicial fuera tener el modelo de vista de detalles diferente del modelo de vista de creación de tipo es defectuoso. Entonces lo que voy a hacer es simplemente condensarlos alguien para quitar la idea de los tipos de creación . Solo estoy modificando mis modelos de vista aquí en. Voy a agregar el atributo para requerido anterior nombre aquí en. Entonces me voy a quitar el nombre especial off details league leave type, así que fuera de curso, si hago todo eso, entonces voy a tener que pasar por dedo en curso tras refractor la cancha. Entonces dondequiera que pueda tener detalles referenciados, deje tipo VM. Necesito saber renombrarlo toe leave type VM y visual studio hará que se ordene fácil para mí optando por simplemente renombrar Esas referencias son propiedad de mi proyecto. Entonces si vuelvo a mi contraloría, entonces ves que sé de dejar tipo VM y ya no detalles Dejar tipo VM También en mi carpeta ma pings, se hicieron los cambios así que no, ya no tengo un create. Puedo quitar esta línea y sólo tengo una línea para mi licencia tipo VM Muy bien, entonces, monedero encendido, vamos a volver a su controlador en petróleo. Perdón. Por lo que acabamos de crear nuestro creativo usted en. Simplemente voy a pasar a mi vista de creación en Miralo de nuevo. Veo aquí está nosing lyft vm A pesar de que lo creamos con detalles Una vez más, visual studio refractó la cancha por nosotros. Voy a sacar esta línea. No necesito esto cada uno por mentir especificando están declarando cuál es el tipo de datos que está construido encima. Pero este es el crear en ¿te das cuenta que en realidad sólo nos está dando una granja. Está viendo que tenemos Ah, bueno, es una forma de bootstrap. Entonces photobox no estoy seguro si es encuestador, pero lo veremos en unos cuantos. Por lo que siempre forma en, tenemos, ah, resumen de validación. Por lo que da ahí algún error con el modelo. Entonces llegamos a imprimirlos en la parte superior aquí de lo que tenemos en entrada para nombre. Entonces tenemos el SP cuatro, um, um, ayudante de etiquetas, que básicamente nos deja ver. De acuerdo, ¿Quieres una entrada? Qué datos apuntan del modelo que se utilizó para generar estas plantillas. ¿ Quieres este insumo para? Por lo que quiero una entrada para nombre. También quiero en entrada para que se cree. Entonces tendremos que hacer algo. Y sobre todo con lo creativo, porque esto va a ser un DEET on. No quiero que los usuarios estén poniendo la mano libre del DEET. Entonces vamos a poner un recolector de escrituras manualmente para controlar en qué valor entra para ser creativo. Muy bien, entonces si volvemos a nuestro tackle de formulario, note que tenemos otro tipo de ayudante, esa es su acción SP igual a crear. Entonces esto es b acción igual crear se va dedo del pie. Una vez que hacemos clic en cumbre buscar en remolque o controlador y ventilador crear. Por lo que hemos creado tenemos otro create con el atributo http post, que en realidad es el va a ser el que recibe y procesa los datos que viene de nuestra acción de envío en el crear. Está bien, Así que lo primero que queremos hacer es realmente mirar nuestra obra. Entonces solo voy a entrar en modo de depuración. Yo vamos a mirar a nuestro creativo usted bien? Entonces para llegar a nuestra página de creación, vamos a ir a gestionar tipos de licencia y entonces eso nos llevaría al discurso índice. Y luego desde nuestra página de índice, podemos hacer click sobre crear New Link, que ya está cableada para llevar a la página de creación. Y así tenemos o creamos página. Entonces tenemos nuestro campo para nombre y tenemos el campo para la escritura creada. Entonces, como decía antes que sería una hora de fecha tan contextualmente el hermano o sabe que debería poner alguna forma de recolector de fecha dentro fuera del control. Pero el lado abajo usando el recolector de fecha boroughs ear es que cada pros tiene su propia versión de un recolector de fechas. Por lo que quieres consistencia a través de las experiencias de usuario para que no quieras simplemente dejarla así . Y una persona está usando cromo. Otra es usar edge, y están viendo dos cosas diferentes. Entonces vamos a insertar son solo recolectores para que todo el mundo vea lo mismo, que, la larga, si eres si tienes que apoyar esta aplicación, funcionará todo mejor para que te demuestres qué sucede cuando hacemos clic en crear. Por lo que solo me voy del dedo del pie, pasa al estudio visual rápidamente y establece un punto de ruptura en la segunda Crear acción en Den me voy dedo del pie. En primer lugar, haz clic en crear, y luego te das cuenta de que está diciendo que estos son campos obligatorios. Y eso es porque especificamos en el modelo de vista que se necesitan alguien para poner vacaciones Onda y voy a tratar de poner algunos pedacitos usando el picker de fecha o teniendo cambio . Será todavía, y luego voy a volver a hacer clic en crear. De acuerdo, así que en realidad necesitaba especificar la hora también en este controlador de fecha y hora para que puedas ver el peligro está ahí si solo lo dejamos porque realmente no necesitamos el tiempo o realmente no queremos que los usuarios estén poniendo eso en ninguno en absoluto de todos modos, así que voy a seguir adelante y dar clic en Crear hits. El punto de ruptura que configuré en la segunda función de creación. Entonces una vez que hacemos clic en crear a partir del formulario, va a golpear la función de post y luego se espera que no hagamos nuestras comprobaciones de post y aseguremos de que todos los datos estén sanos y masajee que esté encendido. Después envíelo a la base de datos. Y luego si todo es exitoso, entonces leemos Arat dedo del pie sobre listado. Si no, entonces atrapamos errores y los entregamos en consecuencia. Entonces por eso tenemos un create en la parte superior en este es me interpongo en el camino de la creación con la publicación alguien para salir del modo de depuración encendido. Entonces vamos a escribir alguna corte. Entonces la primera modificación que voy a conocer es con nuestra fecha creada. Entonces sí dije que eso pondría un recolector de fechas. Pero la realidad es que no quiero que un usuario esté viendo la creatividad que es para nuestros propósitos de auditoría, alguien para quitar este control por completo. Por lo que sólo tenemos el campo de nombre. Está bien. El día voy a cumplir con este botón, así que estamos usando botones bootstrap. Entonces primero, donde está en control de forma de control de clases, que es, Ah, clase bootstrap para usted sabe que esos bordes redondeados que vi en el cuadro de texto. Si nos fijamos en el lapso que está mostrando la flecha, también tenemos un booster clases como texto dash danger. Eso nos da las tomas rojas que vimos subir. Entonces no aquí por el botón que tenemos BT y Bt y dash primary que nos da un botón azul encendido . Quiero que este botón azul llene todo el espacio. Voy a decir batido dash block, y entonces eso se reunirá con el estiramiento de botones de un extremo fuera de la pantalla hasta el extremo extremo en la otra pantalla encendida. Entonces esta es una forma realmente simple. Andi, Eso es todo por la forma, al menos por ahora. Para que podamos recibir esos cambios. No, necesitamos controlar lo que sucede después de que un sublet Ha ocurrido un atrás al controlador, lo sé, va a modificar sobre las acciones de publicación http. Entonces, en primer lugar, sé qué tipo de datos quiero sobre los datos que quiero. Viniendo de mi formulario está fuera de tipo dejar tipo VM. Entonces solo voy a asegurarme de que el parámetro que está en mi opción creed cause sea off type leave type, y voy a llamar a este modelo uno. Puedo llamar a la fecha la puedo llamar cualquier cosa es liberar un parámetro. Entonces no, cualquier cosa que esté haciendo con respecto a los datos que se acaban de enviar se almacenarán dentro fuera modelo no están encendidos. Después fui a la transacción en catch on error. Entonces esto es, uh, sangre de cordón que dice que voy a probar algo, y si funciona, eso es bueno. Si no funciona, entonces esto es lo que quiero hacer. Eso es lo que es el try catch. Entonces voy a ver En primer lugar, estado modelo es lo que es así que el estado modelo sería como un estado que literalmente el modelo está en significado. El dato que viene una vez que envié fueron todos los datos que se requieren realmente proporcionados. Y si no lo fue, ¿ entonces qué quiero hacer? Alguien que diga, Si en entonces tengo esta cosa esta propiedad disponible para mí, llame al estado modelo on, entonces tiene una propiedad o un elenco era como una clase estática en él tiene una propiedad llamada es válida. Entonces eso es devolver un lingote. Entonces es básicamente ver si es válido, entonces ¿qué quieres hacer? Entonces voy a dar la vuelta a esto, y voy a decir si no es válido. Está bien, así que estoy revisando. Si no se valora, entonces sólo quiero devolver la vista porque me gusta comprobar primero el mal escenario y tomar medidas antes de que me ocupe de las cosas buenas. Correcto. Entonces voy a decir si no es válido y el signo de exclamación es lo que hace que no esté bien , entonces. De verdad sólo quiero devolver vista. Andi, también voy a incluir el modelo en eso. Entonces, cualesquiera que sean los datos que se trajeron, si no fueron valorados, voy a devolver la vista, y estoy devolviendo los mismos datos que acaban de llegar en la vista de que estoy devolviendo fuego. Entonces si esto no se agudiza, eso significa que todo estuvo bien. Después observe el siguiente paso. Entonces voy a decir vier tipo de licencia es igual a, um arriba versión fuera de este dato de Lyft I V m toe la clase de datos tipo hoja. Sólo voy a decir mapeador de subrayado y luego llamar a la fuerza en ese mapa. Entonces estoy viendo que quiero irme. Escriba el tipo de licencia de clase de datos. Eso es en lo que quiero. Pero lo que quiero ser él hasta eso es modelo. Muy bien, así que modelo representa en objeto off leave vmc. Sólo estoy viendo mi parte superior. Por favor fregar este modelo este objeto fuera dejar vía en este tipo de datos Y luego una vez que hayas hecho eso mapeando la tienda adentro off tipo on Entonces una vez que esté almacenado dentro fuera tiempo de licencia mi siguiente paso es llamar al reporte. Entonces voy a llamar a mis puntos pre sondeo en su dedo del pie en marcha Tener una función llamada crear a alguien para pasar en mi objeto recién fregado fuera tipo dejar en remolque, crear y luego recordar que crear realmente está devolviendo un lingote, que significa que si esto no tuvo éxito, puedo tomar otra acción. Entonces sólo voy a tener otra función. Otra muy Glancy es el éxito va a ser igual a cualquiera que sea esta función llamada regresa en entonces voy a ver si no es éxito significando si su éxito regresa. Si esto es un valor falso, entonces la acción que quiero tomar es ir de pie. Agregar sobre error al estado del modelo. Entonces la modestia, o realmente representa? Bueno, tiene una propiedad que es una colección de errores que se pueden mostrar. Entonces por eso tenemos aquí la sección de resumen de errores, ¿ verdad? Entonces voy a agregar So con el estado madre alguien para ver un modelo estados errores de pensamiento o agregar modelador u otro on. Entonces voy a definir Bueno, im dejaría llave en blanco, pero voy a definir una señora Esto es algo que salió mal. Está bien, entonces eso significa que algo salió mal en la operación. No hubo cambio de rosas. A pesar de que conseguimos el modelo, conseguimos los datos, los pasamos, luego lo pasamos a la función de creación. Y hizo lo que le hizo a la base de datos. Pero se hicieron cero cambios, y estamos viendo que algo salió mal. Y luego si algo salió mal, entonces queremos devolver la vista una vez más con los datos. Muy bien, así que ahora estamos regresando la vista de nuevo con los datos, pero esta vez con una era adicional para mostrar encendido. Entonces si esto no se ejecuta, esa música sube justo al retorno donde redirige dedo del pie la acción llamada índice, que es nuestro menos No, me perdí un paso donde no proporcioné un valor para la fecha sí creó. Entonces lo que voy a hacer es que voy a ver después del mapeo. Entonces voy dedo del pie decir dejar tipo punto se crea es igual dedo del pie en. Entonces solo llama hizo tiempo Dot sabe que significa cada vez que se ejecutó la operación, siempre que llegue a este punto en la cancha, debería asignar el beat y el tiempo fuera del servidor. Esa aplicación está siendo alojada en como los valores que crearon para luego proceder a presentarla a la base de datos. Entonces es así cuando dije que no requerimos que el usuario haga eso, vamos a estar brindándolo. En realidad podemos hacer cualquier cosa que queramos hacer con el modelo y todos los datos que se están pasando entre el formulario a la base de datos. Controlamos todo eso dentro de la acción antes de enviarlo a la base de datos. No. Otra cosa que tenemos que hacer es modificar el modelo de vista para que te hubieras dado cuenta que se requería, pesar de que tengo la configuración requerida sobre nombre, y no tengo configuración requerida. Con el tiempo en que nos estábamos sintiendo en el formulario, en realidad requería el día. Por lo que necesito cumplir con este valor diurno. Notable Silas. Es un signo de interrogación para un día, lo que significa que en el modelo de vista Lovely no me presionará el dedo del pie proporcionar un valor para ello en. Puedo proporcionar un valor para ello en cualquier momento que yo que así solo voy a seguir adelante y presionar F cinco, que es una cookie afilada para iniciar el modo de depuración en. Entonces veremos qué sobre Laborista lo ha necesitado o aplicación es voy a empezar poniendo un punto de descanso a nuestro oh, ya está ahí, así que vamos a dejar eso ahí y luego vamos a seguir adelante y pasar por nuestra derecha. Eso es así que vamos a pasar por la aplicación para hacer clic, administrar, dejar tipos, luego hacemos clic, creamos nuevo y luego para nuestra forma, y se puede ver que incluso el poner Bt y Block. Era una más pequeña pero es una más grande pero no. Pero debe haber algo más que lo esté restringiendo al espacio para poder modificar la estética más adelante. Pero sólo tenemos que proporcionar Ah nombre en algún lugar para decir vacaciones y luego haga clic en crear en entonces modo de depuración son R D Bug. Nuestro punto de descanso. Lo siento es golpeado así que puedo pasar el cursor sobre la variable en modo de depuración y verte exactamente lo que hay en una variable. Entonces si paso el cursor sobre un modelo, entonces veo que tengo los tres atributos Have I D, que es cero que creó, que no es nombre Onda, que tiene el valor vacacional que acabamos de poner en la granja. ¿ No es alguien a quien realmente simplemente dar un paso y ver qué pasa? Entonces solo voy a usar F 11 y luego se va. Por lo que nuestro primer cheque donde está es el estado modelo valorado. Eso es cierto, entonces eso significa que esto no será ejecutado. Entonces si el 11 va a saltar más allá de eso, if statement, entonces va a entrar en el mi acorde superior. Por lo que va dedo del pie mapa los datos del dedo del pie atrás los datos del tiempo de la hoja. Clasificar buscar tipo de licencia. Es off type data dot leave, type on, desafiar, expandir. Entonces veré que crearon tiene algún valor genérico porque menos en el diseño, tiene que tener un valor. El i. D cero y nombre es vacaciones. Entonces vemos que los datos que vinieron como VM tipo hoja no se mapean con éxito en Simplemente deje escriba la clase de datos. Después proporcionamos la fecha hora real. No. Entonces no lo creó tiene a estas fechas el. Si miro el objeto una vez más, entonces veo que todas las propiedades excepto yo d ahora tienen valores. Y por supuesto yo sería más fácil porque d me pongo puesta una vez que se crea. Entonces pasamos a la tierra de corte donde efectivamente se sometió a la base de datos. Entonces pasamos al repositorio y se lo agrega y luego pasamos a nuestro mar de cambios. Está bien, entonces, si miramos los cambios, vemos que es uno. Entonces nos está mostrando que al menos se hizo un cambio Así que esto va a volver verdadero en dso son positivamente los retornos de clase. Verdadero también Y así nuestro cheque para ver, si no éxito El éxito es cierto, así que no está lejos. Entonces se salta por encima de esta afirmación en va directamente dedo del pie Ari directo. Entonces solo voy a presionar F cinco en este punto, luego deja que se lea Arat. Ahí vamos. No, vemos que estamos leyendo desde la base de datos, y acabamos de enviar datos a la base de datos y esto es excelente. No, Lo que tenemos que hacer es modificar o configurar o editar en detalles y borrar funciones, y entonces estamos en un buen rollo. Entonces solo voy a salir del Bogan lo haría aquí. Voy a despegar este mismo punto, saber que estamos seguros de que esto está funcionando el modo de depuración de matar, y luego solo revisamos lo que hicimos. Por lo que configuramos nuestro creativo tú generando o viendo basado en el modelo de vista que habríamos configurado. Entonces cuando nos sometemos, configuramos la acción de post http para la acción de creación correspondiente en lo configuramos para recibir datos en forma de hoja tipo V M. Y luego comprobamos para asegurarnos de que todo fue valorado así Como dije, las validaciones se pueden hacer desde el modelo de vista. Ahí es donde entran en juego las anotaciones y atributos de fecha. Comprobaron contra esas anotaciones de datos y se dan cuenta de que todo está bien. Después fue en el mapa del dedo del pie de nuevo a nuestro modelo de datos original. Transferir el detalle también en Ben se somete a la base de datos y luego, al presentar con éxito, se redirigen más bien al discurso del índice, mostrándonos todos los datos. Entonces eso fue lo que hicimos por el try por la captura. Nosotros Esta es sólo una buena manera de salir manejando errores. Entonces para la captura, voy a hacer algo como lo que hicimos para el éxito donde sólo voy a agregar un error de estado modelo para ver si algo salió mal y vamos a devolver la vista con los datos. De acuerdo, entonces eso significa que si se lanzó alguna excepción, tal vez la conexión a la base de datos quedó atrapada o hubo alguna ocurrencia anormal mientras ocurría la operación. Ahí es cuando la captura realmente entra en juego. Entonces la forma en que manejas Eros determina que usuarios enteros percibirán tu aplicación. Entonces si tienes la gracia donde simplemente dices, bueno, bueno, algo salió mal. Pero aquí hay una forma otra vez entonces tal vez el usuario, si es mejor que solo ver un gran, desagradable error escupiendo cosas que realmente no entienden. Está bien, entonces 18. Configuración de la versión de la edición de la: Hey, chicos, en esto Escuchar, vamos a continuar con nuestros desarrollos configurando o editando vista ahora similar toe over, crear acciones que tenemos conseguir y nos hemos opuesto a crear. Por lo que también tenemos un get on ah post para ello. Andi. Es lo mismo racional Obtenemos los datos a cambio de ti con el formulario que sería nuestro formulario de edición. Y luego una vez que haces clic en el botón que envía el formulario o algo son los cambios que probablemente se hicieron en el formulario, luego vamos a la publicación para luego hacer lo que sea necesario que hagamos para asegurarnos de que estamos consiguiendo el CARRO resultados. No, por favor sepan que para la acción get para la acción de edición, tenemos un parámetro que estamos recibiendo en la forma off i d Así que necesita conseguir algunos devaluo que va a usar toe, identificar el registro que necesita ser editado. Entonces si volvemos a nuestro archivo de índice o vista de índice, nota que para los enlaces de acción que se generaron en, podemos enfocarnos en la edición que teníamos el botón de edición en ella pasado en alguna cosa en esta escribió I d s B ayudante en este número, Un pequeño ayudante remolcando nuestros atributos y es s B caminos I d. Y pasó en ítem que yo d Así que recuerda, ítem Así que recuerda, aquí representa los ítems que vienen en la colección fuera de registros que se están renderizando en esta vista. Por lo que estamos sacando todos los tipos de licencia encendidos para cada regla que se genera o para cada elemento que está en esa colección. Tipos de hojas fuera estaban generando una regla en. Estamos poniendo su nombre y la fecha creada, así como tres botones, cada uno de los cuales llamará diferente manchado de acción en el I. D o valor de clave primaria para esa regla. Entonces lo que tenemos que hacer es asegurarnos de que estamos usando eso d toe Fitch, el registro particulario que hay que editar una vez que haces clic en Editar en rollo. Ahora, lo primero que me gustaría hacer antes de seguir adelante con esto es nuestro más bien, lo primero que quiero implementar dentro de esta acción es un cheque para asegurarme de que lo que devalúe se esté pasando, que en realidad hay un registro en la base de datos para eso devaluo. Y entonces lo que quiero hacer es modificar el repositorio para tipos de hojas. Voy a volver de pie mi repositorio tipo hoja on. Voy a implementar una nueva función. De hecho, lo voy a poner en el repositorio basado porque puede ser útil a través de todos fuera de los repositorios, heredando de un repositorio abejas. Entonces voy a incluir otro teléfono hijo en este va a ser un lingote en voy a decir que existe. Entonces este tablero y sólo va a decir sí o no, ¿ese registro con esta idea existe sobre esto está tomando en orden en luego fuera de curso. Si lo pongo en el repositorio cervezas y guardo, entonces eso significa que todo lo que está heredando del Repositorio Bs lo necesita implementado. Y así tengo que volver a mis clases de repositorio y empezaré con leave type repositorio y ves que hay un error al respecto, diciendo que necesito implementar el repositorio para que obtengo mi función is existe y solo hago eso para el otros dos. Está bien, así existe existe en todos en cada postura. Dejar historial así como dejar una ubicación son así que una vez más, una vez que pones algo en la interfaz, tienes que asegurarte de que implementaste en la clase heredadora. Entonces ahora mi siguiente acción sería configurar la disfunción dentro del contexto fuera de los tipos de licencia . Entonces voy a sacar esto en voy a salvar Nuestro o 12 son existen, va a ser igual dedo del pie DB. Es por eso que db objeto on. Voy a ver tipos de licencia, y luego la función que voy a usar esta vez es que cualquier tan dot any va a devolver un sí o no, pero luego está devolviendo sí o no en base a algunas condiciones. Entonces si solo digo que cualquiera, igual que esto básicamente sólo va a regresar si hay algún registro dentro de esta mesa. Entonces si quieres comprobar si una mesa está vacía, esta es una manera bonita y rápida. O está vacío o no está vacío. Entonces si hay algún registro y devuelve verdadero, hay registros. Si se sabe que regresa sigue, no hay ningún registro, pero entonces específicamente, quiero saber si hay alguno con esa partícula. D a alguien que tenga que usar lo que llamamos una expresión lambda en dso Dentro de estas llaves , me voy de pie invocado por Lambda Token. Yo lo llamo lambda parlante variable alarmada lo que sea que quieras usar. Pero esto puede ser cualquier cosa puede ser w puede ser salida te puede recoger Q es el más utilizado. Una vez que asegure en la mayoría de los ejemplos para expresiones lambda que tal vez nunca veas en, entonces tengo igual en grado para luego firmar. Entonces voy a ver son iguales y flecha. Entonces esto es como una flecha. Me confundo, migrado y en menos que decir a veces. Entonces perdóname, pero te tenemos a ti y luego una flecha. Entonces quiero ver un lindo que así Q encarna cualquier objeto que esté dentro de esta colección y así pueda tener acceso a todas las propiedades que cualquier objeto pudiera tener, incluyendo el I D. Así que solo estoy diciendo, Is ahí cualquier objeto en la colección off leave tipos que tenga un I D. Eso es igual dedo del pie la idea que se pasa por el perímetro aquí, así que solo digo que d on. Entonces una vez que obtengo un resultado para eso, entender, para regresar existe. Entonces, ya sea cierto o falso, sólo va a volver eso. Sea lo que sea que esté llamando a esta función obtendrá un valor de retorno de true o falls. Entonces ahora que has escrito los de la corte aquí fuera de curso, solo puedes tomarlo y replicarlo a través de los otros archivos del repositorio en. Simplemente lo haré rápido. Estuvo esta copia en paz y luego asegúrate de cambiar la tabla de referencia relativa a la más rápida Esta es la historia. Algunas podemos dejar historias. Si hay alguno con eso d en hacer lo mismo por asignaciones de licencia en, entonces eso se hace. Muy bien, Entonces ahora que hemos puesto esa función en nuestro repositorio, vamos a volver a nuestro controlador, y luego vamos a cumplir con una modificación de nuestra otra modificación a medida que se acumula . Por lo que va a necesitar saber si hay algún registro con idea antes de probar las formas en que es el momento de hacer cualquier operación. Entonces esto es comprobar si hay algún registro con eso d Así que recuerda dije siempre el peor caso o el mal caso primero. Entonces voy a decir Si no es así, si esto evalúa las caídas y lo que queremos hacer es regresar y entonces tenemos una bonita función aquí que podemos regresar. Eso no es teléfono. Por lo que sabíamos que están usando sitios web y conseguir que cuatro o cuatro era cuando se hace clic en un enlace en para conseguir una era no telefónica. Y eso es lo que esto generará para nosotros. Y damos la espalda, no telefonada ni un 440 Así que el usuario, Por supuesto, puedes personalizar esa experiencia un poco más, pero para esta situación, solo lo estamos manteniendo simple. Entonces si no hay registro con eso, yo d, entonces volvemos no están telefoneados. De lo contrario, queremos dedo del pie obtener el tipo de hoja. Entonces voy a llamar a un tipo de licencia es igual a re pull dot on. Entonces me voy a encontrar por I d. Así que ya ves, montamos el marco ya encendido. Estamos encontrando el registro con el I d Eso se está pasando en el parámetro aquí. Ahora nuestra vista necesita configurarse con nuestro tipo de licencia VM o View model. Entonces, como hemos estado haciendo para crear y cualquier otra vista que hayamos configurado, necesitamos hacer un mapa en algún lugar para guardar. Nuestro modelo es igual a en la puntuación. Mapper puntos trapeador on. Entonces estamos muffing para dejar tipo VM. Ese es el tipo de datos estaban mapeando dedo del pie en el objeto que estaban mapeando a ese tipo de datos es dejar tipo encendido. Entonces podemos cerrar que en el modelo DSO no va a encarnar los datos que se copiaron de, o clase base de datos o un dedo del pie de clase de datos. Nuestra vista clase modelo. Es saber modelo on. Entonces estamos devolviendo la vista con los datos en modelo. Entonces sepan que he hecho esa configuración. Haber validado que no nos dieron un maniquí que D. Estamos tratando de no perder tiempo ni fuerza de investigación de Fetch y yo D. Eso no existe en. Entonces, después de muy bien que conseguimos el registro de que se le está solicitando, lo fregó a la modelo. Sé que estamos devolviendo la vista con modelos, así que no, necesitamos las vistas reales Voy a dar clic derecho ir a agregar vista en, luego voy a seleccionar la plantilla para ello, así que vemos que tenemos una plantilla para ello. Es en la clase modelo que se va a utilizar es dejar tipo V. M. Así que encuentro eso en la lista. En este momento, realidad voy a poner en un Leo opiáceos. Por lo que es suele ser opiáceo. Recuerda que habíamos pasado algún tiempo configurando un PH Leo antes. Andi. Básicamente siempre por defecto dedo del pie uno para que puedas ir y especificar yendo dedo del pie haciendo clic en este botón de puntos suspensivos encendido, luego entrar en vistas en Andi compartido. Se puede encontrar el poco por lo que sólo tenemos uno, pero se puede tener múltiples Eos. Solo te estoy mostrando que si tienes múltiples diseños, tal vez tengas diferentes plantillas trabajando con. Entonces puedes seleccionar qué diseño quieres que tenga esta vista en particular para que no haya ningún daño en seleccionarla realmente. Es su por defecto de todos modos, porque el único que tenemos, y también está configurado en el archivo de inicio View. Pero luego vamos adelante y hacemos click. Agrega, entonces se scuffles la vista. De acuerdo, entonces ahora tenemos nuestra vista y solo voy a limpiarlo, Quita esto cada uno para remolcar. Entonces sólo podemos echarle un vistazo. Y nos damos cuenta de que se ve igual que sobre crear vista. Obtenemos un formulario y obtenemos entrada para nuestro texto, que será el nombre y la entrada para la fecha creada, que no queremos. Entonces sólo voy a quitar eso porque ellos crearon no se debe editar. ¿ Verdad, Onda? Una cosa adicional que quiero señalar aunque, la presencia está fuera de esto? Dar eso Lo siento esta entrada. Perdón, eso tiene un tipo de oculto en. Notamos que es S p para I. D. Así que la cosa es, necesitamos rastrear el i d fuera de registro porque lo único que sabe el controlador es lo que le está enviando la vista. Entonces si tuviéramos que quitar esta línea con las entradas, la entrada oculta para I D. Porque no necesito mostrar la clave principal al usuario cuando esté editando la grabadora. Pero entonces lo tenemos se ha escondido. Pero si lo sacamos del formulario por completo cuando hacemos clic, enviamos o guardamos en este caso el controlador cuando llegue a la subasta para el post TTP, no tendrá que ese modelo no tenga esa idea. Está bien, así que ven que está listo para conseguir un yo d aquí, pero esto es por defecto. Pero la forma en que lo rascamos una vez que esté ahí como un campo oculto, se incluirá en todo el modelo sobre disuadir se sienta que se está devolviendo. Y así para el controlador de tipos de licencia encendido, solo voy a ver si el cambio que quiero decir aquí y solo voy a modificar un poco el botón. Entonces esto es guardar. Yo voy a mí. Este guardar cambia en También voy a cumplir con este Bt y éxito Así que Bt y el éxito nos da un botón verde en lugar de un botón azul el cual es batido y primario en buceo. También voy a conocer a este bt y bloquear a alguien para salir o editar vista con este aspecto para no si están en sus ajustes para conocerlos más adelante. Pero ahora me voy a centrar en la post acción para la edición, alguien que elimine los parámetros por defecto que se generaron para nosotros y podemos usar el mismo tipo de promesa que usamos en la acción de crear host. Entonces voy a volver a poner de nuevo leave type VM y llamarlo modelo encendido entonces en el intento. Lo primero que voy a hacer es validar que los datos fueron vitales, validaron los datos duelen. Entonces en realidad puedo simplemente tomar esta declaración si Andi Otik de vuelta porque es el mismo cheque. Estoy comprobando que cuanto más se valore el estado porque tal vez editamos el formulario pondría en un nombre tipo hoja en blanco. Por lo que cuando hacemos clic en enviar, aún necesitamos asegurarnos de que el estado modelo sea válido. Si no lo es, entonces acabamos de devolver la vista de la misma manera, y devolverá la vista de edición con los datos que se pusieron. Muy bien, así que después de que hayamos despejado ese obstáculo, en realidad podemos simplemente guerra Ah, mucho fuera de la cancha de lo que hicimos con la acción de crear. Por lo que puedo volver a tomar el tipo de licencia. Andi, puedo Muppet box recordar que esta línea lo está mapeando. Algunos simplemente inter tomaron prestada esa línea alguien para fregarla de hoja tipo VM toe leave type o data class y storage en esta variable on, entonces no necesito modificar la fecha creada porque crearon nunca debería cambiarse porque que se establece cuando es periodo y no vuelve a cambiar. Pero entonces puedo decir éxito del virus. Entonces solo voy a dar un paso tan lejos, es tan éxito es igual o reportar puntos sobre. Entonces creamos una función que dijo arriba el it en entonces aunque se espera en entidad o algunos objetos fuera de tipo tipo deje, que tenemos aquí. Entonces ya ves, estamos pasando el tipo de licencia a nuestra función de opiáceos encendida. Entonces vamos a chequear. Si no es éxito. Entonces también vamos a regresar o ver, y también nos vamos de pie a agregar un error de estado modelo, algunos solo mentales. De nuevo, toma prestada esta tierra de cordón y métela ahí dentro. Andi, eso debería ser. Entonces si tiene éxito, entonces redirigirá tienda en la experiencia mostrándonos nuevamente la lista. Y por supuesto, siempre se puede cambiar donde leer Eric. Entonces si tienes un voló particular en mente y siempre puedes cambiar la acción del dedo del redireccionamiento e incluso puedes ver leer Eric toe on action en un controlador diferente si lo deseas. Pero sólo voy a modificar el área de captura. También, poner en ese error de estado modelo Onda devolver la vista con datos en. Por lo que eso completaría la mayoría de lo que necesitamos hacer por nuestras acciones y ella. Entonces en realidad sólo voy a depurar y podemos probar. Está bien, así que nunca lleguemos o editemos los tipos de licencia de página al amanecer están en experiencia. Vamos a hacer clic en él. Entonces si miras en la esquina inferior izquierda, ves el enlace que se está generando. Deja tipos slash it slash uno. Entonces ese querer representa el i. D asociado a esta regla así como que devaluo que se va a pasar en remolque. Nuestra acción. Está bien, así que solo voy a volver Click Edit y expectativa es que el primero se vaya a cargar con los datos para ese tipo de licencia articular. Entonces si cambio esta idea en el link on, digamos 10 para que solo tengo un registro. Obviamente no hay tipo de licencia con una idea de 10 y presiono enter. Entonces nos hacen flecha. Entonces eso no es eso telefoneado. Llamaron a ejecutar su porque, Bueno, buscaba uno con 10 y no lo encontró. Y así devolvió ese teléfono mart. Entonces por supuesto que puede manejar mejor esa experiencia si lo deseas, pero solo voy a ir en serio y volver de pie a la vista de edición con una puesta. Entonces voy a ver las hojas de vacaciones. Estoy cambiando el nombre de sólo Vicky, hijo. El permiso de vacaciones no lo son y luego hice clic, guardar cambios en. Entonces se va a golpear el poste. Presentar los cambios a la base de datos el entonces si nota la fecha creada, se restableció. Entonces sí dije que íbamos a estar sentados la fecha creada porque eso nunca debería cambiar. No obstante, porque llegó y sólo voy a poner un punto de descanso en esa post acción para que veas exactamente lo que está pasando. Voy a ponerlo en esta línea, está bien, así que voy a volver a entrar en edición, y sólo voy a ver si cambia para que veas qué está pasando exactamente con ese valor de fecha. Entonces cuando paso el cursor sobre el tipo de hoja, se ve que esa fecha valores restableciendo porque no lo estoy configurando en el controlador, Pero tampoco lo estoy rastreando en la edición. Entonces es algo que necesito para camionear. Lo que voy a hacer es que quiero salir del barco amarrado. Entonces voy a volver a la vista por ello. Es en dso se crean es algo que no necesito mostrar, pero necesito rastrear. Entonces voy a tratar eso creado de la misma manera que estoy tratando el i d No necesito mostrar el i d al usuario. No obstante, sí necesito camionarlo haciéndolo durante una edición. Así que solo voy de dedo duplicar esta línea, y luego quiero ver quiero una forma oculta, um, elementos para ello creados. De acuerdo, así que me perdí unas vacaciones, así que voy a dejar las vacaciones solo en ir a crear otra en Ben. Veremos exactamente cómo funciona eso, así que voy a volver al modo de depuración, crear una nueva victima, dejar el tipo encendido, luego editarlo, y luego vemos que se rastrea la fecha creada. Está bien. Alguien para crear uno y voy a llamar a éste licencia por enfermedad, luego crear. No, es editorialista, y veo que tiene un mejor valor creado fecha. Voy a editarlo en ir dedo del pie, tal vez quitarse la palabra dejar encendida, luego guardar cambios en. Entonces vamos a golpear el punto de ruptura. Y cuando pase el cursor sobre él, vas a ver que creó valor es rutina. Por lo que aún conocemos el valor de fecha creada. Segundo nosotros. Adelante y continuo. Voy a quitar el punto de descanso el. Continúe en. Entonces se ve que rutina los datos. Entonces, en cualquier momento tienes datos o tienes algún objeto que quieres rutinar ciertos elementos fuera porque fuera de la naturaleza fuera de nuestra relación modelo y vista modelo y los puntos de datos, ¿qué se está rastreando? ¿ A qué no se está rastreando? Siempre puedes crear sentimientos ocultos que conservarán los datos en el medio en servirlo cuando sea necesario. Entonces voy a Bueno, necesitamos configurar nuestros detalles y borrar a alguien dedo del pie tiene dedo del pie. Bueno, voy a quitar la licencia de vacaciones y voy a crearla de nuevo en entonces debería estar bien después de eso si llegamos a editarla, así que en la siguiente lección vamos a poner en marcha los detalles que estabas cuando hacemos click, detalles serán conducidos a una página que muestre justo los detalles sobre lo que sea requerido es en lo que queremos toe focus. 19. Configuración de los detalles de la autoría de la forma de la forma de dejar de dejar: Oigan, chicos. En este Nissen estará configurando o vista de detalles en nuestro modelo de gestión tipo hoja para configurar o ver detalles. Sólo tendremos que hacer unos cheques. ¿ Quieres comprobar si el registro en el que estaban solicitando detalles realmente existe el, entonces? Si lo hace, entonces procedemos a obtener los datos. Renderiza la vista por lo que empezaremos primero haciendo una declaración if if y llamarán a nuestro objeto de informe que existe. Entonces vamos a comprobar si existe, y entonces esto volverá. Verdadero si existe, quiero regresar o quiero comprobar. Si se va Toe seguro también existe y es espera un perímetro en forma de entero. Entonces lo estamos pasando. El I D va a comprobar si ese registro existe en absoluto, o si no existe, entonces sólo queremos regresar, no por teléfono. Por lo que refinará esa experiencia más adelante. Entonces, si esto no evalúa o esta declaración de pieza no se ejecuta de lo que queremos hacer es obtener var tipo de licencia va a ser igual a sobre reporte punto encontrar por I d. Entonces vamos a encontrar ese tipo de licencia particular por su I d el. Entonces vamos a crear otra variable. Llámalo modelo en este. Vamos a guardar las versiones de fregona o llamando a mi superior, no fregona encendida. Entonces estamos fregando carne de res. Escriba la clase de datos en remolque. Deja tipo V. M. Así que digo dejar tipo V M encendido. Entonces estamos pasando en el objeto que está almacenando o en dita. Entonces sepan que tenemos ese modelo que conocemos. Simplemente pásalo por encima de los pies nuestra vista. Por lo que el siguiente paso sería scuffled Esta vista basada en este tipo de hoja VM nos basó Algunos simplemente indirectamente ver goto ad view. Elige la plantilla en en este caso queremos los detalles sobre. Entonces estamos eligiendo la clase de agua, que va a ser dejar el tipo V M encendido. Entonces todo lo demás puede quedarse como está. Y luego hacemos click. Añada, entonces. Hola? Es para generar la vista. Está bien, entonces no, se genera nuestra vista y, como de costumbre, entender, borrar esta etiqueta 84 en su solo podemos echar un vistazo rápido a lo que se está mostrando Así tenemos un BT y D d tabs eso como de costumbre. Ya sabes, podemos modificar esto pero entiendo el déjalo como la plantilla por defecto. Pero esto es lo que obtenemos como vista. Por lo que obtenemos un nombre pacíficamente para el entonces tenemos una pantalla para y si te das cuenta, está usando Lambda Expressions turismo. Quiero el nombre de visualización del ayudante HTML para función que va a mostrar el nombre y el nombre que hay realmente déjame encontrar mi modelo. Entonces el nombre ahí del que está hablando es realmente mostrar nombre. Entonces recuerda lo que dijimos Ese tributo por fecha creado donde dijimos el nombre debe ser beat space creado. Entonces lo que realmente hace este ayudante es que dice dame el nombre que se especifica como el nombre cuatro para los atributos en el modelo. Muy bien, entonces estamos obteniendo el nombre de cualquier propiedad llamada nombre que hay en o dejar el tipo VM encendido . Pero entonces obtiene el valor real. Entonces no es mostrar el valor y decimos display para así que en realidad podemos simplemente envolver todo este bloque off reserva quita por dentro cualquier cosa que queramos en una etiqueta P en una H one o H cinco top. Sea lo que sea que quieran hacer, en realidad podemos simplemente envolver todo nuestro HTML son propiedad de thes helper tags para obtener el contenido tipo fuera entero. Querías lucir bien. Entonces de la misma manera se está obteniendo el nombre para mostrar y la fecha creada el. Entonces está mostrando el creador de bits real y luego soplar. Vemos que obtenemos un enlace así en cualquier página y está pasando mi modelo. Por lo que sabemos que una vez estuvimos dando click en él, está esperando dedo del pie tener un valor para el i. D. Así que estamos pasando más modelo esa idea como parámetro en. Entonces también tiene un botón solo para volver al índice, el cual está etiquetado como de vuelta a la lista. Por lo que rápidamente voy a ejecutar esto y podemos echar un vistazo al discurso de detalles. De acuerdo, así que desde nuestra página de índice, solo voy a dar clic a los detalles y luego vamos a verlo navega a los detalles del ítem con el I D a, y así es como se ve el discurso de detalles. Entonces nombre en él es enfermo y entonces fecha creó su espacio creado porque está mostrando el nombre en ese bit off detalles para que pueda ver que es algo muy sencillo. Es muy, um, simplista, como acabo de decir, pero podemos modificarlo como así lo deseamos. Si hago clic en editar, entonces redirigirá al tono de edición. Vacillate volver a la lista. Se remonta al índice. Por lo que siempre es una buena regla a seguir a la hora de diseñar una página web donde se puede llegar a cualquier página desde casi cualquier otra. PH. Es una buena regla de oro, está bien, bien, así que sólo por el andamio fuera de las vistas, dimos cuenta de que nos están ayudando con esa regla. Donde si estoy en la página de edición el, quiero volver a Index. No necesariamente tengo que venir aquí y volver a tomar esto. Pero hay un enlace derecho. Son accesibles para volver a la lista. Si estoy en el discurso de detalles en, quiero editarlo o volver a la lista, puedo hacer cualquiera, puedo hacer cualquiera, así que es una buena regla del dedo del pie. Sigue, entonces, desde el discurso índice, siempre puedo simplemente ir a crear uno nuevo Así que eso es todo para no en nuestro discurso de detalles. Lo siguiente que vamos a hacer es trabajar en nuestras funciones de borrar. 20. Configuración de la versión de la eliminación de tipo de: Oigan, chicos, en esto Escuchen, vamos a estar configurando las acciones de eliminación en nuestro controlador. No, por defecto o código generado por controlador. Danos para eliminar acciones. Tenemos una que accede a conseguir y otra que actúa como el puesto. Así que más o menos como get es más como que nos va a dar una pantalla de confirmación. ¿ Estás seguro de que quieres eliminar el registro que solo tienes que hacer clic en eliminar y eso nos va a dar como un sí o no? Si seleccionamos sí, Entonces es misc elegante. Actúa como una forma. Presentar el, luego las expectativas de que lo pasemos a la publicación el, luego ejecutar la eliminación en esa acción host. Diferentes personas acercan la eliminación de manera diferente Por lo que algunas personas practican lo que llaman un soft delete donde en realidad no quitan el registro de la base de datos. Lo pusieron en un estado apagado en actividad que quitaría algo más de personalización fuera de nuestra cancha. Andi, algunas personas acaban de borrar. Entonces en este momento, solo voy a hacer la eliminación base a medida que se expande un proyecto. Entonces tal vez veamos la necesidad de hacer una elite suave en lugar de fuera. Apenas para no, me voy a poner el dedo a configurar la vista para la acción de borrar para obtener acción, y luego voy a configurar la lógica para el postprocesamiento. Por lo que ya habrías hecho tanto el creador como el delete, por lo que estarás familiarizado con el get on the post. Entonces si le echas un vistazo a lo que se espera, se ve muy similar a lo que hicimos con nuestro hizo. Y es tan literalmente sólo va a copiar todo lo que hicimos para la edición en. Simplemente lo voy a pegar dentro del delete. Entonces estamos comprobando si el registro que se está pasando existe en solo eliminar esa línea extra . Si no existe y devolvemos el error no telefónico si los existen, lo que significa que esta declaración no se ejecutó. Fue saltado por. Entonces queremos dedo del pie encontrarlo por yo d on. Entonces queremos que el dedo devuelva esos datos. Por lo que nuestras vistas me acaban de contratar vista en goto vista de anuncio y luego esta vez o plantilla se borra. Por lo que tienen una plantilla para la élite. En como de costumbre sobre los datos están nuestras clases de modelo dejan el tipo VM encendido. Después hacemos clic en Agregar son así la vista que obtenemos se ve muy similar. Tore delete view Entender quitar esa H para etiqueta así que obtenemos borrar y nos da un mensaje. Muy seguro que quieres eliminar esto fuera de curso. Podemos cambiar la redacción como así lo deseamos. Después nos da los detalles fuera de cualquier registro que esté a punto de ser eliminado, y luego nos dan alguna forma donde esté buscando la opción. Suprímase. Tiene el elemento oculto para el i. D. Off the record que se está mostrando en. Entonces está viendo ¿Quieres presentarte? Por lo que dice borrar. Sólo voy a decir Value leader registra que están cambiando el texto en el botón en su ya Bt y peligro, que es un botón rojo. Entonces esto lo hacen Bt y Dash block como de costumbre en, entonces tenemos un dinero para listar. Entonces si consigues este incendio y luego lo miras, algún remordimiento por el hecho de que lo estás borrando, entonces siempre puedes simplemente pensar de nuevo a la lista y volver al listado si cambias de opinión . Entonces sé que configuramos el get on the view. No, necesitamos dedo del pie configurar la lógica detrás realmente ejecutar las eliminaciones. Yo solo quiero pedir prestado cable de nuestras acciones de post existentes porque te das cuenta de que estamos haciendo muchas de las cosas. Es el mismo patrón. De verdad. Entonces, en primer lugar, estoy tomando el modelo. Bueno, en realidad no voy a tomar el modelo porque realmente, n verdaderamente sólo está pasando yo d Así que nota o forma en esta situación sólo está pasando yo d . Ese es el único dato que podemos esperar de la forma que está siendo que está invocando nuestro post http. Entonces en el anfitrión de élite, realidad sólo voy a tener en idee. No voy a pasar a ningún modelo. Entonces para que se pasara el modelo, tendría que pasar por encima en realidad llenar este formulario con todos fuera de los elementos, Como lo que hubiéramos visto en el Creador y el formulario de edición. Onda, no necesitamos hacer eso. Sólo necesitamos la idea. Entonces te voy a mostrar todo con sólo la idea otra vez, Sigues operando. Entonces en el delete pasamos en el i D. Pero entonces me está dando un error. Ah, sí. Por lo que esta área es porque parecía que ya hay una función Resultados de acción eliminar. No puedo con eso eso eso es aceptar un perímetro en mi de cuenta fuera de una función madre del mar y tipo de retorno. Mismo nombre con el mismo permitido. Entonces entiendo, dedo del pie puesto en el modelo. Pero esto realmente no sirve de nada. Esto es sólo la distinción entre la acción post delete en el get delete. Está bien, entonces lo que va a pasar aquí es que voy a ver Bueno, la modelo va a estar vacía de todos modos, así que eso realmente no hace mucho de que estemos esperando al menos el i. D. Así que sepan que Yo tengo la idea. El primero que necesito encontrar es la entidad. Entonces voy a guardar nuestro tipo de licencia es igual a andi. Informe. Objeto atracado. Encuentra por i d. porque asumió donde realmente puedo identificarlo en la base de datos sobre dso No, esta es la entidad que voy a ser el líder. Entonces lo siguiente que voy a hacer es que voy a salvar Ire Es el éxito es igual a subrayar re pull dots. Y luego tuvimos una función de borrar la cual se espera en el perímetro de la entidad fuera tipo de licencia , cual está plasmada por los resultados devueltos por hallazgo por d están encendidos. Después lo ponemos en esa llamada de función, entonces podemos hacer nuestra estima y ver si se eliminó con éxito. Y sólo pediré prestado esa declaración de un bloque existente. Entonces si no fue exitoso que volver, poner en una zona el estado modelo encendido, en realidad ni siquiera necesitamos poner un aire en el estado modelo. ¿ En serio? Porque no estamos validando el estado modelo ya que todo lo que estamos recuperando es la idea. De todos modos, sobre no hay ningún resumen de validación de riel que se coloca aquí en ninguna parte. Entonces si no se eliminó con éxito, entonces acabamos de devolver la vista con el modelo. De lo contrario, redirigimos a nuestro índice. También me aprendí a comprobar si esto d o el registro existe, así que voy a ver haber conseguido tipo de licencia, voy a poner en una declaración if on, digamos, digamos, dejar tipo si tipo de licencia es equivalente a saber. Está bien, así que eso significa que consiguió un i. D. Se lo buscó. Entonces no se devolvió nada, por lo que esto sigue vacío. Entonces acabamos de regresar, no por teléfono. Entonces es Es algo similar a lo que hemos estado haciendo hasta ahora. Es ligeramente diferente por el piso apagado. Enteros estaban sentados récord ¿qué? En última instancia es el mismo efecto neto. Para que sepas que hay múltiples formas de montar en la cancha y situacional. Es posible que tenga que escribirlo de manera diferente. Entonces esta es una manera de alejarse. Implementando elimino otra forma en que puedes implementar un delete es haciendo todo en solo uno obtener acción. Entonces cuando la persona hace clic, borra, entonces simplemente hacemos la mirada hacia arriba por dentro el get hacer la eliminación y luego redirigir Así que realmente no tendríamos vista de confirmación ah. Pero sólo tenemos en acción que acciona el borrar y luego redirige el índice. Pero claro que quieres poner en tus cheques para asegurarte de que esta persona esté absolutamente segura de que están tratando de eliminar este registro. Quieres asegurarte de que estás poniendo en ofensiva en paz fuera de cualquier error del usuario. Está bien, así que vamos a revisar y ver cómo funciona esto y yo sólo voy de pie. Bueno, si hay un error en el try catch, entonces voy a devolver la vista con el modelo. Además, repente sólo pon eso. Y luego fui a depurar más de lo que probemos el calor. Muy bien, entonces estamos en Index y estamos probando sobre función de borrar. Por lo que las vacaciones dejan este tipo de mal estado porque el gran valor creado no tiene ningún sentido . Tómanos como seres humanos. Entonces voy a borrar este, y luego voy a crearlo de nuevo. Entonces voy a dar clic, eliminar, y luego va a sacar la pantalla de confirmación. Ahí vamos. Entonces nos está mostrando los detalles. ¿ Estás seguro de que quieres eliminar esto en luego el gran botón rojo que dice Eliminar registro o a punto de Liston? Una vez más, vamos a arreglar todas esas estéticas, pero por ninguna voluntad sólo como plomo para grabar. Después redirige el índice, habiendo eliminado el registro de los datos, ser exitosamente. Entonces sólo voy a pasar por una multitud llena para que podamos estar seguros de que todo funciona. Por lo que voy a crear un nuevo eran una tarjeta en. Fui a la licencia vacacional de Recrear y luego digo, Create on. Entonces vemos que nos estamos poniendo un sensato ya sea por nuestro récord de vacaciones. También voy a hacer o editar enfermo porque debería decir baja por enfermedad y no sólo seis alguien para decir baja por enfermedad y luego guardar cambios en. Entonces verificamos que nuestra función de edición funciona si hacemos click en los detalles y solo estoy haciendo clic en el medio , por lo que abre detalles en dos pestañas diferentes. Entonces estamos viendo los detalles para la baja por enfermedad, y estamos viendo los detalles para la licencia de vacaciones. Por lo que estamos seguros de que los detalles funcionan. Entonces acabamos de verificar que borrar funciona. Ahora voy a modificar un poco nuestra funcionalidad de eliminación, y voy a tomar toda la necesidad de que vaya al tono de confirmación y luego volvamos a eliminar. Lo que voy a hacer es poner un pequeño mensaje de confirmación. Entonces si la persona hace clic en las pistas, van a ver a nuestro pop up preguntándoles. ¿ Están seguros en Entonces si hacen clic en sí, entonces procede. Si hacen clic en no, entonces no pasa nada. Pero no tendría dedo del pie navigato un todo otro p solo la camisa Ascari si estás listo para borrar. Por lo que quiero volver a mi acuerdo sobre sigo en modo de depuración. No voy a salir de desbunk más en. Voy a ir a mi vista de índice. Entonces encuentro Index y luego voy a modificar el comportamiento fuera de mi botón de borrar. Por lo que dentro el tío toggle para borrar, voy a poner en un script Java una función llamada al click. Entonces ese es un evento tan poco claro. Ecbc. Quería hacer algunas cosas que digo en Click is Equal toe Y entonces simplemente, como, insertaría como, algún código JavaScript dentro de estas comillas para que haga algo cuando se haga clic. Entonces cuando hace eso quería regresar y luego fui a ver confirmar el entonces. Esto es lo que va a mostrar la caja papa así que confirmar va a invocar una caja pop up. Pero entonces quiero un mensaje dentro de esa caja de burbujas que voy a definir. ¿ Estás seguro de que lo estás? Desea empezar a eliminar este registro. Entonces le estamos preguntando al usuario ¿Estás seguro de que quieres eliminar este registro? Ahí es cuando hacen clic. Suprímase. Es preguntar eso ahí mismo en el Melocotón. Está bien, así que eso es cambio. Número uno, las segundas cadenas, voy a tener que salir del modo debug porque no, voy a cambiar el comportamiento fuera de nuestras acciones, alguien que haga todo dentro de los se pone. Voy a acabar con la vista get return y luego confirmar, Así que voy a salir del libro más de lo que hice esos cambios. Ahora, ya lo vimos con sólo la idea. En realidad podemos conseguir el registro que queremos y manipulado como queramos. Tan literalmente. Todo el núcleo que se pone en esto de esta función de post http podría haberse puesto dentro del get. Entonces lo que quiero hacer es en realidad solo quitarme todo esto donde me encuentro mi d on. Entonces reviso si es no encendido. Después probé la eliminación, y luego redirecciono, me voy a quitar todo de esta cancha en, en realidad, solo reemplaza lo que ya se escribió ahí dentro con esa cancha. Entonces cuando haga clic en el botón eliminar, va a golpear esta acción. Sabe que la idea la va a encontrar por I D. Se va a comprobar si es pequeño a la vuelta un 404 Si está encendido entonces va a ver quiero intentar eliminar y luego vamos a comprobar si fue exitoso. Si no tuvo éxito, entonces no hay opinión de que esté regresando. En cambio, puedo devolver una de esas funciones construidas. Entonces estoy regresando, no telefoneado. Aquí. Voy a devolver algo así como malas peticiones, que es una flecha 500 que es, ya sabes, bastante popular cuando algo sale mal. Por lo que sólo voy a devolver nuestro cuerpo solicitado. Entonces si estás tratando de eliminarlo y algo salió mal, entonces nos toca la solicitud del cuerpo. Entonces redireccionamos índice. Entonces haciendo esos cambios, en realidad puedo simplemente eliminar esto Si quiero lo que quiero dejarlo ahí, no quiero eliminarlo al ir al modo de depuración y probar esta nueva funcionalidad de eliminación . Por lo que para probar la idea de ir a crear Ah, al azar un número va a llamar a este uno test on create on entonces vamos a probar si podemos eliminarlo de una sola vez. Entonces cuando trato a las pistas, obtenemos nuestro pop up. ¿ Estás seguro de que deseas eliminar este registro? Entonces eso es lo que confirman que el diálogo se activa por nuestro código JavaScript en. Entonces hago clic en Aceptar. Entonces se va a accionar y redirigir, Así es casi como si nada hubiera pasado. Pero no falta el registro, así que no son las páginas las que son muchas. Refrescar en el registro desapareció, e incluso si refresco te das cuenta, Dónde está la base de datos otra vez? En él no vuelve. Entonces esa es una manera agradable y limpia de hacer un delete sin ir a otra página entera. Tan solo para hacer la pregunta, ¿ Estás seguro de que quieres hacerlo con eso? Hemos completado nuestras operaciones de multitudes en los próximos videos. Vamos a estar modificando la mirada y la sensación que vamos a estar cambiando. Sostenga los detalles de edición y elimine enlaces. Mira, modificando enteros o vistas. No lo hará, sólo unos cuantos retoques. Simplemente hazlo un poco más atractivo en abajo. Terminaremos con la estética, y luego revisaremos nuestros cambios para conseguir platicar 21. Añade una tabla de datos de tipo de débito y los íconos increíbles: Oigan, chicos, bienvenidos de nuevo a otra lección en esta sesión. Vamos a estar implementando unos ocho grados a para nuestra página de índice en. Estaremos implementando algunos iconos. Ya sabes, solo agrega un poco más de estilo del dedo del pie nuestras páginas Hasta ahora, solo para revisar el trabajo que hemos hecho hasta ahora, hemos completado operaciones de multitudes para nuestros tipos de hojas. Hemos hecho sobre página de índice donde enumeramos todos los tipos de hojas actualmente en la base de datos . Hemos creado nuestra forma de crear y entender dedo del pie abrir cada uno en su propia parte superior. Hemos hecho nuestro borrado o detalles en nuestro en él. Por lo que tenemos nuestra forma de crear, sencilla pero elegante. Dondequiera editar formulario en. También podemos ver los detalles y vemos que podemos dar click Eliminar en ¿No nos va a prometer . ¿ Estamos seguros? Y luego si hacemos clic en Aceptar, entonces realmente ocurrirá la eliminación. Entonces si se completa muchedumbre ahora lo que queremos hacer en este Tu Toro es cambiar la forma en que se ve y se siente fuera de la mesa. Entonces se ve la mesa. Es estático, es literalmente solo en la tabla html. Si hay 100 registros y se ve sencillo. No, porque sólo hay dos. Si hubiera 10 probablemente llegarías a medio camino de la página si hubiera 100 terminarías desplazándote. Entonces vamos a estar implementando ocho una mesa. Somos el número fuera de registro. Bueno, la tabla de datos en realidad transformará la presentación fuera de los registros dándonos paginación . También la búsqueda no implementará una búsqueda. No, solo pondremos en la tabla de datos y luego podremos refinarla a medida que avancemos. Pero al menos tendremos ahí la tabla de datos para que cuando comiencen a entrar más registros, nos está haciendo duro para preocuparnos de que la punta sólo vaya a seguir agregando reglas y eso tendrá que desplazarse. Eventualmente, Body sumará en paginación para que muestre tal vez 10 registros en el primer discurso y después tenemos que ir al segundo pagado por los próximos 10 etcétera, etcétera. También estaremos agregando algunos estilos a nuestros enlaces a c crear nuevo. Es solo un enlace de cama. Editar detalles, plomo. Son todo lo que sabes, jugar enlaces será agregar algunos estilos y también importar algunos iconos a nuestra aplicación para agregar un poco más de estilo al look y la sensación. No. Antes de empezar todas esas actividades maravillosas, emocionantes solo quiero volver a estudio visual on point, algo fuera realmente rápido. Por lo que antes hubiera mencionado que, ya sabes, cuando está en modo de depuración, si realizas un cambio en la página original, entonces los cambios se reflejarían. Si te limitas a refrescar, es posible que no tengas esa experiencia, y habrías habilitado el enlace del navegador en Aún no haber tenido esa experiencia. Por lo que visual studio realmente hace lo de la escuela donde uno realmente aloja el sitio web en un. en una versión muy pequeña fuera de Internet servicios de información son s como se expresa en él le permite realmente lanzador aplicación independiente off el barco, estado de ánimo en hacer cambios y refrescar y verlos. Entonces, por ejemplo, no estoy en modo de depuración ahora mismo, pero voy a ir con mi hermano y lanzar la aplicación en. Puedo seguir adelante y dar click crear nuevo en ves que el pH cambió. Voy a poner en un tipo de prueba click crear en la aplicación en la que se creó. Entonces estoy haciendo todo este modo independiente off debug saber la desventaja de eso es que si pongo un punto de ruptura, entonces no podrá detenerse en medio del proceso y en realidad me permita ver las variables y en realidad desacreditar el aplicación. Entonces ya sabes, cuando estamos haciendo quizá cambios de diseño, ya sabes, usuario interfiere cambios, entonces este método probablemente sería más rápido donde, sobre todo si tienes dos monitores, cuando estamos haciendo quizá cambios de diseño,ya sabes, usuario interfiere cambios, entonces este método probablemente sería más rápido donde, sobre todo si tienes dos monitores, tener el bro de un lado, cualquiera de la cancha del otro lado. Hiciste el cambio tu actualización. Ves exactamente lo que está pasando cuando estás haciendo otras modificaciones, la cancha y la lógica, y en realidad quieres depurar el acorde agudo de C. Entonces probablemente quieras hacerlo en modo de depuración, así que tienes a mis pensamientos. Puedes usarlos como más te convenga. Entonces para esta sesión, vamos a estar usando la versión de Broza Link off debugging on. Simplemente haremos algunos cambios visuales en solo huesos entre visual studio en nuestra aplicación en el navegador. Ahora, con todo lo dicho, pongámonos al teléfono. Por lo que estoy en un sitio web tablas de datos dot net on. Se puede ver que se trata de una avaricia interactiva avanzada. Y aquí te damos un ejemplo de lo que puedes esperar una vez que lo implementes, es gratis. Las indicaciones para empezar están a la izquierda. Dicen que necesitas incluir dos archivos, uno para CSS y otro para G s. Ahora, si los miras, te das cuenta de que en realidad son enlaces web. Si solo hago clic en el CSS en copia y si abro una nueva pestaña y pego, entonces te das cuenta de que aparece un archivo en el hermano. Entonces, ¿estos son qué? Porque CD y enlaces CD y asegurado para red de entrega de contenido en lo que la gente hace está en lugar de apagado, requiriendo que no cargue el archivo CSS duro como, Oh, tenemos el archivo CSS bootstrap en nuestra aplicación, por instancia. Y otros van ahí, asegurarte qué? Es decir, así que en w w tenemos el CSS Lo sentimos. En lib, tenemos el bootstrap en un CSS indistinto, y tenemos el fuego real aquí. Entonces en lugar de requerir que tengamos el archivo físico en la máquina, lo que hacen es hospedarlo en Internet y perdí solo incrustar el cable a través de su hosting Así que una vez más, el primer paso es toe embed son incluir el CSS enlace o el enlace al archivo CSS en nuestro tribunal. Algunos quieren volver a estudio visual en encontrar por hora, página antigua. Entonces bajé a vistas compartidas en diseño abierto en entonces, en nuestra página Leo, encontramos la era en la que los archivos CSS se han incluido en algún lugar para incluirlo debajo los bootstraps. Entonces dije esto antes de que la orden importa cuando estás incluyendo CSS y JavaScript archivado. Así que te aseguras de que, ya sabes, bootstrap esté probablemente en la parte superior porque muchas cosas heredan muchos otros frameworks hereda de bootstraps. Archivo CSS. Entonces yo solo acabo de hacer control de on duplicado ese archivo en. Entonces solo voy a reemplazar el bootstrap del dedo del pie del aire por CD y link. Entonces lo que esto hace es cuando la página de Leo la renderiza incluirá la referencia al incendio CSS que acabamos de ver a través de nuestro navegador en. Entonces también dicen que tenemos que incluir un archivo Js sobre vegetar este enlace de Js y luego fui a hacer una operación similar donde voy a bajar a la sección de JavaScript on. Simplemente voy a duplicar esta línea con las correas de arranque puestas. Una vez más, lo estoy poniendo después de Jake donde lo estoy poniendo después de bootstrap on. Entonces sólo voy a reemplazar este enlace por el CD y Link. Sé que los hemos incluido. La siguiente directiva es llamar a una sola función encendida, así que vamos a tener que escribir algo de JavaScript para obtener esta tarjeta de función. Entonces solo voy a copiar este barco, volver de pie a nuestro estudio visual e ir a nuestra pieza índice porque nuestro discurso de índice tiene la tabla que nos gustaría toa convertir en la tabla de datos. Y justo como recordatorio, voy a volver a la aplicación. Y este es ese consejo del que estoy hablando. Por lo que esta mesa necesita verse algo más como esta demo que estamos viendo aquí. Por lo que voy a incluir me refiero a ese fragmento de JavaScript. Pero lo primero que voy a hacer es darle en i d. Así que voy a decir que d. Y si estás familiarizado con cada similar, entonces sabes que una idea es como una única identificar dónde para cualquier elemento HTML alguien a decir que d es igual a Y yo sólo voy a llamar a esta fecha de un tbl. Entonces después de etiquetar nuestra tabla con los datos i d tbl simplemente iban a ir al fondo de la página. Y vamos a crear una sección para los guiones. No. En nuestra página de diseño, notarás que el, ya sabes, debajo de todo fuera de la inclusión de todos los archivos de script, tenemos una sección donde vemos scripts de sección render. Por lo que esto nos permite dedo del pie en Stan. Ella se comió una sección donde podemos poner JavaScript cancha si es necesario. Entonces para hacer eso, voy a decir en sección de signos, y luego voy a tener que especificar el nombre, que es guiones. Entonces si miramos hacia atrás, eso son guiones de nombre y luego abrimos en la ropa, aparatos ortopédicos, luego dentro de estos tirantes. No, los derechos de fin de semana son JavaScript. Entonces entiendo abrir una sección de guión y luego voy a seguir el ritmo del cordón que viene de la página web. Entonces solo voy a arreglar un poco el formateo aquí para que esté ahí ahora, dentro de esta consulta g A. Entonces esto es Jake se preocupa por dentro fuera de este bloque, Lo que está haciendo es ver busco un elemento con el i d. Entonces ese hashtag y Jake o er en JavaScript en general realmente significa en íntimo con eso d. Y luego lo que venga después del hashtag es el i d que está buscando. Entonces debido a que esta tabla TBL data es la que quiero convertir en la tabla de datos, voy a asegurarme de que veo hashtag TBT l datos no tabla de datos. Entonces esto está llamando a nuestra función, y esta función se llama por dentro de nuestro archivo que estamos tablas de datos lejos que acabamos de incluir. Ahí vamos. Entonces el peligro fuera, incluyendo esta referencia después de que estamos llamando a nuestro Jake o registro, es que va a dar una amamantándola y encontrar disfunción porque una vez más, secuencia importa. Entonces una vez que hemos hecho todas esas actividades, queremos verla Así puedes ver que una vez que una familia para ver si tiene un asterisco, pueden ver si puedes construir si quieres. Yo solo voy a usar turno de control y s y lo que eso hace es que parece todos los cambios, así que tantos hechos como tengas abiertos en nuestro cambio de control no guardado en es los salvará a todos porque estamos cambiando cliente frente a corte, decir javascript en HTML, no tenemos que construir. Entonces si haces c cambios bruscos, entonces tienes que construir para asegurarte de que todo el mundo sepa lo que está pasando. Si solo estás haciendo cambios visuales, entonces guardar está bien. Pero ahora voy a volver a nuestra aplicación, y luego me voy a refrescar, y esto podría tardar un rato después de la actualización. Entonces deberías estar viendo algo parecido a esto. Si no estás viendo algo parecido a esto, entonces probablemente tengas algunas referencias faltantes son algunas referencias extraviadas que siempre pueden hacer clic derecho, ir a inspeccionar. Y entonces espero que probablemente estés usando cruel más era más modernos navegadores tienen la consola de todos modos, en ese entonces, el consejo probablemente estaría mostrando un montón de errores en resaltado en rojo. Entonces si estás recibiendo esos errores, él puede compartirlos conmigo, y yo puedo ayudarte a través de ellos. Si no estás recibiendo ningún error y tienes una consola limpia como yo y accediste que se muestre como debería. Entonces estás en el camión correcto. Ya sabes lo que esta codicia te permite hacer es mientras solo puedes empezar por D creado bien , casi sin esfuerzo. Comience por nombres tantas columnas como tenga que pueda. Viene por defecto con arranque. Viene con paginación. Como dije, así que sólo tengo tres registros y dice muestran 10 lesiones. Entonces si tuviera 20 entonces tendría edad uno que Página dos. Andi. Incluso puedo cambiar un número fuera de registros pretendo nuestro quisiera ver en el primer durazno, ¿ verdad? Entonces es un muy Es una manera muy agradable de solo conseguir una bonita mesa interactiva en el día, incluso incluir una pequeña función de búsqueda. Pero hay que trabajar un poco más duro para conseguir esto. Ah, son regias. Funciona justo fuera de la caja. Funciona. Por lo que incluso cuando estamos viendo la lista de empleados, ya sabes que solo puedes hacer clic en buscar, encontrar el que quieras. Entonces eso es un lindo que salimos configurando venció una grilla Andi que pasaremos a la siguiente actividad . Conoce dónde hacemos que nuestros botones sean un poco más atractivos. Entonces sepan que ya terminé con las tablas de datos. Voy a cerrar esta pestaña en. Entonces tengo a otros tipos disponibles o abiertos para mí. Por lo que vamos a estar usando fondos increíbles para especie de traer algo de vida a nuestra aplicación con algunos iconos. ¿ Verdad? Entonces tengo que tope aquí. Tengo uno, que es bootstrap cdn dot com slash fund. Impresionante en tengo otro que es divertido. Impresionante punto com barra los 4.7 puntos o icono de barra inclinada. Entonces quiero explicar exactamente lo que estoy haciendo dentro, y voy a empezar con el que tiene el ícono Tan divertido. Impresionante proporciona, ya sabes, bonitos, iconos bonitos, limpios que podemos simplemente incrustar tema recto masculino. Todo lo que necesitamos es un archivo CSS, y luego solo podemos incrustar ícono Así un signo más para anuncio, tal vez lápiz buscando ícono para ello. Cualquiera que sea el propósito, tienen un ícono para casi todas las situaciones. El sitio web es agradable y limpio, pero luego verás donde te están instando a actualizar a la versión cinco. Entonces estoy en cuatro en. Pasa por ser específico 4.7 porque con 4.7 es la última versión que cuatro tenían que ofrecer y la versión cuatro es mucho más fácil de resolver fuera de la caja que la versión fire. Entonces me voy a quedar con 4.7. Ah, mucho fuera Las aplicaciones modernas todavía usan 4.7, y aún tienen buenos iconos que podemos usar por algún tiempo. Entonces estamos usando. Una vez más, 4.7 en los iconos están como listados. Andi, quiero decir, casi para cualquier ocasión tienes una Nikon si quieres. Yo conduzco sugiere correo electrónico. Dan tu sobre si quieres algo para base de datos. Si quieres algo para información, tienen iconos para casi todo. Y si tienes una idea en mente, no necesariamente conoces el barco ícono. Tienes una idea en la que siempre puedes buscar. Es más que probable que el nombre del icono mucho sea lo que estés pensando, por lo que siempre puedes filtrar con bastante facilidad. Entonces, como dije, realmente sólo necesitamos un archivo CSS para usar fuente. Impresionante. Andi, te dan el archivo CSS para descargar. En realidad puedes obtener el archivo CSS a través de la página web, pero entonces, si solo Google fondo Awesome 4.7 CD y luego te llevan a decidir bootstrap CD en On, te dan el enlace Cdn que están hospedando para que solo podamos usar el Cdn en lugar de obtener un archivo físico e intentar incrustarlo en nuestras aplicaciones. Entonces dicen, Todo lo que tienes que hacer es hacer clic en esta sección y se copia al portapapeles en. Entonces iré a dejar gestión, volver a mi Leo o Paige encendido. Entonces estoy agregando un nuevo CSS para alguien dedo en este debajo de todas las demás referencias. Así que acabo de hacer que el control se duplique esa línea para el archivo CSS de la tabla de datos. Y luego estoy reemplazando ese enlace con este CD en. Entonces, igual que con el ejemplo de tablas de datos, si digo que Cdn Lincoln ritmo en el navegador y bro a él, entonces verás que es solo un gran archivo CSS. Y la razón por la que este archivo CSS se ve tan revuelto y complicado si no sabes ya es que es lo que llamas hombres. Si yo así la unificación es realmente despegar todos los espacios blancos todo fuera los personajes realmente divertidos y era especies y líneas de freno. A mí. El archivo en tamaño más pequeño porque a una computadora le gusta así. Parece confuso para las computadoras humanas. Absolutamente no hay problema de leer esto. Está bien, así que es solo un montón de estrellas y comer estilo Casi nos da en ícono, así que sí necesita hacer referencia a la estrella ícono que nos gusta en. Entonces podemos incrustarlo en nuestra edad, así que voy a volver atrás, habiendo incluido la hoja de estilo en. Entonces podemos volver a la página de índice en. Podemos hacer algunos cambios. Puntera son eslabones. Por lo tanto, empecemos con nuestros crear enlaces. Por lo que tengo un tío remolcador en ir a solo agregarle algunas clases. Entonces es una etiqueta de tío de avión. Y cuando digo que clase es igual, ves que la inteligencia te está dando, ah host entero fuera de clases bootstrap que están disponibles. Entonces primero voy a hacer que parezca un botón. Entonces solo voy a decir Bt y así bootstrap lo sigue. Hacer un enlace. Un Tío Remolcador regular parecía un botón, así que dije btm on entonces quería ser un lazo azul, Alguien que diga BT y Dash Primary. Está bien, Pero entonces quiero un signo más, así que va a parecer un botón azul que dice crear. Pero entonces quiero, como, como, un signo más antes de que las palabras creen nuevo. Por lo que quiero ir a financiar Awesome on. Entonces voy a buscar y ver si tienen algún signo más en ti ves que tienen plus y arriba cerca círculo y tienen diferentes variaciones fuera de un plus ¿qué? Voy a ir con uno simple. Entonces voy a dar click en esto en ese entonces. Lo que hacen es darme la cancha de incrustaciones así que no si puedes ver a alguien acercar un poco hoy probablemente puedas ver el cable un poco mejor, así que en realidad puedo simplemente copiar este bloque fuera de texto. Vuelve a mi cable encendido, luego lo colocó dentro de la ANC encima. Entonces tenemos el remolcador de ancla encendido. Después tenemos el texto a mostrar dentro de la etiqueta de tobillo en el cierre, Alguien para ponerlo dentro del área de texto. Entonces la etiqueta del tobillo no tiene este tirón, que está haciendo referencia a Effie en F A plus. Por lo que estas clases vienen de arriba. CSS Padre, acabamos de incluir por diversión. Impresionante, ¿verdad? Por lo que f A y F A plus on. Entonces tenemos crear nuevo en algún lugar. Stand para poner el espacio entre el ícono Andi o palabras crear nuevo. Y luego fui a controlar turno como para ver el diseño ajustables de disculpa en el discurso de índice sobre eso, voy a volver a mi aplicación y solo refrescar para ver los cambios. ¿ De acuerdo? Y eso es un inicio. Por lo que tenemos índice y hemos creado nuevo Andi. En realidad quiero cambiar el texto. Índice va Índice no me dice qué página? Ammán. Sí, sé que es índice, pero vamos a tener muchas páginas de índice. Probablemente quieran ser alguien específico para cambiar los palos. Eso es un cambio menor, pero el objetivo rial aquí era conseguir que el botón se viera un poco más. Ya sabes, el pop un poco más. Por lo que tenemos creándote en. Tenemos ese pequeño letrero plus ahí encendido. Entonces voy a hacer los mismos cambios para cualquier eliminación, eliminación y detalles. Entonces volviendo a mi cuerda. En primer lugar, déjame cambiar en tipos de licencia extra y probablemente poner como un cada uno son. Entonces eso es abreviado de reglas horizontales. Eso pone una pequeña línea ahí en ¿sabes, un poco de separación y luego tenemos o creamos botón y luego puedo desplazarme y luego tenemos o editar sobre borrar y detalles. Entonces primero, ellos sólo van a copiar la clase. La directiva de clase. Eso significa que el botón el enlace parece un botón. Entonces solo voy a ritmo que en cada uno en adelante entonces, Basado en la operación, podemos cambiar el color. Entonces sí, primaria. Pero entonces tal vez lo voy a poner advertencia porque quiero que Eddie sea naranja. Yo quiero detalles. A lo mejor para ser un éxito. Verde. Muy bien, En realidad, voy a darle la vuelta. Yo me voy, nos golpea primaria, y luego voy a cambiar, crear el éxito del dedo del pie. Por lo que crear va a ser un botón verde con un signo más, y va a ser detalles de advertencia. Este primario y borrar va a ser peligro, que sería un botón rojo. Entonces si me refiero a esos cambios rápidamente, ahorra en sólo hacer un rápido re fresco sólo para ver lo que está pasando. Que debamos verlos luciendo más como botones. Está bien, ahí vamos. Entonces tenemos cualquier detalle it delete under green create button que en la textura en Behar sobre reglas. Entonces, ya sabes, quiero decir, este es mi pequeño estilo. Este soy yo manteniéndolo sencillo. Es posible que tengas otras ideas, por lo que a medida que evolucione, entonces podrás personalizar tu aplicación y usar tus propios colores como más te convenga. Pero si entiendes lo que está pasando hasta ahora, entonces estás en el buen camino. Entonces para editar, voy a usar un lápiz en algún lugar para volver a financiar. Impresionante en. Entonces voy a buscar algo así como un lápiz. A lo mejor si escribo la palabra lo tendrían algo para mí. Está bien. Entonces solo escribo la palabra editar, y me dieron un montón de iconos fuera que sugieren edición. Entonces voy a usar un simple lápiz. Por lo que este uso lápiz, puedo hacer clic en él. Tengo el mismo contacto visual con una clase diferente esta vez. Uno para el lápiz. Andi, me voy con el dedo del pie. Agrega esto al botón de edición están activados, luego para los detalles. Voy a usar un en su totalidad. Yo puedo. Entonces me vuelvo, entonces sólo veo en cuatro. Entonces solo busco en cuatro en. Después me dan info. Entonces, quiero decir, puedes ir de ida y vuelta, ida y vuelta y rápido y copiar y pegar. O simplemente puedes darte cuenta de que cualquiera que sea el nombre que te están dando ese es básicamente el nombre de la clase. Entonces sé esa info si quiero esta simple en cuatro. Quiero información, escritorio, círculo. Entonces para ponerse al frente, aseverar que puede reutilizar el mismo Doug tengo a Effie encendido. Entonces tengo a Effie Dash en círculo de cuatro guiones. Está bien. En Espo círculo, Incorrectamente Círculo. Está bien. En entonces, por peligro. Voy a simplemente insertar o surfear o eliminar. Voy a insertar otra vez, y creo que para borrar son creo que tienen un icono llamado basura. Si no lo hacen, Entonces dejamos el dedo del pie. Revertir el. Confirmado que también me voy a llevar todos estos bares. Entonces las barras Déjame solo ir caja. Se puede ver a lo que me refiero con los bares. Estos son los bares. Esas líneas son pipa que algunas personas llaman impacto. Entonces los estoy sacando de la pantalla encendida. Por lo que tenemos detalles de edición en cada uno, tiene su icono todo en un espacio encendido. Entonces ahorro en. Entonces voy a volver y vamos a verificar si lo que estamos haciendo está funcionando. Está bien, entonces vemos aquí que la edición tiene unos detalles de lápiz ya que yo llamo y elimino tiene la basura . Está bien. Pero entonces, no lo sé, quizá los botones me parezcan un poco prolijos. Entonces creo que un uso típico si ven el lápiz y la naranja, probablemente deduzcan que esto está en ello. Si ven justo el yo probablemente implica que ven más información. Y si ven la basura, eso implica borrar, sobre todo dada la codificación de color de cada botón. Entonces me voy a volver a modificar medicina porque no me gustan las palabras de ahí, y sólo voy a dejar el ícono. Entonces me voy a volver a tirar de mi tío. Yo sólo voy a romper la línea para que veas exactamente lo que está pasando dentro Mi tío tira. Entonces solo estoy poniendo una etiqueta de tobillo y me estoy quitando toda la palabra borrar de mi naranja . Pero ex editor encendido entonces para los detalles me estoy apoderando de los detalles del mundo en solo estoy usando el icono para info on entonces justo de la misma manera que quiero sacar toda la palabra borrar del botón rojo encendido. Sólo estoy usando el cubo de basura. Entonces quiero decir, una vez más, tu propio estilo va a entrar y puedes personalizarlo como te parezca conveniente. Pero y así es que quiero mi discurso índice. Mira veo de eso. Y luego voy a refrescar una vez más el arte, y ahí se ve un poco más limpio. Y así sólo tenemos el lápiz, la info y borrar Andi. Es decir, esta columna tenía un religioso tienen alguna palabra. Yo sólo voy a poner ahí las tareas del título. Entonces para las acciones, Sí, esas serán acción. Entonces para poner ese bateador de título, recuerda que teníamos en la tabla, teníamos los encabezados de tabla y teníamos el nombre de visualización para nombre donde se creó la fecha, y luego donde esta vacía en este vacío representado en MT. Mesa de cabeza fuera para la columna con las acciones que estoy literalmente solo yendo dedo del pie estaban en la palabra acciones en entonces eso me tipo apagado completa los cambios que estamos haciendo. Y ahí vamos. Entonces sólo me voy a ir con una sugerencia. Entonces cuando configuramos la tabla de datos y configuramos el script Sección cuatro tabla de datos, por favor sepan que cada vez que tenemos un pitch de índice porque cada vez que hacemos operaciones de cuervo para una clase de datos en particular, nuestra tabla vamos a terminar arriba con el mar y cuatro vistas Todo el índice de tiempo crear detalles sobre ¿lo hizo? No, Eso significa que cada vez que probablemente vas a querer que la tabla de datos esté en cualquiera discursos de índice que se estén dando en ese momento. El modo en que lo hicimos aquí es que vas a tener que hacer esto cada vez que tengas un discurso índice . Ahora, lo que podrías hacer está en el archivo Js. Entonces en nuestro diseño, Page ya hacía referencia al archivo Js que habríamos conseguido como parte de la plantilla en que está dentro de w w root Js en sitio que Js podrías poner la cancha javascript aquí en. Entonces podrías ser lo suficientemente disciplinado como para saber que una vez que estás, ya sabes, tienes un discurso de índice, y quieres que algo sea una tabla de datos que lo llamas. Yo tbl DT por datos. Perdón. Datos tibiales. No, el lado inferior posible a esto es que sólo se puede tener un elemento en ese momento con una idea. Entonces si tienes múltiples tablas en la misma página que quieres ser tabla tabla Tabla de datos de Evita Lo sentimos, Entonces vas a tener que modificar el objetivo de remolque de cable, cada una adelante. No obstante, puedo escribir este guión una vez, y solo voy a enseñar esta sección en, poner dentro fuera del sitio dot gs una vez para poder escribirlo una vez y luego ser disciplinado lo suficiente como para saber que cada vez que tengo un index, voy a asegurarme de darle a la tabla el i d t b a posterior para que un lado Jesse incluido, que siempre será porque está en la página de diseño de todos modos, Entonces esa tabla con eso i d automáticamente será una tabla de datos. Entonces acabo de hacer ese cambio, y luego sólo voy a refrescar en show que todavía estaba funcionando. Está bien, así que las refrescas no lo hacen y todavía tenemos o tabla de datos. Y esta vez muevo la cancha desde directamente dentro de la vista del dedo del pie son archivo JavaScript que está siendo referenciado por el laico tono bajo. Recuerdo las páginas de diseño realmente gobernando todo lo que estamos viendo al menos ¿verdad? No. Entonces eso es todo por las modificaciones a estas dos vistas Son estas pocas vistas Podría aprovechar esta oportunidad para decirles que cuando vamos a la página de creación en, vemos que ya está retomando alguna de la página si quisieras que retome más o todo fuera del dolor. Entonces ves que la página realmente se extiende desde este margen, dedo del pie ese margen a la derecha, Muy bien, puedas usar esa línea para anotar calibre donde empieza y se detiene. Pero entonces esto sólo está ocupando parte del espacio. Entonces, en realidad, lo que está pasando es que en el creativo tú y yo solo lo encontraremos rápidamente. Dejar tipos crearlo es usando una llamada de clase diff. MD cuatro. Entonces, en bootstrap, puedes establecer el ancho fuera de toda tu página usando esta directiva call MD o clase. Más bien. Entonces si quería que lo tomara va de un dedo del pie. 12. Perdón. Ah, sí, 12 12. Entonces yo esto se está tomando un antes. Entonces eso es lo que tercero del espacio potencial. Si le incremento eso en die, ahorre en, entonces solo vuelvo y refresco. Entonces ves que todo el contenido ocupa más espacio. Está bien, vamos. Ahí vamos. Por lo que no es quitarlo de las 12 columnas potenciales. Eso significa entre donde se detiene el cuadro de texto y los botones a la derecha. Mayoría margen que fue de 12 especies sobre el petróleo. retoman cuatro espacios más bien sobre contabilizados. Por lo que la gente que tiene formas que camilla en la cruz A veces simplemente lo hacen llamar a MD 12 o a veces logístico que dan. No se molestan dedo del pie especifican y un bajo los controles para solo sentir todo el espacio. Entonces solo lo cambio a 12 y ahí vemos que está llenando todo el espacio. Andi, sí dije que Bt y bloques del botón está llenando todo el espacio. No, nuestros enlaces de la lista de batalla aún parecen muertos. Te estoy desafiando a que finalices forma creativa de configurar tus enlaces de battle ist dentro las vistas individuales para crear detalles de edición sobre qué líderes que ya tienen alguna vista. Pero te estoy desafiando a que encuentres una manera agradable, creativa del dedo del pie representar la lista de batalla en cualquier otro enlace que pudiera parecer llano. 22. Revisar y añadir cambios a GitHub: Oigan, chicos, en esta lección, estaremos revisando nuestros cambios a nuestro control de fuentes. Pero antes de entrar en eso, solo quiero recapitular lo que no hicimos la lección anterior, que es donde modificamos los enlaces para mirar, ya sabes, un poco más animado en algún lugar color a las páginas sobre Guy te dejó con un reto de realmente introducir algunos estilos en remolque. Los botones y, ya sabes, sé creativo. Entonces en realidad tomé el reto yo mismo, pero no hice demasiado. Todo lo que hice estuvo bien para la página Editar. Añadí estilo. Una paliza comenzó de nuevo a lista en esa playa con estilo sería Bt y Dash delineó dash secundario. Entonces si querías más referencias para las estrellas de botones y lo que es posible, entonces siempre podrías consultar toda la sección de botones de nuestra documentación de bootstrap. Entonces hay consigue bootstrap dot com on, entonces ya sabes, en la documentación, solo busca componentes en botones justo en. Por lo que te muestran a cada uno de tus opciones. Tienes secundaria primaria Andi cada uno mientras que el nombre en cada borde es básicamente la clase y el color que puedes esperar. Por lo que tienes en cuatro diferentes a la primaria. Entonces en realidad podría haber usado o debería haber usado info en lugar de primaria para los detalles . Entonces sólo voy a mí ese cambio rápido. Entonces eso es algo contratado cambio para mí. Entonces todo lo que tengo que hacer para los detalles en lugar de decir beaty y Primaria S A Bt y dash info en DSO, es carnicero hace que sea fácil a este anuncio colores y luego tienen otro set donde dicen contornos vendidos. Obtienes el contorno de color y ves el botón completo al pasar el cursor. Entonces eso es lo que hice por mi espalda al menos. Pero lo hice en línea y obtienes un color al pasar el rato. Tarjeta. Yo lo hice por ello. Se lo hice por detalles. También en Di lo hizo para tratar pero y cuatro crear. Tenía el botón para crear como Bt y Block. Por lo que acabo de hacer respaldado una lista, también batiendo bloque y veo que sólo ocuparon como más espacio, sabes, lleno con off cualquiera de las líneas. Entonces esos son los cambios que te hice problemático. Otros ocho cambios y estoy ansioso por ver lo que hiciste. Pero el objetivo de este video es revisar nuestros cambios. No, Como hemos ido yendo desde que agregamos o proyectamos al control de fuentes con cada padre que modificamos, te diste cuenta de que hay unas garrapatas rojas. Por lo que algunos tienen candados y otros tienen herejes. El candado significa que se registró no ha sido modificado desde la última versión que se agregó al control de fuente. El Reddick significa que se ha querido ified. Entonces, si simplemente se ciernen, se ve terminando en ello. Eso significa que algunos editores hechos en él está pendiente de un chequeo en el repositorio. No se ha registrado en el control fuente como archivo modificado. Entonces, en otras palabras, si fuera a perder este proyecto ahora mismo, si mi proyecto si Michel Butor lo siento, se estrelló, entonces todo lo que hubiera terminado que todo con una garrapata roja hubiera sido perdidos son esos cambios se perderían porque siento revisarlos en el control de fuentes. Entonces esos son los que herejes. También notarás algunas con más verdes. Y esos están viendo pendientes en So. El signo más es que desde la última versión fuera del proyecto. Este archivo fue agregado. ¿ Qué? Me modificaron o no. Es decir, se agregó. No sé nada de este expediente. Entonces el mecanismo local de seguimiento en la computadora, que es el motor get que habríamos configurado inicialmente ese mecanismo de seguimiento local está viendo que conozco la versión anterior fuera del proyecto. En estos están el cambio que me tienes. Tienes que dejarme guardarlas para que si tienes que recuperar tu ayuno de mí, tenga registros fuera de ellos. Entonces como dije, si fuera a perder todo ahora mismo, todo con un hereje y cada plus verde se perdería. Entonces tendría que ir a recuperar la versión que fue facturada por última vez al control de fuente . Entonces en este video, sólo voy a facturar o cambiar. Hicimos bastantes cambios. Agregamos operaciones de multitudes para nuestros tipos de alivio. En agregamos modelos de vista. Agregamos Autumn Oper. Cambiamos algunas interfaces de interfaz y agregamos algunos archivos nuevos en el camino. Y no, tenemos que hacer el check in así que check in. Puedo distraer las soluciones. Recuerda que la solución está en la parte superior del árbol, Irak, la solución encendida Irak, . Entonces voy a ver commit aunque la pantalla del cometa me va a decir que son 18 Cambios gastando Todo bien en. Entonces están pidiendo un mensaje. No, el mensaje tiene que ser descriptivo por dos razones. Si estoy desarrollando esto por mi cuenta, cuando estoy cometiendo un cambio están cometiendo ya conoces el cordón. Quiero recordarme lo que se hizo en esta versión que estoy agregando al control de fuentes. Eso sirve un doble propósito. Porque no, Si estoy trabajando en equipo, entonces alguien que venga después de haber cometido cancha puede mirar mi mensaje de compromiso y especie de deducir el tipo de trabajo que acabo de poner en lo que es. Yo me estoy registrando. Entonces en esta sección, ya sabes, en realidad lo requieren. Y yo dije justo que usted es descriptivo. Entonces voy a ver que sí salí de repositorios de tipo. Agregó Andi. Tablas de Peter, Onda fondo iconos impresionantes. Está bien, para que yo creo que más o menos resume todo para que lo hicimos. Agregamos repositorios. Ah, y voy a decir y crudo así que agregamos, dejar repositorios de tipo y crudo en a tablas de datos sobre fondo iconos impresionantes. Ahora, cuando haces clic en Cometa, se va del dedo del pie cometa. A nivel local, no lo va a empujar para que se levante. Se va a empezar a nivel local, así que hacer todo. Una vez solo uso la flecha abajo y digo Commit all y me hundo así que lo haré localmente. Haz todos los cambios aquí en. Entonces te conectarás para ponerte la esperanza. Después empuja todos los cambios para levantarse arte. Y luego una vez hecho eso, deberías ver sincronizar con éxito los pagos entrantes y salientes. Entonces hace dos cosas. Hace una sincronización donde si estás revisando en la corte después de que alguien más lo haya hecho , entonces no cargará la última versión que está en el control de fuente encendido, luego a tus cambios. Por lo que tipo de asegurarse es que se asegure de que haya paridad en el cordón en todo momento y en su corte. Por lo que una vez más en un escenario de equipo, cuando tienes múltiples personas haciendo modificaciones a la misma aplicación, una vez que haces esa sincronización, empuja cambios de aire, no carga los cambios de otras personas Así que en este punto, si alguien más estaba haciendo cambios en la construcción de Otoño otro modelo mientras yo estaba lidiando con estos tipos, una vez que hiciera esa sincronización, entonces tendría sus cambios que tendrían. Mis cambios son Así que fui a ponerme arriba, y estoy muy bien que los cambios que hice estén presentes en. Se puede ver y dejar la gestión en la carpeta. Voy a ver el mensaje del cometa agregado Dejar tipo. Entonces si te tropiezas con él en. Pero ese es el último compromiso, que se hizo hace un minuto. Siempre podemos ver ah historia fuera. Todo el comité que veas que son seis commits en total. Si hago clic en seis commits, entonces me mostrará la historia fuera de todo lo que he hecho. Hice algunos archivos de proyecto creé el leerme en el último o más reciente. Uno que hice fue aún agregar los repositorios de tipo licencia. El último que acabo de hacer sobre él también fusionó la marca para poder mirar ramas en otra conferencia. No quiero dedo del pie meterse en ramas en este particular a Tora, pero al final del día, hemos comprobado en nuestra fuente anotada para levantarnos. Nuestro equipo tiene acceso al cordón si lo necesitan. 23. Descripción de la autenticación principal de ASP.Net: Oigan, chicos, bienvenidos de nuevo en esto. Escucha, estaremos haciendo un recorrido fuera de SP .net Cores Identity cuenta con lo que digo. Identity features ¿Identity es el conjunto de funciones o la biblioteca que una velocidad en él núcleo utiliza para administrar la autenticación? Usuarios de Andi Hasta el momento en nuestra aplicación, hemos hecho un poco fuera de trabajo. Hemos configurado los diseños hasta cierto punto. Hemos puesto en el futbol algunas características de multitud para tipos de relieve donde podemos agregar tipos de licencia. Elimina los tipos de licencia, edítalos. Onda los revisa. No, estoy seguro que probablemente estés en el extremo receptor de estas lecciones y pensando, Bueno, estoy seguro de que en un sistema de gestión de licencias, no estaría tan abierto para que nadie pudiera entrar y manejar el tipo de hoja. Algo así como tipos de licencia deberían reservarse para tal vez un usuario administrador y las nueces de Mimi son usuario regular de la misma manera. Pretendemos poner en características dedo del pie, solicitar licencia y, por extensión, gestionar las solicitudes de licencia significa aprobarlas o rechazarlas. Además, empleados gestionados y estas características sugerirían especie de que los usuarios necesitan estar en diferentes categorías, ¿ verdad? Alguien necesita poder hacer un registro, lo que significa que en un concurso que existe en algún lugar para que pongan mi nombre de usuario en la contraseña y en realidad se autentiquen contra lo que sabemos. Entonces lo que sabríamos es lo que está en la base de datos la información para cualquier usuario dado en la base de datos. Alguien entra y pone la información, y luego verificamos que la información que han puesto es correcta. Entonces les otorgamos acceso toe, ya sea la aplicación en su totalidad o a ciertos aspectos fuera de la aplicación. Entonces en este video, vamos a pasar por lo que se necesita para realmente configurar la funcionalidad de inicio de sesión, permitiendo que las personas se registren en nuestra aplicación grand, realidad permitiéndoles el acceso a la aplicación o rechazándola. No. Cuando creamos esta aplicación, habíamos indicado que queríamos crearla con conos de usuario individuales. Apoyo en DSO porque seleccionamos esas opciones en nuestro menú principal en o barra suficiente. Antes de empezar a poner en otros enlaces, notamos que teníamos un log in Enlace Onda Registrar Ling. Muy bien, entonces nos dieron la mentira el marco subyacente para que esto sucediera Y así la característica está ahí una cosa que teníamos que hacer fue ejecutar una migración inicial, que es donde realmente desplegamos las tablas que se requerían para esto funcionalidad que se va a apoyar. Entonces, ya sabes, antes que no, tal vez hubiéramos tenido el dedo del pie. Y cuando digo antes, no, no, En versiones anteriores off dotnet framework en programación dwell dotnet y en la mayoría de las otras aplicaciones, realidad tienes que sentarte y construir tus tablas de usuario y, tú saber, vestir todas esas cosas. Lo que pasó es que realmente nos dan el marco. Por lo que sólo tuvimos que ejecutar algunos comandos sobre ellos realmente fueron creados para nosotros, y podemos apalancarlo en. Entonces tienen una serie de características por razones de seguridad y que podemos aprovechar, construir sobre arriba sobre mejorar como nos parezca conveniente. Pero entonces el hecho es que es un sistema de inicio de sesión bastante robusto que nos están regalando de la caja, y solo queremos tener una mejor comprensión de ello antes de empezar a modificar. Ahora, vuelta en Visual Studio, fui a mi explorador de objetos de servidor SQL en. Recuerda que si no ves ese dolor en ninguna parte, siempre puedes hacer clic en ver. Entonces podrías simplemente seleccionarlo desde la vista, y luego puedes arrastrarlo dedo del pie cualquiera que sea la sección de la ventana del estudio visual, te sientes más cómodo con que sea me gusta al fuego izquierdo. Entonces sólo me voy a oscurecer el dedo del pie. Está de este lado, Andi. Entré a SQL Server que a mis locales. Local db slash m s SQL db instance Sobre la base de datos Dejar administración como ese es el nombre de para base de datos en. Entonces solo te estoy mostrando que hay un número fuera de tablas aquí con el nombre SP que dot net o más bien el allá fingió los nombres de las tablas se fingen con s ser siguiente. De acuerdo, así que todo fuera, esos habrían sido incluidos en ese ejercicio inicial de migración donde nos rompimos en las tablas de la base de datos para empezar. Ahora todas las mesas del juego alguna forma de papel en la gestión de nuestros usuarios. Entonces estoy seguro de que puedes deducir que s usuarios de P Net es donde se están almacenando los usuarios Si ampliamos esto y solo miramos las columnas, ves que tenemos un I D. Que identifica de manera única a cualquier usuario. Utilizo el nombre y la dirección de correo electrónico en Tenemos contraseña hush en el número de teléfono. Y luego cuando estábamos construyendo nuestros modelos, realidad creamos un modelo de empleado que heredó de la clase de usuario neta subyacente de SB en. Lo ampliamos agregando algún fusible más que consideremos necesario para nuestro sistema. Pero el hecho es que, de la caja nos sacamos del dedo del pie discriminador yo d o de I D para discriminar. Si bien escala estándar con nuestras bibliotecas de identidad, también tenemos SP net roll. Por lo que las reglas tabla más o menos la historia. El nombre, um y normalizará nombre y d en d algunos otros datos. Entonces lo que realmente importa es el nombre y me muevo diciendo que ese es el más importante entre Ayman Nombre normalizado porque ese es el nombre fuera de la regla es un administrador o es un rol de empleado? ¿ Es un supervisor? O, ya sabes, diferentes aplicaciones tienen diferentes niveles fuera de los usuarios, y eso es lo que llamamos reglas. Por lo que las reglas mismas se almacenan en esta tabla porque entonces no se quiere crear un usuario y luego asignar una regla. Y tal vez deletreas administrador actualmente en esta ocasión, y luego terminas con la misma regla con diferentes variaciones. Por lo que acabamos de empezar surgió una vez en. Entonces tenemos otra tabla importante llamada es ser reglas de usuario net. Entonces esto es, si lo sabes, base de datos bien. Esta es una relación de muchos a muchos porque tienes muchos usuarios encendidos. Muchos usuarios pueden encarnar muchas reglas porque se puede tener en un administrador que también es empleado , por lo que tendrían que tener más de una reglas. Entonces para evitar cualquier duplicación en cualquiera de estas tablas, crearon otra tabla que cumple, um, especie de medio camino, que es el ESPN. Es el rol de usuario estable, donde almacena al usuario i D y la idea de rol. En otras palabras, si soy usuario uno en soy empleado y empleados rol I D a entonces la grabación es ser usuario net . Rose se va a quedar como Usuario I d. uno con Regla I d a. Si eres tal vez supervisor sobre administrador de armas, entonces vas a tener dos entradas en la idea del usuario y vamos a su I. D. Tenía cinco. Entonces salimos 5 a 1, que se administra y cinco dedos tres, que es supervisor. Sea lo que sea que sea el punto, aquí es donde creamos la asociación entre yo usuario Andi él es o su regla Onda. Para este video, esos son los tres. Lo más importante, fue bajo tres tablas en las que me voy a centrar mientras entendemos exactamente cómo funcionan las autenticaciones de usuario , sin volver a nuestra aplicación. Nuestro primer experimento sigue siendo crear un usuario, Así que cuando hablamos de crear un usuario, realmente es el registro. Te vas a facebook dot com por primera vez. Se desea registrar su creación literalmente. Yo uso un registro dentro del registro de Facebook tan literalmente, cuando vas a Facebook y un compañero que forma y haz clic en inscribirte, todo lo que hicieron fue quedarse esa información desde la pantalla, ponerla en una base de datos igual que la que acabo de mostrar . Lo pones en un usuario estable on. Entonces te bajan para iniciar sesión, y cada vez que pones tu nombre de usuario que especificaste y esa contraseña, todo lo que hacen es quedarse esa información y comprobar si hay un registro en el usuario estable que realidad, ya que uso el nombre que se ve de esa manera, Ana Pastor, que se ve así. Te dicen que sí, es correcto. Aquí, aquí está la información. Es incorrecto. Por favor, Dragón, eso es literalmente todo lo que está pasando en DSO. Una velocidad en él hace que sea tan fácil para que literalmente pueda ir dedo del pie registrarme en. Puedo proporcionar una dirección de correo electrónico y voy a usar Ah, una dirección de correo legítimo, alguien para poner en una de mis direcciones de correo menos usadas. Y voy a poner una contraseña. Entonces la contraseña que estoy poniendo es la palabra contraseña. Y luego fui a Click Registrarse. Entonces cuando hago clic registrarme bien, entonces está especificando que mi contraseña necesita cumplir ciertos estándares, y eso está bien. Podemos ser los estándares por lo que fuera de la caja. Ya ves que nos están diciendo la fuerza de la contraseña que se requiere. Entonces las posturas fuerza que están diciendo que debo sobre estos uno no Mary maíz no alfanumérico. Entonces, en otras palabras, debo tener una mayúscula. A Capital P. Debo tener algún personaje que no sea un número o, ah, ¿dónde está nuestra carta? Entonces voy a poner el at sign for, ya sabes contraseña s W O R d Andi. Dijeron que necesito tener un número, así que voy a poner uno. Entonces esa es una P mayúscula a la señal. S S W O R D uno. No quiero volver a intentarlo. Está bien, entonces pasa a una página llamada Registrar Confirmación y luego nos dan un pequeño mensaje diciendo que no tenemos un remitente de correo realmente registrado, que puedas leer los muelles a Seo para configurarlo, que estará haciendo más adelante. Pero normalmente esto sería correo electrónico, pero nos están dando Ah, como un feroz un sentimiento tan en inglés estándar. En caso de que esto no signifique mucho para ti cuando estás firmando para la mayoría de los sitios web en estos días , no pueden ver la paz. Consulta tu correo electrónico para confirmar tu identidad. Cuando vas al correo electrónico, suele ver un correo electrónico de ellos. ¿ En dónde se vinculó la sacralidad? Entonces estás oficialmente registrado. Entonces eso es todo lo que están diciendo. Eso necesitamos configurar algo que en realidad activará un correo electrónico que haga algo como esto. Pero mientras tanto, aquí está el enlace que habrías conseguido en la EMEA de todos modos. Entonces, una vez más, podemos hacer eso. Eso es un día posterior. Pero sólo sigamos con la confirmación o el registro. Por lo que hacemos click aquí para confirmar el. Entonces dicen Está bien, confirma correo electrónico. Entonces? Por lo que volví a mi página de inicio el y no, puedo intentar iniciar sesión. Entonces cuando haga clic en plug in, voy a poner en el correo electrónico que acabo de usar en la contraseña, que es p al signo. Lárguense. P mayúscula fuera s W O R d uno. En caso de que haya en la misma contraseña que yo en. Entonces solo hago clic en iniciar sesión luego ves que les encantó ser y nota que No, el texto en el aquí que dicho iniciar sesión y registrarse No cambia el hola? Algo, que es mi dirección de correo electrónico. Andi, tienen un botón de logotipo. Entonces si hago clic en lanchas largas obvio que terminaría la sesión. Pero sólo por estar aquí, saben que yo no soy login. Ahora voy a volver al estudio visual, volver a nuestra base de datos y les voy a mostrar los cambios que sucedieron cuando hicimos ese proceso de registro. Por lo que en s los usuarios de cacahuete entienden a la derecha, Haz clic en esa tabla y luego te voy a guardar datos. Y entonces esto, Señores, ese dato PN mostrando todos los datos en la base de datos y específicamente todos los usuarios en la base de datos desde SB Net usuarios de almacenar la información del usuario en Si se presta mucha atención , te das cuenta de que la primera verdadera realmente tiene en información para ese usuario acaba de crear el nombre de usuario es Lone Crusader 1989 en Gmail o el mismo correo electrónico que escribí. Normalizada normalizar usualmente significa que traen remolque un estándar. Entonces si lo hubieras escrito en caso mixto, van a hacer que todo mayúscula, ya sabes, así como me siento seguro en caso de que, um, ya sabes, gente diferente tipo cierta bits de información de manera diferente. Por lo que ahí, normalizando su a un estándar para reducir los errores. Um, la dirección de correo electrónico es la misma que la normaliza para que puedas mirar a través de todos estos, ya ves, correo electrónico confirmado es cierto. Entonces cuando no hacíamos clic en el enlace, esto habría sido cae sobre. Mientras esto sea para nosotros, ese usuario no sería capaz de iniciar sesión. Pero entonces, porque hacemos clic en el enlace o en circunstancias normales, El correo electrónico habría sido enviado dedo del pie la parte registradora el. Entonces pensarían que el correo electrónico entonces cambiaría esta bandera a verdadera. Por lo que todo eso está construido en su propio fuera de la caja en literalmente. Esto es todo lo que estas grandes empresas con sistemas de registro que parece tan avanzado y robusto, pidiéndole que confirme correo electrónico. Eso es todo lo que hacen. Tienen, ah flug en ti. Haga clic en ese enlace. Esa bandera no se cambia. Entonces cuando intentas iniciar sesión, dicen, Chico, necesitas cambiar esa bandera. Está bien, así que tenemos correo electrónico Confirmado es cierto. Tenemos lo que usted llama una contraseña tiene y entendemos para expandir esta columna, y vamos a pasar algún tiempo mirando los valores ahí dentro. Entonces recuerda que mi contraseña era mayúscula P al signo S S W o R d uno que es todo en inglés o en cualquier idioma en el que estemos. Pero fue en la avenida, una combinación de letras fuera, un número y algún personaje. No, mira lo que se almacena en nuestra base de datos. Uno. Nunca deberías estar almacenando contraseñas en texto plano. Eso es peligroso porque Entonces si alguien consiguió acceso a la base de datos y vio tu contraseña solo Louis para decir la palabra verdadero, solo podrían ver tu contraseña, entonces eso es un claro riesgo de seguridad. Saben Tienen suficiente información para seguir adelante y acceder a tus conos. Entonces siempre que estés almacenando contraseñas y esto es universal a cualquier sistema o cualquier desarrollo atascado que estés usando, siempre crea lo que llamamos un silencioso. Ahora, fuera de la caja, el marco de identidad Oh, se activan las bibliotecas. Esta característica en realidad calló la contraseña para que no tengas que hacer mucho más trabajo después pedirle a la persona el puesto, tal vez hacer cumplir un estándar. Pero entonces el almacenamiento de la misma está siendo cuidado por la característica. Está bien, así que este silencioso nunca se puede decir cuál era mi contraseña originalmente al mirar ese bloque de texto moviéndose por ahí. Otras columnas que son para este video, para los fines fuera de este video. Menos importante, chico del sistema concurrente de sello de seguridad. Tenemos un número completo, um, campo onder cuando no fue confirmado. Por lo que vemos cuatro número y número completo confirmado caída. Entonces esa escena que podrías construir en una función donde mandas un SMS al número algo empieza como lo que hacen Ciertas plataformas de mensajería. Um, entonces puedes seguir adelante y ves que todos estos otros campos no hay realmente saber porque, Bueno, Bueno, el registro de usuario fue creado en base a la información que se dio en la granja. A la finca no solicitó fecha de nacimiento se incorporara. Nombre, impuesto de apellido. Yo sabía lo suficiente que se requería en el momento de baja inscripción. lo que fuera de curso, modificar nuestra aplicación, podemos o bien requerir la información modificando el formulario asegurándonos de que se envíe a la base de datos. O podemos, ya sabes, configurar alguna interfaz que podamos realmente, um, um, solicitar esa información en una fecha posterior. Pero al final, fuera de la d, queremos que nuestro registro sea sencillo para este sistema. Por supuesto, miramos al hoyo. Podríamos modificarlo más adelante, pero para efectos de esta libertad, ¿quieres mantenerlo sencillo? Necesitamos es un nombre de usuario y una contraseña o una dirección de correo electrónico y una contraseña, y aquí ves que se usaron en la dirección de correo electrónico como nombre de usuario. Además, esto también es algo que probablemente quisiéramos modificar porque uso el nombre No siempre grita contraseña. Perdón, uso el nombre porque siempre se arrastra el correo electrónico. Por lo que queremos modificar esto, que les permitimos ingresar nombre de usuario, ingresar un correo electrónico en una contraseña, y luego están dentro del sistema. Ahora si damos click hola. Si pasas el cursor sobre el bloque de texto que te dice hola, notas que aparece la mano, lo que sugiere que se puede hacer clic justo en. Cuando hacemos eso, vemos que obtenemos, ah, ah, manejamos tipo de panel, y probablemente veas un mensaje diciendo Gracias por confirmar tu correo electrónico. Eso está bien, pero verás todo esto. Y desde aquí se podría ver el perfil fuera del usuario o del usuario que está cabildeando Más bien puede ver su perfil. Pueden ver su correo electrónico y probablemente hacer una actualización. Pueden cambiar su contraseña poniendo la actual y poniendo una nueva. Apoya dos factores. La autenticación, por supuesto, tendría que configurar esto correctamente en. Después te permiten ver el dedo del pie, hacer una copia de seguridad de tus datos personales y también eliminar tu cuenta. Te estoy mostrando todo esto porque una vez más, todas estas cosas están fuera de la caja. Todo lo que tienes que hacer es tener un aprecio por todo Trabajan en, luego modifican. Pero la construcción inicial que funciona no está ahí porque Microsoft está viendo Vamos a sacar estas pequeñas cosas que todo el mundo quiere fuera del camino y enfocarnos en las cosas que realmente importan. Entonces te dan esto fuera de la caja, y luego dicen: Vale, bueno, si necesitas modificar, entonces adelante. No, hemos estado mirando vistas y modelos y controladores todo este tiempo. Andi, te lo he mostrado en la corte. Si quisieras ver y entender de nuevo a visual studio, volviendo a la solución que si quisiéramos ver los controladores que siempre podíamos ir y ver el controlador en el controlador causaba la acción. Por lo que sabemos cuándo lo causó. Acción de índice se va a buscar el índice de vista en. Entonces vamos a ver el índice. Deberíamos estar lo suficientemente cómodos con el concepto fuera de eso por no, Pero si echan un vistazo más profundo, notan que no hay controladores que mencionen a los usuarios. Aquí no hay nada que tenga que ver con los usuarios. Y si nos fijamos en el enlace, sugiere que hay una sección llamada Identidad en un Conde y gestionamos si sabemos algo más que del Lincoln. Otros van a dejar tipo, ya que ese es uno que construimos cuando decimos tipos de licencia slash va a buscar el controlador llamado tipos de hojas. Si hacemos click en cualquier enlace como si hacemos click en editar, entonces sabemos que está buscando el controlador llamado Hojas Types, y está buscando la acción, lo llamó y luego esto pasando lo permitido a. Entonces el hecho es que con base en el enlace, podemos amortizar las cuotas donde exactamente en la corte, se están tomando estas acciones, así que fácilmente puedo encontrar que Oh, está llamando a la acción Editar, que es poniendo la herramienta en. Entonces está devolviendo la vista que sabemos que podemos encontrar dentro de la carpeta de vistas encendido. Podemos simplemente mirarlo fácilmente. No, una vez más, el punto es que la estructura identitaria no está ahí donde se pueden encontrar las vistas. Onda. Es decir, puedo pasar algún tiempo revisándolo. Ah, ¿puedes pausar el video y sólo mirar a través y decirme si los encuentras, pero no son tan fácilmente identificables en. Eso se debe a que no crearon una estructura como esa estructura de controlador de vista modelo que estamos creando. No hicieron eso por las características de identidad. Ahora puede que estés en algo si haces una pausa, entonces empezaste a buscarte. Y luego si entraras a áreas en áreas expandidas, verías que aquí hay una carpeta llamada Identity on. Entonces dentro de la identidad. Tienes páginas, pero entonces solo tienes una riqueza pagada de que comienzas, que es sólo decir qué diseño debe usar. Puedes tener múltiples diseños, pero eso es algo para otro día. Pero el hecho es, eso es todo lo que vemos sugiriendo que hay alguna característica de identidad en alguna parte. Por lo que soy como acto final para este video. Vamos a construir avena. Todas las páginas u otras cuentan con proveedores de estudio visual con acceso a todas las páginas que se están utilizando dentro fuera de la gestión de identidades. Muy bien, así que solo puedes hacer estos pocos pasos y luego tienes todas las páginas Y entonces podemos iniciar nuestros formularios de tienda de modificación y toda nuestra lógica opera. Entonces en primer lugar, me voy dedo del pie a la derecha Haga clic en áreas en luego voy a dar click. Agrega entonces y no lo haces. No tiene que ser épocas, pero justo justo. Haga clic en luego ver nuevos artículos estropeados. Ves, eso es lo que hemos hecho Controlador, No clases esta vez te estamos haciendo artículo scuffled Así que hacemos clics nuevo artículo scuffled en entonces esto nos va a preguntar ¿qué queremos vivirlo? Y luego en esto en el costado aquí veremos identidad. Por lo que solo tienes que hacer clic en identidad y luego hacer clic. Add on entonces se va a hacer algún trabajo. Después nos dan este cuadro de diálogo donde ahí dicen Vale, estamos a punto de agregar identidad Qué FAZ quieres para que podamos seleccionar tú sabes uno por uno cuáles queremos una vez que los seleccionemos, entonces nos serán proporcionados Pero entonces yo soy sólo voy a decir los quiero todos Así que solo voy a dar clic anular rápido Así que los archivos están implícitos, por así decirlo y veo implícito porque no tenemos visibilidad sobre ellos, así que están implícitos que están ahí. Por lo que están diciendo que quieren anular el implicarlo rápido con el ayuno físico. Entonces digo que se acabó en todos los archivos. Dame ataque físico rápido y ver sobre modificar, como deseo en. Entonces van a decir, OK, OK, ¿cuál es la clase de contexto de datos? Sabemos que tenemos el contexto de Application DB como nuestro contexto. Russ en. Entonces solo podemos seguir adelante y dar click en. No necesitamos proporcionar ninguna otra información sobre. Entonces vamos a hacer un poco más de trabajo son por lo que pudo haber tardado un tiempo. Pero una vez hecho, se obtiene esta linda perra con un leeme, haciéndote saber que se agregó el apoyo. Andi, si necesitas hacer más cosas, entonces te dicen que puedes agregar estas líneas a tu archivo start off dot CS. Pero si miro en mi inicio de ese archivo de serie y vería que ya están ahí,ya ahí, tengo mi acercándose a una autorización de autenticación. Todas esas cosas estaban ahí antes, así que solo te están haciendo saber que puedes hacer esto por si acaso, verdad? Pero ya lo tenemos, así que en realidad podemos simplemente quitarnos esto y luego proceder. Ahora, si miramos a nuestra izquierda por dentro las páginas dentro fuera de entidad y áreas, entonces veremos que tenemos un montón fuera de nuevos archivos. Y si explicamos cuentas, vemos que tenemos mucho de las nuevas tarifas. Cada uno de estos nuevos incendios corresponde con una vista que veríamos al hacer alguna opción relacionada con el usuario son algunas operaciones relacionadas con el usuario. Entonces, por ejemplo, hicimos un registro. Sólo sé. Entonces si hago clic en el padrón, entonces ves que te da el juzgado para el formulario de inscripción. Te piden el correo electrónico, están pidiendo la contraseña y luego te piden que confirmes la contraseña justo en. Eso es lo que nos dio ese formulario de inscripción el entonces. Otra cosa a tener en cuenta es que todavía no tenemos controlador, Así que probablemente te estés preguntando, OK, entonces veo el front end o veo el HTML y veo en el formulario es,ya sabes, ya sabes, ser renderizado. Qué pasa después de dar clic en enviar. Entonces recuerda que con nuestros modelos NBC, NBC De acuerdo cuando golpeamos, Submit it cause pero el controlador y lo que hacemos después de que haga clic en enviar, habríamos especificado dentro fuera de un controlador. Todavía no hay controlador en ninguna parte aquí para nada relacionado con la identidad. Y eso se debe a que estas vistas están usando por lo que las vistas de identidad están usando algo llamado navaja Pages. Entonces, Onda, con esto, voy a cerrar este capítulo, y luego podemos ahondar un poco más en él. Pero yo sólo quiero tener una apreciación de lo que está pasando. Por lo que tenemos nuestro registro que CS html. Sabemos que esa es una vista, ¿verdad? Y miramos y vemos eso. Pero si miramos de cerca, vemos que hay ah correcto a la izquierda, o esta es la flecha que sugiere que hay algo más adherido del pie de la vista. Entonces si comparo eso con las vistas que tenemos, así que acabo de volver a mi carpeta de vistas en estoy mirando las vistas de tipos de hojas y te das cuenta de que estos usuarios tan rápido, no hay correcto a la izquierda. No hay nada más. Estas vistas solo corresponden con lo que hay en el controlador son, Pero entonces en esta situación, esta vista, que es el mismo frente HTML y y ya sabes raisel front end. En realidad tiene un archivo de extensión extendida C sharp que está debajo de él. Entonces cuando amplío y amplío a cualquiera fuera de estos discursos que se generó, se ve que hay un archivo C agudo debajo de él. Entonces si entro al registro no sensacional que c agudo, entonces voy a empezar a ver cancha que se vería como lo que hemos estado haciendo entre nuestros modelos donde construimos una clase. Por lo que este año, tengo una clase pública y lo llamo modelo de entrada on. Estoy haciendo algunas propiedades con algunas notaciones de datos especifican las validaciones. Andi, también estoy haciendo algunas funciones donde veo conseguir Onda posada. Está bien, así que una vez más, no voy a sumergirme en lo profundo. Solo te estoy haciendo saber que cualquiera que sea la lógica que esté gobernando el comportamiento fuera de la página de registro fuera del front-end en realidad se está haciendo dentro del archivo de puntos CS que se adjunta del dedo del pie del archivo de vista. Por lo que en el siguiente video, vamos a seguir adelante y modificar el registro en el registro informa 24. Personalización y proceso: Oye, chicos de este video estarán pasando por mantener el registro. Entonces en nuestro video anterior, seguimos adelante y lo rompimos todo de las páginas relacionadas con la identidad. También echamos un vistazo a la página de registro donde vimos que esta vista tenía el formulario o este archivo, que está registrado en CSE Channel, fue la vista que tenía el formulario para las importaciones de correo electrónico y las contraseñas en. Después pasamos a notar que también tenía, como, como, un código detrás de archivo en forma de archivo C sharp o clase C sharp, que nos carga para controlar el flujo fuera de la aplicación. No, estaremos pasando algún tiempo y entendiendo exactamente está pasando aquí. Y luego sacaremos una mejor comprensión. Sostenga el trabajo de las páginas de afeitar. Por lo que estos aire llamaron páginas de afeitar, donde el C Sharp Court se adjunta directamente al pocos expediente. Está bien, así que vamos sección por sección. Por lo que sabemos que la sección de uso es donde incluimos todas nuestras bibliotecas. Abrimos nuestro espacio de nombres, que es nuestro proyecto. Esa es la estructura de carpetas bajando a lo más rápido que es eras pensamiento identidad, páginas oscuras y se ve que corresponde que son ConEd on. Entonces nuestro archivo está dentro de su carpeta de maíz. Ese es el espacio de nombres. Tengo clase, y lo llamamos modelo de registro. Entonces, por no, deberías estar familiarizado con cuando decimos modelos nos referimos a modelos de vista. Nos referimos a las clases que están diseñadas especialmente para la vista de partículas en la vista está diseñado dedo del pie interactuar con las propiedades que se renuncian son servidas directamente por la clase en cuestión o el modelo de vista en cuestión en entonces esta vista particular heredando de la clase basada en ah llamada modelo de página. Por lo que Page model está construido en la velocidad en un núcleo en nuestra clase en esta situación está heredando de ella, lo que le permite a ciertas cosas que nuestros modelos de vista regular probablemente no han estado haciendo . O no hemos tenido la necesidad de hacer porque nuestras funcionalidades difunden más avena que en la cancha detrás para la vista directa. Muy bien, entonces vamos adelante e inicializamos algunos apagados. Nuestra dependencia es, y ya sabemos de inyección de dependencia. Por lo que tenemos dependencias en porque fichando gestores de usuarios. Por lo que estos dos son muy clave para ayudarnos a conseguir algunas funciones del dedo del pie interactuar con la base de datos de usuarios y los datos de usuario a medida que avanzas. Tenemos el registrador por más tiempo Solo mantente apagado Lo que está pasando En qué momento tenemos la eliminación del centro de correo electrónico en tour constructor, que inicializar es cada una de estas dependencia está en. Después pasamos a alguna propiedad. Entonces vemos aquí que somos propiedad llamada modelo de entrada. Andi Input model es una clase en su entrada de propiedades y luego lo vemos como una anotación de datos que está comprando propiedad. Entonces comprar propiedad básicamente dice que si si algo es esto dicho en la clase o sí , tenemos el modelo, ¿ verdad? Entonces si algo de lo que dijeron en un modelo sobre le damos a la propiedad comprando propiedad, básicamente le da a la vista visibilidad de esta propiedad. Entonces en esta situación, estamos diciendo la opinión de que debe tener visibilidad fuera de alguna clase llamada input on. Entonces si nos movemos a lo largo de la entrada está fuera del tipo Lo sentimos, algún objeto llamado input on it off the class type input model. En tenemos un euro de retorno, cual me meteré en el propósito fuera eventualmente en. Tenemos una lista fuera de las alternativas de autenticación son registro externo. Entonces eso si podemos olvidar, como vinculado en y Facebook y todos los que conoces, Google. Todos esos otros tipos de soluciones de inicio de sesión único se pueden integrar, y podemos agregarlas a una lista pero no estaremos entrando en eso hoy. Entonces si paso adelante, ve que lo siguiente es la implementación o la definición fuera del modelo de entrada. Por lo que tenemos implementado modelo de entrada implementado aquí, y se implementa en el tipo en la forma a menudo objeto llamado entrada shore. Pero entonces la definición fuera de nuestro modelo de entrada de clase se escribe a continuación. Por lo que el modelo de entrada es una clase on. Tiene las propiedades que se están deshuesando dedo del pie la forma. Entonces voy a los huesos entre la forma en el modelo, um, lejos sea aquí. Por lo que nos manera vemos que tenemos las propiedades, correo electrónico, contraseña y confirmar contraseña. Se ve que cada uno de esos tiene unas notaciones que hablan las validaciones del dedo del pie que hay que llevar a cabo. Entonces estamos viendo que esto se requiere. Se requiere el correo electrónico. Se supone que es una dirección de correo electrónico tan validada como tal. Por lo que puedes validar en base al tipo de datos unas direcciones de correo justo ahí. puede ver que se supone que es una dirección de correo electrónico. En eso. Podemos ver la pantalla El nombre es genio. Puedo cambiar fácilmente a, digamos, digamos, dirección de correo electrónico. No quiero mostrar nombre para solo ser correo electrónico. Entonces este bonito nombre, recuerda, es lo que se muestra en el formulario como la etiqueta para la entrada para cualquier propiedad para la que se esté configurando o arriba. Ahora bien, si vuelvo a mi archivo de vista y echo un vistazo, voy a ver aquí que tengo la sección para el correo electrónico en él, ya que la etiqueta está antes de ingresar ese correo electrónico. Entonces recuerda que en O. P, una vez que tengas un modelo, podemos acceder a los inmuebles públicos con solo usar el operador de puntos. Entonces tengo entrada como modelo o tenemos modelo de entrada como nuestro paso de clase, y luego tenemos la propiedad. Eso es hueso a la forma siendo entrada. Entonces input es nuestro modelo de entrada de objeto fuera de tipo, lo que significa que podemos decir input esa entrada de correo electrónico que paalmacenó entrada que confirman contraseña en podemos hacer todo eso en el formulario. Entonces no, es decir que esta es la etiqueta para la propiedad de correo electrónico dentro de un objeto de cuatro entradas. Y también quiero una entrada para que parezcan propiedad en también la validación. Y luego hace lo mismo para contraseña y lo mismo para confirmar Posser, que significa entonces si necesitábamos agregar más a este formulario, todo eso para decir que si quisieras agregar más a este formulario de lo que tendríamos que volver a nuestro modelo de entrada en agregar propiedades adicionales al formulario para obtener más detalles ahí dentro. Entonces yo sólo voy a seguir, ver que tal vez en abajo qué referencia mis empleados. Entonces recuerda, tenemos empleados como nuestra clase de datos sobre empleados. Además, dedo del pie todas estas propiedades aquí. Entonces sólo mirando hacia atrás, estoy viendo qué más necesitamos. Entonces tal vez cuando alguien se registre, quiero que proporcionen al menos su fecha libre. Nuestra lemina lo usó después de esto. Usa su impuesto I d. Está bien, Entonces cuando te estás registrando, debes poner en tu dirección de correo electrónico poniendo un impuesto me d onda contraseña. Está bien, ¿sabes qué? Usemos el nombre, el apellido, ya que eso es bastante común. Por lo que queremos off el nombre en el apellido, alguien que se está inscribiendo cuando están en el punto de registro. ¿ Verdad? Entonces sólo usando ese ejemplo, voy a volver a registrar punto c asociacional SCS on. Entonces voy a agregar esas dos propiedades del dedo del pie del modelo de entrada, así que voy a ver requerido porque requiero que pongas tu nombre de pila. Andi. Voy a ver que aquí se esperaba el tipo de datos. No estoy seguro si la cadena de tipo de datos va a ser tan estricta teniendo en cuenta que segundos un tipo de datos apunta, entonces enumeraría. Ah, el tipo de tipos de datos que está soportando. Estos están en. Um, ves, yaves,tiene bastantes Denham para el tiempo de datos que va a permitir, pero creo que está bien, ahí se pega así que solo puedo decir texto para especificar que, ya sabes, textos debe ser lo que entra en este campo cuando lo está validando. Entonces puedo activar un nombre para mostrar. Entonces digamos que la visualización en el nombre es igual a en este será el nombre de pila. Muy bien, así que ese es mi 1er 1 encendido. Entonces esas son las anotaciones de validación o detalle que pasarán en la validación. Pero entonces necesito la propiedad en sí. Entonces es una cuerda de utilería encendida entonces. Este es el nombre de pila, uh, que equivocadamente, y él sólo habla así de rápido. Entonces tina de cuerdas primero en persona. Entrar en DSO Hemos agregado nombre y l esta copia todo esto porque es bueno ser muy similar para el apellido. Aunque el cambio es el nombre para mostrar que debe durar en el nombre de la propiedad también al apellido. Entonces no, acabo de añadir a sentir dedo del pie el modelo. Por lo que sabe la estación de la CIA o el View, puede soportar dos campos adicionales. Entonces, no, necesito realmente escribir dedo del pie del cordón, agregarlos a la forma. Entonces sólo voy a empujar los límites. Voy a tomar todo este bloque que es todo este grupo deformado para correo electrónico. Voy a copiarlo, entonces sólo voy a agregarlo dos veces justo arriba. Pero entonces el 1er 1 va a ser punto de entrada Nombre en el La entrada es para entrada. Ese nombre de pila en todo este grupo de forma es relativo al nombre de pila en. Entonces el 2do 1 va a ser por apellido. Entonces todo aquí es relativo. El apellido que conozco. Ya ves que el formulario de inscripción solo pensaba un no más grande, tienes sientes por nombre, apellido en el correo electrónico. Ah, contraseña sobre la necesidad de confirmar la contraseña. Si necesitabas ponerle uso, podrías ponerlo usando él si quisieras poner otras cosas que pudieran poner en otras cosas. Te mostraré más adelante por qué la dirección de correo electrónico termina como un usándolo. Pero el punto es, si no quisieras que nadie a ellos especificara yo lo uso, entonces podrías en realidad solo tengo la propiedad con la validación requerida o la,ya sabes, ya sabes, lo que sea que se prefiera como validación para ese campo el. A continuación, asegúrese de que esté representado por dentro fuera de la forma. También voy dedo del pie, um, cambié esta sala belleza y dash primary a bt y dash block. Simplemente, ya sabes, cambios menores. Pero yo el fin del diácono. Lo que sea. Y luego si miras más abajo en el formulario ves la sección donde están permitiendo que se registre con otro servicio. Entonces porque esta esta lista que te mostré antes dentro fuera nuestro modelo en la línea ahí está no hay nada en eso levanta. Nada entra en eso esto encendido. Entonces hay un poco de estima y eso se está ejecutando, que es decir que si la lista está vacía, entonces mostrar este mensaje. Si la lista menos no está vacía que el botón productor por entrar en esa lista, derecha, derecha, lo que puedes imprimir contextualmente no se imprimen HTML o lo que sea en base a diferentes condiciones usando simple si de lo contrario usando, ya sabes, muy C corte de aspecto afilado. Está bien, así que voy a guardar esos cambios. Simplemente puedo hacer turno de control y s para guardar todos los cambios. En realidad, me siento mejor haciendo una construir alguien para controlar turno encendido, ser así manteniendo pulsado el control y el turno y expresando estar en hacer una construcción. No. Después de una compilación exitosa, estamos seguros de que no tenemos errores. Y me voy a poner un punto de ruptura dentro de nuestra clase modelo aquí, así que voy a desplazarme hacia abajo a una de estas funciones en Entonces voy a poner un punto muy en la función get, y fui a poner un punto de ruptura en el on post. Por lo que tenemos ungh ETS. Voy a tener una cura ahí, un fregadero en que tenemos en poste mirando. Entonces solo voy a poner esos mismos puntos ahí y luego voy a desacreditar más que y vamos a ver exactamente qué pasa se salga del camino, Muy bien, así que ahora estamos en modo de depuración. Intentemos registrar a un usuario, así que voy a dar clic en registrarme en Ben. Se va a pausa del dedo del pie, y luego estudio visual ha sido para iluminar diciendo que todo lo que le pegas a un punto muy. Entonces ya ves, cuando hago clic en registrarme, lo que está haciendo es cargarse. Se está llamando a esta función, que es solo decir, Establece un retorno tu y configura la lista de Loggins externa para que la lista se inicialice aquí en ella lo obtiene de algún servicio que sabría si hubiéramos configurado algún registro externo las listas no son las que no tenemos, así que esto está vacío, pero el retorno que eres básicamente es como si te levantas, digamos que estás en amazon dot com on que estabas en el discurso del producto. Pero entonces dijo: Oh, Oh, ¿quieres iniciar sesión o quieres registrarte? Perdón. Por lo que haces clic en registrarte mientras estás en la velocidad del producto. Llenas el formulario y tú tu registrado y ellos automáticamente te inician sesión. Pero te devuelven el dedo del pie del discurso del producto. Ese es un propósito fuera de retorno que eres. Ah, así que la devolución que eres me voy a poner contextualmente en base a que sabes dónde está, qué puja te estás registrando a partir de ahora. Entonces fue Así que esta es la página en la que estaba cuando te registraste. El motivo dice, Iguales y todo es solo decir que si no se proporcionan valores y lo hacen, no, eso es todo lo que dice. Entonces si no se proporcionó ningún valor dentro de esta variable, entonces es por defecto. Pero debe ser no. Entonces, tal como está, estamos obteniendo un valor de no retorno. Devolver tu URL en un Loggins externo vacío, arrendado, pero no es no sabe que va a la vista, Así que no está regresando de ti ni nada porque eso se llama que se está ejecutando detrás de la vista de todos modos. No. Cuando miramos nuestra pantalla, estamos viendo bien, tenemos el nombre el apellido la dirección de correo electrónico la contraseña debajo de la Posser confirmada en vemos al lado aquí donde están diciendo eso. OK, ¿recuerdas esa declaración? Si no hubo servicios externos de tala, entonces exhiba eso, señora que no hay agua, agua, agua, lo que sea que se esté exhibiendo ahí también. Entonces, no, puedo seguir adelante y llenar este formulario. Entonces voy a decir usuario de prueba, ese es nombre apellido y fui a ver una prueba en email que com sabe que el email no tiene que ser un legit porque, bueno, bueno, no va a mandar un email de todos modos, en entonces el pastor, voy a usar la misma contraseña p al signo S S W Apple rd one on va a reutilizar eso en. Entonces voy a inscribirme No primero. Entonces voy a cometer un error en el pastoreo y confirmar contraseña. Doy click registrarme. Es validar y ver la confirmación de contraseña que la pasan en la confirmación . No hagas mucho. Andi, si miras hacia atrás a nuestra modelo, verías que ese era el mensaje que se estaba enviando. Entonces en realidad tienen Ah compere gitano t show está bien. Simplemente estoy comparando cualquier valor que esté entrando en esto con el valor que va del dedo, cuál de otra propiedad que en este caso es contraseña. Por lo que nuestra contraseña de propiedad y luego las anotaciones de datos es comparar contraseña, que es esa propiedad con esta propiedad en entonces el Aramis. Debe ser el pastor y pastor de confirmación. No mucho tan bien Ni siquiera se está sometiendo al puesto y saber si es válido o no, es sólo decirme que no hacen mucho. Está bien, en DSO voy a seguir adelante y volver a escribirlo de una manera que mucho sea jabonoso. En San Valorado A Bort ganó de la misma manera. Si no puse en el valor de primer nombre, me está diciendo que es requerido porque sí especificé los datos en notación que dicho requerían . Por lo que todo en el formulario se requiere en DSO en llenar todo el formulario, automáticamente te lo solicitará, básicamente al mismo tiempo. Entonces, a diferencia de los controladores donde tiene dedo del pie, ve a la post acción y luego comprueba si es válido, luego regresa con un mensaje. Es como si estuviera cargando todo el modelo y consumiéndolo y haciéndote saber bajo Fly eso, Hey, estás en el hijo de Violet off Lo que ve la modelo, los valores son bajos para ser Así de primer nombre, ultimo nombre dirección de correo electrónico patrocinada. Todo está en orden. Doy clic en registrarme y luego nos tocamos el siguiente descanso. Los puntos son los siguientes. Punto de ruptura aquí está en el post sobre lo que estamos viendo aquí que bueno, vamos a dar un paso y ver lo que hace tan bien cada línea, el retorno que religioso se establece en base a lo que se está pasando. Entonces viendo si es si no está vacío, que quiero el valor. Si está vacío, entonces simplemente envíalos de vuelta a la página principal bastante. Eso es todo lo que parece. Um, los Loggins externos. Ya sabes que estos ya están vacíos, alguien que sólo se siente otro punto de descanso. Y algo genial es que uno puedes usar F 11 para ir línea por línea, pero realmente no necesito ir a estas dos líneas porque no tienen valor para mí. Entonces puedo establecer otro punto de ruptura en otro lugar, y luego solo puedo presionar cinco, y continuará hasta el siguiente punto de ruptura para que ese IRA amarillo te muestre qué punto de ruptura O ¿qué línea es esa? Por lo que acabo de quitar esos dos y a ninguna parte. En este punto de ruptura, también puedes pasar el cursor sobre la línea y en realidad hacer clic en este icono. Entonces simplemente ejecuta la ejecución a esa línea exacta de todos modos, Así que tenemos múltiples opciones fuera de depurar o destruir tu cancha a medida que avanzas. Pasé por encima de Estado Modelo. Sí hace el check on. Yo sólo voy a hacer un 11 y dice que es válido, así que se mueve hacia abajo en remolque. El oh, aquí está. Entonces el estado modelo es válido es se evalúa a verdad, Entonces lo que hace, es es darme de ah var. Los usuarios de nuestro usuario que es una nueva variable son nuevos objetos. Por lo que viers una palabra de él muy grande que puedes usar para ver. Yo quiero una variable. No sé qué tipo de datos podría ser. Entonces sólo dame una variable. Andi. Asumirá que es apretado en base a lo que se le asigne. Entonces si dije Vier Nome, Andi dijo, igual uno que él sabe que es una inter faceta de cúpula de hierro es igual dedo del pie comillas abiertas sobre poner en una frase que Gnome no es una cuerda. Entonces ese es el apoyo de la palabra Varty. Cuando no estás seguro de qué tipo de datos estás esperando, puedes guardar ira en DA un nombre de variable en. Entonces lo hará. Asumirá ese tipo de objeto posteriormente. Entonces estoy viendo aquí. Ese usuario var es igual a un nuevo usuario de identidad. Andi pasaban en el usarlo en Esto es todo el valor de nombre de usuario termina siendo la dirección de correo electrónico porque está pasando en el nombre de usuario como entrada. Ese correo electrónico en el correo electrónico como entrada ese correo electrónico. Ahora no hay sentido por el nombre de usuario. Si hubieras puesto unos pocos para el nombre de usuario, entonces solo dices usar el nombre es igualdad input dot Cualquiera que sea el campo un email mutuales es igual al pie de entrada que email A menos que cambies ese aviso de nombre de propiedad que está creando el usuario con sólo los que propiedades. Pero teníamos un muerto otras propiedades en el antiguo nombre y apellido. Por lo que necesitamos modificar nuestro tribunal para asegurarnos de que cuando creamos ese usuario de entidad conozca el nombre de usuario. Correo electrónico. Nombre Onda apellido después de hacer todo eso, pasa en lo posible. Es una crea otra variable llamada resultados en. Entonces este es monitor de usuario, Doc. Crea un cantar para que pase en ese objeto de usuario que acabamos de crear vía identidad. Um, el usuario de identidad que pasa en ese objeto así como cualquier contraseña que acabamos de ingresar. Esta función más o menos te quitará el hashing de la contraseña y la inserción en la base de datos en todas esas cosas maravillosas de Dennis. Si resultado que tuvo éxito. Significado, ¿creamos con éxito este usuario en la U en la base de datos, entonces me encanta que se haya creado. Por lo que log EA fue creado bueno en, luego genera el cable. Entonces, ¿recuerdas eso correcto? En ninguna parte haciendo algunas cosas de confirmación de correo electrónico. Entonces vamos a generar ese acorde. Um, y luego hace que los fondos necesarios. Generalmente, es todo ese tribunal, y luego lo envía a la página de correo de confirmación. Entonces esto es un redireccionamiento. Por lo que el pH confirmar encendido. Entonces va de pie involucrado el servicio del centro de correo electrónico, que no hemos configurado en. Envía ese correo electrónico a cualquier correo electrónico que se acaba de proporcionar con el texto confirma tu correo electrónico. Por favor confirme su identidad haciendo clic en el enlace en el cuerpo fuera del correo electrónico que eran asientos del Senado enviando una etiqueta de tobillo con un enlace a lo que acaba de generar como el cordón de confirmación en esta cuadra fuera de cancha Aquí en esta cuadra. Bloque fresco. Aparecer lo siento. Está bien. No, después de que hace todo eso comprueba. Realmente no requiere confirmar, um, um, cuenta Andi. Si lo hace, entonces lee a Eric a la página. Entonces esta es en realidad una opción. Podemos apagar a alguien para mostrarte sostén para apagarlo. Pero aún así voy a configurar el remitente de correo para que podamos revisar Holter. Podemos apagarlo. Entonces se está pegando. ¿ Está encendido nuestro apagado? Si está encendido, entonces queremos redirigir el dedo del pie este discurso, que es otro documento de identidad que nos metimos en el scuffling con esa dirección de correo electrónico en entonces De lo contrario, sólo queremos seguir adelante e iniciar sesión en la persona . Entonces eso es lo que ese bloqueo fuera de cancha tiene que ver el encargado de fichajes con tus incisiones de señas . Si estás iniciando sesión en caminos madereros, esa disfunción de punto de fichaje cargando a este usuario en DSI es persistente, se cae sobre. Después redirigimos dedo del pie donde sea que venías. Si había algún enlace en absoluto asignado ahí, si hay flechas, entonces especificamos las flechas que se están generando en. Al final de todo eso, regresamos página. No, eso fue un bocado. Um, quiero decir, la cancha es bastante sencilla. Es como que es muy Sí, es sencillo. Si solo sigues la secuencia, puedes tipo de ¿Viste esto? Preste atención a los nombres de los objetos y los nombres de las funciones. Se puede amortizar deducir lo que está pasando, y está muerto porque crear un fregadero. Veo usuario. Seguro que puedes descifrar que esto está creando al usuario con la contraseña, ¿no? Pegarse ¿Eso tuvo éxito? ¿ Eso fue exitoso en? Entonces hace lo que sepas que se supone que debe hacer a medida que va. Muy bien, Alguien que siga adelante en los continentes, realidad, solo por error. Pero hice clic en el botón de reproducción esa línea. Entonces si solo hago clic en este botón de reproducción, ya ves, solo salta de pie esa línea, solo se ejecuta a medida que va. Entonces todo lo que se apoya se hace, y si solo quieres ver qué pasa en una línea en particular, simplemente se moverá. Pero luego al final de esto, no está terminado. Ya no es una pausa para mí para depurar. Entonces ves que redirigimos a este discurso, estás viendo más rápido para confirmar tu tiempo de llamada, Justin, para confirmar. Y esto es gracias por confirmar tu correo electrónico. Entonces esa es la siguiente página a la que pasa una vez que eso se confirma en. Entonces quiero salir del barco amarrado, y luego vamos a mirar la base de datos y yo solo estoy interactuar con la tabla y guardarte datos sobre. Entonces vemos que otro. Ah, ya lo tenía abierto. Entonces si ya lo tienes abierto, solo puedes hacer clic en este botón de refrescar aparecer y luego se volverá a ejecutar que seleccione preocupación en re mostrar los datos que hay ahí y vemos aquí sabemos que tenemos a los usuarios. Tenemos prueba ahora. Acabamos de crear, y hemos conocido a Crusader con aviso de que todavía no tenemos nombre ni apellido para nadie. Entonces voy a modificar el tribunal para que se aseguraran que el fusible adicional realmente se empuja a la base de datos. Antes de hacer eso, voy a eliminar usuario de prueba. Yo sólo lo creé. Yo solo lo voy a eliminar para poder reutilizar esa dirección de correo electrónico Onda incorporada también es validación que no puedes reutilizar y dirección de correo electrónico te están usando. Bueno, sí, incluso me ajuste lo están usando si ya existe. Entonces todo fuera, esas validaciones ya están incorporadas. Entonces no, voy a volver a mi ceremonia de afeitar registrada en CSE Schimmel ese archivo CS y luego voy a modificar nuestra creación fuera de la identidad los usuarios son condicionales. Cama en el usuario dice, use el nombre de correo en No, quiero decir coma en cuando diga venga. Estoy viendo todo fuera del otro fusible potencial que vienen de la base de datos también, Pero luego note Identity user no tiene los temores adicionales que creé cuando puse en el empleado. Entonces cuando estoy viendo campos adicionales que o estos son todos los predeterminados no estoy viendo el nombre no viendo el apellido en. Simplemente puedo traer de vuelta la clase de datos de empleado donde usuario identidad extendida, e hice estos combustibles toe que no usé sobre, verdad. Yo los agregué a la mesa, pero no a la clase. Orientación al usuario. Por lo que al crear un nuevo usuario de identidad, realmente no sabe de estos porque se trata de partes de los empleados. Entonces, lo que voy a hacer, entonces, es en lugar de crear un nuevo usuario de identidad, voy a crear un nuevo empleado en luego fuera de curso, voy a tener que traer las inclusiones tras ejecución que se está ejecutando a través el archivo, y estoy viendo nuevos empleados en aviso de correo electrónico de nombre de usuario ni titulares porque los empleados sí saben de la identidad del usuario fusible usándolo en correo electrónico on Cuando presiono coma, uso espacios de control para ver la lista. Entonces voy a notar que estoy viendo todo fuera de la identidad, uso sus campos además, dedo mis campos adicionales para empleados. Entonces voy a decir también, nombre es igual a los puntos de entrada. Nombre el. Entonces voy a ver el apellido es igual a input dot apellido, bien, y entiendo respirar al león para que no lo tenga saliendo demasiado de pantalla. Muy bien, así que esta forma de la cancha un poco. Por lo que ahora tengo un nuevo empleado siendo creado y recordar, empleados extiende identidad usuario soas, faras Cualquier cosa que requiera identidad usuario se preocupa. Empleados se ve igual que usuario de identidad. Entonces estoy creando un nuevo empleado y que estoy pasando al fregadero A. Crear. Y si miras en el si discretas, por encima, creas un fregadero y luego miras lo que requiere, ves que requiere identidad usuario. Estoy pasando a un empleado. Una vez más, se está extendiendo identidad usuario. Por lo que se refiere a crear sumidero ISS. Se está consiguiendo un objeto que se parece suficiente a islas Usuario, tiene más problemas. Voy a quitar mis puntos de descanso en. Ya que sabemos entender lo que está pasando en esta función de enfrentamiento post, voy a hacer otro registro. Algunos sólo inter guardar todos los cambios en. Entonces voy a hacer otro registro y luego vemos la característica completa. No, esta vez no voy a entrar en depuración más como dije antes. Lo que voy a hacer es usar los enlaces aéreos de bro. Por lo que esta flecha de actualización al lado del botón estrella entender hacer clic en que Dawn Iro Andi En primer lugar , necesitas a cualquiera de las chicas Airlink, si aún no lo has hecho así voy a dar clic al panel Erling del bro, que trae este tablero a la izquierda. Bueno, a mis derechos, puede que lo traiga en algún otro lugar de su pantalla. Pero entonces quiero salvarte en, bro. Señor. Ahora, cuando lo hagas en realidad va a lanzar una versión rápida fuera. Se llama Eyes Express, que es una especie de construido en el estudio visual, pero entonces en realidad albergará Ah, escena fuera de tu sitio web sin que estés en D tanto Morneau una vez más, si estás en esto más si haces cualquier ajuste, ¿ podrás rastrear tus cambios de la forma en que puedas Cuando estás en la gente más defensiva, Rick apunta duro. Entonces voy a seguir adelante y registrarme y te voy a reutilizar el mismo usuario de prueba Andi dirección de correo electrónico y los algunos no usan su fin de lo militarista on. Entonces la contraseña es la misma Pastor p at sign assist del org one on. Sólo estoy usando una contraseña porque no quiero tener demasiados pastores y no recuerdo que sabes cuál es cuál. Entonces no, ya veo. Nombre, apellido E militaristas. Ah, no, estoy agregando las adicionales y expectativas de que al hacer clic en registrarme y estoy registrado, cuando miro en la base de datos, debería ver uso un registro con el nombre en el último nombre. Por lo que cuando hago clic en registrarse, pasa a la ilustración de confirmación. Y sí, sabemos todo eso. Hacemos clic aquí, dedo del pie registrarse, entonces no podemos ir y verificar en la base de datos. Voy a traer de vuelta estudio visual Aún no en modo de depuración. Pero voy a ir a mi explorador de objetos en Mira en mi mesa. Creo que ya lo tengo abierto. Sí, sí lo hago. Y luego cuando haga clic, refresque entonces me mostrará el registro para el usuario recién creado, que es usuario de prueba en el nombre. El apellido sí tiene valores. Entonces por cualquier cosa que quisiéramos entrar, solo pudimos, ya sabes, modificar nuestro cordón de registro y asegurarnos de que estamos contando para ello. También notarás que en discriminado ver empleados versus orientación al usuario, por lo que discriminador realmente está atrayendo qué clase se basan clases que se utilizan para crear estos registros de usuario. Por lo que sabe que el usuario de identidad es la clase en esta situación porque esa era una predeterminada . Pero luego lo modificamos y sabemos que estamos creando empleados. ¿ Estás creando registros está en la clase de empleado en lugar de apagado. Por lo que eso significa que en realidad puedes tener diferentes clases por tipo de usuario en. Se puede discriminar fácilmente, que es cual, base en el discriminador. Pero esto es más una clase de escucha que real. Es como para los roles son algo así es sólo ver Oh sí, esta clase base se utilizó para este disco en. Entonces tal vez sea más fácil para ti manejarlo en cantera. No, por los requisitos de inscripción o el requisito de que al finalizar nuestro registro, enviemos una comida. Voy dedo del pie desactivar esa característica yendo dedo del pie el inicio del punto CS Así vino habilitado para mí. No estoy seguro si es incapaz para ti. Si no lo es, entonces está bien. Pero si es por ti y quieres engañar a Lee, entonces solo podemos ver que estamos quitando esta línea. Entonces cuando estamos sentados fuera de los servicios de identidades por defecto que en la identidad por defecto, identidad usuario en usted puede cambiar de esta manera. No tienes que hacerlo y yo quiero. Pero podríamos cambiar esto el empleado o cualquier otra clase abstracta, pero dejo los valores por defecto a los predeterminados. Correcto. Pero luego por las opciones. No quiero estas opciones. Se pueden agregar muchas otras opciones. Simplemente puedes decir comas opciones puntos en. Entonces te mostrarán como las otras opciones que están disponibles para ti. Perdón. Uh, bueno, en realidad, tendría que refraccionar la cancha. Perdón. Por lo que podrías tener múltiples opciones. Acabas de empezar la expresión Lambda Options en el desnudo. Cotización abierta. Perdón. Brisa. La carrera está abierta y cercana. Después con cada opción, provoca las opciones de semi colon y Anisa encendidas. Después ves un punto y luego podrías ver las otras opciones que puedes tomar y especificar una fuerza de contraseña desde aquí. Ya sabes, si quieres requerir mayúsculas, requiere minúsculas, requiere caracteres únicos o simplemente querías ser simple. Eso se podría hacer cumplir desde este nivel. Podrías establecer el tiempo predeterminado sobre el número de avena de Tarlac apagado A veces. Ya sabes el que podría limitar tantas cosas desde este punto o habilitar tantas cosas desde este punto. Por lo que una de las cosas que está habilitada es la opción de tener la cuenta confirmada requiere es verdadera. Eso significa que requieren que confirmen que están pasando por el correo electrónico. Yo sólo voy a desactivar que hemos hecho un poco fuera de trabajo en, así que voy a desactivar eso encendido. No vamos a estar seguros de que el servicio de correo electrónico al menos no sé Así que no. Cuando alguien se registra, no necesita volver a confirmar su dirección de correo electrónico en DSO. Probablemente tengamos que volver a nuestro registro de DCI y algo aún para reflejar ese gen . Entonces tenemos aquí que la persona está lista agitada. Entonces tenemos que estamos enviando el correo electrónico. Entonces si desactivamos la necesidad del correo electrónico de lo que realmente no necesitamos nada fuera de esta escuela, de hecho, la única llamada que tiene que suceder después de que la persona haya cabildeo exitosamente es el hecho que los vamos a firmar y luego los redirige porque todo por encima que va aparte de en lo más largo puesto, son los ciegos más largos. Pero todo bajo más tiempo está orientado a enviar ese correo electrónico, redireccionarlos a la página, que les hagan clic en algo para confirmar. Todo eso desaparece si solo estamos permitiendo que la persona se registre. Entonces voy a apoderarme de toda esa cuadra fuera de cancha. Andi, solo me voy a llevar toda esta brisa recta. Lo que va a pasar es que cuando alguien se ha registrado con éxito simplemente se iniciaron en, luego regresan a sus repeticiones de agua había encendido. Veo que sé que el registro, um, um, bloquear fuera de cancha se ve lo más simple Alguien dedo probar la sal y fui a registrarme de nuevo. Está bien, así que estoy en el proceso fuera de sentir todo este formulario y en realidad intenté usar la misma dirección de correo electrónico, y me está diciendo que ya está tomado. Entonces una vez más, esa validación está ahí para, como, el nombre de usuario y, bueno, esto está en usarlo. No necesariamente en el correo electrónico, pero lo dejo para más tarde, así que veré una prueba en test dot com, y usamos la CMP en el signo S W O R d uno el at sign assist del ya uno, y luego hacemos clic en registrarse y luego nos observar que vamos estrechos dedo del pie permitido el en estados un redirecciona a la página de inicio en Ya no estamos siendo así. No hubo necesidad de registro a la confirmación. Simplemente nos registramos y luego estamos logueados. Entonces eso es todo lo que podemos hacer para simplificar nuestra experiencia de personalización o registro. Todo el mundo va a querer una experiencia diferente para sus usuarios. 25. Revisa la funcionalidad de la sesión de la sesión de: Oigan, chicos, en este video, sólo vamos a estar buscando a través del log in funcional. No vamos a estar haciendo ninguna modificación ni ningún trabajo demasiado. Yo solo quiero que tengamos una apreciación de lo que realmente es un proceso de inicio de sesión. No, estoy seguro Way todos usan sistemas. Es decir, probablemente hayas iniciado sesión en alguna forma de sistema para poder consumir este mismo video en DSO Estás familiarizado con el hecho de que para iniciar sesión en un sistema tienes que proporcionar algunos nombres, algunos únicos, identificar aire para te encendido, entonces proporcione una contraseña que, bueno, si cualquiera de las dos está en tarjetas, rechazarán tus intentos de obtener acceso al sistema. Ahora, en términos más simples o en términos, hablando de, ya sabes, todo el flujo entre la forma y la base de datos y la lógica intermedia Lo que realmente pasa es que pones un nombre que pones en un contraseña, haces clic, ingresa algo recopila tu información, luego comprueba. Si ese nombre en esta contraseña existe en los datos abejas. Y entonces eso es lo que queremos ver exactamente entero, um, um, nuestra aplicación, todo nuestro núcleo de red oscura en realidad nos ayuda a alcanzar ese tipo de funcionalidad. Por lo que ya estoy amando aquí como prueba esa prueba en común con el Click Lago. Y luego estamos de vuelta a la plaza uno donde tenemos registro y registro. Por lo que ya tenemos unos cuantos usuarios en el sistema. Simplemente voy a dar clic en iniciar sesión luego en nuestra pantalla de inicio de sesión. Nos están pidiendo nuestro correo electrónico y pastor, y una vez más tenemos acceso al log in peace para que podamos personalizar esto. Podemos quitar esto si queremos. Podemos cambiar el etiquetado. Podemos hacer nuestros cuadros de texto botones más grandes, más grandes. Sea lo que sea que queramos hacer. Podemos hacer pero por no, no estoy molestando demasiado la estética. Simplemente me estoy centrando en la funcionalidad. Entonces cuando proporcionamos un correo electrónico y fui a ver una prueba un punto com de prueba, luego fui a evitar un passer duquesa p al firmado S S W O R d uno on. Después hago clic en iniciar sesión en lo que va a pasar, y acabo de llamar a la cancha. No estoy en modo debug, pero entiendo para traer a la cancha y miramos juntos a nuestra en la función. Entonces estoy encontrando blogueando y mirando la cancha detrás o los Rayos son la cancha, el expediente de la corte para los Rayos de PGE. Entonces solo voy a abrir este expediente judicial y luego solo revisaremos lo que pasa juntos. Entonces vemos que tenemos un modelo. Está heredando del modelo de página donde está la inicialización de la guerra, y luego las cosas de inyección que suceden ahí arriba tenemos o modelo de entrada. Por lo que están tratando de mantener el mismo nombre mientras cruzan. No hay nada especial en el modelo de entrada de nombres. Está tratando de mantener el mismo nombre para que no se vea, ya sabes, demasiado confuso. Pero podría llamar a este modelo de tala y otro en la PGA Call. Lanzó una modelo, etcétera, etcétera, pero bien concedida, no se puede hacer eso porque ya tienen eso. Entonces solo estoy señalando, o que el modelo use off input tanto en el inicio de sesión como en la página de registro. No es ninguna palabra clave, Percy. Es sólo que eso es lo que llaman la clase. Por lo que tenemos nuestros modelos y nuestras propiedades que se están deshuesando al formulario y luego dentro del modelo de entrada vemos aquí que tenemos ah, campo para correo electrónico, que se requiere, y es off type email address, lo que significa que debe ser formato de dirección de correo electrónico. También tenemos nuestra contraseña requerida, y luego tenemos algo que es un lingote para Recuérdame o no en conseguirlo renderiza la página más o menos. Eso es lo que hace. Sí, dice Return. Estás si no se trata de mensajes de visualización RMT si es necesario configurar. El retorno Euro Sino tiff, Si algo, para que puedas tener un proceso de registro limpio, intenta borrar cualquier cookies que pudiera haber ahí y luego en el poste. Ahí es donde realmente se hace el trabajo. Por lo que una vez que haga clic, presente o podría obstruir en el formulario. Desencadena la post acción, que luego establece el retorno. You Earl valida el estado fuera de los datos. Esa es la validez fuera de los datos que se están enviando y luego pasa a ver resultados es igual a firmar manager acoplado contraseña firmando un fregadero por lo que posturado firma va a pasar y solo puedes pasar el cursor sobre la función y luego obtienes un insinuación en cuanto a lo que está requiriendo. Por lo que realmente tranquilo requiere el nombre de usuario en la contraseña para iniciar sesión. Entonces está viendo Dame. Yo uso el nombre, dame una contraseña, dame un matón y dame un lingote. Eso es lo que está pidiendo Así que estamos pasando el correo porque estamos usando el correo como nombre de usuario, al menos por defecto. Eso es lo que es. Entonces, a menos que cambiemos su formulario bajo registro y cambiemos la lógica y no necesitamos cambiar esto sino entrada de correo electrónico, no correo electrónico en entrada la contraseña en entonces están preguntando, ¿Quieres recordarme? Entonces eso es lo que quieren decir con persiste que persista la información de esta persona incluso después de que cierran el navegador. En caso de que regresen y aún estén conectados. Entonces, a menos que pienses, recuérdame bien, lo que sea que decidas eso se pone en marcha. Entonces se especie apagado dice que el bloqueo al fracaso es cierto. Entonces eso significa que si alguien viene y transfiere, inicia sesión o alguna vez intento fallido de registro y lo bloquea bien. Entonces esta función realmente toma tu información hashes dis posturado porque recuerda, nuestro pastor no almacena la forma en que la deletreamos o la identificaríamos en un pedazo de papel que no es tan segura base de datos. Por lo que esta función se encarga de transformar los datos en remolque. Qué reforma es necesaria, Comprobarlo contra los registros en la base de datos en, luego ver sí o no en. Entonces eso es lo que se almacena. Por lo que los resultados se almacenan y tiene una bandera. ¿ Fue exitoso o no? Entonces si tuvo éxito, eso significa que a la persona le encantaba estar ahí. Sin dedo del pie redirigido la página de inicio. Muy bien, entonces. Si el si lo sabes, basado en el todo sale de los resultados, entonces se pueden tomar diferentes acciones, y eso es más o menos el dedo del pie iniciando sesión. Entonces, más adelante, realmente tienen esta función en los puestos y la verificación. Correo electrónico, decir, Um, esto es similar siempre se ve en la página de registro, donde está enviando alguna verificación para confirmar tus conos. Si intentas iniciar sesión antes de que hayas confirmado sus conos, entonces podrían activar esto. Entonces todos esos están ahí para su uso fuera de curso podemos tomar o lo que no queremos en personalizar lo que queremos, sabes, en una partícula de distancia Pero la fundación ya está dicha Se entiende confirmado que el log in funciona con sólo hacer clic en iniciar sesión. Entonces la experiencia es que nos redirigen. Tore la página de inicio el. Podemos ver que claramente estamos logueados porque nos están identificando por nuestro nombre de usuario o , en este caso, la dirección de correo electrónico. Cualquiera que sea el valor almacenado en la sección de nombre de usuario, eso es lo que tiene el Norte. Si hago clic, entonces vamos sobre el dedo del pie, manejamos y luego manejamos aloes una configuración o perfil. Por lo que todos los de nuevo, nuestras páginas a las que hemos accedido oh en sabemos que perfil tiene mucho más en ello que solo usar un nombre y número de teléfono, no tu Continuar usando el nombre derecho se liberan por defecto. Están diciendo que no puedes cambiar tu uso de él, pero podemos cambiar todos esos distintos. Acabamos de ir a perfil sobre mí. Simplemente encuéntralo para que esté en gestión. Entonces tenemos que entrar a administrar y luego puedo encontrar la vista del perfil, que lo siento, tal vez busco lo equivocado, así que es slash money slash index son así que realmente es una barra de cono manejar on recuerda que el primer discurso que harías Señor suele ser Índice. Entonces sólo tengo que encontrar el archivo índice. Ahí vamos. Y ese es nuestro perfil. Vemos o usándolo en el número completo on si entramos a la cancha atrás. Entonces si quisiéramos el perfil completo fuera del usuario, entonces tendríamos dedo del pie puesto en más propiedades dentro del modelo que se está deshuesando a la vista y luego un aún más bajo, en realidad, ya sabes, impar se restan del perfil de la persona melocotón sobre lo que pueden y no pueden cambiar. Está bien, y mira aquí donde ponen en la bandera. Desactivar. Entonces eso es literalmente todo lo que deshabilita esa entrada por usarlo. Acaban de decir, Discapacitados. Yo puedo quitarle eso. Entonces cargo al usuario para poder cambiar su perfil son cambiantes nombre de usuario. Si necesitan dedo del pie en, entonces en post, lo que significa que esta persona ha presentado algún cambio. Entonces podemos poner en los tribunales para asegurarnos de que estamos contabilizando cualquier modificación que puedan haber hecho a su perfil. Ahora, como acto final, solo te voy a guiar por lo que pasa o cómo se ve la cancha para la cabecera . Seis en. De acuerdo, así que esto está usando la página Leo parecía diferente a la que tengo. Yo sólo voy a volver atrás y volver de nuevo. Onda, solo te voy a guiar por el núcleo que gobierna lo que sucede en este apartado. Cuando cuando somos amados en lo que vemos y cuando somos amados, todo lo que vemos en que está disponible dentro de las vistas compartidas entienden el colapso del dedo del pie, son áreas por completo y bajan a vistas que compartidas en. Entonces podemos mirar por encima de la tala parcial, por lo que son largos, imparciales. Básicamente, hereda el fichaje de CME y utiliza un manager que hemos visto en. Entonces sólo dicen, si lijado gerente, eso está firmado. Entonces esto es como un cheque para ver es su actual es que están en sesión de usuario activa en este momento . Si hay una sesión de usuario activa que significa que alguien ha iniciado sesión, entonces quiero mostrar en barra suficiente Ah, enlaza el dedo del pie el gestionar en el texto. Hola al usuario dot Identidad ese nombre. Entonces sea cual sea el nombre de usuario ¿Cuál es la razón la columna de nombre de usuario fuera de este usuario que es amado ser Eso es lo que se imprimirá como resultado de eso Así puedo cambiar todo esto si no quiero saludar. Solo quería decir el nombre de usuario. Eso está bien. Um, y también está el botón de cabra ley que cuando hacemos clic en lock, vamos a recién publicado logo Pass, que Termini su decisión sobre si no hay ninguno. Entonces esto es si hay mucho de la en sesión on, entonces de la otra. Están diciendo que Dame el enlace de registro y dame el enlace de registro encendido. Eso es básicamente todo lo que hay para iniciar sesión. Por lo que una vez más, puedes personalizar tu experiencia si necesitas alguna ayuda. Sabes que tienes una idea en particular en mente y no estás seguro. Exactamente. Hold ejecutado. Siéntete libre de dejarme una línea y ser feliz de ayudar 26. Añade roles defectos y usuarios de Admin: Oigan, chicos, en este video, vamos a configurar algunos valores por defecto, algunas reglas por defecto. Onda default, usuario administrador. El punto de tener estos valores predeterminados sería que cuando tengamos nuestra aplicación ahí ciertas reglas que van a estar ahí en queremos asegurarnos de que al menos un usuario se va a crear porque si terminamos de desarrollar aquí y luego lo movemos a un ambiente fresco con nuestra primera base de datos. El punto es que cuando se inicia la aplicación en uso para crear ciertas cosas en la parte superior en la base de datos para que bueno, podamos tener alguna autenticación y alguien con una funcionalidad de función por lo que dos fuera de estas reglas serán administrador y emplear año de edad el. Además, queremos asegurarnos de que hayamos ganado al menos un usuario administrativo porque, bueno, bueno, cuando todos se registren, deben registrarse bajo una regla de empleado. No, sólo un recordatorio rápido. Nuestro papel define básicamente quién eres en el sistema. ¿ Qué es lo que se puede hacer así un administrador de lo que implica ese rol, o ese nombre de rol implica que esta persona debe ser capaz de hacer Cada una de las cosas son, ya sabes, cosas administrativas en el sistema, Usuario de Onda. Bueno, sabemos lo que es un usuario. Utilizo un personal louds in, Así que la regla identifica lo que este usuario puede y no puede hacer en el sistema. Por lo que una vez más, queremos tener en los empleados y un rol de administrador en también al menos un usuario administrativo . Entonces para empezar, vamos a saltar al estudio visual on. Entonces entraremos a nuestra clase de inicio. Entonces vamos por inicio de esa serie y luego tenemos que hacer algunas modificaciones aquí. Entonces lo que vamos a hacer, él configuró lo que llamamos una semilla de clase semilla están sembrando es algo que es un término que se usa para describir lo que le haces a una base de datos cuando configuras los valores predeterminados. Entonces al insertar datos predeterminados en la base de datos, estamos llamando a eso sembrando la base de datos o poniendo cosas sin realmente pasar por los movimientos fuera del sistema. Entonces estamos forzando datos al sistema, y eso es lo que vamos a configurar ahora. La primera modificación que queremos hacer es en horas configurar la función de servicios. Queremos encontrar la línea. Eso es un servicio. ¿ Esa es nuestra identidad por defecto sobre papá en un trabajo diferente? Por lo que necesitamos agregar una mentira adicional a esto. Yo sólo estoy poniendo algo de espacio. Entonces después de la parte donde agrega identidad por defecto y dice Identity user, vamos a la siguiente línea y luego digo punto en entonces lo que quiero agregar son reglas. Por lo que voy a añadir alguna representación. Cuatro reglas. Entonces digo agregar reglas. Aan den. La clase predeterminada para estaba saliendo de la identidad son las reglas de identidad. Lo siento las reglas de identidad y luego abro y cierro paréntesis el. Entonces puede que tenga que incluir algo aquí para deshacerme de esa línea roja. En realidad, lo que tengo aquí es un error ortográfico. Entonces es una regla de entidad, no reglas de identidad. Perdón por eso. Por lo que tenemos en entidad Usuario y tenemos regla de identidad. Muy bien, así que solo agregamos eso a los servicios cuando estamos iniciando o por defecto en el motor. Sólo estamos asegurándonos de que también se inicien las reglas. Entonces, habiendo hecho eso, vamos a pasar a nuestra función de configuración on entender, a respirar estas líneas porque voy a estar sumando otras líneas a este parlamento. Una lista de lo que estoy agregando. El 1er 1 me acaba de ir después de fin. Si pongo coma, entonces voy a agregar administrador de usuarios y luego voy a abrir mi bajo corchetes. Y en esto estoy pasando las clases de identidad para usuarios en las que por defecto, estoy usando Identity User. Entonces me voy a reutilizar el usuario de identidad aquí, así que sea cual sea el valor predeterminado. Entonces si estás más avanzado de lo que probablemente tendrías cambios en empleado o en cualquier clase de datos que estés usando toe over ready, entonces eso está bien. Pero sea cual sea la clase por la que estás pasando, solo reutilicemos esa clase en la que estoy usando Identity User. Voy a llamar a este gestor de usuarios y luego me agoté Vamos, entonces la siguiente línea va a ser rodar. Mi naturaleza ha estado bajo corchetes y entonces soy tastic pasando en reglas de identidad y solo copiar y pegar eso. Entonces este va a ser gerente de reglas. Muy bien, entonces tenemos estos dos nuevos parámetros dentro de off o configurar la función. No, Lo que tenemos que hacer habiendo terminado esto está configurado. Ah, voy a configurar una clase estática, nuestra clase que se va a llamar adentro off o configurar función para que pudiéramos establecer aquí la funcionalidad. Pero es una buena práctica mantener esta cancha lo más limpia posible. Entonces cualquier elevación fuerte o cualquier cable adicional que no sea necesariamente simplemente inicialización de desvanecer . Probablemente deberías poner en otro lugar y luego simplemente llamarlo en esto en esta función o en esta fuente, empezar sobre archivo CS. Entonces entiendo para seguir adelante y pasar a mi proyecto en Solution Explorer, ¿ verdad? Haga clic en mi proyecto, y voy a añadir una clase el. Yo lo voy a llamar datos semilla. Entonces crea esos datos de semilla de clase, Muy bien, Así que no al tanto de nuestra clase, lo primero que voy a hacer con esta clase es hacerla estática. Entonces en C agudo, cuando nos hacemos una clase estática en medios que podemos llamar a los elementos en el castillo. Las propiedades son las funciones sin tener que inicializar un objeto fuera de esta clase. Entonces voy a exhibir eso en unos cuantos. ¿ Qué exactamente? Es decir, pero vamos a hacerlo estático encendido entonces voy a tener, ah, estática pública. Entonces una vez que las clases estáticas, entonces todo lo demás dentro necesita ser estático. Entonces si tienes una formación, tiene que iniciarse. Tenemos un impuesto predial, estático, pero estoy llamando a esta función semilla on. Entonces, dentro de los parámetros para esto estoy tomando galleta. Los mismos dos permitieron que acabo de montar en startups. Entiende, Koba, y cópialos. Así que ten al administrador de usuarios en el roll manager. Simplemente los copio como los parámetros dentro de la función de semilla encendida. Entonces me fui dedo del pie abierto y cerrar varios y luego fuera de curso, tengo que seguir adelante e incluir cualquier espacio de nombre que falte. Entonces solo estoy para controlar el punto en traer sobre todos los espacios de nombres faltantes en. Ahí vamos. Está bien, entonces eso es lo que una función. Pero entonces tengo otras dos funciones alguien dedo del pie tiene una. Eso es un usuario semilla y uno que dice reglas de semilla. Por lo que realmente estoy en copiar esta línea porque no voy a teclearlo dicho desde cero. Pero te explicaré cuáles son exactamente los cambios. Por lo que este no se recuerda usuarios semilla en este solo va a ver el parámetro para los gestores de usuarios. Solo estoy quitando ese monitor de rol del original y abrimos y cerramos. Prepárese. Entonces sólo puedo repetir ese paso a continuación. Pero a éste se le llama rollitos de semillas. Entonces éste no cuenta con el administrador de usuarios. Pero éste tiene el rol manager. Por lo que al final de este ejercicio, debes tener una canción de forma llamada Seed, que tiene, con usuarios manager y perímetros de administrador de reglas uno llamado usuarios semilla. cual sólo toma el permiso de administrador de usuario er en una llamada rosa de semilla. Eso sólo toma el parámetro roles. Está bien, no, empecemos con la puesta en marcha de nuestras reglas. Entonces lo estoy haciendo de esta manera porque queremos que las reglas existan ante el usuario. Entonces en el día, ese es el flujo lógico. Entonces solo lo estoy haciendo como un flujo lógico. Esto no se requiere realmente para ir en esta dirección. Sólo estoy haciendo Es un flujo lógico. Por lo tanto, armémonos o levantémonos. Por lo que ya identificamos que necesitamos usuarios admin y usuarios admin serán los que agreguen quitar tipos de licencia que dejan asignaciones, Um, aprueban o rechazan las solicitudes de licencia y tal en Entonces nuestros empleados serán los que solo inicia sesión y solicita permiso y tal vez mira su perfil y no ser sus propios perfiles, cosas así. Por lo que necesitamos reglas una vez más, administrador sobre los empleados. Entonces lo primero que quiero hacer ves si en quiero comprobar si existe la regla, porque si la regla existe, entonces no necesito crearla. Y después de la primera vez, el papel va a existir. Pero no es que me vaya a esto. Que esta clase o escriba esto anotado, lo ponga en el arranque, lo haga, cree las reglas y luego lo saque de la puesta en marcha. Voy a dejarlo en la puesta en marcha. Y eso significa que si lo ejecuto 20 veces, no quiero que esta regla se cree 20 veces. Entonces lo que voy a decir es, si la regla no existe, entonces creado bien, así que cada vez que corre, sólo va a decir: Oh, ¿ no está bien Rolexes? No me importa. Entonces si no significa, tal vez sea una base de datos fresca. Ah, sistema fresco ahí. No hay nada en la base de datos inicialmente. Entonces va a seguir adelante y crearlo. Entonces eso es lo que eso es una siembra pobre. Y cuando estás en tu núcleo correctamente, puedes, ya sabes, seguir, eludir muchas redundancias y errores. Entonces donde Winter en esto correctamente y ver si no roll manager. Un gestor de reglas de aviso aquí es el objeto que pasaba en el gestor de reglas de parámetros acoplado. Iban a usar una función de administrador de reglas. Entonces vemos que tenemos una serie de funciones. ¿ Qué? El que me interesa para esta operación es roll existe. Está bien, entonces está viendo, si no rollar existe que un fregadero y entonces voy a abrir mis paréntesis en entonces el parámetro que estoy pasando. Ya sabes, el valor al pasar a esta función es ah, string con Bueno, el nombre apagado, el off the rules. Estoy comprobando si el administrador del roll ad existe encendido, entonces vamos a meter al matón en la bala real. Y para esto tengo que decir no resultado. Está bien, entonces todo esto va a devolver un booleano así diciendo: ¿Existe? ¿ Sí o no? Pero entonces estoy obligando a no. Sólo estoy revisando, si no es así. Si no existe, entonces la acción que pretendo tomar es crear una nueva regla. Alguien para salvar la ira. El rol es igual a nuevo en la regla de identidad DSI. Por lo que el ciclo cuando estamos creando, utilizo un usuario de identidad Web. Cuando estamos creando un rol, tenemos rollo de identidad, y luego voy a inicializar este nuevo objeto pasando un nombre en el nombre va a ser igual del pie el rol que me interesa crear, que es administradores. Nombre es igual a administrador y luego usa un punto y coma. Entonces estoy revisando. Si no existe, Entonces quiero crear un nuevo objeto de rol llamado Administrador, que eliminó ese cínico. Y así estoy creando un nuevo rol llamado Administrador. Ese es sólo el objeto. Ahora necesito realmente accionar la creación. Entonces la acción, la creación que voy a ver a roll manager dots crear, ¿te parece? Y entonces estoy pasando en papel en eso lo hace. Entonces básicamente es decir que si el rol administrador no existe, entonces crea su viejo en, entonces voy a hacer lo mismo, así que sólo voy a copiar este bloque en. Yo voy a hacer lo mismo por la rosa de los empleados. Por lo que ya hace el cheque. Si tomas esto, solo estoy cambiando esta vez de administrador a empleados en. Voy a asegurarme de que creo un rol llamado empleados on. Nosotros lo cuidamos así como así. Entonces no cuando se ejecuta, cuando se llama a este bloque fuera de la cancha o disfunción en la puesta en marcha, va a ver si no hay ningún administrador de roll-call creado. Si se conoce llamado Empleados creados en para tantas reglas como necesitemos, podemos hacer bloques similares fuera de la cancha. No, necesito ver al usuario administrador. Entonces voy a escribir otra vez una cuadra similar fuera de cancha. Voy a ver si user manager recuerdo usar managers el objeto que usamos paso y departamento er algo si user manager acoplado en esta vez estoy usando una función diferente, así que no quiero ver existe. Pero voy a tratar de encontrar por. Bueno, fui a tratar de encontrar por nombre. Está bien, así que encuentra mi nombre en Utilizan el nombre que le estoy dando a mi defecto. Admin es literalmente sólo a mí. Entonces cualquier usuario admin, los usuarios admin predeterminados solo quieren porque Acme on, Entonces voy a tener que decir ese resultado. Pero entonces los resultados esta vez no me están dando un matón. Y en realidad está devolviendo al usuario. Entonces para comprobar, si tengo el usuario no lo son. Yo sólo voy a decir si el resultado es no. Por lo que el 1er 1 estaba devolviendo un lingote. Esta vez me estoy metiendo en objetos bajo viendo ¿Obtuve un objeto completo o la pierna? Objeto eterno. Entonces si obtuve un objeto nulo, eso significa que el nombre no toma esto o no existe ningún usuario con ese nombre. Entonces voy a dedo guardar nuestro usuario es igualdad nueva en que estamos creando. Utilizo este usuario de identidad divertido luego T usuario Andi, abre mis llaves en Entonces estoy inicializando el nombre de usuario. Bueno, yo todavía gasté la identidad equivocadamente. Está bien, así que déjame intentarlo otra vez. Entonces si controlaba el espacio ahora obtengo mi inteligencia. Puedo ver nombre de usuario es igual a en estoy sentado el nombre de usuario toe admisión en. Entonces voy a establecer también el correo electrónico Así que el correo electrónico es igual a ID Mean en host local, algunos arbitrarios. Tenía correo electrónico malo. decir, Esdecir,no lo es, ya sabes, es ah, usuario genérico. Entonces ese es mi objeto. Y entonces puedo cerrar o disculparme, usar el cínico y y terminar. Entonces necesito crearlos en realidad. Entonces voy a guardar nuestros resultados. Es igual dedo del pie usuario manager puntos crea usted piensa? Andi, si recuerdas algo de o proceso de registro cuando estamos creando un fregadero, necesitamos pasar un usuario y una contraseña. Entonces voy a pasar el objeto de usuario que acabamos de crear, uh, que es identidad usuario. Se puede ver llanta iluminada y luego se dice coma encendido. Entonces estamos esperando alguna cuerda. Eso van a ser los transeúntes estoy realmente, realmente sólo voy a mantener la pasta es simple a la derecha, la palabra contraseña con un p común así que agrega mean on password on, entonces soy yo quiero los resultados. Voy a decir resultados de punto. Entonces estamos viendo almacenar los resultados de esta operación por favor. En esta variable luego de que lo pusimos ahí fuera de la operación. No, tenemos que revisar. ¿ Fue exitoso? No son así voy a ver si resultado Eso ha tenido éxito. Entonces queremos que Toe añada a este usuario a las reglas. Entonces déjenme bajar la velocidad y recapitular un poco. Entonces entiendes exactamente lo que está pasando donde comprobar si hay algún usuario por el administrador de nombre de usuario . Si algo vuelve entonces esto es falso porque estamos revisando para ver si es no. Entonces si algo viene pero entonces no se sabe. Entonces obviamente no pasa nada aquí. Si nada vuelve y obtenemos no, entonces queremos inicializar son crear un objeto off type identity user llamado User on. Estamos pasando el uso de él admin en alguna dirección de correo electrónico para este usuario y ellos iban a intentar crear este usuario. Ahora si este usuario fue creado con éxito con el nombre de usuario apagado, agrégueme en este caso y un passer fuera de curso bastardo. Esto sólo soy yo escribiendo y tratando de mantenerlo simple. Probablemente pongas otros valores, pero el punto es, estamos revisando para ver si esto fue exitoso. Entonces si esto fue exitoso y encontramos que están basando. Si resultado que tuvo éxito, entonces necesitamos asignar a este usuario toe nuestro rol porque acabamos de crear al usuario. Y hemos visto que podemos crear usuarios. Pero no había asociación con una regla, al menos no antes. No. Entonces, no, estoy creando este usuario en. Voy a asegurarme de que al crear este usuario consiga un Scient o alguien que diga, gestor de usuarios punto impar para gobernar, um on. Entonces estoy agregando este usuario, por lo que pasa el objeto de usuario en el rol que estoy agregando problemas. Itto es administrador va con el administrador, desplaza el curso. Quieres asegurarte de escribir esta palabra correctamente porque está buscando ese nombre. No va a intentar crear una regla que quepa lo que pongas ahí dentro. Entonces si no hay mundo por el nombre administrador, probablemente para conseguir una flecha, Pero sabemos que la forma en que el invierno en la cancha es ese administrador más existe antes se cree el usuario, ¿ verdad? Entonces después de eso, solo vemos pesos de puntos, que básicamente va a solo aplicación. Asegúrate de que esto termine antes de que pueda pasar mucho más. Muy bien, Aan den, sabe que tenemos son dos funciones configuradas. Tenemos que ponerlos dentro de cuatro función principal, que es lo que se va a llamar, que luego va a llamar a estos dos. Por lo que una vez más, los roles más existen antes de que el usuario sea creado. Entonces estoy viendo reglas de semillas primero. Aan den. Bueno, espera un parámetro de tipo role manager sobre el valor variable, mayormente gerente de carretera, que habríamos definido en este, um, parámetro antes. No. Por lo que sólo voy a pasar los rollos semilla de valor y pasado en Roll Manager tiene objeto. Y luego en el mar Rose, voy a decir usuarios de semillas on. Entonces estoy pasando en el valor usado su manager. No. Con todo eso hecho, tenemos un paso más, que es para mí el punto de inicio CS Llamar a esa función sobre. Bueno, obviamente en startup. Por lo que necesitamos agregar la cancha que causan esa función son esas funciones activadas en nuestro archivo de inicio y eso se hará dentro de la función conficker encendida. Lo haremos después de configurarnos, o los servicios de autenticación y autorización ya están funcionando. Mis thuds encendidos entonces lo que haré es llamar a la clase estática. Entonces una vez más, una clase estática le permite simplemente llamarla para que pueda decir semilla, es, uh, que es el nombre de la clase estática en. Entonces ver atracado. Y entonces tengo acceso a todas las funciones que puedo porque lo que realmente sólo quiero semilla. De hecho, lo que voy a hacer es yo estos privados. Por lo que acabo de hacer las dos funciones a las que no necesito llamar desde ningún otro lugar privadas. Entonces me refiero a usuarios de semillas y semilla rosa privada Andi Bueno, semilla es pública. Entonces cuando llame semilla sabrá que tiene acceso a semilla surgió y usuarios de semillas. Por lo que acabo de llamar a semilla aan den como parámetros. Está esperando usuario manager y rollado manager, y tenemos acceso a los de nuestra firma materialistas. En nuestra función de configuración, soldados más allá de la herramienta monitorean objetos que está esperando. Por lo que ella es sólo una gran cadena de margarita. Por lo que sólo les inyectamos hasta el departamento un listado aquí para que sepamos que podemos tener acceso por lo que ellos encendidos entonces estamos Daisy, encadenándolos a nuestra función estática que configuramos, que es entonces a su vez va a pasarlos a las funciones que los requieran. Ahora, la expectativa cuando ejecuto en lanzamiento de bonos mi aplicación es que cuando entro a la base de datos, debería estar viendo dos reglas. Y debería estar viendo yo usuario llamó admin Onda al menos una entrada en la tabla de roles de usuario mostrando que admin está asignado al particularize Todo bien. Entonces entré en modo de depuración y recibí este error y está viendo algo sobre mí iniciando otra operación en la misma amenaza. Entonces voy a salir del barco amarrado. Voy a refraccionar la cancha de la misma. En cambio voy a asignar los resultados de variable. Entonces solo voy a guardar nuestros resultados es igual a on. Entonces voy a decir, crear Ihsan cruel en, luego obtener los resultados. Entonces de la misma manera. En realidad te das cuenta de que a veces es más estable cuando solo al resultado, o obtienes el resultado, aunque no tengas que usarlo después. Entonces sólo vamos a hacer con eso puesto. intentaremos de nuevo. Andi mide sobre grado de éxito que así el factor es que Roe manager no cree un sumidero pasando en papel que estaba instando un poco fuera de cancha. No, estoy viendo virus viejo es igual a ese mismo block off court dot resultados alguien toe ejecutar una vez más y vamos a ver. Muy bien, así que esta vez o aplicación se lanzó con éxito. Pero vamos a verificar si qué para los datos se creó Algunos volviendo a mi proyecto entrando en mi explorador de objetos Escalon on on. Entonces voy a expandirme. Bueno, usuarios de cacahuete. En primer lugar, Andi, pienso en la parte superior Abrir ya. Así que sólo un rápido re fresco en. Teníamos a los usuarios. Ahora tenemos tres. Andi, estoy aquí mirándolos y veo que ese medio no fue creado, son Déjame que algo probablemente salió mal con la cancha y podemos volver atrás. Pero no sólo voy a comprobar si se crearon las reglas, sin embargo, sin embargo, Así que solo miro en el ESPN, es Rose Stabler on. Bueno, está bien, así que al menos tenemos a nuestro administrador y empleados reglas de rol tan bien, si el usuario no fue creado y estoy seguro que no se creó el usuario y la Asociación de Reglas, así que no me molestaré en entrar ahí pero ven fuera del modo libro en Podemos volver a revisar nuestro beat semilla Ah, configuración nuestros chicos. Por lo que puse un punto de ruptura dentro de la función de usuarios semilla en Ben. Ejecuté la aplicación de nuevo en hizo un paso a través. Entonces usando F endeavor, paso por cada línea fuera de cancha y veo el error fuera de mis caminos. El problema es con la contraseña. Entonces los resultados. Si vuelvo sobre los resultados, entonces me va a decir que ese objeto me está diciendo que falló porque el pastor requiere no alfanumérico. Entonces estaba intentando un par de malestar para poner un simple transeúnte. Pero está haciendo cumplir la regla de que requiere una contraseña compleja. Entonces solo voy a poner una contraseña compleja y entonces no deberíamos tener ningún problema después de eso. Por lo que sólo voy dedo del pie retipado esta temporada pasada P en signo S s W O R D uno on. Entonces voy a ejecutar una vez más. Entonces deberíamos estar viendo a nuestro usuario administrador Onda la asignación a la regla de administrador. Está bien, así que estaba bajo muerto, libre de errores y luego Echemos un vistazo atrás en nuestras tablas de base de datos, así que espero ver al usuario. Por lo que se abre la racha de la parte superior. Entonces cuando refresco, debería tener cuatro usuarios. Aquí vamos, tenemos on admin user, recién creado aan den. Si miro en las reglas de usuario de la red SP, recuerda que esta es una tabla. Ese es el rol que tiene el usuario. Va a tener una referencia del i d para el rol y una referencia al i. D para el usuario. Muy bien, entonces así es como luce el papel que yo d. Y así es como se ve el usuario i d en contra de sus dos por cuerdas de aspecto complejo . Pero esas son las ideas. Entonces, esencialmente, si quiero hacer algo de los usuarios existentes pertenecían a un rol particular, entonces necesitaré encontrar que los usuarios i d. Así que tendría que volver a s usuarios de cacahuete en Digamos que quería hacer el usuario t en s que sea quiero que este usuario esté en el roll off empleados por lo que después de tomar el empleado me d . Y solo lo haré y fluiré año de edad I D y lo pondré en la columna de regla I D. Entonces después de ir y poner a este usuario, ponlos ahí dentro y coge su i d. Y ponlo adentro por ahí. Implore el usuario i d columna y luego puedo moverme hacia abajo. Por lo que una vez que avanzaste, se compromete a cambiar a la base de datos que para que puedas insertar manualmente registros en la base de datos. Entonces yo voy a hacer eso. Voy a hacer que todos los demás sean los empleados. Por lo que ya configuramos a Adminis un administrador. Acabo de decir que este 1er 1 como bajo de un empleado va a seguir adelante. El cambio no es una razón por la que estoy haciendo esto manualmente. Es que existieron antes de que existiera el papel. De acuerdo, así que el mero si yo que existieran antes de que existiera el rol significa que no hay manera de que realmente pueda volver atrás y decir, um, que son cuales Rose son lo estoy haciendo manualmente porque no hay otra manera de yo. Toe asociarlos, al menos aún no tendría que ser panel de control de Lota que estén más cercanos asociar al usuario con la regla que queremos. Entonces lo estoy haciendo manualmente, lo cual claramente no es factible porque estamos configurando un sistema donde la gente debería poder venir y registrarse en el registro debe ser único para los empleados. Por lo que ahí algún sol o una suposición segura. Saldré del modo de depuración, y solo me aseguré de que todos los que no son quienes estaban en el sistema no estén en rollo de empleados en eso. Tenemos las reglas de administración. Entonces, una vez más, la próxima vez que se ejecute el sistema , no va a crear, recrear al usuario administrador ni recrear las reglas porque ya están ahí y ponemos en nuestros cheques. No, yo estaba en presencia de ver que no es práctico tener personas que se registren y luego volver a la entrada de base de datos y las asignó a nuestro papel. Por lo que voy a modificar o cordón de registro a alguien volver a las áreas y volver a nuestras páginas de cuenta y encontrar o registrar cordón que atrapó atrás al ir a modificar este proceso de registro donde se crea al usuario. Por lo que acabamos de hacer esto, se construyó un objeto de usuario en. Después se creó el usuario en. Entonces, dijo que si la creación fue exitosa, entonces haz algo Pero Eso es exactamente lo que acabamos de hacer en nuestros datos de ver. Sí construimos sobre objeto para nuestro usuario. Creamos al usuario encendido, luego pasamos a decir si fue exitoso de lo que queríamos agregar a la regla para que podamos sacar este bloque fuera de cancha aquí en, ponerlo en nuestra lógica de registro. Entonces voy a decir, si el si el registro si el paso de creación fue exitoso, entonces quiero agregar a regañar, entonces hay que cambiar el tipo de objeto porque estamos dependencia, inyectando o tenemos la dependencia o un objeto representa al usuario monitor a otro alguien para usar ese objeto de administrador de usuarios en él tiene la misma función a rodar. Se va a llevar al mismo usuario porque somos consistentes con nuestro nombre, ¿ verdad? Entonces eres consistente dentro de un yo a través de la aplicación. Puede usar los mismos nombres en múltiples lugares y mover el trimestre con facilidad. Algún invierno asignan a este usuario a la regla, no administrador, sino empleados. Entonces siempre que alguien se registre los asignó a la regla de los empleados en, entonces podemos movernos con cualquier otra cosa que haya pasado. Para entonces pueden ser firmados de nuevo y una vez más seguir adelante. Cuando la gente se registra, asumes que estás en una carretera en particular y piensas en cualquier otro sistema cuando te registras para ti, también, nunca cometería el error, dándole a nuestro usuario habitual en agregar papel medio por accidente o algo por el estilo. Saben que cuando estuviste en el Sr. A través de este formulario, vas a ser un usuario regular. Por lo que sabemos en nuestra aplicación. Cuando te registres a través de nuestro formulario, vas a ser empleado. Estaban sembrando en admin on. Entonces podemos configurar un dedo del pie mecanismo. Agregar más anuncio significa tal vez como nos parezca conveniente, pero para no, tenemos un usuario administrador, y tenemos el potencial de tener tantos empleados en el sistema como podamos necesitar. Y con eso hecho, básicamente no estamos configurando las cuatro filas y los usuarios predeterminados en. También ponemos en los tribunales para que los usuarios no por defecto, ya sabes, ad hoc, usuarios que se casan con que cualquier punto siempre obtendrán un rodar por defecto empleados. Entonces a continuación, donde van a configurar algunas autorizaciones para ver que si eres un administrador que tu menú, me veo así. Y si eres un empleado de lo que tus muchos pueden verse así también, si eres empleado, no tienes acceso a las cosas administrativas puestas. Un administrador no debería poder solicitar licencia, ya sabes, cosas así. Por lo que en el siguiente video, montaremos las autorizaciones Parool. 27. Acceso del usuario con la autorización de la rol: Oye, los chicos de este video estarán buscando configurar el acceso basado en reglas. No, por algún contexto. Con nuestra aplicación, tenemos algunas opciones. Tenemos la opción de solicitar licencia, y también tenemos algunas opciones administrativas donde pueden asentarse, creer tiempos, dejar asignaciones, dejar solicitudes y administrar empleados. No dentro de una aplicación real. Y los empleados nunca deben tener ningún negocio gestionando estas cosas administrativas en el sistema y eso de la misma manera. Y admin probablemente nunca estaría solicitando permiso en DSO. Queremos restringir en base a los Turow's que tenemos, que son admin on employee, lo que cada 11 ve en el menú y dos realmente pueden acceder. Por lo que este video está orientado a mirar cómo podemos autorizar el acceso a ciertas partes de la aplicación en base a, bueno, si estás amando o no. Además, base en tu regla, lo primero que quiero hacer es configurar más contexto a un menú marcado. Entonces cuando alguien lo consigue esta pantalla, si no están logueados, probablemente solo deban ver casa. Y sí, sabemos donde quiera que jueguen homepage, eso está bien. Pero al final, fuera del día no queremos que puedan levantarse. Haga clic en solicitar licencia, por lo que aunque se muestre, no deberían poder proceder con una solicitud de licencia en este día. Inicie sesión. Todavía no nos han dicho las características, pero aún estaba configurado en su totalidad Podemos, o mira cómo podemos restringir el acceso independientemente. Además, si la persona no es amor ser y más aún si es amorosa, pero no es administrador, no queremos que tenga acceso o visibilidad fuera de las opciones de gestión en la aplicación. Entonces lo que vamos a hacer es empezar configurando algunas autorizaciones. O algún dedo del pie filtrante sabrá lo que se muestra en el menú? Y cuando de vuelta en visual studio, si vamos a estar modificando el menú de lo que tenemos que modificar nuestra página de diseño porque ahí es donde se define nuestro menú o barra suficiente? Entonces ven aquí que tenemos el Dave Bueno, empezamos con la barra de navegación remolcador y tenemos nuestro botón, y luego tenemos nuestros enlaces. Por lo que este es el 1er 1 que es hogar. El 2do 1 que se aplica para licencia en entonces esta sección donde estamos viendo que solo un admin debería ver esto en su menú. Por lo que el dedo del pie contextualizó esto que probablemente podamos hacer referencia sobre Le Guin página parcial en él tipo de nos da una idea de lo que es posible. Entonces cuando no estamos autenticados, cuando alguien no es amado dentro de la aplicación, sólo verán un enlace que dice Registrarse y un enlace que es un conos cuando están registrados o cabildeo. Perdón. Entonces están viendo el mar en la misma sección Un enlace que está saludando. Lo estás usando en otro enlace para la ley, cabra. El hecho es que esto, si la afirmación es, está manejando lo que ven cuando así la condición es que alguien ha firmado? Si hay entonces se muestra el mensaje hola y el botón del logotipo de lo contrario mostrar el registro y registrarse para que podamos adoptar ese tipo off lógica al usarla para determinar en nuestra aplicación qué verá la persona en la barra de navegación cuando llegue allí. Entonces lo primero que queremos hacer es reutilizar esto If statement me voy de pie, copie esto y pegarlo para que vea si firmando manager que está firmado en usuario. Y luego ves que el encargado de fichajes tiene una línea roja porque necesitamos una biblioteca para que funcione el encargado de fichajes. Pero antes de hacer eso, voy a decir que ellos si la persona está firmada, entonces necesitan ver este bloque, que es la lista desplegable lateral va a cerrar la declaración if. Por lo que se abre esa declaración. Prepárate. Cerramos el corsé. Entonces si la persona ingresó, entonces vamos a imprimir esto la pantalla, acuerdo? No, el encargado de fichajes una vez más tiene una línea roja. Si vuelvo a registrar imparcial y le pongo un poco más de atención de la que me doy cuenta de que arriba allá , incluyendo algunas bibliotecas tan nunca usando Identity Library on también estaban inyectando el administrador de firma y los gestores de usuarios. Yo sólo voy a copiar todo esto del log in parcial, y luego voy a pegarlo con el dedo del pie en el diseño en la parte superior del pozo. Entonces estamos incluyendo estas bibliotecas en el layup. Su diseño en realidad tiene acceso a los objetos para fichaje manager y gestor de usuarios. Y luego cuando jodo solo, vemos que la línea roja se ha ido porque no, la petición lo bibliotecas son cárceles. Entonces esto está diciendo una vez más es el usuario que inició sesión, luego mostró alguien dedo del pie volver a ver a mi hermano y probar esa cancha en. El expectativa es que cuando actualice ese manejo no se muestre porque no estoy firmado aquí. Está bien, entonces después de refrescarnos, nos damos cuenta de que no hay muchas opciones por dinero, así que después de saber que había una. Pero por la introducción off o declaración, ya no hay una. Y luego voy a seguir adelante e iniciar sesión, luego tener en el amor de ser. Vemos que muchas opciones no están disponibles. Entonces eso es todo lo que puedes, ya sabes, determinar qué permitido ser usado o ve en tu pantalla versus no soy amado en usuario. No, sí dijimos que sólo queríamos que las personas que están fuera del rol de administrador pudieran ver esto. Entonces en este momento, este usuario está fuera del rol de los empleados porque configuramos esa regla antes en dso esa persona cuando incluso cuando esta persona inicia sesión allí realmente no debería ver la opción de administrar. Entonces todavía voy a tener el dedo del pie la mayor parte de la cancha. Entonces revisamos ¿está a la persona que le encantaba estar encendido? Entonces vamos a tener que hacer otra comprobación y ver si los puntos del usuario están en regla. Entonces vamos a especificar la regla que estamos revisando. Entonces eso es un convicto de nombrar que es como una convención de función. Justo cuando quieres checar es en algo o Oriente algo, simplemente es cualquiera que sea la acción. Entonces estamos comprobando si el usuario está en la regla y la regla que estamos revisando para su gira de ministerio de anuncios . Si el usuario es administrador y luego abrimos y esas llaves y recuerdas que fue con las declaraciones, lo que sea que esté dentro de las brisas, lo que sea que vaya a conseguir acción. Entonces acabamos de hacer este bloque encendido, Ponlo dentro ahí. Entonces si a alguien le encanta estar encendido, si es administrador, entonces lo comprobamos. Entonces imprimimos esto. Entonces si no son administrativos y claramente eso se imprimiría. Entonces cuando guarde esto y vuelva a la página y refresque, la expectativa es que al haber sido amado como empleado, esta opción de gestión desaparezca en el menú de Douala. Por lo que aún estamos logueados como el empleado. Pero no hay opción de administrar porque no somos administradores. Déjame intentarlo de nuevo. Me van a encantar los barcos, y luego voy a volver a iniciar sesión y esta vez como administrador. Entonces voy a decir añadir media al humo. Todo un asunto. Vamos, el P afuera ssw rd uno encendido, luego inicia sesión. Oh, mi Pero esto no es dot com. Este es el anfitrión de Loca. Creo que podría necesitar cambiar eso. Probablemente voy a obtener el error de validación. Déjame intentarlo otra vez. P a signo S S W O R D uno. Está bien. Entonces lo siento. Conmuté a mi usuario admin con un poco fuera de mezcla. Entonces el nombre de usuario que voy a convertir en una dirección de correo electrónico. Entonces ahora mismo estoy en la tabla de usuarios de red SB en la base de datos, y solo voy a seguir adelante y decir que he estado en locas hosts dot com, Así que para cambiar esto, así que vamos a tener que hacer algo de configuración porque estaba algo complaciente en unidades , así que solo estoy viendo que deberíamos tener admin at loca host dot com como el nombre de usuario en entonces ese mismo nombre de usuario o dirección de correo electrónico que el usuario bajo normalizar cerca en nuestra cápsula en entonces conocemos las direcciones de correo electrónico. Quiero decir en host local dot com en la dirección de correo electrónico normalizada es local. Host is admite host local dot com Así que sólo podemos hacer esos cambios y enviar. A lo mejor no tienes este problema. Yo sí. Entonces si me seguiste hasta el té, entonces solo te estoy mostrando que vas a volver a intentarlo. Entonces admin en host local dot com con nuestra contraseña y no se registraron trato son. Por lo que me gusta este admin en Dwell. La opción de menú no está ahí, y estoy seguro de que eso es porque estaba un error ortográfico en alguna parte, y eso es lo que sí tengo. He tenido muchos traidor por lo que Adminis Street o sobre. Entonces voy a sólo a mí que Jian guardar y luego refrescar y después de una actualización, ahora estamos viendo lo que estamos esperando. Por lo que el usuario administrador está viendo las muchas opciones que el empleado no llegó a ver en ese usuario cariñoso o no amoroso. Más aún no llegó a ver que no. Restricción del menú es una cosa. Pero entonces, si eres inteligente, ya sabes, si eres un atacante inteligente o alguien que está atacando asistente podría ser inteligente en. Podrían estar prestando suficiente atención para darse cuenta de que cada vez que van a dejar tipos, los linces, anfitrión local o lo que sea el enlace que sea tipo de licencia de barra. Ahora, solo voy a hacer un experimento y mostrarte algo con este alguien para copiar esto un este enlace donde conozco a esta chica en. Me va a encantar el barco y mientras estamos restringiendo la visibilidad, así que esto no es amor estar en el usuario, estamos restringiendo su capacidad de hacer clic en el menú y hacer clic en tipos de licencia. Pero entonces, si estuvieran poniendo atención y fueran directamente ahí, entonces seguirían teniendo acceso, lo cual sigue siendo indeseable. No queremos que alguien que no esté conectado del dedo del pie, tenga acceso a esta pantalla, aunque escriba el enlace de forma indirecta. Por lo que hay otro nivel de protección fuera que podemos agregar para que podamos volver a nuestro proyecto. Y esta vez vamos a agregar esa protección al controlador. Entonces vamos a ir a los controladores vamos a dejar los controladores de tipo encendido. Entonces, para el controlador de tiempo de licencia, podemos agregar una anotación de datos que sea su autorizada. No, déjame sólo poner esto en perspectiva. Puedo ver autorizado directamente sobre una acción, y eso lo haré. Autorizar. Muy bien en. Entonces incluiré la biblioteca faltante el. Entonces esto realmente dirá que si alguien intenta Bro a esta acción o conseguir la vista asociada a esta opción, deberá iniciar sesión antes de llegar allí. Alguien para cumplir con ese cambio, guardar y luego volver a nuestra página y luego recordar que cuando sólo una barra inclinada tipos de dejar realmente están cargando el índice. Entonces cuando refresque esto, entonces vas a empezar a ver la pantalla de inicio de sesión y luego el retorno que eres un enlace va a empezar a tener sentido donde realmente está almacenando. Cuál es el retorno que eres es cuál es el punto. Cuando trato de Bro directamente para dejar tipos, me trajo a la pantalla de inicio de sesión, así que eso es lo que hace la plática autorizada por ti. Dice que si dijiste estas cosas sobre cualquier vista o cualquier acción dentro del controlador cuando se solicita esa vista, entonces la persona solía iniciar sesión con el fin de continuar. Ahora que la lesión es que cuando la pones sobre la acción, vas a tener que sentarte sobre cada acción dentro del controlador si eso se desea, porque si no deberían poder ver el índice, entonces realmente no deberían ser capaz de ver cualquier detalle. Son nuestros crear cualquier cosa en, por cierto que nosotros si estamos siendo atención una vez más sabríamos que si dijéramos slash aquí es un ejemplo tal que se corta uno que Oh, bueno, no tengo nada con yo d uno hacer. Puede que yo también lo esté. OK, ahí vamos entonces. Todavía puedo obtener acceso a eso sin ser autenticado en absoluto. Entonces adelante. Forma más fácil de configurar la autenticación para todo el controlador porque todo lo que es tipos de licencia asociados no debería ser accesible para alguien que no sea administrador. Alguien que se lleve este remolcador autorizado y estoy de invierno en su lugar. Ponlo en la parte superior de la creación de clase para el controlador de tipos de licencia. Entonces tienes la línea. Esa es su clase pública. Cualquiera que sea el nombre del controlador. Andi, vas a poner esa anotación autorizar datos por encima de eso. Lo que esto hace es decir que todo este controlador y todo su contenido y todo lo que fue colapsarlo presionando ese menos Firmar todos los contenidos fuera de este controlador. Toda acción tiene que ser lo que hay que autorizar para poder acceder a cualquiera de estas acciones. Entonces cuando hago ese cambio y guardo y luego voy y refresco, noto donde solo estoy actualizando la pantalla de edición, aún no autenticado. Entonces estoy consiguiendo esa pantalla de inicio de sesión. Y aunque pruebo cualquier otro, 1 puede lamentar que eso esté en mi portapapeles. Si lo intento, déjame intentar quitar esto y decir slash leave types on guy trataron de hacer algo como crear para que pueda ir slash create. Todavía va a solicitar que inicie sesión antes de poder seguir adelante. No, déjame iniciar sesión Sólo ve. Y sólo para demostrar que esto va a funcionar. Entonces estoy iniciando sesión como empleado, estar fuera de ssw rd uno y luego estoy iniciando sesión en su No, tengo acceso a la pantalla de creación en esto sigue mal, Así que quiero decir, estamos construyendo hasta ello. Entonces esto sigue mal porque como empleado, realmente no debería poder acceder a la creación para tipos de licencia. No debería poder acceder a nada por tipos de licencia ni nada que sea administrativo. Entonces no, necesitamos dedo del pie poner algo más en nuestra salida autorizada para especificar quién es quién está autorizado para obtener acceso y el que en este caso significa la regla. Por lo que sólo puedo abrir carreras en la palabra autorizar. Y vemos que en el tenis, en sostenernos que tenemos tres opciones que sumar. Tenemos esquemas de autenticación de políticas y tenemos reglas en esta situación. Queremos reglas, alguien que diga reglas iguales. Entonces la regla. Y yo revelé la brecha. Acompáñate con que lo hagas más adelante la regla de que estamos autorizando a interactuar con cualquier cosa dentro. Este este controlador es agregar gira de ministerio, alguien para mí, ese ajuste y Seve Y entonces voy a volver siendo logueado como los empleados, y voy a refrescarme y luego vas a ver que nos llevamos bien en pantalla. Wow. Aún mejor aún, ni siquiera conseguimos el acceso. Nos dieron un acceso denegado. Ni siquiera metimos la lolly en pantalla porque es decir que no vas a tener que tener la oportunidad de iniciar sesión. Simplemente no eres un dedo del pie de carga. Accede a este recurso, ¿de acuerdo? Entonces si yo estaba actuando como empleados en, quería hacer esto, pero estaba en absoluto soy acceso esta noche. No están tras ley Cabras encendidas, luego vuelve a iniciar sesión. Y luego esta vez como admin. Entonces recuerda que fueron a cambiar admin en host local dot com en nuestro pastor. Esto se le asigne un poco sarpía fuera evaluado del org one, y luego estoy conectado. Entonces estoy viendo mis muchas opciones, y luego puedo bro de libremente a mis opciones administrativas. Está bien, así que eso es todo. Por lo que podemos ir por nuestra cuenta, ya sabes, global restringiendo el acceso a ciertas partes de su aplicación para ciertas personas. Entonces solo para recapitular, lo primero que hicimos fue mirar todo desde la perspectiva de vista desde la perspectiva HTML o la perspectiva de pH Razer, podemos restringir lo que alguien ve. Entonces aunque sea un caso en el que querías que se mostrara el botón de borrar para una determinada regla, pero no para otro rol que sabes que un empleado puede ver, pero no pueden editar y eliminar. Pero entonces un administrador puede realmente y verdaderamente sólo necesitar nuestras declaraciones sobre. En realidad solo voy a abrir la vista de índice para el tipo Leave. Ya que esa es la que tenemos puesta, les voy a mostrar que tenemos el tobillo. Se mostrará el botón de edición, uno para los detalles y otro para la eliminación. Sólo necesito una declaración if, al igual que la que usamos en Leo para el menú encendido. Yo digo, Si el usuario es amor ser, si el usuario está en el rol, entonces ellos pueden hacer esto, entonces imprimir eso más. Imprimir cualquier otra cosa, bien, así que eso significa que podría decir OK, imprimir los detalles, pero sin importar, Pero si la persona está en medio, entonces mostrar la edición Onda borrar. Entonces así es como podemos controlar lo que cada fila ve desde la vista. No, para el controlador, ya sabes, restringir solo en base a lo que pueden ver en Click no es suficiente, porque si alguien está siendo atención a las chicas, probablemente aún puedan intentar Bro's directamente a la página que les interesa Andi, tal vez de Alicia. Entonces con el fin de bloquear el foso, sólo nos aseguraríamos de que autorizamos si si la persona antes de sólo restringirlo a log siendo personas y simplemente decimos autorizar. Entonces, para el contexto, cuando intentas ir en algo en Facebook y comiste un poco de nuevo, eso es todo lo que realmente tienen. Simplemente tienen algo que está autorizado el acceso. Entonces este conocer la persona tiene que iniciar sesión entonces si tal vez estás con un amigo y viste que los tenían admin acceder dedo del pie algo. Pagué atención al conde, y luego llegarás a casa e intentas con tu login, puedes obtener acceso. Entonces tal vez no estés en la regla en la que está tu amigo. Entonces el hecho es que puedes restringirlo en base a la regla diciendo ortodoncia abierta autorizada, definiendo la regla o reglas para que siempre puedas decir coma en tantas reglas como sepas que puedas tener. Entonces en este caso, realmente solo quiero que el rol de administrador tenga acceso a este Controller Andi, como hemos sido, las cargas son predicen sus otros controladores a los que solo el administrador debería tener acceso , y van a ser otros controladores que bien cuando fui a restringir, pero sólo alguien que es amor ser deberíamos tener acceso a. Entonces eso es todo para aprender a restringir el acceso de los usuarios a ciertas partes de su aplicación y contextualizar lo que ve cada regla de usuario. 28. Revisar y añadir cambios a GitHub: Oigan, chicos, bienvenidos de nuevo en este video, sólo vamos a revisar todos los cambios que hemos hecho en nuestro proyecto hasta este punto en el cheque en nuestros cambios para levantarnos. No, sólo un recordatorio. Si buscamos en nuestro es Explorer o experto en soluciones, veremos que tenemos algunos archivos con candados azules. Eso significa que desde la última vez que fueron revisados en el control de fuentes, no han cambiado nuestro no han sido modificados. Y luego tenemos algunos con señales cercanas, lo que significa que se añadieron, Son archivos completamente nuevos encendidos, no están en el control de fuente. Y luego tenemos algunos con algunas garrapatas rojas. Y esos realmente significan que tienen una versión en el control de fuente sobre estos sería hereje significa que los cambios a estos archivos aún no están comprometidos con el control de fuentes. Entonces eso es lo que vamos a estar haciendo en esto va a ser un proceso realmente sencillo. Simplemente hacemos clic derecho en nuestra solución. Hacemos clic en commit, luego damos un mensaje de commit para recordar que queremos que nuestro mensaje sea limpio y, ya sabes, simple como sea posible. Para que alguien que venga pueda entender. Así que escribí una pequeña señorita. Sólo estás diciendo que configuré usuario off default Rose y admin on modificó el proceso de registro. Entonces ese es mi mensaje cómico. Y luego después de hacer ese mensaje, simplemente no hago la flecha y digo Comprometerlo todo y hundirme Y entonces eso lo hará. Actualizar mi repositorio local aquí en la máquina en también empujó los cambios para conseguir esperanza. Y una vez más, si estás trabajando en equipo, entonces no cargará el último, um, proyecto que está ahí que quizá no tengas. Está bien, vamos. Una vez terminado ese proceso, siempre puedes simplemente ir a que te suban. Vamos, verifica que el pollo se hizo con éxito. Entonces en el Greep. Ah, ya veo que Deja gestión en los últimos comités ahí en si entro. Entonces lo fue. Muéstrame qué fue, ya sabes, cambiado como resultado de esa commits o cualquier carpeta, cualquier archivo que se revisó con ese comité tendrá ese mensaje de commit al lado de él encendido . Eso es todo. Por lo que a la mañana siguiente realmente empezarás a construir sobre el módulo de gestión de empleados, y ya veremos cómo va eso. Entonces eso es todo. Hemos comprobado nuestros cambios y en ninguna parte listos para el próximo reto. 29. Dejar la descripción de la imagen: Oigan, chicos, vamos a estar empezando un nuevo modelo apagado o aplicación, y eso será por el permiso. Asignación para este modelo estará habilitando una nueva aplicación de desgarro de sección. Por lo que tenemos nuestro top gestionado, que solo es accesible por los usuarios admin on para la licencia. Asignaciones estarán listando todos los tipos fuera de las hojas, que ya tenemos una interfaz para crear. Entonces tenemos todos fuera de los tipos de hojas aquí que podemos crear. Pero entonces, por cada uno que se crea, vamos del dedo del pie, tenerlos listados en las asignaciones de licencia on. Después tendremos botones dedicados que configurarán todo el número de días libres que cada empleado tiene para cada tipo de licencia. Ahora el truco es que vamos a tener que hacer algunos cambios en la base de datos. Vamos a tener que modificar la tabla de tipos de hojas porque quiero poder establecer un número predeterminado de estos por tipo de licencia. Al igual que, por ejemplo, es estándar que obtienes 10 días de licencia por enfermedad cada año. También es estándar que obtienes 15 días de vacaciones cada año, etcétera. Entonces cuando se crea el tipo de hoja, necesitamos permitir que el usuario ponga ese número predeterminado días libres para ese tipo de hoja encendido. Entonces para la asignación, vamos a tener que hacer ajustes a nuestra tabla de datos existente. También, porque se quiere establecer que la asignación de tipo de licencia para un periodo en apareció sería para el año calendario. Por lo que vamos a estar agregando dos nuevas tablas de bases de datos de tiendas, una para el conjunto de tipos de hojas toe, el número predeterminado de días fuera en otro para el periodo para asignaciones de licencias para que cuando asignemos ese tipo de dejar Onda reparte el usuarios, dirá que es por el periodo fuera del año en el que se está estableciendo, y vamos a automatizar el desprendido de ese muelle. Entonces sin más, lo hago, um, en el siguiente video, comenzaremos a trabajar en los cambios de base de datos que iban a estar haciendo en. Construiremos este modelo poco a poco 30. Dejar la posición : cambios de base de datos: Oigan, chicos, bienvenidos de nuevo en este video empezarán a hacer ajustes a nuestras clases de datos y luego migraremos . Esos cambios en las bases de datos deben ser un video corto. En realidad es sólo para demostrar que a medida que desarrollamos una aplicación, queremos decir, ya sabes, cambiar el camino de pensar la manera de Gene. Queremos implementar algo que tenga implicaciones en la estructura de base de datos subyacente sobre DSO usando corte. En primer lugar, es realmente fácil modificar nuestra base de datos a medida que avanzamos. Simplemente mantenerlo lo más optado ocho como sea posible con nuestros objetivos en su momento. Por lo que nuestro objetivo para esta lección en particular es sumar los dedos a otros campos. ¿ Voy a sentir su mesa? Entonces tengo que decirle a alguien encontrar que siento poner en cada una en la tabla tipo hoja. Vamos a estar agregando un nuevo campo, y eso es por un número predeterminado días libres. Entonces solo voy a decir público on, luego voy a ver en adelante entonces voy a decir días por defecto. Está bien, así que este va a ser el número fuera de éstos cuando estemos creando un déjalo arriba. Cuando el administrador crea un tipo de licencia el valor predeterminado, estos serán el número de días libres. Eso es estándar para cualquier persona. Ese es un valor base. Um, cuando estás asignando la licencia, no, puedes hacerlo caso por caso. Decir que usted sabe, las reglas de negocios dictarían que las personas que están en la organización por más de cinco años probablemente obtengan cinco días adicionales para regar. El valor base es que ya sabes, no puedes simplemente así, pero por eso estoy poniendo en este valor base. ¿ Es esto para que estos campos digan eso,ya sabes, ya sabes, en el momento de la creación fuera de un tipo de hoja? Este es el número fuera de estos que es estándar para este tipo de hoja. Entonces vamos a agregar que a los datos T la clase de datos y la clase de datos una vez más está en la carpeta de datos en encontramos el particulado que es dejar, teclea on. Agregamos la propiedad en, luego la siguiente que estamos ajustando es asignación de licencias. Por lo que para la asignación de licencias, ya tenemos el número de días libres. Andi, no es redundante. Estoy estableciendo el número de días en la asignación también, porque recuerden, este podría ser un valor calculado caso por caso. También, queremos que este número del dedo del pie se modifique o al menos refleje. Cuando alguien está solicitando licencia Necesitará este número dedo del pie hacer algún maestro, Muéstrales cuántos días realmente tienen frente a lo que hacen duro, correcto, Pero el o dejar asignación para estar almacenando el número de días libres que AARP articular tiene en un tipo de hoja particular en. Entonces lo que voy a sumar a esto es un periodo en ese periodo una vez más indicará que Bueno, estoy llamando a un periodo. Soy periodo realmente va a ser un fin que representa el año. Por lo que esto se registra en el año 2020. Entonces ese es un primer periodo que se ingresará al sistema. Por lo que el periodo del 2020 cuando localizo la licencia, todos se fueron a conseguir eso de manera articulada para el Muelle 2020. Cuando sea 2021 el sistema se va a configurar de una manera que quiero decir que lo podamos automatizar más adelante. Pero la forma en que estoy construyendo se sabe es que cuando hacen clic, asignan, dejan tipo que debe comprobar está ahí en asignación para un empleado por un periodo determinado el cual se aparece en donde. No, Si lo hay, entonces no lo vuelvas a hacer. Si no lo hay, entonces aplica. Entonces si lo hacemos una vez para 2020 que los empleados nunca deben obtener otra asignación Inter para el periodo de 2020. No obstante, si lo hacemos en 2021 entonces ese empleado que lo tuvo para 2020 lo sabrá obtendrá una nueva asignación para 2021 el. Todo será recalculado sobre. Una vez más, las reglas de negocio pueden determinar se pueden utilizar para determinar el número real fuera de estas relativas al valor base. Entonces pasé por todo un montón de explicaciones, pero solo estoy mostrando la justificación de las modificaciones que estoy haciendo esto. No quiero que este sea otro tribunal. Quiero que entendamos exactamente qué está pasando sobre por qué estoy haciendo los cambios para que puedas verlo de una manera diferente. Quieres decir, ya sabes, tener una forma diferente de pensar si te sientes libre de compartir eso conmigo. Pero por no, estoy sumando esos dos sentidos por esas razones particulares. Entonces sepan que he añadido estas tarifas. Tengo una serie de ajustes para mí. De lo contrario, en primer lugar, necesito actualizar la base de datos real. Recuerda que ya habríamos generado la base de datos. Si voy al Explorador de Objetos SQL una vez más, si no ves esto sobre los paneles están en cualquier parte de tu pantalla. Siempre puedes ir a ver en encontrarlo. SQL server Object Explorer on. Entonces si perforo hacia abajo en la base de datos, que es gestión de dejar, entonces verás que ya tengo estas tablas y dejar tipos está bien, no tiene la predeterminada estas columna que acabo de agregar. Está bien, así que tiene un brazo de tres sensaciones, y es menos por defecto. Entonces obviamente necesito actualizar esta base de datos para que no tenga d para estos. Entonces para hacer eso, vamos a nuestro paquete. Consola de administrador de paquetes cónsul. Perdón por. Si no ves esto en el menú base, puedes ir a herramientas sobre ti. Ves, obtienes administrador de paquetes, y luego puedes decir consola de administrador de paquetes. Entonces eso es lo que te pone del pie esa herramienta. Entonces aquí puedes agregar una migración. Entonces, cada vez que haces un ajuste a tu base de datos, ¿te refieres al archivo? Ya sabes, hiciste ajustes de las clases de datos y tienes que agregar una migración. Onda. He pasado por esto. Lo que hago otra vez. Cada vez que añades una migración, obtienes un nuevo archivo. Ese tipo off representa los cambios. Entonces cuando estás agregando la migración, quieres poner un pequeño mensaje. Su dedo del pie representa los cambios que has hecho. No. Si alguien viene después de tal vez 56 meses de tus migraciones en adelante, consigue este proyecto fresco, tal vez incluso desde el gueto bar. De qué a una fuente manojo de motor. Pueden ejecutar fácilmente un comando que buscará primero toda la migración y construirá la base de datos al último o último estándar. Por lo que es una buena manera de hacer un seguimiento de los cambios que estás haciendo, y siempre puedes eliminar las migraciones. Siempre puedes derogar los cambios que has realizado, pero es una buena manera de hacer un seguimiento de todos los cambios que estás haciendo en tu base de datos. Entonces agrega migración y luego diré, agregó e días de falla. Onda aquí están bien, así que estoy viendo por defecto agregado. Estas y pares de esas son las dos cosas han agregado una prensa enter. Hace algo de magia donde construye el proyecto Una vez que se complete, veremos la compilación del mensaje exitosa y que podemos quitar la migración por su nombre. Pero lo que es más importante, si buscas en esa migración, ¿ves que hay un nuevo archivo de migración que refleja eso de anoche? Genial. Entonces acabamos de añadir a la derecha, entonces ese es el paso uno. Paso dos o bien, ese será el Paso dos. El primer paso estará haciendo una modificación. paso dos es agregar la migración en el dedo del pie finalmente, aunque la actualización de seguridad de la base de datos en la base de datos de Dash, y en realidad se puede sólo para detener la sentencia auto completa y luego se presiona enter on . Entonces volverá a construir el proyecto sobre def. Todo está bien, entonces verás mensajes de éxito en. Entonces la muestra definitiva de éxito es volver a la base de datos, refrescar los objetos de datos en, luego buscar y verificar que los nuevos campos se hayan agregado a las tablas respectivas. Entonces voy a las mesas entrando en tipos de licencia, perforando hacia abajo en columnas on. Entonces se ven días por defecto que ha sido un poco exitosamente en la misma manera para las asignaciones de licencias . Verás que hay un nuevo campo llamado periodo. Además, el expediente judicial para la migración pudo haberte abierto para ti donde están mostrando todas las modificaciones que me terribles. Entonces quieres decir que puedes pasar tiempo con el dedo del pie, ya sabes , apreciar esto, pero generalmente se genera para ti en Si es libre de errores, entonces realmente no tienes ningún problema. Entonces puedo eliminar que al siguiente los próximos cambios que quiero hacer, um, um, están rodeando los modelos de vista. Entonces recuerda que los modelos de vista están literalmente modelando la clase de datos. Podemos agregar y quitar las sensaciones como nos parezca conveniente. Pero para la hoja tipo V. M. ¿Verdad? No, necesito asegurarme de que tengo representación para días predeterminados, y también tengo que asegurarme de que se requiera alguien que diga requerido voy a poner en la propiedad en acabo de escribir adecuada y presionar parado dos veces en días por defecto. Recuerda ese año necesitas igualar el caso en mucho el nombre para que el automóvil se mapee limpiamente. También voy a poner en algunas otras validaciones como voy a poner otra anotación de datos en, y lo voy a llamar rango. Entonces rango básicamente me está permitiendo validar un campo numérico, y toma ah muchos momento de máximo. Entonces el mínimo es uno, pero no tiene sentido. El otro tipo de licencia con cero D's en el máximo es tal vez Oh, no. debe haber ningún tipo de licencia que exceda los 25 días. Está bien, así que quiero decir, puedes poner eso. Se puede usar eso con un grano de sal basado en las reglas de negocio y lo que sea, um, lineamientos que te ha dado el negocio fuera de curso. Tienes que manejarlo en consecuencia en. Entonces voy a poner en el aire un mensaje que significa así que el mensaje de error no será lo que se muestra cuando se violen estos rangos. Por lo que el mensaje de error es Por favor ingrese. Ah, número valorado. Está bien, Entonces cuando eso alcance, ya sabes, violó que esas reglas, entonces verás el mensaje. Por favor ingrese un número válido. Entonces esa es la VM tipo hoja y luego justo de la misma manera para la asignación de licencias fuera. Además, quiero poner un nombre de visualización adecuado avisos surround, días por defecto como cosa de caso de cámara. Entonces voy a poner en una pantalla en el nombre en entonces el texto que quiero mostrar es número por defecto fuera de estos. Por lo que el número predeterminado apagado. Estos es ver lo que es ¿Sabes qué? Esta es sólo la etiqueta que se imprimirá en el formulario que deje tipo Veum se utiliza en la asignación de licencias. VM ya tiene algunas cosas aquí. Um, alguien que esté modificando esto. Dejar asignación v m habría creado con algo en particular en mente, pero voy a estar modificándolo. Pero a la luz de lo que estamos haciendo, voy a hacer los siguientes mods primero antes de número fuera días me voy de pie. Está bien, bueno, volveré a eso. Por lo que voy a quitar el remolcador requerido Onda. También voy a sumar ah, propiedad cuatro periodo I Una vez más, P carretera representa ese año calendario. Esa es la asignación es válida. Cuatro. Muy bien, así que hemos hecho alguna marcha menor. Puedo construir este proyecto y luego veremos si eso tenemos algún problema con las modificaciones que hemos hecho hasta ahora en base al viejo mensaje put y ver que tuvo éxito. Entonces no tengo errores. Y así estamos terminados con cualquier actualización de base de datos, al menos para no. Por lo que en el siguiente video comenzará a diseñar la vista 31. Dejar la imagen : crea una visión: Hey chicos, en este video, vamos a estar creando en configurar la funcionalidad que se requiere para apoyar o dejar asignación. No obstante, antes de entrar en todo eso, sólo voy a hacer algunas modificaciones a algún código existente, a saber, los puntos de vista que están ahí apoyando las operaciones de multitud para tipos de licencia. No, si recuerdas, acabamos de poner un nuevo campo en los tipos de licencia, y eso fue por el número predeterminado de días libres en. Lo que quiero hacer es reflejar este nuevo valor. Por lo que actualizé el modelo de vista, actualizé la clase de datos y la base de datos y todo. Pero necesitamos realmente mostrar este valor del dedo del pie del usuario. Entonces si vuelvo a los puntos de vista existentes sobre esto es ya sabes, puedes hacerlo de dos maneras, o bien puedes intentar regenerar todos los puntos de vista, que para mí es amable, ya sabes, tedioso. Cada vez que haces un cambio, esto después de la región eri la vista o simplemente puedes aprender a modificarlo. Entonces si tienes un aprecio por todo, el tribunal es una entrevista que él solo puede modificar porque modificaste tu modelo de vista. Tienes nuevos datos necesitas mostrar los datos que deseas eliminar. Si solo sabes cambiar el componente visual, que es la vista, entonces puedes,ya sabes, ya sabes, flexionar un poco más fácilmente. Entonces con todo eso dicho, empiezo con la velocidad del índice. Por lo que quiero en la lista. Se desconocen Alicia en el nombre en las fechas en que se creó el tipo de hoja. personal, creo que podemos prescindir de la fecha creada. Yo usuario que va a ver la lista fuera. ¿ Dejar impuestos? No, cuando no necesita saber cuándo se creó el tipo de lead, sin embargo, el número predeterminado de esto podría ser útil. Entonces lo que haré es reemplazar ese campo por defecto está bien. Entonces vamos a obtener el nombre para mostrar para nombre, que no pusimos ninguna mejor notación para eso. Entonces sólo va a ver el nombre en. Obtendrán el nombre para mostrar por defecto. Estos y yo solo vuelvo en doble, revisa el modelo de vista y asegúrate de que estoy derramando rojo. Obtiene nombre predeterminado antes de este Lo sentimos camello cased eso es correcto en. Entonces tendremos la pantalla para encendida en lugar de mostrar la gran creación que mostraré los días predeterminados en todo lo demás puede seguir siendo igual. También lo son nuestra tabla de datos para los tipos de hojas. ¿ Simplemente vas a tener el nombre en el número predeterminado días libres para ese tipo de licencia? No. De la misma manera, necesito mostrarlo en la edición porque en este momento son es mantener la fecha creada y la idea. Está escondiéndolos, Claro, pero necesito una forma de que realmente puedan hacer un cambio, ¿ verdad? Sobre todo porque esto es después del hecho. Porque acabamos de añadir esto. Entonces eso significa por suerte, sólo hemos creado tres. Podemos volver atrás y solo editar los tres on Poner en la nueva sensación que hay, eso se requiere. Entonces sólo voy a si copiar esta sección que nos da el cuadro de texto encendido, entender para pegarlo, no quieren decir que es antes de los cuatro días en su lugar. Está bien, en, entonces, todo lo que dijo nombre. Yo sólo voy a hacer que se vea antes de esto. Muy bien, entonces ahora tenemos dos cuadros de texto. Uno para el nombre, otro para los días por defecto. Todo Iskander me en la misma. Pasaré a los detalles sobre para los detalles. Puedo retener la fecha creada causa quiero decir, aquellos que serían un detalle. Entonces solo voy a copiar todo el gran bit paste creado. Está en duplicar eso. Pero voy a cambiar uno de ellos a días por defecto. Entonces ya ves, hacer modificaciones es relativamente fácil. Es decir, tienes el marco, ya sabes, el valor que quieres mostrar. Tienes el acceso al modelo en el modelo, te da acceso a todo lo que estaba dentro de la clase de modelo de vista que habrías definido. Entonces voy a ver de eso. Y entonces la modificación final que voy a hacer es en el crear sobre esta modificación es muy similar a la edición. Por lo que ya lo hice en la edición en las ediciones y crear en realidad son idénticos. Entonces solo voy a copiar eso en, lo despiece en el create on dso cuando estamos creando un tipo de hoja, tenemos el nombre en el valor predeterminado es que necesitamos proporcionar y necesitamos proporcionar ambos porque ambos están tirados como se requiere. Muy bien, entonces con esas modificaciones realizadas han entrado en la aplicación. Y no, estoy viendo mi inexperiencia. Estoy viendo que todo el mundo está en cero. Bueno, va a estar aquí porque cuando se actualizó la base de datos, Andi anula valor. No fue una carga. Después tuvimos que poner. Es difícil poner un valor predeterminado, que es cero. Por lo que una vez más, ya dijimos que cero no es un valor aceptable en practicidad. Por lo que desde el lado del usuario, habríamos agregado la validación el rango para ver del 1 al 25. Pero de la base de datos, ya sabes, ese es el lado del cliente o ese es el lado de la interfaz de usuario de la validación. Lo que sucede en la base de datos puede ser una historia diferente. De todas manera. Habríamos agregado la funcionalidad toe editar a alguien para simplemente hacer clic medio Moño. El editar para estas herramienta para vacaciones, incluso prueba de licencia por enfermedad es irrelevante. Alguien para realmente probar ¿verdad? No prensa borrar. Haga clic en Aceptar, entonces eso hará lo suyo. Pero voy a ir a editar por número de días y notar porque el número que estoy consiguiendo ese recolector de números realmente me cubriría. Me está diciendo que necesito ingresar un número válido por lo que realmente está validando que el número tenga que tener sentido. Entonces sí dijimos que 10 era, Ah, suficiente valor para las hojas enfermas. Ahorrar cambios en dime fue a pasar a la otra. Editar en vacaciones Digamos que el número estándar de días libres en esta organización es 15. Entonces, al hacerlo modelar así,ya sabes, ya sabes, cada organización puede ir y establecer sus propios días por defecto de acuerdo a sus reglas de negocio . Es entender dedo del pie cerrar el exceso de ventanas. Y luego ahí vamos. Entonces déjame refrescar esto una vez más para reflejar valores reales de distancia de 10 y eran 15. Y luego cuando vamos a crear nuevo, obtenemos nombre y antes ahí. Por lo que voy a llamar a esto en licencia de maternidad en el número predeterminado fuera de esto para licencia de maternidad es lo que fijamos como las marcas 25. Entonces digamos 25. Eso son unas cinco semanas. Podría ser más que eso para que pueda ver no, que mi validación pueda necesitar ser ajustada porque si son 50 días en una organización y esto claramente no pueden ser 25 y en base a mi validación, 50 no es un número válido. que lo sepas, Paraque lo sepas,tendrías que sentir su aplicación de acuerdo a las reglas de negocio que estés usando o te estás apegando a alguien para crear este nuevo tipo de licencia en DNO. Tenemos tres tipos de hojas fueron licencia de maternidad. Tenemos licencia por enfermedad puesta. Tenemos licencia de vacaciones, está bien, para que no estemos haciendo modificaciones. Los dedos son tipos de hojas. Trabajemos con ese enfoque. Disculpa por crear la vista para la asignación. Entonces lo primero que voy a hacer es crear el controlador para la asignación de licencias alguien dedo bajo deteniendo esto porque sí quiero retirarme. Es que voy a crack controladores Goto agregar controlador. Vamos a crear ese lector de controles NBC en Action Slick anuncio cuándo llamar a su controlador de asignación de licencias y hacemos clic en agregar Una vez que tengamos el controlador, entonces voy a simplemente hacer mi inyección de dependencia regular al incluir nuestro er mop on gone sobre nuestra gente tipo hoja así como nuestro informe de asignación de licencias. Entonces sólo el expedite, su entender ir para dejar los tipos encendidos. Entonces me voy a pedir prestado. Entonces en primer lugar, estoy con el bar así de autorizado porque, bueno, eso en realidad es estándar, Así que deberíamos tener. El autor está por encima del controlador. Recuerda que estamos autorizando a los administradores a interactuar con cualquier cosa en este controlador el. Entonces soy restaurante para tomar estas referencias. Entonces los voy a agregar en la parte superior del controlador en luego solo usando mi punto de control Agregar cualquier referencia que falte. Entonces ten el repositorio tipo leave y llamaré al cisne. Ive re tire en ir a duplicar eso en ir a llamar a este. Dejo asignación, algunos referenciando el repositorio de asignación me dejo en este es dejar informe de ubicación. Por lo que realmente solo te estoy mostrando el hecho de que puedes tener múltiples repositorios dentro de un controlador. No necesariamente es que si se llama al controlador para una cosa determinada, entonces solo se puede usar do operaciones para eso porque voy a conseguir que se involucren tipos de licencia y voy a estar haciendo cambios en la tabla de asignación de licencias también. Y así cualquier ambos repositorios. Entonces solo estoy, ya sabes, configurando el controlador en el constructor aquí en dis cambiando todos los objetos. Por lo que tengo representación fuera del repositorio tipo hoja en el repositorio de asignación de licencias. Entonces quiero decir, no estoy hablando a través de estos cambios. Yo estoy tratando de hacerlas vendidas lo suficiente para que puedas ver lo que está pasando, y son bastante simples. En realidad es solo copiar y pegar. Y literalmente estoy agregando una línea del dedo del pie los repositorios que ya eran referencia desde tipos de creencias en adelante. Si tuviera la única línea en el en la declaración aquí, entonces estoy agregando esa tierra a la al constructor en luego fuera de curso para hacer representación para ello en el cuerpo. Entonces no estoy arreglando las líneas rojas. Es sólo estoy cambiando primero las referencias trimestres. Por lo que en el marcador informe de licencia va a ser igual para salir. Informe. Aquí tenemos en el marcador. Dejar asignación, re pull siendo igual a dejar asignación. Ripple en DMA. Per es feliz camper. No tenemos que cambiar nada de mi superior. Está bien, um, vete tú. Por lo que es subrayado viniendo de la referencia de la declaración debe ser igual del dedo del pie el sin subrayado proveniente del instructor con. Y luego fui a cambiar el nombre del constructor. Por supuesto, Toe en realidad dicen dejar controlador de asignación. Entonces ese es nuestro constructor. Simplemente lo conduje a diferentes líneas en lugar de tener una larga línea funcionando. Entonces solo voy a usar mi control atracado en referencia cualquier cosa que falte. Entonces necesitamos referirnos a mi superior en ningún orden se restaura nuestro universo. Entonces tenemos todos de cuatro. La dependencia es, al menos para no. Muy bien entonces, para la página de índice, las páginas de índice realmente sólo van a cargar todos los tipos de hojas como dije. Pero le voy a poner un pequeño giro en el lado de la vista. Está bien, así que literalmente sólo voy a copiar esta escuela porque eso es lo que quiero en. Entiende lo desgarrado. Está bien, entonces y entonces, Obviamente no es reporte, así que es reporte de dejar al que vamos a llamar para encontrar todos los tipos de hojas en. Entonces voy a hacer referencia a la hoja. El mejor clase que usa el punto de control en también deja el punto de control del modelo View incluyen esas referencias. Puedo quitar esta línea sobre devolver la vista, así que estoy obteniendo todos los tipos de hojas y luego los estoy almacenando en el modelo, habiéndolos mapeados. Entonces voy a crear la vista alguien dedo del pie con razón que haga clic a la vista, encontrar la plantilla que es lista porque realmente quería ser una lista en. Voy a usar la hoja tipo V m. Así que me acabo de encontrar la hoja que tenía VM quiere esta clase de contexto de datos. Estoy aclarando eso, no haciendo referencia a las bibliotecas de guiones en DA Solo piensa en el anuncio. Entonces lo que vamos a hacer es modificar esta plantilla, ¿no? Entonces voy a sacar esto crear porque realmente no necesito esto. Voy a sacar la columna I. D así como los días por defecto y se creó. De verdad no los necesito. Entonces esto es que sí aludió al hecho de que podemos tener múltiples modelos de vista utilizados para diferentes cosas. Ellos ven si hubiéramos construido un modelo de vista específicamente para esto que esta modificación sería necesaria porque yo podría haber generado esta vista en base a esa botella de campo sin la adición off años. Pero es lo que es, Andi. decir, es realmente seis de 1/2 docena de la otra. Podríamos haber hecho el modelo de vista y poner en el mundo. Se acaban de poner en el trabajo aquí así que sólo estamos quitando todos los hechos. Entonces lo que realmente quiero es solo la misma tabla listando cada tipo de hoja en. Entonces voy a dejar un botón de acción me estoy tomando todos estos en. Yo sólo voy a dejar uno en el propósito fuera. Este Barton es dedo del pie. Voy a poner el texto. Entonces esta es Ah Reza en html tag helper aquí. Correcto, Entonces nos está dando un enlace de acción. Este es el texto que voy a decir Asignar los empleados del dedo. Andi, quiero decir establecer dejar como acción quise llamar entonces el parámetro a pasar estará encendido tomaré todos los comentarios. Será un i d en el i d a pasar será yo TEM que i d. Así que tiendo que las ideas que vienen de modelo en adelante. Recuerda que nuestro modelo se basa en una lista fuera de licencia tipo VM. Entonces para cada tipo de hoja, vamos dedo del pie atar que d a este botón. Entonces cuando hacemos clic en este botón, va a ver Llamarlo diciendo esto. Esto es lo que está esprint a la pantalla. lo que va toe llamar a ese Contralor Andi, Va a pasar en ese valor llamado idee Onda. Hacemos lo que necesitamos hacer dentro del controlador o realmente, las acciones. Es llamar a esa acción. Perdón. Entonces de vuelta en nuestro controlador de asignación de licencias Ah, en realidad podemos crear un modelo, uh, subasta personalizada. ¿ Verdad? Entonces generamos una con un montón de opciones, ¿verdad? Todos estos, los kurdos se generan, pero en realidad puedo crear un segundo literalmente justo público porque quiero una acción que, sabes, ya sabes,tenga un nombre específico, y probablemente hace algo específico que los demás no hacen. Algunos lo llaman sentarse, irse. Muy bien, entonces. Set leave está diseñado para tomar en parámetro int llamado I d. Muy bien. Entonces en realidad sólo voy a pintarte un cuadro después te voy a mostrar por qué voy a crear otro modelo de vista y por qué siempre es una buena idea. Entonces en realidad quiero un modelo de vista que vaya a decir el número fuera de registros que se habrían actualizado después de que se ejecute esta operación. Estaría bien si solo cargara ese modelo de vista devolvió la misma vista así como el valor. Entonces fui a volver a seguir. Entonces voy a ir a dejar asignación v M Onda. Voy a llamar a éste, así que voy a crear una nueva clase pública el. Voy a llamarlo crear. Deja nuestra VM de ubicación encendida. Entonces éste va del dedo del pie. Tener ah propiedad se rompió. tiempo en adelante va a decir número actualizado en entonces esto. También va a tener. Ah, lista fuera de hoja tipo V EMS. Correcto. Por lo que se va a decir pública dejar la VM encendida. Esta va a ser lista fuera de hoja tipo VM. Entonces ahora vamos a hacer algunas modificaciones de lo contrario So. Ah, qué vamos a hacer Saber que tenemos eso sabía qué? Este es el modelo de vista que se va a utilizar. Lo que voy a hacer es modificar el tribunal de contraloría existente. Entonces aquí nos dieron la hoja tiempo v ems, y luego dije que el modelo es igual dedo del pie este. ¿ Entiendes? Decir, uh, uh, tipos de licencia mapeados es igual dedo del pie la lista fuera de la hoja tipo para dejar esa vehemencia. Recuerda que estamos cargando el modelo para ser el menos alejado de la escuela Lyft IBM de la base de datos . No, solo lo estoy haciendo otra variable en. Entonces voy a declarar que el modelo real es igual a Onda. Voy a poner a esta madre para que sea igual a un nuevo objeto. Off type, Crear asignación de dejar VM Todo bien, encendido, entonces. Asignación de licencias. Veum tiene dos propiedades. Uno es tipo de licencia encendido. Debería llamarlo tipos de dejar porque es una lista. Entonces es tipo de alivio, Entonces Muy bien, me gusta que me gusta ser muy claro con mis etiquetas, y las variables están en, por lo que tipos de licencia es igual al impuesto de hoja trapeada. Muy bien, Varios tipos de creencias es una lista fuera de hoja tipo VM. Entonces estamos obteniendo la hoja Los tiempos de la base de datos los estaban mapeando desde la clase de datos a la clase de modelo View, que es lo que se está haciendo referencia en lugar de dentro del modelo de vista que acabamos de crear. Y entonces lo que estoy haciendo es pasar ese modelo de vista que están creando en instancia de este tu modelo, dándole el valor predeterminado de lo que viene de la base de datos. Onda, voy a establecer número actualizado para que sea igual a cero. Está bien, en eso no toma respuesta cínica que ingresos cínicos después de la brisa encendido, entonces voy a volver vista con modelo. Por lo que ya se generó mi vista para ser una lista en su heredar el tipo Lyft I V. M. Y es todo lo que así voy a tener que hacer algunas modificaciones. De lo contrario, van a ser desajustes de datos. Entonces, en primer lugar, modelo no puede estar en innumerables off type leave VM. Tiene que ser una instancia off crea asignación de licencias. Entonces solo voy a eliminar la innumerable palabra clave así como los corchetes angulares. En. Quiero Cambiar es dejar tipo, así que creo Leave allocation VM una vez que no lo hago. Una vez que haga eso, vas a ver un montón de errores. Entonces, no, voy a tener que modificar dónde está buscando esta lista porque está mirando el modelo. Por lo que esta vez ya que el modelo es crear asignación de licencias VM, la lista necesita venir de la propiedad, alguien que diga que dejan tipos. Por lo que una vez más, creé un nuevo modelo de vista llamado Crear Leave Allocation Veum, que contiene los tipos de vista de lista fuera así como otra propiedad y tantas otras propiedades como mediamos necesario, pero que es lo que tiene puesto. Entonces va a ser el el va a ser el modelo para nuestra página de índice. Pero entonces, para nuestro listado estaban usando esa lista dentro de ese modelo. Entonces dentro de modelo fuera, en realidad soy lo que voy a hacer. Basta con quitar esto. No necesito enumerar el nombre fuera de la vista. Dejar tipos entender leer el texto estático dejar tipos. Entonces dejar tipos no es realmente el punto focal lo. Entonces solo estoy listando los grifos de licencia. Yo sólo tengo una mesa con una columna que son sus tipos de licencia en otra columna que es tal vez como acción aquí y luego dentro de la rosa real. Voy a tener el nombre fuera del tipo de hoja así como el botón de acción, que es el Asignar Toe Empleados en su vocación. El conjunto de acción deja pasando en todo el medio apagado yo d. Así que de vuelta en el controlador podemos empezar a construir o qué o establecer licencia. El ex Sun realmente lo va a hacer cuando son sin duda la función viene primero, entonces necesitamos encontrar el tipo de hoja. Eso fue rápido. Entonces estamos pasando en el I D de los tipos de hojas. Voy a guardar nuestro tipo de licencia es igual a Y entonces llamaré a mi reporte de licencia, que se llama ascensor como realmente debería llamarlo dejar tipo reporte. Pero voy a encontrar por i d. Y luego pasé en que devaluo. Entonces no, tengo el tipo de hoja. Mi siguiente objetivo es establecer el número desasociado con este tipo de licencia dedo del pie cada empleado que está en el sistema, alguien para salvar a los empleados de ira iguales en. Entonces ya sé, voy a ver que necesito otra dependencia porque para conseguir a los empleados que realmente son usuarios, hay, ah, ah, biblioteca o función incorporada en la identidad. Llame al administrador de usuarios, correcto. Hubiera mirado al administrador de usuarios cuando estábamos buscando sembrar la fecha, y yo solo voy por su rápido y vemos aquí que tenemos administrador de usuarios, así que en realidad sólo estoy yendo de pie rápido. Copiar esto en entonces. Voy a comer inyectado como dependencia en este proyecto. Por lo que en Anethe mapper astride privado solo lectura. Entonces solo lo estoy mostrando a medida que avanzas, te vas a dar cuenta de todo lo que necesito esta o cualquiera de esta operación. Y así es como realmente vas adelante en Poner en la funcionalidad porque puedes planear. Pero en realidad nunca evaluarás cada escenario desde el principio, así que solo incluiré eso en. Haré el mismo putter de inyección de dependencia, y vamos a hacer referencia al mismo. Nuestro declararlo y luego voy a llamar a la instancia dentro fuera del controlador Algunos esta copiando y pegando para agilizar este proceso. Andi, no copias en paz realmente te ayuda a ver si el tiempo cuando, Mientras entiendas lo que estás haciendo, no tienes que pasar mucho tiempo retrabajando bien. Por lo que ahora tienen administrador de usuarios. Sé que tengo la dependencia. Para que pueda saberlo. Llame al objeto de administrador de usuarios y diga punto encendido entonces tenemos dos veces fuera de los usuarios. Tenemos los en el empleado roll on. Tenemos esos en el anuncio minerales. De verdad sólo quiero empleados, ¿verdad? Entonces voy a decir usuario manager dot on entonces puedo decir conseguir usuarios en rol para que veas, conseguir usuarios en roll on, luego dentro de esta función Call. Se espera el nombre del rol como un string soc empleados porque esa es la regla en la que quiero. Entonces digo punto sobre resultados. Entonces after dicho Not result, en realidad obtener la lista de empleados y luego esto está regresando y yo lista, que es sólo otro tipo fuera de arrendamiento. Se trata de una cobranza de empleados en el sistema. No, lo que voy a hacer, Saber que tienen el tiempo de la hoja que está en cuestión y tener a los empleados en cuestión. No voy a iterar a través de todos los empleados y configurar la asignación en consecuencia. Entonces para cada empleado que está aquí, voy a crear al entrar en la asignación de licencia en si recuerdas cuál es nuestro objeto de asignación de licencias . Nuestros datos. Sí, bueno, lo que tiene que parecer es que esto también se genera. Ponemos el número de días libres, que viene del tipo de licencia que ponemos en la fecha creada, que determinamos a partir del controlador. Nos referenciamos a los empleados por i d, que estamos recibiendo porque sabemos de la cobranza de los empleados, tenemos la hoja tipo I D encendido . Determinaremos el periodo, que es, si es si se hace clic en el botón para saber el año en el que se hace clic ¿es el periodo correcto? Entonces lo que voy a hacer es ver por cada carretera de servicio para cada uno y presionado dos veces, y eso generó. Y entonces sólo puedo decir m en empleados. Entonces este soy yo no pasar. No sé cuántos empleados hay, así que yo, así que yo, para cada uno es un bonito lubricante rápido para simplemente pasar de la primera a la última sin necesidad conocer el número Enseguida. Entonces voy a ver algo así como var. La ubicación es igual a nueva, y recuerdo que no queremos usar nuestras clases de datos con demasiada frecuencia o al menos en esta etapa, usamos nuestro modelo de vista y luego mapeamos algún lugar para decir nuevo leave I location VM on, luego use mis llaves para hacer el inicialización. Simplemente pondré el cínico debajo de no en adelante Entonces para el primer objeto o primera propiedad que necesito. No hay arteria en particular Después de dicho estas propiedades, puedes hacerlo en cualquier trimestre. Así lo hizo creado va a ser tiempo muerto no saber coma siguiente empleado de propiedad I d Sowden set empleados lo que yo diría el derecho d. Por lo que empleado i d a ser almacenado en la base de datos será punto vacío en los MPs provenientes de este objeto. Por lo que está diciendo para cada off este objeto en esta colección fuera de objetos. Entonces eso significa que cada vez que se ejecuta, se puede acceder a esos datos de iteraciones a través de esa propiedad, por si no estás familiarizado con cada bucles, así que emp dot Y entonces puedo conseguir el i d. puede acceder a esos datos de iteraciones a través de esa propiedad, por si no estás familiarizado con cada bucles, así que emp dot Y entonces puedo conseguir el i d. por lo que conseguí que los empleados me d en entonces el tipo de licencia i d en cuestión es igual dedo del pie I d Porque lo sabes viniendo del parámetro. Esa es la idea con la que estamos lidiando. Todo bien entonces vamos adelante y volvemos a ver coma. Número de días fuera será igual dedo del pie el valor predeterminado desasociado con el tipo de hoja Así que decimos tipo de licencia. Eso fue recuperado antes puntos en. Decimos que el default está bien en. Entonces c coma ¿en qué otra propiedad necesitamos establecer? También necesitamos fijar periodo y entonces periodo sería el año para que pueda ver algo idea tiempo no sé. Pero entonces sólo quiero los años que dije no otra vez y sólo recuperé el valor del año, que es de hecho y de hecho, un entero. Está bien, no fuera de curso. Si presiono venir otra vez, verás que hay otras propiedades. Pero el hecho es que estas propiedades no aparecen en la base de datos. No tengo que ponerlos. Incluso si los pongo, vamos a tener que fregar de nuevo a la clase de datos y así se ignorarían de todos modos, Así que los dejo solos. Entonces lo que esto está haciendo una vez más es recuperar el tipo de licencia para el que estaban sentados asignaciones. Se va a recuperar a todos los empleados en. Entonces se va a decir para cada empleado, crear una asignación. No, ya estoy viendo una brecha tipo off en esta lógica porque entonces si hago clic enfermizo cinco veces, va a crear cinco sets diferentes de asignaciones para el mismo set off empleados cada vez. Entonces lo que me gustaría hacer es una especie de set on if statement, como un poco de control para decir, OK, tengo un empleado o tengo la cobranza encendida entonces para este empleado, ¿hay una asignación para este tipo de licencia para este periodo ya si hay, entonces no hagas nada de lo contrario continúa. Puedo sentarme sobre s declaración dentro de esto y decir algo como, si y entonces aquí podemos ponernos creativos. O puedo volver al repositorio de asignación de licencias y configurar Ah, función de informe completo para aquello que creo que sería preferible. Entonces voy a dejar la declaración if if if statement is need. Pero yo iba a escribir lo que dijo aquí. Pero creo que el mar para nosotros sería simplemente crear la función de repositorio Alguien a quien ir para dejar un repositorio de ubicación lo hará Primero, voy a encontrar el contrato de licencia, informa el repositorio de asignación sobre. Entonces voy a ver algo como cheque. Yo miro a tu hijo y luego chequear asignación se va a sacar un perímetro de unidades, Deja tipo I D. Andi. También se va a llevar a un empleado yo d. Y eso sería como una cuerda. Entonces string employ e i d. Ah, y este retorno, eso sería lingotes. Por lo que será lingotes. Consulta una ubicación en luego fuera de curso. Si hago eso en los interfiere, entonces después de implementado en la clase de repositorio real, así que solo implementaré interferencias en. Entonces Si estoy revisando asignación, necesito algo que ver con los empleados, lo que significa que necesito recuperar a ese empleado. Bueno, no necesito usar un gerente. En realidad, realmente no lo hago, así que Oh, y también voy a pasar en el periodo, así que voy a ver Bueno, no, no puedo determinar eso sobre la marcha. Yo puedo determinar eso sobre la marcha. Lo siento. Hay tantas maneras de hacer esta cosa que golpeó. Estoy pensando en voz alta. Entonces esto es lo que voy a hacer. Entonces para esta función on, estoy asumiendo pasantes relevo tipo I D y un empleado de cuerda I d. Está bien, así que dentro de aquí, voy a ahorrar nuestro periodo es igual dedo del pie el tiempo No sé año de Doc. Entonces como se llama a la función, sé con qué estamos trabajando Pierre y con qué estamos trabajando. Entonces voy a ver volver, entonces puedo llamar a una función que ya está aquí, que es tal vez encontrar también todo ya se va a ejecutar la cantera para conseguir todas las asignaciones de licencia en los puntos del sistema. Entonces puedo ver que somos alguien para crear unas expresiones lambda. Por lo que este hallazgo todo la función es devolver una colección o donde quiera que estés devolviendo una colección con su lista A en Mary, puedes usar Lambda Expresiones para filtrarla en algún lugar para ver donde q atracó en ir a comprobar si el empleado me d. Es igual al que está entrando. Entonces si la idea del empleado en ese registro es igual al empleado entrante, yo d. Muy bien, entonces puedo crear múltiples condiciones a bordo. Entonces donde este empleado me d en el registro es igual al entrante. Andi, el tipo de hoja de los registros Acuna dejar tipo I D. Es igual al tipo de hoja I d entrando desde nuestro perímetro Onda. Una vez más el periodo que puntos periodo se iguala dedo del pie al periodo que acabamos de poner por encima de esta línea derecha en mi lado izquierdo fuera desigual aquí algunos viendo encontrar todo. Entonces estoy recibiendo todas las asignaciones de licencia, pero quiero que todas fueran Estas condiciones se cumplen que la idea de empleado existe con ese tipo de hoja yo d en ese periodo. Y luego la línea roja está ahí porque esto está regresando una colección que cumple esos criterios son ese criterio. Por lo que mi función es esperar un toro. Entonces solo puedo decir punto cualquiera para que cualquiera simplemente vaya a decir, ¿ Hay algo en esta colección? ¿ Sí o no? Eso es todo lo que realmente quiero. Entonces filtra la colección, y después dime si tienes algún registro. Entonces acabamos de devolver sí o no por esa operación. Está bien. Por lo que ahí, habrá, podría alguna vez en esto en múltiples líneas. Pero solo te estoy mostrando las expresiones po off lambda y voy a desesperar la tierra que cada parada completa para que puedas verlo, ya sabes, algo más definido. Está bien, así que con los que podamos tener tantas tías puestas, al igual que todo tu equipo de preparación con Anson. O puedes hacer eso con eso. Fueron declaración ahí. Entonces somos pollo. El reparto alguien para ver esto y luego volver a nuestro controlador en algún lugar para cerrar cualquier cosa que no sea absolutamente necesario. Por lo que de vuelta en el control y fui a ver si en eso quiero decir dejar informe de asignación atracado. Consulta asignación el entonces, para la ubicación Cheka. Estoy pasando en la hoja tipo I d que está entrando a través de los parámetros me d en entonces también voy a pasar en imp dot i d como usuario o los empleados que d on. Entonces estoy viendo si esto es cierto, entonces quiero romper. Eso es inexacto, en realidad quiero continuar tan breve terminaría el bucle. Lo que continuar solo diría Saltar esta iteración. Entonces si hay una asignación para esta licencia yo d sobre este empleado en estaban pre determinando que esta operación sólo se va a ejecutar durante un periodo determinado. Entonces solo vamos a saltar de pie esa iteración. Si vuelve con esta condición no se cumple, entonces seguirá adelante y creará el objeto de asignación de licencias. Entonces necesitamos dedo del pie muppet alguien para salvar nuestra licencia. Una ubicación es igual a, y luego llamamos a nuestro mapeador puntos mop on. Entonces en realidad podemos simplemente fregar y ver el objeto de destino. Por lo que estamos mapeando al objeto de destino apagado. Dejar un lugar. La clase de datos en el objeto que estaban mapeando en esa dirección es una ubicación. Está bien, así que quiero decir manera han hecho bastantes cosas aquí esto puede ser. Espero que hayan estado prestando atención. Si tienes alguna dificultad en el camino, siéntete libre de llegar a mí, ayudarte. Pero, ya sabes, esto es una especie de lo que entra cuando estás construyendo. Estos sistemas empresariales tienen el dedo del pie llamado para estos diferentes escenarios sobre hay que ser flexible porque cualquier cosa puede cambiar en el negocio de los criminales puede cambiar en los requisitos de negocio implacablemente y las reglas de negocio son literalmente sólo un montón de cuatro bucles y un montón fuera. Si las declaraciones en los lugares correctos, eso es lo que obtienes. posible que los resultados que necesitas incluso después de esa cancha de año aún no sean tan perfectos como necesitas que sea. Muy bien, Así que una vez más, um, Iterando a través de todos los empleados comprobando si ya tienen una asignación para el periodo encendido si no se paran, construimos un objeto fuera del modelo de vista tipo. Después mapeamos el objeto a la clase de datos en. Entonces ahorramos. No, no decimos lo siento, agregamos. Entonces digo, deja un reporte de ubicación, crea el. Entonces voy a pasar el dedo del pie el objeto de asignación de licencias en algunos creando que dejan bien la asignación , y luego, después de todas esas creaciones lo están haciendo, va a crear para cada empleado. Está creando esas asignaciones. En última instancia, todo esto necesita es una dirección para entrar, ya sea que va a devolver una vista o simplemente va a redirigir a indexar algunos realmente simplemente ventilados Redireccionados Index. Y tomaré prestada la cancha a nuestro controlador de tipos de licencia. Vemos que se puede decir, Redirigir la opción en se le puede dar un nombre. Alguien dedo del pie. Copiar esto en. Voy a ver Redirigir a índice. Ahora, Lo que no hice fue actualizar el número actualizado, y en realidad te voy a desafiar a que hagas eso. Entonces lo voy a hacer en. Proporcionaré el código fuente. Pero te estoy desafiando dedo del pie haz eso donde vas a tomar un conteo fuera de casa muchas veces este Lupron más o menos en luego añadido a la modelo. Y luego cuando redireccionas, pasaste en ese objeto modelo en índice el. Después se muestra ese número en el discurso del índice, para que suene como un bocado. Pero creo que hicimos el grueso del duro trabajo en este video. Una vez más, agregamos un montón fuera de la lógica empresarial al apagado real. Ah, ubicación. Hay más lógica que podríamos agregar donde podríamos caso por caso, determinado todo a lo largo Este empleado ha estado con la organización. Um, porque sí tenemos un objeto conjunto dentro del objeto de nuestros empleados, que sobre eso en realidad requeriría un poco más de modificación. Pero no quiero abrumado con demasiado. una ocasión esto ha sido tranquilo y actividad. Por lo que en esta actividad miramos el uso de más de un repositorios. Nuestra dependencia está dentro de fuera. Controlador articular, miramos la creación de un modelo de vista personalizado en. Nos fijamos en modificar una página para hacer exactamente lo que queremos. Entonces como acto final, sólo vamos a entrar en de barco amarrado en la prueba Nuestra nueva característica. Alguien dijo un rápido, ah, punto de ruptura esta la acción y luego vamos a probar nuestra aplicación. Alguien va a dejar asignaciones. Ah, necesito configurar y tú solo pones los enlaces todos y voy a establecer el enlace dentro del Señor alguien para salir de depurar amarrado. Vuelve a la solución, encuentra la vista compartida. El diseño encendido para eso vinculado a las asignaciones de dejar, entender copiar en uno existente en, luego pegarlo aquí en. Entonces este controlador es Dejar una llave baja Sean. Dejar asignación, no dejar asignaciones. Software que parece ser muy cuidadoso con esta primavera. Entonces volvamos al modo de depuración y Australia. Muy bien, trabajo de StarLink. Entonces ves que podemos hacer algo de refinamiento, ¿verdad? Hemos estado agregando, ya sabes, algunos bootstraps estilo starling así que podría agregar algunos estilos y quitarse esa barra que pipa. Pero lo dejo para después. Te dejo embellecer tu página, pero lo más importante, cuando estás sobre el enlace que ves en la esquina inferior izquierda, es llamar a set leave o set cars que salen con el tipo de licencia I D. Como parámetro ¿verdad? Entonces, para licencia por enfermedad, um, con un clic, empleados de Asignador, y luego resistido se está encendiendo porque golpeó el punto de ruptura en. Entonces está consiguiendo la idea. Alguien dedo del pie salta adelante a Lyon 54 en cuyo momento comienza el para cada bucle aan den. Está consiguiendo a todos los empleados. Acabo de repasar los objetos de los empleados. Ellos ven que somos tres empleados. Por lo que estos son los tres usuarios que están en el rol de empleado en la base de datos. Está bien, vamos, ya tiene el tipo de licencia en todos los detalles y necesidades para ese tipo de hoja, que sería el predeterminado. Es etcétera, etcétera a diez centavos, en realidad, realidad, sólo va del dedo del pie. Ponga un punto de ruptura en la parte donde está a punto de crear el tipo de hoja. Entonces solo voy a quitar el primer punto de ruptura y presionar cinco para que continúe. Entonces el 1er 1 que obtendría un ¿Ves aquí el objeto de asignación de licencias fue creado en él tiene el empleado i D. Tiene el tipo de hoja i d. el número de días libres y el periodo de 2020 también la fecha creada. Una vez más, no van a ser valores porque la propia clase de datos tiene el objeto empleado así como el objeto tipo hoja There on. Posteriormente, se ve el propósito fuera de ellos antes de No. En la base de datos, no hay empleados, y no hay hoja de que lo que sí tenemos las ideas devueltas, base de datos a alguien para presionar F cinco y se va a correr de nuevo, 32. Dejar la posición - lista de empleados: Oigan, chicos, en esta lección, estaremos continuando nuestro modelo de asignación de licencias sobre lo que vamos a estar haciendo es configurar las vistas de anulación o la funcionalidad de over add, lo que significa que deberíamos permitir que el usuario administrador vea el empleado, ver las asignaciones y editar la asignación sobre un tú sabes, forma individual cuando sea necesario. Entonces vamos a poner en algún trabajo nuestro propio poniendo en esa funcionalidad. Pero antes de continuar con eso, solo quiero que el dedo del pie les traiga presentes las modificaciones que me refiero a la pantalla. La última vez que hicimos esta pantalla de asignación de dejar, todo lo que estaba ahí fue solo el dedo del enlace. El lee, los empleados de la asignadora no. Se puede ver que es un botón verde. Al menos se vuelve verde cuando floto. Entonces lo que hice fue agregar la clase bootstrap, y también agregué el icono de cinco o el frente Awesome. Perdón por no haber podido puntear el botón para ese lápiz. Solo estoy compartiendo las modificaciones de corte que quiero decir, el cordón original hubiera sido un cada día enviando un correo electrónico a nuestro ayudante. Entonces tenemos los ayudantes de estimación, y luego podemos fuera tener la capacidad de escribir más HTML nativo con unos cuantos,ya sabes, ya sabes, ayudantes de remolcador en el camino. Entonces voy a sólo comparar para que puedan ver exactamente lo que cualquiera de ellos fue capaz de lograr . No por el enlace de acción que ya habríamos tenido hasta tanto. Lo que hice fue Atacama en DSI nuevo de nuevo en luego poner en marcha una nueva sección en ese bloque de enlace de acción fuera de cancha y agregar un aviso de clase. El at sign classes iguala dedo del pie y luego pude sumar la clase torería. Esto le habría dado el botón verde, y eso está bien. Pero entonces quería el lápiz en él y habría habido algunas limitaciones usando el enlace de acción que se generó para nosotros. Entonces yo sólo cambio. Debería a la etiqueta de ancla correspondiente buscando cancha donde tenemos lo mismo Bueno, es un ataque de tío que nos está dando un enlace. Ponemos en las mismas clases, el Bt en, pero el verano usan Bt y dash delinearon el éxito del guión. Entonces por eso es que sabes que es blanco hasta que se cierne sobre él. Se vuelve verde, ¿verdad? Entonces eso es Bt y dash delineado, dash exitoso. Por lo que para cada uno de los botones con este éxito La primaria lesionada que tienes en Oland Alternativa. Entonces si no quieres decidir cólico y usar la vieja línea y entonces tengo la acción SP la cual se establece dejar aviso que habría correspondido con lo que teníamos en la sección de acción off para el link de acción en entonces tener SP dash Road Dash i D, que es el valor de roading que hay que pasar al conjunto Deja acción para que se calcule pista en que se hubiera representado aquí donde dijimos nuevo andan en sección ideas iguales para actuarlo Eso es así Es realmente el mismo tribunal. Excepto que pude insertar que me tira para ese ícono pasando en el fondo clases impresionantes que se necesitan para ese lápiz. Por lo que esta es una comparación lado a lado off. De lo que ya sea frío habría cedido uno habría cedido el verde sólido y el verde sólido sería la acción. Lincoln nota que no tiene lápiz me conceden. Yo podría haber conseguido que mirara el online si quisiera, pero el hecho es no pude conseguir ese fondo Impresionante icono ahí y luego Esto es lo que hice para conseguir ese fondo . Icono impresionante. Está bien, así que quiero decir, solo te estoy mostrando en caso de que quisieras probarlo tú mismo. No. Como dije para esta mañana, lo que vamos a estar haciendo es sentarnos a ver para los empleados una lista de empleados en la empresa on. Entonces podrán ver las asignaciones que ese empleado en particular tiene en ese entonces y lo si la señora o incluso eliminar. Ahora para esta mañana. Voy a volver a mi controladora de asignación de licencias Onda, continúe en el mismo sentido. No sólo vamos a usar las acciones por defecto que se generaron, sino que vamos a estar creando mucho fuera de nuestras propias acciones que lograron lo que queremos. Por lo que la siguiente acción sería toe configurar una vista para la lista de empleados. ¿ Verdad? Entonces voy a crear una nueva acción en, luego voy a ver acción. Bueno, voy a crear acción viendo resultados de acción pública en. Entonces voy a llamar a esta lista de empleados y luego listar empleados literalmente va a hacer eso. Enumerar a los empleados, ¿verdad? Entonces para conseguir a los empleados, voy a salvar a nuestros empleados es igual a Andi para conseguir a los empleados en el sistema. Yo sólo voy a reutilizar este tribunal aparece puedo literalmente declarar esta línea porque voy a volver a usarla. Está bien, entonces ves que mucha corte se repite en el camino, Pero entonces, Pero entonces, basado en la forma en que escribes que puedes modificarlo una o varias veces en función de tu arquitectura. Por lo que usar el patrón de repositorio que ve justo era para nosotros mantener el código subyacente y simplemente repetir las referencias al cable, haciendo más fáciles las modificaciones y el mantenimiento en el camino. Por lo que tenemos a nuestros empleados iguales al gestor de usuarios, devolviendo a todos los usuarios en la regla de empleado sobre. Entonces lo que queremos hacer es fregar a estos alguien para salvar a nuestra modelo es igual a, y luego lo vamos a ver a Oper atracado y fregar. Entonces solo puedo decir que quiero fregar el dedo del pie este tipo de modelo. Puedo ver una lista en, luego abrir la lista etiqueta se pusieron en el tipo y el tipo aquí es empleados el M. Así que hicimos el modelo de vista solo para los empleados en. Entonces voy a estar pasando en el valor empleados. Por lo que una vez más, me preocupo por todos los empleados en esa regla. Entonces solo los estoy fregando a mi clase de modelo de vista en. Entonces voy a devolver la vista con el modelo que se está pasando y luego cerrar eso. Entonces cuando se llame a esta acción, va a traer a la luz todo lo que se va a coro para todos los empleados en dmat ellos al modelo de vista. Entonces estoy con generate of, ya sabes, llamado list employees, y escribo empleados equivocadamente aquí para que los empleados Muy bien, así que me derecho Click view goto ad view on ir a elegir el modelo. El listado de plantillas. El modelo de clase va a ser empleados VM en entonces. Por lo general, cuando estamos usando modelos de vista, realmente no necesitamos la clase de contexto de datos por lo que podemos aclarar eso. Entonces voy a dar clic en agregar. Por lo que en nuestros puntos de vista creados, podemos hacer ajustes menores. Podemos poner el espacio para listar empleados en esta etapa. No quiero que nadie pueda crear un empleado, alguien para quitar referencia dedo ese enlace sobre eso solo puedo refinar los encabezados para la tabla, así que no quiero i d no quiero Bueno, para nuestro contexto son los Hasta ahora he estado usando nombre de usuario y correo electrónico como lo mismo. Tienen el mismo valor, así que no necesito ambos, pero puedes retener ambos, pero no necesito ambos. Entonces lo que realmente me pregunto al menos es el correo electrónico. No necesito un número completo para ser listado en la lista. A lo mejor puedo vencer los detalles de un empleado, pero lo hago en nombre y apellido y en realidad quiero eso antes de ver los correos electrónicos, solo estoy reordenando mis encabezados para la mesa como me parezca conveniente. Correcto. Um y no necesito ver el impuesto d la fecha de nacimiento y puedo dejar la fecha unida. Bueno, puedo dejarlo. Yo lo puedo desenterrar. Me lo voy a quitar, en realidad. Por lo que realmente sólo estoy esperando ver el nombre, apellido y dirección de correo electrónico de los empleados. Entonces, claro, si rara vez soy los encabezados, entonces realmente necesito reorganizar al héroe o las columnas en las reglas que se están generando sobre la marcha, por lo que necesitan alinearse para que tenga sentido . Entonces estoy quitando lo que no es relevante para ser d. nombre de usuario Se quitó demasiadas líneas. Por supuesto, Ahí en, queremos nombre y apellido por encima de la dirección de correo electrónico un movimiento los hay en entonces todo debajo de la dirección de correo electrónico hasta que la columna de acción se considere excedente. Entonces, para la acción vincula las acciones de tiempo permitiendo a esto ahora mismo implicaba ver tal vez los detalles fuera de este empleado. Entonces voy a especie fuera de refuerzo. No. Por lo que cuando hagan clic en el enlace de detalles, van a ver toda la información para eso. Empleados. Ya conoces todos esos bálsamo adicional, pedacitos de información que acabamos de sacar sobre los empleados. Ahí van a enumerar todos, así como todos fuera de las asignaciones de licencia para esos empleados. Entonces no quiero que sean capaces de editar a alguien para que tome ese juramento. Y no quiero que nadie lo borre seguro. Sólo voy a mover esa barra. Entonces, como dije, Así que quiero conocer. Mis detalles no se verían similares. Toe el botón de los empleados del asignador que te mostré al inicio del video. Entonces todo lo que voy a hacer es ir a esa página en adelante, copiar ese acorde y volver, pegarlo para que pueda simplemente quitar esto, o puedo comprometerme a tote y controlar manteniendo pulsado el control y la persona. Casey, eso es un tribunal rápido para comentar. Entonces solo voy a modificar esto donde va a estar la acción esta vez. Detalles. Onda escribió, i d sigue siendo el mismo, que es el ítem que yo d Así que recuerda que este es un ritual de cuatro pasando por cada ítem en el modelo y modelo es una colección de empleados basados en el modelo de vista, um, teatro tipo rojo. Entonces para cada artículo, solo estoy vinculando ese particular me d con cada empleado dedo del pie esta cuerda. Está bien, voy a cambiar esto. Entonces es vista. Los detalles son solo pueden ser detalles. Muy bien, en la pluma. Entonces no quiero un lápiz. En cambio, probablemente iría con el botón de búsqueda. Por lo que el artista icono de búsqueda más bien Así buscar. De acuerdo, así que f a esa búsqueda. No, no lo sé yo no memorizé estos. Siempre que necesito algo, solo vuelvo a la documentación y encuentro uno que se ajuste a lo que quiero. Entonces ese asunto que nos va a dar, como un pequeño botón de lupa. Entonces lo siguiente que voy a hacer es que me voy a unir en la capa. PH Tengo, ah link aquí para empleados así gestionar y empleados. Voy a configurar ese controlador en la acción de día cuándo configurar esos atributos. Yo sólo voy a quitar cada F encendido. Entonces el contralor sería asignación de licencias sobre la acción en esta ocasión sería lista de empleados. Entonces cuando hago clic en empleados, vamos a listar empleados. Esto lo estoy haciendo bien. No, más adelante, podemos refinarlo. Pero lo estoy haciendo ahora mismo porque ya tengo que muchos son ítem y básicamente estoy creando esa funcionalidad aquí. Muy bien, entonces. También voy a cumplir con esto en una tabla de datos on para convertirlo en una tabla de datos. Simplemente miro hacia atrás lo que hice con tipos de licencia. Algunos quieren ir por ahí, hicieron el i d. T. B de los datos. Entonces solo estoy copiando esto. Entonces ya ves, cuando lo haces una vez. Si recuerdas que lo hiciste. Sólo tienes que ir en una referencia el tribunal que ya has trabajado en Andi solo que sabes, um, ya está ahí. Diga, basta con hacer uso de ella. Entonces Oh, sí, ya incluí ese script que cambia cualquier cosa con los datos i d. T. T. B O en una tabla de datos. Entonces, literalmente, eso es todo lo que necesitaba hacer por todo esfuerzo en la cancha justo en el i d iguala datos de tibia . Ahora que he hecho todo esto, voy a ejecutar o simplemente entrar en el enlace de mi navegador, iniciar el navegador encendido, entonces vamos a evaluar nuestros cambios hasta el momento. Está bien, así que si te dieron una flecha Pidge, es muy porque ya tenías Broza Link abierta serialize. Solo soporta una instancia, así que si ya la tienes abierta, entonces la segunda vez que lo intente, se va a sentir. Pero de cualquier manera, lo tengo abierto aquí ya, así que hay poco manejan empleados encendidos. Entonces vamos a tener un poco de error, así que eso es solo evaluar la época. Y entonces te diré exactamente lo que está pasando aquí. Entonces primero mintió, diciendo que Hay un error de mapeo entre empleados a empleados. VM Andi Hay algunos. Por lo que nos está haciendo saber que hay configuraciones para empleados y empleados. Veum. De acuerdo, Pero entonces, no, van a ver más tarde. No que haya tanta falta entre SB dot net core identity user. Andi Dejar gerencia arriba dinero Es que la M que empleados VM Más específicamente, nos está diciendo que hay un mapeo de problemas de la lista fuera de empleados VM on door model employees. Entonces volvamos a la cancha en Mira exactamente lo que nos perdimos. Entonces si volvemos a nuestra lista de empleados acción en, echamos un vistazo de cerca a los tipos de datos que se están devolviendo, entonces nos damos cuenta de que los empleados de bar, que está consiguiendo a todos los empleados, en realidad está consiguiendo, ah, tiempo de datos llamado Usuario Identidad. Y si recuerdas Identity User es ese tipo de datos basado que dot net core nos ha dado para representar a cualquier usuario en el sistema, correcto, Así que estamos recuperando identidad usuario, pero estamos mapeando toe empleados VM y si volver a nuestro mapa ings, así que voy a fregar soldadura y mapas, y luego vemos aquí que no estamos dando cuenta de los empleados VM mapeo dedo usuario identidad Pero estamos en el mapeo a los empleados saben una serie de cosas que juegan. Y sólo voy a explicar esto porque vamos a hacer algunas modificaciones y voy a explicar todo a medida que vamos junto con los empleados. Recordemos que los empleados de Data Class y yo solo estoy sosteniendo el control y haciendo clic, por lo que va a saltar a la clase que está heredando de identidad usuario. Entonces entonces probablemente estés viendo bien, Así que si está heredando del usuario de identidad el, lo usamos indistintamente en la trama en el pasado. ¿ Por qué es un tema así? No. Bueno, cuando inicializamos sobre funcionalidad de identidad en nuestra aplicación, habríamos inicializado con usuario de identidad y no empleados. Entonces si miramos muy de cerca los datos que regresan cuando lo hacemos en operación, como simplemente volver al controlador como conseguir que todos los empleados son todos los usuarios en la regla sobre su regreso en el usuario identitario, significa que es devolviendo todo excepto el nombre en el apellido, y la fecha se sumó al impuesto i D, que son todas las cosas que posteriormente agregamos agregando o clase de datos de empleado. Entonces, en otras palabras, cuando se usan datos cuando se usa, usa un manager, ¿no? No, porque se inicializó para ser utilizado con identidad usuario. Ninguno de estos campos volverá, lo cual es un problema para nuestros empleados de lista, porque estamos tratando de listar el nombre, el apellido y el correo electrónico. Y es un problema más grande porque no estamos contabilizando el mapeo de usuario de identidad a cualquier VM de empleado de modelo de vista. Por lo que esto va a encender un poco de refractario en nuestro cordón en su único natural, porque comenzarías con el defecto. Pero entonces quieres más en. Necesitas entender y apreciar los cambios que necesitas para hacer dedo más fácil en palabras más pequeñas sobre saber, usar solo identidad usuario estaba perfectamente bien en nos damos cuenta de que necesitábamos dedo del pie ver los datos adicionales, que se encuentra en la clase de empleados. Entonces, lo que tenemos que hacer es inicializar sobre la funcionalidad de identidad desde, o poner en marcha el archivo s nazi. uso de nuestra clase de datos de empleados en ella será completamente aceptado, porque los empleados, como clase de datos, ya está encarnando todo lo que está dentro de usuario de identidad en luego algunos. Todo bien en lo que nos interesa ahora mismo es eso y luego algunos porque ya tenemos todo identidades ahí. Entonces voy a dar un paso a paso. Todavía es lo que los cambios necesitan que sucedan, así que primero voy a interrumpir la escuela de estatus sobre Voy a cambiar identidad Usuario. Entonces en los servicios que agregan identidad predeterminada, estoy cambiando identidad usuario toe empleados en entonces para cada otra instancia fuera. Algunas inicialización son alguna alusión dedo del pie usuario identidad. Necesitaba ver empleados, algunos simplemente copiando esto en entonces abajo. Recuerda que teníamos user manager y roll manager usará su manager de manera más específica . Gestor de usuarios. No hay necesidad de utilizar empleados en el mar Datos Vamos a conseguir una era porque sabe identidad los usuarios entienden el dedo del pie en el control. Haga clic en esa función. Salta a eso entonces, en todas partes ese usuario identitario waas Sólo voy a empezar a sustituir por empleados bien , guardando fuera de curso si no está ya incluido, lo cual no sería, Yo sólo voy a usar el control acoplado en permitir que incluya la referencia No, podríamos hacer esto uno por uno, pero se va a poner muy tedioso en. De acuerdo, Entonces, como como sustituí a empleados aquí que a otras tierras aparecieron porque está esperando empleados. Pero estoy agregando Vier nuevos usuarios de identidad. Necesito agregar vier nuevos empleados en viendo empleados. Esto me abre hasta el anuncio todo fuera de los otros campos que quiero decir no han podido agregar, porque solo estaba usando evidencia al usuario. Recuerda cuando estamos modificando nuestra destrucción Page estaban agregando en clase de empleado. No soy la clase de usuario de identidad porque queríamos los campos adicionales o el nombre. El apellido es etcétera. Entonces no, necesito estar seguro de que en todas partes de mi proyecto que tenía administrador de usuarios están firmando gerente referenciando Usuario de identidad Sin referencias, empleados. Y la razón de ese cambio masivo en toda la aplicación es que lo estamos inicializando con los empleados, por lo que no puede faltar mucho si estamos referenciando algo con identidad en. No estamos usando identidad relativa a la clase de empleado. Entonces un ejemplo de donde eso tal vez telefoneó, es el show de incendios de inicio de sesión donde estamos usando la identidad. Claro, pero entonces ya sabes, a administrador de firma y administrador de usuarios ahí todavía haciendo referencia a usuario de identidad, por lo que esos necesitan ser cambiados. Empleados de empleados creo que acabo de hacer una construcción de control. Muy bien, Bien. Por lo que los empleados de nuevo. Y entonces la línea roja significa que necesito agregar el signo at usando Leave management. Entonces ese es un nombre de proyecto dot data. Entonces ese es el nombre que habla, ¿verdad? Esa es la biblioteca o la carpeta. En este proyecto. Pueden ir de pie a ver dónde está esa clase. Entonces para todas partes que esté usando Identity User, necesitaba ver a los empleados más o menos. Una buena manera de hacer eso es sostener el prensado incontrolado F que trae hasta arriba el hallazgo de control que es una opción fina en la que puedo expandir esto. Entonces lo que voy a buscar es identidad usuario on. Entonces puedo ver reemplazar con la palabra empleados. No, esto no va a arreglarlo todo, porque entonces todavía tenemos que pasar y arreglar las referencias. Pero aún así lo voy a hacer porque lo hace mucho más rápido. En fue donde estoy seguro que no recordamos cada lugar, sobre todo como oh, nos habríamos estropeado a un montón fuera de vistas para el material de identidad en todas las marchas y el uso de identidad predeterminado. O así al hacerlo de esta manera, pasará por toda la renta del proyecto. ¿ O es este documento actual que puedo ampliar que bajo proyecto actual en entonces? Es decir, si quieres ser muy prudente, puedes reemplazar a continuación para que puedas hacerlos uno por uno. Por lo que obviamente sustituiría a éste. Porque empleado necesita el esto. Si hay un lugar identidad usuario necesita ser referenciado, es su derecho. Entonces puedo saltarme esa que solo encuentran a continuación. Y luego fue búsqueda en. Entonces aterrizará dentro del dejar un controlador de ubicación donde habíamos inicializado el gestor de usuarios con usuario Identity. Por lo que sólo puedo seguir adelante Onda reemplazar. Entonces solo voy a reemplazar uno por uno solo para que puedas ver y luego vuelve enseguida. Entonces yo sólo voy a hacer sustituyo todo para agilizar esto, pero va a haber algún control de daños que vamos a tener que hacer algo de Justin toe Ver, reemplazar todo Andi. Esto es decir que si haces esto si tomas esta caja, entonces podrás bajo los cambios en el individuo off como si fuera indeseable. No me lo voy a llevar. Yo sólo quiero decir que sí. Simplemente pasará por todo el proyecto en reemplazar cada incienso off identity user con empleados, incluyendo la guerra misma que estamos tratando de evitar. Pero ya estamos ahí, algunos sólo en identidad Usuario. Está bien, para que se restablezca uno. Pero entonces cuando haga una compilación, vamos a encontrar que van a ser un montón de errores porque, no, no, hay una nueva clase llamada empleados en un montón de archivos sobre no hay referencia real. Y tenemos 71 errores. Entonces no vamos a preocuparte por el 71 porque muchos de estos errores están en el mar y archivo. Por lo que voy a hacer un doble clic en cada error. Va directamente al error en Dhere. Sólo puedo decirles que sólo necesitamos agregar el signo at usando gestión de licencias, no línea de datos. Está bien, así que hacemos eso y en realidad sólo voy a copiar esta línea porque puedo garantizarte que esa línea va a ser necesaria en un montón de otros archivos. Entonces hice uno en No, no estamos de 71 épocas dedo del pie por lo que le deja a uno errores. Entonces solo hago doble clic en Entonces solo paso por cada uno. Entonces si es ah clase archivada, entonces puedo usar la misma declaración usando. Simplemente no necesito el at sign justo debajo de semi Colon. Andi, sólo voy a algún lugar hacer esto alguien para hacer unos cuantos más, pero quiero que lo hagas por tu cuenta. No quiero preocuparme a la muerte con este sake de video y pausar el video encendido. Sigue haciéndolo por tu cuenta. Ya tienes que hacer es ir a la lista de la época y ya ves donde el comando Niza. Estaban a los 65. Entonces esto es citar esto es que tienes sobre un poco de trabajo libre y un poco fuera re factoring que va a cortejar a veces por eso estoy aquí. Estoy aquí para mostrarles el lado feo de los recubrimientos así como un lado hermoso del cortejo. Entonces si es un archivo de clase, simplemente lo basamos y quitamos la señal de at, ponemos el punto y coma, entonces todo el mundo está contento sabiendo que, Vale, Vale, Empleados siendo contabilizados. Por lo que solo sigues volviendo a esa era realista e parejo. Es decir, es para que no se esconda automáticamente. Simplemente hacen doble clic uno por uno cada archivo y pasan por alguien para hacer una pausa. Voy a hacerlo yo mismo en. Puedes pausar un video y terminarlo de lado. Está bien, así que tengo el mío. No remolques tres errores, y eso está en el archivo manage now. Entonces, como dije, sí, sería el número era grande, pero muchos de ellos estaban en el mismo expediente porque tenían múltiples referencias en cada referencia que no se contabilizaba era un aerosol y se fue a hacer dentro. Lo suficiente manejado está en la parte superior del fuego. Ponga en la declaración de uso con el al signo en, luego que parábolas lejos Onda. Cuando controlo turno aquí de nuevo, sé que conseguir una construcción exitosa. Entonces ahora que hemos hecho ese gran ejercicio mayor, hagámonos dragones. Entonces solo voy a abrir el enlace de Broza una vez más porque después de que construyes más o menos brasileño se deshabilita, eso es lo que se dan cuenta. Por lo que sólo vemos en el er de bro. Está bien, así que tengo este error encendido. ¿ Creía que esto podría ser algún problema con mi DITA sobre no necesariamente el proyecto. Entonces estoy en modo de depuración en lo que está diciendo es que no pueden insertarse para apagar a los mismos usuarios. Al parecer, hice algunos ajustes de esos factoring en todo lo que hice parecían ellos. Entonces lo que quiero hacer es parar y solo te muestro porque quizá te lo hayan contado. Si no, entonces estás bien. Pero sólo voy a entrar rápidamente a mi usuario de SB Net datos de vista estable en Una vez más. Esto es muy tiene muy poco o nada que ver con lo que acabamos de hacer. Pero está diciendo que no puede tener toe add mean users. Por alguna razón, lo es. Es mucho de la creación de dos. Entonces voy a tomar todo lo que tiene la palabra en medio. Entonces los tres de esos sólo estoy borrando los de mis datos. Perdón. Está bien. Y luego fui toe ejecutar una vez más alguna manera en modo de depuración, que los datos del mar deberían seguir adelante y crear. Y tú usuario administrador para mí de todos modos. Muy bien, So O aplicación cargada. ¿ Entiendes? Para agregar blogging rápidamente, ya que el anuncio significa que es admin en host local. Estar en Santa s w o R d uno. Esa es mi contraseña que usé. Muy bien, Así que después de la sensación de combustible, dejarlos serializados soy un poco número. Entonces dije que me refería a ese anfitrión local. No me puse el punto com, así que voy a volver a pasar por eso. Pero esta vez no lo haré. No voy a perder tu tiempo con él, Pero por si acaso estás experimentando el mismo problema que yo, estoy quitando a este usuario administrador de la base de datos una vez más en sigo en el teclado. La mayoría subrayando el dedo del pie se reinicia. La aplicación en modo de depuración en que debería resolver ese problema de inicio de sesión. Está bien, así que intentemos eso otra vez. Andi. Me encantan ser excelencia, y voy a pasar a la vista de mis empleados. Andi, estoy recibiendo un error en visual studio, y la flecha es que la cadena de entrada no estaba en un formato actual. Andi, creo que sé exactamente por qué. Entonces lo que está pasando aquí es una excepción de mapeo donde está viendo que ve dos elementos que parecen que deberían ser mapeados. Pero hay algo apretado miss mucho, y es estudiar o cuerda, así que te puedo decir exactamente lo que pasó. Yo soy así que sólo voy dedo del pie ¡Detente! Salga del modo barco. Si no estás en contrarrestar esto que accidente, si lo estás, entonces eso está bien. Te voy a guiar por lo que está pasando. Pero recuerda que los empleados I D es una cadena proveniente de la base de datos. Pero entonces, en la VM del empleado, mantenga el control y haga clic. Lo tenemos definido como un int. Entonces Autumn Oper a través de una excepción porque ve lo que veo que ideas en ambas clases Pero la unidad String uno está en. Algo anda mal ahí, ¿verdad? Entonces voy a hacer eso otra vez, simplemente volviendo al modo de depuración. Andi, ya veremos qué pasa. Está bien, así que acabo de ir directo al discurso de los empleados de la lista en DNO. Estoy viendo una página listando a los empleados para que todo ese trabajo duro para que finalmente podamos obtener la información completa de nuestros usuarios de nuestra base de datos, ¿ verdad? Entonces, una vez más, lo que acabamos de pasar fue cambiar por todas las referencias de usuario de identidad en nuestra aplicación . Um bueno, identidad usuario referencia a la clase predeterminada que vino con el proyecto. Pero construimos una clase personalizada para extender esa clase predeterminada en este plus personalizado tenía puntos de datos que probablemente quisiéramos mostrar en DSO. Yo los llevé adelante. Muy bien, Entonces lo que hicimos fue cambiar todas las referencias, el usuario de identidad para usar empleados en su lugar. Muy bien, en dso en cualquier lugar que tengamos el administrador de usuarios o administrador de firma, necesitamos usar las clases de empleado lo off identidad usuario en que ampliará nuestra capacidad dedo del pie acceso. El otro dato señala en la tabla del usuario que fui parte uno de las modificaciones que estamos haciendo la segunda parte. En realidad vamos a crear esa vista detallada donde hacemos clic en un empleado. Por lo que ya tenemos la vista listando a los empleados y tenemos la búsqueda. Lo convertimos en una tabla de datos. Por lo que tantos empleados son como organización, podemos buscar por nombre Andi. En un escenario de la vida real, tal vez cada empleado tendría un número i. D único relativo a la empresa. Entonces sea lo que sea, serían capaces de buscar aquí en filtrar las mesas sobre. Después podrán hacer clic en detalles los cuales nos mostrarán los detalles, el perfil completo fuera de que empleados así como sus asignaciones de licencia. Entonces en eso estaremos trabajando en la parte dos fuera de esta actividad. 33. Dejar la posición de autor: mira la presencia de la identidad para el empleado: Oigan, chicos, bienvenidos de nuevo en esto. Escucha, estamos continuando en esto es parte dos apagado o salir. Asignación en los asuntos dirá slash modelo de gestión de empleados construir. Por lo que en la lección anterior, habríamos pasado por hacer algunos ajustes para que podamos sacar nuestra lista empleados en el sistema mostrando nombre apellido Correo E en din. Esta lección estará ampliando esa capacidad. Noto realmente activa la página de detalles donde veremos el perfil completo del empleado así como sus asignaciones para el periodo en cuestión. Entonces me voy a sumergir justo en la cancha porque no vamos a pasar mucho tiempo. Ya tenemos un buen conocimiento de lo que necesitamos lograr. Todo para hacer algunas modificaciones y experiencia. Yo voy a lo largo. Por lo que estamos empezando con la licencia A location VM Así que en nuestro modelo de vista o en nuestra carpeta de modelos , tenemos la asignación de permisos de vista. El archivo de la clase M en chico puede dejar todo como está, pero eliminaré las listas de selección. Está bien, ya sabes, a veces eres el cambio de bombero o la forma en que quieres implementar algo cambia. Por lo que tus modelos de vista están adonde vas y haces esos rápidos cambios para reflejar nuestro dedo del pie. Ya sabes, complementa qué es lo que quieres ver en pantalla en función de tu proceso de pensamiento actual. Por lo que ya no necesito una lista selecta, porque la estrategia que tenía cuando creé esta vista moderna inicialmente ha cambiado. Muy bien, así que ese es el modelo de vista de asignación de licencias. Pero también voy a crear otro modelo de vista y lo voy a llamar salir. Bueno, voy a llamarlo vista Asignaciones VM. Entonces voy a crear otra clase y lo estoy llamando ver asignaciones VM on. Entonces esta clase se va dedo del pie tienen, ah, entidad pública fuera de tipo empleado VM. También sólo va a tener al empleado que D en él, Onda. Por último, voy dedo del pie tener una lista fuera de las asignaciones de licencia y luego esta lista va a estar fuera tipo leave allocation vmc. Recuerda que realmente no queremos usar las clases de datos en nuestros puntos de vista que todo lo que queremos crear madres de vista. Por eso están ahí. Son literalmente modelos para la vista. Muy bien, entonces nuestras clases de datos son modelos para base de datos y los modelos de vista son modelos para la vista. Entonces cualquiera de ustedes que van a estar creando nuestro modelo de vista desea asegurarse de que está haciendo referencia a otros modelos de vista si es necesario. No se hace referencia directamente a los empleados. Sé que tengo esta vista, mi vista asignaciones VM Voy a volver a mi vista. Dejar controlador de asignación En este momento, voy a estar usando una de las acciones ya generadas en voy a estar usando detalles, derecha. Por lo que primero se fueron a cambiar. Los departamentos son de en cadena porque recuerden que la expectativa es que cuando hacen clic en los detalles para los empleados más rápido el empleado i d que sabemos es realmente una cadena y no un entero. Por lo tanto, solo estoy cambiando el tipo de datos para obtener detalles de a string on. Entonces vamos a empezar a recuperar datos. Entonces lo primero que voy a hacer es salvar a nuestros empleados, es igual a on. Entonces puedo usar mi gestor de usuarios y ver puntos encontrar por i d en su fina por i d un fregadero, pasando por alto el i D. ¿ Cuál es el empleado que d viniendo por el parámetro que mucho es eso de? Porque es un pensar. Necesito los resultados de punto. Está bien, así que ahí para desperdiciar 100 funciones de carreras podrías tampoco, ya sabes, dejarlo como un fregadero sin el resultado médico. Pero entonces eso requeriría que cambiara todos los resultados de la acción en una flexibilización. Entonces lo haremos más adelante. Exploraremos ese barco por no, solo diré que resultados. Entonces sé que me estoy volviendo justo. Empleados estaban recuperando empleados y no usuario de identidad una vez más porque cambiamos todas las referencias predeterminadas de Identity user a employees en la lección anterior. Por lo que de nuestros empleados. Entonces tenemos a los empleados en eso. Voy a enseñar a nuestro tiburón. Recordemos que realmente estamos fregando. Entonces cada vez que obtenemos los datos, necesitamos fregarlo al modelo de vista, ¿ verdad? Así que en realidad puedo hacer todo eso en una línea donde solo puedo ver voy a poner en el espacio y decir en el marcador, mi superior no fregar. Entonces la forma de función pide un destino. Por lo que el destino para ellos arriba serían los empleados el M justo en. Entonces el objeto que necesita ser fregado dedo del pie empleados. VM es el resultado real de esto fuera de esta consulta por lo que puedo hacer todo eso en una sola línea. Entonces no, cuando regrese empleados, cuando se va a coro para empleados, conseguir empleados, luego hacer el mapeo. Y entonces mi objeto final está fuera de tipo empleado VM ya fregado con todos los datos que necesito. Entonces hice todo eso en una noche y no es que pudiéramos haber roto platicas en dos líneas como lo hemos estado haciendo sobre saber Bueno, esto es en una línea, realidad es que hay muchas formas de escribir Accord y muchas maneras para ser eficiente en todavía tienen en la corte. Entonces sepan que tengo empleados. Lo siguiente que quiero hacer es crear Bueno, es recuperar todas las asignaciones de licencia para este empleado en este periodo. Por lo que sólo voy a salvar nuestro periodo una vez más en el Muelle Vía. Va a ser igual del dedo del pie. Sabemos que es el momento de que no, ni un año. Muy bien, entonces fui a guardar nuestras ubicaciones son iguales a que el día fui a ejecutar una consulta en el marcador . Creo que es asignación de licencias. Ripple, ahí está, atracado. Yo sólo voy a encontrar todo para poder encontrar todas las asignaciones de licencia que pueda encontrar. Probablemente pueda volver al repositorio y crear una función para encontrar todas las asignaciones por empleados. De hecho, lo voy a hacer así. Entonces en lugar de llamar, encuentra todo y después tratarde ejecutar una cantera sobre ella a este nivel, lo que voy a hacer es volver al informe, hermana. Y como dije, esto es así que tu corte evoluciona con el tiempo porque a veces solo piensas en lo que es algo que quizá deba hacer otra vez, y ellos nos necesitan. Implementarlo. Entonces solo voy a implementar una función que va a devolver una colección de ojos, fuera de tipo, dejar una ubicación y luego voy a llamar a ésta, conseguir las asignaciones de get, obtener asignaciones de licencia por empleados, todo bien en entonces por empleados estaban consiguiendo las ideas de los empleados de parámetro. Entonces una vez que pongo eso dentro del contratista en lugar de los inter honorarios, necesito volver a mi repositorio en adelante entonces voy a implementar los interfieres, así que dale unos segundos. Vas a conseguir esa era que vamos. Por lo que encima de ese error en solo hacemos un punto de control y implemento interfiere en. Entonces acabo de buscar esa función que quiero que es obtiene asignación de licencia por parte los empleados. Entonces en este archivo, dentro del repositorio, hago el levantamiento pesado. Entonces escribo la escuela compleja aquí mismo. Entonces puedo ver regreso, y sólo estoy interactuado todo en una línea. Entonces no quiero seguir adelante y hacer una consulta basada en db dot algo causa ya tienen hallazgo. Y ya hice algo así. Cuando estemos revisando las asignaciones, voy a decir Encontrar todos algunos sacando todo de las asignaciones de licencia en ir a ver un punto en solo voy a romper las líneas. En realidad puedo Brick Lane O si estamos en el punto en la parte superior de ella, así se puede ver tan atracado eran y voy a decir, cura para poner en marcha el Lambda q igual en mayor que signo que dot empleado i d es igual. Entonces el i d que está entrando por el perímetro sobre Ben. Simplemente voy a hacer un punto a listar para que no tengamos ningún problema con el tipo de colección encendido . Entonces usamos nuestro semi colon. Entonces no, esto sólo va a traer de vuelta todas las asignaciones para este empleado. ¿ Qué? Yo sí precisé que queríamos dedo del pie conocer el periodo. Entonces, en realidad vamos a imitar algo como lo que hicimos cuando estábamos revisando las asignaciones. Simplemente voy a copiar los piratas donde definí el periodo sobre voy a colocar eso ahí. Y entonces también estoy en copiar la parte donde comparo el periodo en sí. Entonces quiero decir, una vez más, tienes razón. El cancha ya lo tiene ahí. Simplemente copias en paz. Ya sabes, si quieres practicarlo y reescribirlo, eso está perfectamente bien. Pero solo te estoy mostrando eficiencia. Entonces sepan que hice todo eso. Déjame explicarte una vez más. Lo que estamos haciendo es que estamos recibiendo las asignaciones por parte de los empleados. Por lo que para cualquier periodo en el que se ve en registro de empleados, se debe buscar en la asignación estable en averiguar todas las asignaciones fueron el empleado I d. Mucho está encendido. Estamos en esa partícula apareció. Entonces si eres si es 2021 no se han establecido asignaciones, entonces realmente no deberías estar trayendo nada sobre Def. Es 2020 así que no quiero mostrarle asignaciones 2020 en 2021 ¿verdad? Entonces y entonces no tengo eso. Hacemos la lista para. Entonces, ¿de vuelta en el controlador? No, mi llamada de función se parece más a dejar puntos de informe de asignación, yo solo o controlé el espacio encendido. Entonces sólo puedo decir conseguir asignaciones de licencia por empleados en. Entonces sólo voy a pasar. I d on La expectativa es que esto devuelva al menos las asignaciones. Ahora que tengo la lista fuera de asignaciones en el muelle Adande, los empleados. Andi, realmente ni siquiera necesitaba el periodo aquí porque el periodo me habría ayudado a filtrar para recuperarlos. Por lo que ahí estoy re factoring cancha ya. Lo que voy a hacer es crear un nuevo modelo en algún lugar para guardar. Nuestro modelo es igual para ver a un hijo afortunado, VM encendido entonces, ver asignaciones V m se va toe tener como su primer parámetro. Alcide Sr la nueva palabra clave tan nueva clase mecanografiada en. Entonces la primera propiedad va a ser empleados y empleados sólo va a ser igual de dedo del pie sobre los objetos de los empleados que ya telefoneamos al registro y fregamos. Está bien, así que es un ajuste perfecto. Y luego lo siguiente es que queremos la lista fuera de las asignaciones de licencia, y eso realmente debería ser una lista fuera de tipo. Ah, eso debería ser una lista fuera de licencia. Dejo asignación VM Lo siento. Entonces no hice eso aquí, así que llegué a dejar asignaciones de la base de datos por Ded't Muppets entender demasiado rápido moppet aquí. Así que subrayan mi bolso. Sólo lo estoy haciendo en una línea, igual que lo hice antes. Entonces El destino para este mapa es toe a list off type miro a tu hijo O es dejar asignación, Veum Right. Tan volátil que mapea directamente la nuestra clase de datos. Está bien, en entonces abrimos habrá que cerrar el mayor que decir de nuevo o va integrado y firmar. Por lo que este soporte angular mucho es con este tío bracket en este. Mucho está con esto. Y luego definimos el objeto abriendo la brisa, llamando a nuestro objeto desde nuestras abejas de datos. Entonces estoy cerrando el aparato ortopédico. Muy bien, así que estas dos líneas se ven bastante idénticas, excepto que una está fregando un incienso del dedo del objeto. Se está devolviendo una instancia donde ésta está esperando una lista proveniente de esta función. Llamar a su mapeo hacia atrás dedo del pie Una lista fuera del tipo de vista fuera del modelo de vista. Perdón. Por lo que entonces a la lista de expectantes en nuestro modelo se le puede asignar una ubicación. Ya que las asignaciones no es sólo cosas dejan alegación VM en Se definió como tal en nuestra opinión, asignaciones ver modelo. Entonces sepan que hemos construido o modelado. Cuando regresamos la vista, esperamos devolver la vista con esos datos que están volviendo al encajar este modelo. Por lo que voy a generar esta vista cuando hacer click derecho en vista click, agregar vista. Estoy generando una plantilla off details on. Entonces la clase modelo va a ser asignación de vista. Entonces Bueno, en realidad, esto es lo que voy a hacer. Voy a generar, uh, uh, menos son plantilla de detalles basada en VM empleado. Está bien, voy a explicar por qué. Entonces la cosa es cuando se genera una vista basada en un modelo de vista seguro te das cuenta, pero sé que intenta un pavo. Los tipos de datos simples, tiempos de datos simples significan en cadena, los que están integrados, no las clases que estaban creando. Entonces porque sobre nuestra vista, las asignaciones modelo de vista está realmente construido para dar cabida a dos clases, que es que son empleados VM así como asignación de licencias. Veum. Si fuéramos a generar detalles Página basada en esas dos clases, entonces no saldría tan limpiamente por lo que más. La mayor parte de la información va desde el empleado VM de todos modos, así que voy a generar el temporal basado en el empleado Veum, que ya tiene, ah, mucho de tipos de datos simples en ella para que podamos mostrarlos fácilmente, y luego podemos manipular esa página más fácilmente para mostrar la información adicional. Entonces por eso a veces no estoy usando el modelo de vista exacta que se está pasando a la vista como la clase de modelo para la generación para el andamio. Entonces así es como puedes aprovechar el trabajo anterior para facilitar el trabajo futuro. Si tienes una apreciación por toda la vista más esto realmente funciona, puedes elegir el mejor modelo de vista para sacar lo mejor de la orden generada tribunal en cualquier momento y luego hacer modificaciones a medida que veas la necesidad. Está bien, así que una vez más, estoy usando la clase modelo empleados VM on. Entonces me gustará el anuncio, bien, Y entonces se genera nuestra plantilla. Entonces quiero decir nombrado. No, no he estado prestando mucha atención al Burbage en las páginas. De verdad estoy tratando de enseñarte el flujo y la codificación de back end, pero esta vez quiero poner algo de atención. Um, entonces, primer lugar, necesito cambiar el modelo porque el modelo que está siendo persona no es realmente empleados. El M es realmente creer bien, te vas es esa vista Deja asignaciones V. M. Una vez que haga eso, entonces vas a empezar a ver algunos errores apareciendo banda. Eso se debe a que el modelo está estático encendido. No tiene un campo llamado nombre de usuario el modelo. Es de la llamada de campo samba usándolo porque una vista de clase asigna. William no tiene unos pocos llamados usándolo. No obstante, el modelo sí. Lo sentimos, sí viene con una clase llamada empleados en Empleado sí tiene un campo llamado use any. Por lo que una vez más, generé una VM basada en empleado. Pero luego me voy, Bueno, empleado vía realmente no tiene, um, usándolo. Y siempre puedo volver a ello en el cheque, pero no creo que tenga correo electrónico. Ah, sí tiene usándolo. Había. Está bien, así que solo para salir a renders modelo empleados atracados que lo usan. Por lo que para cualquier subclase que se esté trayendo de vuelta dentro de los datos, puede usarlo en solo hacer referencia a la propiedad en consecuencia. Por lo que nuestro modelo tiene dos clásicos como empleados. Tiene una lista fuera de asignaciones de licencias. Entonces lo que vamos a hacer es pasar e incluir a los empleados de punto modelo. Solo estoy copiando esto en estoy distante. Inyectarlo después de cada referencia a la palabra modelo. ¿ Todo bien? Y, sí, puede parecer tedioso, pero al final del día, esta modificación es mucho más fácil que si hubiéramos intentado generar la clase con el modelo de vista original. ¿ Verdad? Entonces sólo voy a seguir adelante entonces vas a ver que eventualmente todo va a caer en la policía. Está bien, así que algunos de ellos todavía tienen algunas líneas rojas. Eventualmente se irán. Y si no lo son, todos lo hicieron. Entonces ese es nuestro detalle, velocidad. Por lo que este es más o menos un perfil fuera de cualquier empleado. Podemos embellecerla, ya sabes, podemos convertirla en toda una página de perfil. Eso lo haremos más tarde. Pero ahora mismo quiero enfocarme en show en el dejar nuestras ubicaciones. Por lo que voy a quitar esta página de acción relevar volver a la lista. Dejo Respaldado una lista, pero estoy quitando las ediciones porque no quiero que nadie esté editando a los empleados de esta página Barcos abajo aquí estoy con una regla horizontal on. Entonces voy a decir que cada herramienta Onda se deja nuestras ubicaciones y luego dentro de dejar asignaciones, ya sé que va a generar. Ahí está que Kontinen datos sobre detalles de cada asignación de Dejar en el sistema. Entonces voy dedo del pie entrar en remolque. Turgeon off. Um, fuera razón frío donde uso mi letrero de tripa abierto. Y esos aparatos prendidos entonces adentro fuera que fui a ver para cada uno en la doble top. El tabulador me da eso generado para cada bloque on. Entonces la colección viene de modelos así que solo puedo ver modelo con una M mayúscula y luego decir atracado y luego decimos, salir de nuestras ubicaciones. A dardos modelo dejan asignaciones. Entonces esa es nuestra colección. Justo en. Después tenemos cada ítem dentro de la asignación de licencias. Por lo que ítem nos da acceso a todos los detalles dentro de una asignación de licencia sobre si atrapamos nuevo la IV asignación Itzler de o modelo, que es después de que te tengo asignaciones. El M en él es de tipo apagado. Cada uno está fuera de tipo dejar asignación el M Y si me distrito que vemos que contiene el número de días libres, el periodo, los empleados en los detalles tipo hoja. Entonces lo que quiero mostrar no son solo los batidores tipo hoja que quiero decir, Bueno, Bueno, el número fuera estos son los empleados consiguieron así como tal vez el nombre fuera del tipo de hoja. Por lo que de vuelta en detalles, me voy con el dedo del pie. Simplemente genera algún problema McCord aquí y lo llamo div encendido entonces, dentro de este hecho de Dave, voy a referir bootstrap para ver qué tipo de herramientas tienen. Todo tipo de elementos visuales que tienen que probablemente podría usarpara mejorar la representación fuera de estos datos. Muy bien, entonces, mirando a través de la documentación, fui en las tarjetas, seccionando componentes. Andi, veo aquí que tienen lista de grupos. Está bien, así que creo que esto es bonito. Entonces imaginemos que cada uno de estos sea el tipo de hoja Onda, una sección que muestra el número aan den el botón sobre en otra sección. Entonces así sería como se vería. Tendrás dar autos, tarjetas y luego básicamente cada uno o entrada sería un elemento aliado. Entonces lo que voy a hacer es tomar el 1er 2 en las dos últimas líneas. Entonces voy a tomar la 1ª 2 líneas primero en volver a entrar en mi cable encendido. Después fui a poner esos fuera fuera de los cuatro cada uno. Entonces pon a ese Dave en la, um clase fuera de los cuatro cada uno. Y luego vuelvo en la red estos dos. Entonces esto es solo mostrarte cómo puedes, ya sabes, manipula los son los elementos HTML existentes a tu pleno y deseo. Entonces, obviamente, si inserto demasiado problema entre el signo de at en el cable, es como que anula el efecto. Entonces lo que voy a hacer es quitar estos y poner el at sign directamente sobre los cuatro cada uno. Sé que recuerda eso. OK, es C corte afilado, ¿verdad? Entonces esa es una buena manera de reconocer cuando pierde su contexto cuando ya no está resaltado . Por lo que esto es establecer la premisa para el grupo de lista en. Entonces por cada asignación de licencia que está en el sistema, voy a ser Gellar generando en l. me tira en este l me tira se va dedo del pie tienen la lista de clases dash group dash item, pero su contenido estará en eso Just break on, Entonces voy a poner todo bien, Así que voy a volver a tomar bootstrap para ver qué elemento útil Styler puedo poner aquí día que aterricé en una página con presupuestos, así que voy a sacar el ejemplo del encabezado con el Pero así el encabezado es va a tener el tipo de licencia en el presupuesto va a tener el número. Entonces una vez más, esto soy solo yo tratando de ser creativo. Um, booster me hace muy fácil agregar estos elementos de reserva. Puede que tengas otras ideas, pero solo quiero probar el concepto de que tienes tu html pero siempre puedes insertar texto que quieras viendo al inicio de sesión. Entonces en este caso, quieres artículo artículo representa la licencia Una ubicación en que voy a bajar a irme. Escriba en, entonces. Este es un objeto que representa el tipo de licencia en ambos de ese objeto. De verdad quiero el nombre fuera de ese tipo de licencia. Entonces quiero imprimir licencia por enfermedad, ¿verdad? No quería sólo decir que yo d uno. Yo quería imprimir la palabra enfermo. Deja a andan dentro de la insignia, que puede ser casi cualquier cosa. Segundamanos un pedacito, polvo de manojo Sikander, Primary budge Dutch éxito, etcétera. Pero dentro del contenido fuera de ese mudge, voy a quitar los textos de muestra y reemplazarlo por ítem acoplado entonces aquí mismo. Yo quería imprimir el número. Está bien. El número fuera de estos es el nombre fuera del campo que muestra el número fuera de estos que corresponden con el tipo de hoja. Esa asignación es así una vez más, todo esto este aliado rematado con todos estos datos se va a imprimir por dentro antes cada uno. Entonces, por cada asignación que tenga este empleado, habrá, um, alguna representación fuera de ella ahora Fuera de eso también voy a imprimir y solo uso un bar on. Quiero un botón en puerta. Bueno, voy a usar una etiqueta de tobillo, en realidad, así que quiero un tío tirón. Entonces queremos que este un Qatar parezca una botella. Entonces diré que Clase es igual a Bt y y y Bt y salpicar. Voy a decir advertencia, porque esto va a ser una edición. Algunos dirían contorno, guión, advertencia. Y luego dentro de este tío habla. Yo sólo voy a poner esto en la nueva línea en el interior de este Tío Remolcador. Yo quiero el ícono con una clase. Alguien ha usado mi fondo. Awesome Effie en entonces si un lápiz de guión. Pero va a estar en botón de edición on. Además de ese ícono yo quería verla o es en cualquier momento, solo di que es complicado, mucho más que eso. ¿ Todo bien? Entonces no, con todas esas modificaciones, cuando voy a poner el respaldado Una etiqueta de lista debajo de todo así que volver a esto para volver a nuestra inexperiencia puede refinar eso después por querer, pero voy a saber ir al modo debug on, entonces vamos a ver exactamente cuánto ha dado sus frutos nuestro trabajo. Muy bien, así que ejecuté la aplicación. Yo estoy aquí en la lista de empleados, y ellos iban a chequear. Vamos a dar click para más detalles. Onda del habla. Eso lleva a un error. Entonces la flecha diciendo que la referencia objeto no dijo dedo del pie algún objeto y es referenciando o arrendado fuera. Los tipos de licencia son para que signifique o no dejarán lazos sino dejar asignaciones. Entonces lo que voy a hacer es desacreditar más de lo que podemos ver exactamente qué está pasando para causar eso. Entonces voy al controlador encendido. Entonces voy a dar click en la línea donde devuelve la vista. Está bien, vamos. Después fui a recargar la página para que vuelva a hacer toda esa operación, y luego evaluaremos qué datos vienen sobre el cuando llegue a nuestro punto de ruptura. No, podemos flotar sobre el modelo y podemos. O simplemente podemos usar la sección normal aquí en día ampliar modelo. Entonces vemos que los empleados volvieron a encenderse. Tenemos los detalles del empleado, así que ya sabes, el día se unió. Sabemos todo sobre los empleados. Pero luego bajamos a dejar asignaciones. Vemos que tenemos que dejar asignaciones en la lista y amplío una en. Entonces vamos a ver que sí contiene los datos de los empleados una vez más. Está bien, eso está bien. Pero entonces el objeto tipo leave en sí está vacío. Por lo que el tipo de hoja I d tiene el tipo de hoja I d Pero no tenemos el objeto tipo de licencia en sí. Entonces que en sí mismo es ah, pequeño tema. No, porque entonces estamos haciendo referencia a detalles dentro de este objeto que no están disponibles. ¿ En base a qué? Estamos regresando a los puntos de vista. Voy a parar esto ahora. ¿ Qué pasa con el modo de depuración? Vamos a volver a nuestro archivo de repositorio para la asignación de licencias en. Voy a hacer un ajuste menor a la cancha y voy a explicar por qué este ajuste es muy, muy importante. Entonces estamos usando la opción final para obtener todos los registros, y en la función final, tenemos una línea fuera de cancha que dice asignaciones de licencia BB, que es nuestra tabla para enumerar. Ahora lo que voy a hacer es agregar otra función, otra función Lunda a esto en que se va a incluir on entity, así que sólo voy a escribirla y voy a explicar exactamente lo que está pasando. Por lo que recuerdan eso o dejan asignación cuando se cargó con todos los datos creen tipo um , sección off. Estaba vacío. Y así es como conseguí que ninguna excepción de referencia, porque al ver que estás tratando de hacer referencia a datos, eso simplemente no está ahí. Por lo que tenemos que decir, cuándo estaban recuperando los registros para la asignación de licencias. Tenemos que recuperar los datos correspondientes para el tipo de licencia para ese registro de asignación de licencias en particular . Entonces la relación ¿verdad? Si estuvieras haciendo base de datos regular, tendrías que hacer algo así como una unión interna a la tabla de tipo leave on on. Entonces se podría ver los detalles del tipo de hoja porque la idea está actuando como una clave externa , así que quieren hacer aquí es decir, db dot leave. Asignaciones punto incluyen brisa abierta y cercana e incluyen como cápita I cerebral. Eso me deja retirarme rápidamente incluir aparatos de apertura y cierre en. Entonces me va a decir que necesito incluir una biblioteca. sidras incluyen esa biblioteca. No hay problema encendido entonces, por dentro fuera de los aparatos ortopédicos. Voy a poner un Lambda Expresiones como señal y solo diré punto de flecha en, Di lo siento Q atracado. Entonces va a decir: ¿Qué pretendes incluir exactamente? Entonces podemos incluir cualquier entidad que esté relacionada con Recordar cuando creamos nuestra clase de datos y otros vuelven a la clase posterior? Rápidamente, creamos ah entidad clave extranjera llamada empleado I D. Pero también espejamos la representación para toda la clase, objetamos a los empleados con lo mismo para un tipo de licencia. Por lo que en algunas situaciones puede necesitar incluir en algunas situaciones puede venir aliso automático , por ejemplo, Las entidades de empleados ya ahí tendrían que incluir ese barco. Nos damos cuenta de que la entidad tipo permiso estaba vacía. Por lo que me voy de punta en la clase de repositorio, digo que quiero incluir todos los datos correspondientes para el tipo de licencia on. Esto es como una unión interna implícita. Entonces cuando lo haga, esa cantera va a traer todos los detalles posibles para cualquier cosa que incluamos en para cada registro se obtendrán todos los detalles que necesitamos y recordar que necesitamos esos detalles porque en nuestra opinión, en nuestra vista de detalles, sí, estamos trayendo de vuelta, como, el nombre de punto tipo hoja yo estaba trayendo el número de días libres Asociado ID con esa asignación. Bueno, realmente en su nombre de punto tipo de licencia. Ese fue el tema. Entonces sepan que yo hice eso. Incluir, fui a ejecutar en modo de depuración de nuevo en el punto de tres sigue en el controlador. Y luego cuando llegue el punto de ruptura, vemos qué pasa. Está bien, Así que hacemos clic en detalles, que se va a disparar. Se disparan las excepciones el punto de ruptura, y luego vamos a evaluar nuestros objetos modelo y yo perforo hacia abajo en modelo sobre. Entonces miro las asignaciones de licencia. Estoy consiguiendo el para dejar asignaciones para eso. Empleados perforando dedo del pie, al menos una licencia off asignaciones que estoy viendo. El tipo de hoja ya no está viendo No. Entonces cuando taladro en remolque, el objeto tipo hoja. Ahora estoy viendo los detalles de este objeto tipo hoja, incluyendo el mismo nombre que necesitamos imprimir. Entonces me voy con el dedo del pie. Basta con quitar este punto de ruptura en prensa. Continúa, entonces veremos eso. ¿ De acuerdo? Hicimos algunos diseño a ciegas Así que esto es lo que se generó por defecto, y estamos trayendo todos los detalles que están disponibles para esos empleados. Entonces este empleado, el nombre de usuario el correo electrónico, no tenían el número completo, así que eso está en blanco. No contaban con el impuesto i. D. Fecha de nacimiento y aviso. Todas estas son un poco juntas sobre no ser impresas, ya sabes, limpio posible en ¿Solo puedes recordar que podemos volver a nuestra licencia, um, empleados, nuestros empleados, VM derecha empleados VM y configurar o mostrar anotaciones de datos por encima de cada uno para que la impresión sea mejor. Entonces al final del día, donde algunos están encontrando que ver con cómo están las asignaciones de licencia, mirada sexual, así se ve. Por lo que tenemos las asignaciones de licencia comienzan a imprimirse bien en. Entonces podemos ver que tienen trato de asignaciones de licencia para licencia por enfermedad, y eso son 10 días y por lo tanto vacaciones. Eso son 15 días, pero luego las edita el que va en una línea diferente, así que probablemente podamos volver a la vista y refinar eso un poco, y probablemente esté haciendo eso porque traje la línea así que Lo que voy a hacer es solo quitar esa línea de freno e imprimir todo en una sola línea en que teóricamente resolverá esa línea de freno. Entonces voy a hacer eso en el modo de depuración de solo reiniciar. A ver qué se siente eso, y eso no cambió. Y creo que sé por qué. Creo que no cambió porque estamos usando una etiqueta de encabezado ah para la sección enfermiza y solo voy a inspeccionar y confirmar. Por lo que la etiqueta de cabecera viene con su propia fiesta, por lo que sólo va a ocupar una línea. Entonces eso es realmente esposa. Entonces lo que podría hacer es incluir el tobillo dentro del remolcador de cabecera. Entonces estoy esperando. Voy a salir del estado de ánimo de barco rápidamente encendido. Entonces solo ampliaré toda esta etiqueta de encabezado para incluir esa etiqueta de anclaje en. Entonces vemos donde no estoy sacando el lápiz, y eso es porque estropeé la clase. Eso es f A no alimentar. Está bien, en, entonces, esta vez ya que realmente te estoy usando, entiendo hacer el bro o link on view in Bro's er Onda bro over a la página y saber que se ve un poco más fácil a los ojos fuera de curso una vez más, ya sabes, podemos mezclar y emparejar. Podemos poner en nuestro propio estilo, pero por no, así es como se ve esto. Por lo que el siguiente objetivo detrás de terminar este modelo será toe put en una opción de edición donde este usuario administrador podrá ir manualmente a cambiar ese valor de asignación de licencia por enfermedad. Entonces mi último acto para este video es solo para sacar esto que vi fuera de la paz, y solo veo que acaba de quitar las palabras empleados vm del discurso de detalles. Entonces vuelvo a mi vista quitó eso, um en adelante. Entonces voy a decir detalles para Andi. Puedo decir dash y recordar que todo está en el modelo. Entonces si quería imprimir el nombre del empleado, puedo decir puntos modelo. Lo siento, tengo que usar los dardos modelo at sign en empleados de DSI no, Y lo voy a hacer como apellido coma, artroscopia. Todo esto en lugar de volver a escribirlo desde cero en cambio Apellido, dedo del pie nombre. Entonces cuando las cargas de vista van a decir detalles para en esto estaría bien, tenemos usuarios muy genéricos en nuestro sistema, así que cualquiera que los nombres de usuario que hubieras usado, ves que ahí se vieron afectados. Entonces solo estoy actualizando el navegador encendido. eso se va a utilizar los detalles para apellido, nombre coma. Por lo que tanto detalle tanto fuera de cualquier cosa como quieras en tu página, Siempre puedes, ya sabes, usar unos elementos puros. Sé dinámico y genera a medida que avanza. Entonces, como dije en la siguiente lección, haremos el trabajo en la pantalla de cualquier cosa para los detalles fuera del usuario. 34. Dejar la posición de persona: edita la ubicación para un empleado: Oigan chicos, en este video, vamos a configurar esa pantalla de edición que nos permite cambiar la asignación para un empleado en particular. Onda tipo de licencia particulada. Entonces sólo voy a meterme directamente en la acción. En la lección anterior, habríamos configurado nuestro discurso de detalles en nuestros detalles La página cuenta con una sección que enumera las asignaciones de licencias para hasta empleados articulares. Vemos el tipo de hoja por nombre. El número fuera estos y luego tenemos en botón de edición que nos permite bro a las ediciones son Al menos ese es el objetivo. Entonces note que tenemos la etiqueta del tobillo, pero la etiqueta del tobillo realmente lleva a ninguna parte. Entonces lo que vamos a hacer es en una ruta SP dash en esta ruta va a estar en ella. Onda. También vamos a añadir una ruta S P dash. Eso es sólo que serían datos de guión. Perdón, eso es así idee mi, pero algo me cruzan los cables. Entonces eso es cierto. Dash I d en entonces. El idea de que estamos pasando es a la señal itim dot sobre el valor sería idea. Por lo que elemento que D en Recordar, ítem es cuándo representar un objeto en la colección Off. Dejar un lugar. Entonces somos cualquier cosa que partícula. Deja nuestro registro de ubicación. Es por ello que estamos haciendo referencia al i d para esa asignación ive. Entonces, um, al no especificar un controlador de dash SP, va a suponer que estás usando el y él dentro del mismo controlador que esta partícula de ti, que es detalles, está en nuestros detalles. Se encuentra dentro del control de asignación de licencias. Entonces eso significa que cuando hacemos clic y se va a inferir que nos referimos a la acción edit insider leave allocation controller No, ya tenemos acciones para ello. Es quien tenga la acción consciente de la post acción. Por lo que debemos tener una apreciación fortificar que se renda la vista con los datos de uno procesa la acción correspondiente después de que se haya llevado a cabo. Entonces sólo vamos a meternos en la acción. No tengo que hacerlo. No debería tener que hacer mucho explicando aquí porque ya lo hemos hecho algunas veces antes. Entonces para nuestra edición, nos estamos poniendo en idea entera Y esta idea, recuerden, es o dejar asignación I d Así que necesitamos encontrar las acusaciones de licencia. Voy a ahorrar relevo una ubicación es igual a subrayado asignación o dejar asignación re para atracado Voy a encontrar por i d ese registro de asignación de dejar en particular pasando la referencia de idea entonces recuerden ese fin de semana esta fregona justo fuera de la murciélago . Entonces solo voy a decir, a veces depende de toda limpia que quieras llamarlo para ser así que personalmente no soy un divertido fuera solo mapeo en una línea con la llamada. A mí me gusta romperlo, pero eso soy solo yo, ¿ verdad? Entonces, cualquiera que prefieras como en ya que puedes conseguir que funcione, entonces puedes hacerlo de esa manera. Ondas como puedas, listo lo suficientemente limpio como para que tu equipo no pueda entender. Entonces eso está en el marcador, ma por puntos, fregona en. Entonces estamos fregando lleno. Dejo nuestra ubicación en tipo de datos VM. Ahí vamos. En el objeto que estaban mapeando a esa dirección está la asignación de licencia que se está almacenando en ese terrible en. Entonces pasamos por aire o modelamos a la vista. No, generamos los puntos de vista. Por lo que Irak ver click, agregar vista. Vamos a estar eligiendo la plantilla fuera de ella. Entonces la clase de modelo que este formulario de edición debe generarse fuera va a dejar VM de asignación encendida, entonces. Es decir, a veces realmente no necesitas la clase de contexto de datos una vez más si estás usando el modelo de vista . Pero sólo lo voy a dejar en paz y sólo voy a seguir adelante y hacer clic, agregar, Así que no, tengo la cabeza. Es así que toma todo esto me espada que está diciendo dejar asignación vm Onda tener mi edición donde tengo las entradas siendo ocultas, el número off días visibles, voy a hacer que la escritura creada también se oculte. Entonces la cosa es si creara un y su modelo de vista para esto, podría haber dejado fuera algunos de los elementos. Entonces como crearon, realmente no necesitaría ser creado en el formulario de edición el. Eliminaría la necesidad de que yo tenga que hacer este tipo fuera. Editas. Pero ya fui por este camino. Entonces sólo voy a cumplir con estos ajustes menores y decir que tipo va a ser igual dedo del pie oculto. Está bien, así que cada equipo que crearon y tuvimos que hacerlo antes con tipos de datos, seguro que aprecian por qué se está haciendo eso, Periodo. Realmente no necesitamos devolver periodos. Ellos ven que todas estas cosas están regresando. Empleado, d dejo eso. Realmente no necesitas estos elementos por dentro para que se forme. Entonces lo que voy a hacer es quitar este formulario de edición, y luego lo vamos a hacer de nuevo. Por lo que sólo voy a ir a dejar asignación, eliminar esta edición en En su lugar, voy a crear en un modelo de vista específicamente para editar asignaciones de licencia. Tengo la clase de datos, pero dejar archivo VM de asignación. Yo he creado un te tienes? Entonces sólo voy a seguir adelante y Bueno, voy a simplemente copiar el crear que ya tiene algo de la visa quiere. Yo estoy con la paz. Voy a sacar la lista de tipos de licencia. Muy bien, Andi. En cambio, voy a poner un objeto sólido fuera del tipo de hoja. Junto con qué? Ni siquiera necesito el i d. Así que solo estoy poniendo ese objeto sólido porque tal vez quiero imprimir Oh, el tipo. Es el número, um, um, el número de días libres, alguien que haga referencia al número fuera de estos. Está bien, déjame cambiar el nombre. Entonces esto va a ser edición. Dejar modelo de vista de asignación, ¿verdad? ¿ Qué más? ¿ Qué? Definitivamente necesito para esa forma. Real. Eventualmente solo necesito a los empleados, el tipo de licencia y, bueno, necesito retener el I d para que pueda estar oculto y transitar, ya sabes, Así que editar pantalla de edición es realmente sólo va a tener la sensación oculta para que el i. D rastree qué disco se está editando. Probablemente va a tener algunos detalles para los empleados. A lo mejor quiero imprimir algo para los empleados. Yo estoy incluyendo ese objeto. Cuenta con un número de días los cuales está sujeto a cambio el. Entonces tenemos los detalles del tipo de licencia, que, quiero decir quiero mostrar detalles una vez más. Entonces sé que tengo ese modelo de vista. Yo hice ese cambio que guardé. Ahora puedo volver a mi contraloría y puedo hacerlo de nuevo. Entonces en lugar de mapeo para ver la licencia, miro, está en VM. Fui a mi upto editar dejar asignación VM encendido. Lo que eso va a hacer es sacar el sentir pertinente de la base de datos Recordemos esto es abogado un objeto entero con todos los detalles en va a fregar solo los pertinentes necesarios en base a lo que definimos en la vista modelo alguien dedo del pie generar de nuevo la vista . Seleccionar la plantilla de edición en la clase de modelo va a ser Y es dejar alegación VM y puedo dar click. Agrega son son unas notas. No, terminamos con nuestro en ello forma Onda. Uh, todo lo que tenemos son sensaciones por la idea que está oculta. Tenemos la entrada de texto para nuestro número de días libres. Entonces, como dije en una escucha anterior, si nosotros y yo solo lo encontraremos rápido Si tenemos tipos de clases, los tipos complejos no se pueden estropear, por lo que generalmente lo ignoran. Subviraje con los tipos simples que están en cuerda, etcétera, etcétera. Ya sabe que d mucho es el valor clave en la tabla de datos original. Entonces por eso cuando lo generó en, elegimos los datos en la clase de contexto de datos. Sabía que, Vale, Vale, esta mucho es la idea que viene de urge nada. Por lo que sólo lo haré oculto. Entonces quiero decir, es que está inferyendo un montón de cosas en. En base a la forma en que escribimos nuestro código, podemos limitar la cantidad de edición si acabamos de configurar el estándar derecho desde el uno. Entonces el estándar aquí es que creamos un ámbito de vista modelo en. Entonces usamos nuestro modelo de vista para entrar, ya sabes, informar lo que había en esa playa. Está bien, así que voy a poner etiqueta aparece así que el título de este discurso va a decir algo como cualquier cosa. Y entonces puedo decir en modelo, no dejar tipo nombre punto. Correcto. Entonces cuando recuperemos el registro de esta asignación que estamos modificando, debemos conocer el tipo de hoja Y recuerda que ya incluimos la entidad tipo hoja en cualquier cosa que sea asignaciones de licencia. Por lo que tenemos acceso a todos los detalles. Entonces estoy diciendo cualquier cosa Este tipo de licencia nuestra ubicación para Sobre eso puedo poner el nombre del empleado en Sion Model dots, empleados puntos en. Entonces voy a ver el nombre de pila en. Sólo tienes que copiar esta otra vez. Entonces claro, basado en cómo quieres saber si ya tengo el estándar off apellido coma, nombre Así que déjame ver. Apellido, Coma, Nombre. Está bien. On Si cuando llegamos a este punto obtenemos otra excepción porque tal vez empleado está apareciendo en blanco. Entonces siempre podemos simplemente volver a nuestro repositorio en otro. Incluir para los empleados. Bueno, vamos a probarlo primero. ¿ Entiendes? Usar enlace del navegador en vista en navegador. Muy bien, así que vamos a probar manejar nuestro botón de edición Alguien a quien hacer clic editar. Pero oh ah, Sigue girando de nuevo a los detalles. Debí haber cometido un error en mi Ah, ésta debería ser la acción de SB. Y eso s raíces P. Entonces mi mal. Eso debería ser sp Action me que cambió Guardar en luego recargar nuestra página. Está bien, entonces haciendo esas ediciones No, veo que el enlace emitiendo o correctamente hago clic en él en DNO Estamos recibiendo algún error. ¿ Un barco? Ah OK, así que estoy recibiendo un error al respecto. Es VM de asignación de dejar encendida. Eso no es en otoño. Oper apoyó trapeador derecha Onda Habríamos pasado por algunas configuraciones superiores de otoño estaban en nuestra fregona. Tenemos que asegurarnos de que estamos subiendo lo que sea a lo que estamos referenciando. Por lo que necesito crear cantidad entre dejar asignación onder que las particuladas entiendan duplicar este terreno para dejar nuestra asignación encendida. Entonces voy a decir que quiero un mapeo entre la asignación IV en la VM de asignación de licencias de edición . Entonces si obtienes esa flecha, todo lo que tienes que hacer, solo actualiza tu configuración de trapeador, entonces una vez que hayas hecho eso, deberías poder presionar hacia adelante. Está bien, sé que arreglamos ese mapeo es ya sabes, estamos viendo ese otro tema un barco, esa referencia objeto no se asienta, por ejemplo, para que Sir Peter fuera de un tema anterior con permiso tipos fueron donde poner en que incluye nuestra función incluyen. Entonces solo voy a volver enseguida,ya sabes, ya sabes, después de un rato estos errores, los ves y luego dices, Oh, sí, sí, eso es lo que tengo que hacer. Y por eso estoy pasando por este ejercicio o estos ejercicios como estos para que podamos ver los errores comunes en aprender a solucionarlos. Um, ya sabes, rápido. Por lo que incluí tipo de licencia. Yo puedo agregar. Otro incluyen O R, puedo decir, Entonces incluye en entonces voy a poner en otra Expresiones Lambda. Por lo que incluye tipo de licencia, luego incluye que puntos sobre. No, Perdón. Eso luego incluir es cuando estás encadenando Daisy. Entonces si había algo dentro de fuera dejar que yo quería incluir también entonces usaría eso que incluyera alguien dedo también incluir así incluir, dejar tipo encendido, luego incluir empleados on. Entonces voy a intentar cargar la página una vez más. Entonces voy a refrescarme. Está bien, para que esa modificación no le sirvió. Y eso es porque lo siento. Me refiero a la modificación a la función equivocada. Entonces en esa contaminación de partículas estaban usando find by, yo no lo averiguo. Entonces necesito decir básicamente que cuando estoy encontrando por d encuentro ese objeto en particular Así entiende Brick Lane on. Entonces ejecuto las líneas de inclusión. Así son Bueno, tal vez yo haría eso antes del hallazgo. Entonces déjame ver. Eso es incluir que incluyen derecho. Y entonces me encuentro tan bien. Entonces vamos a tener que reflejarlo. Se llama un poco porque dije que quiero las asignaciones de licencia y quiero incluir a estas entidades y entonces nos estamos dando cuenta de que son funcion encontrar no es decir que no se pueda usar , así que eso no es asunto. Eso no es problema. En lugar de usar find, voy a usar otro llamado primero o predeterminado. Entonces solo voy a quitar find y voy a decir primero no primero o default on luego primero o default toma una expresión maderera hasta el momento del Lambda viendo Q poniendo en mi flecha, que es signo igual en el corchete, han sido sake te punto Así que entonces esto me permite decir quiero el primer elemento o no, Si no lo encuentras, dame No, Pero quiero el primer elemento que mucho es esta condición y la condición que quiero El primero elemento on es que el i D en el registro mucho es el i d entrando. Está bien, así que por un lado, podríamos usar find, Pero entonces vemos que hace limitaciones porque quería incluir datos faltantes u otros elementos. ¿ Están los bits fuera de datos de otras tablas? Onda Fine, deja de trabajar. Por lo que acabo de usar una alternativa. Por lo que el link es muy potente, muy flexible en él tiene muchas opciones que puedes usar para lograr una tarea en particular, alguien para refrescar y ver si eso resuelve mi problema. Muy bien, A ninguna parte en los negocios. Entonces estoy viendo eso. Me está diciendo que estoy editando licencia por enfermedad. Entonces eso es tipo de licencia proveniente del registro sobre la asignación de cuatro test usuario o prueba de usuario . ¿ Verdad? Apellido, coma, nombre. Entonces así es como se ve esta pantalla de edición. Entonces puedo hacer un ajuste al número fuera de estos. Entonces si siento que deberían tener más o menos D's, me di cuenta de los elementos que son la etiqueta es número fuera de estos fuera de curso. Tenemos que cambiar eso. Darle un nombre de visualización adecuado en el modelo de vista. Entonces ya te mostré cómo hacer eso. No voy a enfatizar que cada video a medida que avanza lo haces para asegurarte que tus interferencias estén limpias. Realmente me estoy centrando en la funcionalidad. Pero entonces mi fuente final anotada generalmente tendrá todos esos pequeños ajustes a medida que avancemos . Entonces no, me voy a disparar a bordo, amarrar el Post editar acciones que al hacer clic, guardarlo realmente comete los cambios a la base de datos alguien para volver a dejar gestión , volver a nuestra controlador, y luego empezaremos a modificar la publicación sobre esto debería ser rápido. Por lo que voy a decir, en lugar de tomar una idea y cogido forma colección, estoy aceptando la edición. Dejar la VM de asignación encendida. Yo lo estoy llamando modelo. Muy bien, Así que cuando posamos, estoy recuperando un poco de datos con esto algún objeto llamado modelo fuera de este tipo con alguna cantidad de datos en. Entonces lo que voy a hacer es primero, ellos salvan nuestra ubicación es igual a un mapeo fuera en nuestra tranquila parte superior, no fregona en. Fui, um, arriba de editar. Perdón. Voy a fregar para irme. Asignar la clase de datos, así que dejar la asignación en el objeto que estoy mapeando para salir. tipo de datos de asignación es modelo. Está bien, así que esto es edita asignación de licencia. Simplemente lo estoy mapeando de nuevo a la clase de datos original en. Entonces voy a Bueno, en realidad, me estoy saltando unos pasos aquí, así que estar completamente debería realmente decir si en abierto eso y luego ver el estado modelo que es válido. Entonces si es nuestro déjame decir si no es válido, entonces si no, entonces si no, estado modelo es válido, lo que significa que no es variado. Entonces queremos devolver vista sobre estamos pasando de nuevo modelo Onda. Bueno, se encargará de lo que sea que haya Eros ahí. Por lo que hicimos todo fuera de esto ya en el controlador tipo hoja. Entonces podemos Eso es archivo equivocado. En realidad podemos ir en una referencia, um, um, fuera de la lógica que va a poner en Así que en el controlador de tiempo de hoja en nuestro editor hizo algo muy similar. Dijimos si no es válido en vista de retorno, lo contrario empezar a hacer todas nuestras maravillosas operaciones. Entonces si solo si lo olvidaste, sostén para hacerlo o qué hacer. Siempre se puede volver atrás y hacer referencia a lo que hicimos con el controlador de tipos de hojas. Pero voy a seguir adelante. Entonces estamos regresando o viendo cuál tendría nuestra era ya. Um de lo contrario, la prensa a lo largo para donde sacamos la versión trapeadora del modelo de vuelta a la clase de datos que voy a llamar al informe de asignación de licencias puntos fuera del it encendido. Entonces está esperando un tipo de datos off leave allocation el cual tenemos en nuestro modelo de asignación que acabamos de crear y ¿recuerdas que esto está llamando a un lingote para que pueda salvar nuestro es . El éxito es igual a eso en. Entonces podemos comprobar y ver si no es así si la brisa abierta si no, es el éxito. Entonces eso significa que no fue un éxito para ello. Entonces podemos agregar modelo ST dot para que podamos agregar un asado en un estado de modelo a error de modelo. Y luego fui a abrir eso y no hay llave, pero entonces el mensaje va a ser error mientras se guarda. Todo bien en Entonces regresamos una vez más esta vista. Si eso y eso es todo, si no es éxito, correcto, si nada de esto se ejecuta y queremos regresar a algún lugar, así que no quiero redirigir índice esta vez en su lugar, voy a redirigir a los muy detalles discurso en ir a pasar en que yo d. Entonces ah, poco reto aquí sé es que no conozco la idee fuera de los empleados porque no he ido por ello en la asignación de licencia de edición. VM alguien para simplemente hacer una edición rápida Ya tienen el empleado vm Algunos sólo van a agregar al empleado. Yo d Muy bien, Así que agregándolo a la vista modelo, No, puedo acceder son baratos. Esta idea nuestra durante mi cabeza, es operaciones están volviendo a la página de edición en nuestra tienen un oculto antes de dejar ideas de asignación. Entonces solo voy a crear otro oculto. Y esta vez va a ser para los empleados I d. que cuando entreguemos el formulario, sigamos manteniendo el I d original en el valor I d que viene de nuestra página. Entonces de vuelta adentro o control o no, que es manejo o lógica de negocios, voy a ver que quiero redirigir la opción llamada detalles. Está bien, así que estamos redirigiendo detalles rasgados, acción en o detalles acción una vez más requiere sobre empleado i d Así que voy a tener que decir coma on. Entonces quiero decir algo así como nuevo, y en lugar de un nuevo objeto se va a llamar a este objeto mientras la propiedad del objeto va a ser yo d en él va a tomar modelo dot empleado yo d Así que déjame sólo revisar eso rápidamente. Entonces recuerda que estamos redirigiendo dedo del pie en acción. Ya hemos visto esto donde se completó la operación y se va a redirigir por defecto se va a redirigir índice, lo cual estaba bien porque Index no requería parámetro ah. Entonces déjame simplemente desplazarme hacia arriba para indexar rápidamente. Índice NO REQUIERE DEPARTAMENTO DESPUÉS de terminar de editar para un empleado, no quiero que vuelvas a indexar dedo del pie toda la lista. Off empleados son lo enteramente. Dejar tipos para luego pasar por el mismo proceso. Yo sólo quería volver a mi disco en caso de que quisieras editar otro. Si no lo haces, entonces puedes volver a la lista después. A lo que después de que hayas editado, quise redirigir a los detalles fuera de mi registro con mis asignaciones de hojas. Entonces en cambio, fuera ir a indexar sin sentido ahí por defecto, puedo determinar dónde quería redirigir dedo del pie a qué acción. Yo quería redirigir el dedo sobre la acción que yo quería redirigir, también. Y sólo voy a volver con mi idiota. Acción a la que quería redirigir es detalles, no indexar esta vez, pero detalles sobre entonces detalles requiere un perímetro off string llamado I D. Así que tengo que entonces hacer Ah cone para eso. Y yo solo digo coma nuevo en entonces el nombre fuera de lo permitido esperaba sus ideas, así que tengo que llamarlo me d on. Entonces le doy un valor. Y el valor que se supone que está obteniendo es el empleado i d. que estoy almacenando dentro del modelo el cual viene como un valor del formulario de edición . De acuerdo, así que sepan que todos esos ajustes se han hecho en puedo hacer turno de control y s engañar cambios a través de fuera como cada archivo. Eso no significa serio controlar turno y s, ya sé, va a probar esto. Entonces voy a cambiar esto de 10 dedos del pie. Digamos que seis seis deben ser un claro de valor para ver la diferencia. Haga clic en Guardar. Muy bien, entonces estamos consiguiendo otra era. Andi, eso te lo puedo decir. Bueno, si estás recibiendo este error es porque no lo es, está tratando de recargar la vista sin los datos. Entonces digamos que hay algo mal con nuestra cuerda. Andi, te puedo decir que probablemente esté recargando la vista porque o está golpeando la estadía modelo no siendo valorada o esto no teniendo éxito o está intentando la operación y encontrando algún error en DSO. Está devolviendo la vista, y sospecho que es probablemente el hecho de que está captando el error al regresar en la vista. Entonces lo que voy a hacer es que fuimos a modificar esto esta actualizarlo un poco sobre lo que voy a hacer es realmente construir la entidad un poco mejor. Entonces lo que está pasando es que está captando una excepción cuando está tratando de cometer el cambio, y eso se debe a que algunos fuera de los datos no se alinean con lo que espera. Entonces voy a modificar esto en el sentido de que voy a encontrar al original alguien diga, Get record va a ser igual a en la partitura, Deja asignación gente punto y voy a encontrar el disco que está a punto de ser editado. Encuéntralo por su I D, que se modela que d derecha, y después haberla telefoneado, puedo seguir adelante asignando los valores directamente para que estén giros en el mapa en no necesariamente funciona tan limpiamente como nos gustaría entonces, ya sabes, caso por caso. Ya ves donde funciona perfectamente. Vemos dónde podría no funcionar también. Por lo que esta es una de esas situaciones en las que puede no funcionar tan bien. Y así me voy a poner un gran creativo en un poco sucio en la forma en que me voy dedo lo bajo para editar. Entonces no, sé que soy un being y edit off. Sólo realmente un campo proveniente de la asignación de permisos de edición es realmente uno sentir que estoy cambiando en base a la forma y ese es el número de días libres. Entonces lo que voy a hacer es haber recuperado el registro original para ser editado, y lo estoy llamando disco. Entonces voy a quitar esta parte donde hago la fregona. Entonces voy a ver un campo de ductos de registro que sé que estoy actualizando. O si es más de uno se siente así que en este caso, la sensación de que estoy actualizando es el número de días libres. Voy a decir número de días no es igual a modelar ese número de días libres, así que cualquier valor que se pasara del formulario no estoy asignando. Es a ese registro de base de datos pero recuerda que en realidad no pasa nada en esta etapa hasta que suspendemos nuestra función it. Entonces voy a llamar a la función de actualización en Estoy pasando el objeto fuera de registro en lugar de los objetos de asignación originales los cuales acabamos de eliminar. Entonces poco conocido sí fallamos en poner en modelo. Entonces le contaste a tus agitadas excepciones, Andi. Entonces voy a volver a probar esto, alguien para guardar turno de control y s encendido. Después usa el enlace del navegador, relanza nuestra aplicación y luego vuelve a intentar la operación. Por lo que de vuelta a la pantalla, voy a cambiar esta tienda seis y luego hacer clic en Guardar Onda. Estamos de vuelta en marcha. Hemos recargado son página de detalles on do note que estamos reflejando el nuevo valor. Entonces esto tuvo un montón de ejercicio que hicimos. Creamos un nuevo modelo de vista de modelo Lo intentamos y campo en ciertas operaciones, pero encontramos una solución y eso es lo que la programación es realmente todo un barco. Hay muchas maneras de lograr lo que se necesita lograr. Solo necesitas estarlo o temer con las diferentes técnicas que te llevarán ahí en asegurarte de que estás tomando las mejores decisiones a medida que avanza. Entonces con esta operación, no te pongas casi terminado con nuestro modelo de asignación de licencias donde mucho para uno el automatizado sentado fuera de las asignaciones por tipo. Puedes agregar más lógica de negocios para mí con mi abogado para dejar causa obviamente, tus empleados de comida no deben conseguir maternidad. Dejar estos para que requeriría dos modificaciones. Se tiene que agregar un género al perfil de usuario y luego se agrega el negocio de la lógica para ver si el género es de cierto tipo luego haciendo en baja por maternidad. Pero eso lo hemos hecho. También nos hemos puesto caliente mañana en donde identidad clase de usuario, para que pudiéramos obtener más detalles sobre nuestros usuarios. Agregamos los detalles donde vemos su perfil así como asignaciones de relevo de agua hay en entonces, finalmente, para esta lección, habríamos puesto en la funcionalidad de edición para poder cambiar la asignación para que, particular a los empleados. Entonces en el siguiente video, sólo vamos a hacer unos retoques finales en. Entonces estaremos revisando nuestra aplicación actualizada a nuestro control de fuentes 35. Revisar y añadir cambios a GitHub: Oigan, chicos, en este video, sólo vamos a estar viendo algunos cambios que hemos hecho y algunos cambios que hice tal vez fuera de la pantalla encendida. Entonces estaremos facturando o CO para levantarnos. Entonces solo para revisar, solo ponemos en nuestro modelo de asignación de licencias donde permitimos el dedo del pie de los usuarios admin. Ya sabes, atributos. Deja estas vacaciones. Son días reservados. Cualquiera que sea el tipo de licencia que sean esos días. Obtener empleados del dedo del pie atribuido el. Entonces una vez que se les atribuyen que el usuario administrador, puede cualquiera de ustedes o modificar si es necesario. Entonces ya sabes, cuando vamos a gestionar, vamos a dejar las asignaciones encendidas. Entonces eso trae hacia arriba una pantalla que nos muestra todos los diferentes tipos y luego la función, permitiéndonos realmente comenzar las asignaciones para la gestión. Fuera de las asignaciones que llegamos a los empleados donde veremos a todos los empleados del sistema. este momento, sólo tenemos dos en eso nos permitirán ver los detalles de este empleado. Entonces cuando hago clic en detalles que se cargarán como un poco de discurso para el, pongo el nombre del usuario. Para que sepas exactamente qué registro estás buscando usando en la dirección de correo electrónico. Número completo. Algunas de estas están en blanco, pero ¿qué? Uno de los ajustes e hizo fuera de cámara fue en la notación diurna para el modelo que se está utilizando para cargar este discurso para que nuestras etiquetas se vean un poco mejor porque hubiera habido camello cascarillado, ya sabes, no habría habido espacio y así sucesivamente. Por lo que entro encontrarlos agregando esas anotaciones de datos al modelo de vista. Andi, eso está en los datos se ven un poco más agudos. También habría modificado al ir por la caja que cada tipo de licencia se genera en o asignación de tipo de licencia. Onda también cambió cómo se ven los botones al lado de la redacción. También cambié el botón de lista de batallas. Por lo que esta batalla este botón nos trae de vuelta del dedo del pie el discurso índice en. Entonces si hacemos clic en editar, vamos a nuestra página de edición donde vemos el número apagado. Esto también modificó la etiqueta para este formulario en. Llegamos a cambiar el valor que hacemos clic, guardamos, volvemos, def. Volvemos a los detalles. Simplemente recargamos la página de detalles para que podamos, ya sabes, navegar por nuestra propia más fácilmente y sobre todo lo que tenemos son top ahora. Entonces, habiendo hecho todos estos cambios, voy a revisar en este tribunal. Si necesita hacer referencia que siempre puede ir en referencia esa versión fuera de la cancha. Pero sólo lo hacemos de la manera sencilla donde vamos al estudio visual Onda recordar todo con un hereje significa que fue modificado desde la última versión. Y luego tienes muchos herejes porque fuera de las actualizaciones obligadas que teníamos que hacer respecto a la actualización de identidad desde el cambio de identidad usuario al tipo de clase de empleados. Pero eso realmente no tiene nada que ver con el objetivo final, que es solo click derecho o solución, ve a comprometerte y luego bien o comentario mensaje va a ser un poco largo Si vamos a probar Annabone por todos los cambios que hicimos alguien que diga implementado, dejar un módulo de ubicación Onda cambió. Yo no t usuario dedo del pie empleados. Está bien, así que eso es lo que hicimos en DA. Yo sólo voy del dedo del pie, conseguir el correcto aquí y luego decir comprometer todo y hundir y así significa el commit local, luego sincronizado con nuestro repositorio get hope remoto y eso es todo para este modelo. Cuando regresemos estaremos configurando el modelo de solicitud de licencia la licencia donde somos Empleados bajos dedo del pie solicitamos licencia en base a sus asignaciones. Abejas Andi Khomeni, Han dejado fuera esa asignación en. Entonces estaremos sentados en el panel de administración para aprobar realmente nuestras denegar estas solicitudes de licencia . Así que mantente atentos, más divertido por venir. 36. Descripción del módulo de envío de las peticiones de la falta del empleo: Chicos, bienvenidos de nuevo. Hoy vamos a estar iniciando un nuevo modelo y eso será para la licencia. Las aplicaciones para este modelo estarán configurando la funcionalidad que hará mucho a nuestros empleados para poder solicitar vacaciones o cualquier tipo fuera que sea, Andi, estaremos activando la funcionalidad que el usuario administrador tiene que aprobar. Por lo que cuando la persona se refiere a la solicitud , entra en , ah, estado apagado pendiente el entonces es aprobado o rechazado por el usuario administrador Onda. Cuando ocurre cualquiera de las acciones, por supuesto, registramos y cambiamos la bandera y también ajustamos el número de días libres que la persona sabe tiene disponible. Por lo que toda esa funcionalidad va a estar entrando en este modelo en pantalla aquí. De verdad sólo tengo esa clase de historia de dejar, um, la clase de datos asociada con el historial de licencias. Entonces voy a sacar rápidamente los interfieres, y este es nuestro interfiere ahora mismo. Y bajo gestionar, el usuario administrador podrá ver las aplicaciones de licencia. No obstante, alguien que no sea usuario administrador no debería poder ver administrar, pero podrá solicitar permiso. supuesto, hay que estar listo, miembro agitado fuera del sitio web del lúdico Así estaremos configurando autorizaciones sobre la función de solicitud de licencia en estará configurando la funcionalidad para su aprobación. Andi Rechazo Así habrá leves cambios en los cambios de base de datos a lo largo del camino. Pero en este modelo, vamos a estar implementando algunos controles bonitos como nuestro control de calendario, para que la persona pueda seleccionar la fecha de inicio y la fecha de fin. Estamos poniendo inteligencia para asegurarnos de que sepas que pueden poner en una fecha de inicio. Eso está más allá en el día en el futuro que el bit final , ya sabes, será personalizar la solución y poner en algunos controles bonitos. Creo que vamos a divertirnos mucho en este modelo, así que quédate ahí. Sólo se va a poner cada vez más divertido 37. Module de la acción de las solicitudes de casas: cambios y los ViewModels: Oigan, chicos, Bienvenidos de nuevo en este primer video, solo voy a hacer una ligera modificación a mi tabla de datos sobre Realmente es solo para cambiar el nombre. Um, así que lo tengo aquí es dejar historia. Pero, ya sabes, cuando lo volvía a mirar, como dejo la historia que suena en personal, tal vez sea mejor como dejar solicitudes o dejar solicitudes. Alguien que lo llame deja solicita. Está bien. En cualquier fracción, un nombre de clase, entonces necesito asegurarme de refractar el factor de garganta corte re. Todas las referencias a esta clase garganta mi abrigo. Por lo que las regiones a hacer me hace eso fácil simplemente renombrarlo en todas partes. Podría ser referenciado, incluso en los repositorios y en otros lugares sobre solo puedo hacer eso. Cambiar el nombre en el efecto Net es que el repositorio habría tenido que modificarlo. Si entro en el contexto de aplicación BB, habría necesitado dedo del pie modificarlo. Andi, estoy viendo algunos conjuntos de DB aquí. Eso realmente no debería estar ahí en alguna parte. Dedo del pie quitar thes. Perdón. Uh, si ves eso en tu código, puedes sentirte libre de eliminarlos también, voy a tener que investigar por qué estaban ahí, pero no debería ser daño para eliminarlos. Muy bien, entonces las solicitudes de licencia se establezca es no. Y luego fuera de curso. Si cambiamos el nombre de la clase, tengo que cambiar el nombre real. La mesa hace que Sanderson cambie. Eso solicita Onda. El último es que siempre quieres asegurarte de que tu nombre fuera de tu archivo mucho es el nombre de tu clase. Por lo que acabo de renombrar que también de la historia para dejar si solicitud parece fuera del archivo en realmente entrar a la clase debe ser solicitado no es no solicita a alguien que haga otro renombrado Terrible que Así que eso sólo soy yo probando dedo del pie. Asegúrate de que aquí están diciendo que hay algún futuro de camionetas que puedo Cualquiera es cualquiera. No es daño hecho. Entonces recuerda que el nombre de la clase debe ser amable fuera singular. Pero entonces el nombre de la tabla, cuando se está referenciando, puede ser plural. ¿ Verdad? Por lo que deja solicitud el. Tenemos las solicitudes de licencia de mesa. Entonces eso es cambio. Número uno a la base de datos. Um, Andi. No obstante, ese es más o menos el único cambio que quiero hacer en este momento, ya que estamos por debajo del modelo tal vez las necesidades cambiarán. A lo mejor saldrá algo más. Deberíamos estar familiarizados por no con qué cambio alguna vez. Tenemos que hacerlo a la clase de datos para que estemos agregando una tabla. Creamos una nueva clase de datos, aseguramos de que esté representada en las referencias del conjunto de bases de datos, o simplemente hacemos las modificaciones iniciadas dos clases y luego realizamos o migraciones. No obstante, lo siguiente que quiero hacer en este video en particular es simplemente configurar un modelo de vista. Entonces voy a ir a la vista a la carpeta Modelos en una clase sobre eso lo voy a llamar salir, solicitar VM y luego dejar solicitud V. M siendo la clase de modelo de vista basada. Simplemente voy a quitarme todas las propiedades de la clase original y colocarlas en esta zona. Está bien, así que lo tengo me gusta crear, como, una base. Y entonces, por supuesto, la bestia no necesita las anotaciones de datos reales que necesito para la clase de datos por lo que solo puedes eliminar esos y luego cambiamos las referencias a los modelos de vista correspondientes o su empleados VM hoja tipo VM en empleado vm de nuevo. Entonces al menos estamos seguros de que tenemos representación directa. Entonces por eso siempre tengo esa vista bestia Waddle porque es un mapeo directo entre la clase de datos Onda view model on. Entonces a medida que construimos las otras interfaces, entonces podemos empezar a tener las variaciones a partir de entonces. No, Lo siguiente que quiero hacer es asegurarme de que tenga la fregona. Andi, si te das cuenta no tengo un mapeo para ese. Bueno, sí tenía solicitudes de licencia, algunas cambiantes solicitud de licencia en Entonces tengo lo que tengo. Deja la historia Veum ya. Entonces ya ves, por eso nombrando si causa tan importante ya lo tengo como dejar historial VM. Pero yo sólo el tiempo de espera para cambiar a la VM de solicitud para que pueda simplemente eliminar el historial de hojas vm esta entidad que una nota en. Si comparas los dos archivos, verás diferencias. Pero a medida que avancemos, voy a estar poniendo de nuevo ciertas cosas que probablemente van a faltar de la Nueva Maravilla decorada en. Eso está bien. Simplemente no quiero que el dedo del pie complemente las cosas simples todavía. Entonces lo siguiente que quiero hacer es asegurarme de que el mapeo tenga el auto a mapeo para solicitudes de licencia, tabla sobre licencia, solicitar VM y luego podemos realizar una construcción sosteniendo en turno de control y presionando B y luego solo para asegurarnos de que no tengamos errores y sí tengo algunos errores. Por lo que siempre es bueno hacer una construcción y luego te das cuenta de que tienes la era. Entonces el aire Amiri es que no cambié la referencia de las solicitudes de solicitud de licencia. Entonces esa es una de las no talla, reflejando un 40 después de mí. Claro, cambias el cordón en todos los espacios. Siempre puede controlar el turno y estar encendido. Entonces te dirá que se campo visual studio perdido para decirte que sabes dónde te sientes para que te mantengan honesto. Pero entonces solo puedo controlar F en este archivo, encontrar solicitudes de licencia y reemplazarlo con solicitudes de plomo en este Reemplazar son todos saben psy que es proyecto actual. Quiero asegurarme de que está viendo para un documento que hay que tener cuidado con hacerlo a través del producto para que los documentos del Corán reemplacen a Onda. Entonces tenemos que cambiar toda la referencia del azulado porque lo llaman, dejar sus árboles. Pero no, solicitudes de licencia, Está bien, alguien que haga lo mismo. Yo sólo voy a encontrar historias de licencias en este documento sobre Just make our place. Cambiado todos ellos fuera de apariencias se han arreglado. Siempre puedo volver a mi lista de época en, luego usar errores más fáciles. Pero entonces voy a construir sólo para asegurarme, acuerdo? Y entonces esta vez la construcción fue exitosa. Entonces no, sé que tengo cero flechas en mi cuarto. Factoring, factoring ha funcionado. Ah, bueno, entonces, no, sólo voy a hacer una migración al actualizar mi base de datos. Entonces traigo al consejo encargado de paquetes, que una vez más, si no lo ves en el panel inferior, siempre puedes ir a las herramientas qué hay de nuevo, obtener gestor de paquetes y seleccionar esa opción cónsul. Pero aquí voy a decir, añadir polvo, añadir polvo, mi Grayson, y entonces la migración que estoy agregando ha cambiado. Deja historias, equipo. Es decir, también se podría decir cambio, dejar historias, alguien que lo vea de esa manera. Ella y ella es Lee historias para dejar peticiones. Está bien, entonces es más explícito exactamente qué intercambiar Así que este percenter le dejó agregar esa migración . Ah, este es un Norte importante. En ocasiones, cuando están haciendo algunos cambios en tablas que pueden estar cambiando el nombre o cambiando ciertos tipos de datos asociados a él durante la migración, podría haber, ah, podría haber, ah, pérdida de datos. Por lo que hay que tener mucho cuidado con eso al hacer estas migraciones. Es por eso que sembrar las bases de datos generalmente se recomienda porque entonces se tiene más control. Sobre la estática están los datos básicos que entra en esto es durante el desarrollo. Por lo que siempre es más fácil perder datos durante los desarrollos de lo que es en producción. ¿ Verdad? Entonces tienes que serlo. Es decir, si te sale el ahorcamiento de él de en desarrollos, entonces serás mejor capaz de medir. Está en producción, y hay controles en marcha para hacer migraciones en producción. Pero solo te estoy llevando prisión a esta, um, um, condición de que algunos cambios se traduzcan en la pérdida después. Ahora mismo, no tenemos mucho que perder de todos modos, así que entiendo seguir adelante con esta migración encendida. Entonces solo digo opiáceos dash base de datos pulse enter on. Entonces es Está hecho. Entonces sólo vamos a verificar yendo a nuestro objeto Explorer perforando hacia abajo hacia DB local en bases de datos Tora buscando dentro, dejar gestión, mirando las tablas en Ahí vamos. Por lo que las historias de licencia no se llaman solicitudes de licencia. Muy bien, para que la migración fuera completamente exitosa en vemos que retuvo todas las columnas como dijimos que debería. Entonces no, hemos realizado intercambios de RD Toby y nuestra creación de modelo de vista. Entonces a continuación, vamos a empezar a construir en el controlador y las diferentes acciones en. Simplemente estaremos divirtiéndonos con esto. Por lo que a continuación será configurar la pantalla para que un empleado pueda solicitar de algún formulario fuera de licencia. 38. Módulo de las peticiones de bodas: configuración de la configuración: Oigan, chicos, bienvenidos de nuevo en esta lección. Vamos a estar configurando las acciones del controlador y toda la dependencia es que al menos creemos que necesitamos ahora mismo para apoyar nuestro modelo de solicitudes de licencia. Entonces en estudio visual, sólo voy a saltar directamente en él reajuste para ir directo a controladores. Haga clic, agregue en un nuevo controlador. Y luego, como de costumbre, elegimos el control de la NBC. Siempre lee las acciones correctas. Entonces selecciona eso. Haga clic en agregar. Estamos llamando a esta solicitud de permiso en troller on. Después hacemos click. Agrega una vez que eso se genere, entonces queremos empezar a sumar nuestra dependencia. Por lo que comenzamos con nuestra lectura privada solo referenciada sobre repositorio para solicitudes de licencia. Entonces eso estaría encendido. Yo sólo voy a comprobar en DSI que realmente no cambié el nombre. Por lo que debería ser yo dejo solicitud. Yo no lo soy. Dejo historia, así que sólo voy a entrar en el contrato sobre fui a mí esa actualización por lo que en el archivo de contratos sobre dónde encontrarlo primero, luego fui a renombrarlo en. El caso es que cuando cambie el nombre del archivo en sí es tu estudio será la sugerencia para mí, Tool simplemente renombrar todo. Entonces eso es dejar solicitar repositorio ana prensa enter. Entonces sugerirán que realice un cambio de nombre. Yo sólo diré que sí para que usted sea el expediente judicial automáticamente encendido. Entonces haré lo mismo para el informe revuelve. Hice eso para el contrato que interfiere, así que haré lo mismo para el repositorio donde acabo de renombrar este rápidamente para que refleje mi nueva disposición, que es la solicitud de permiso on. Entonces diré que sí a los problemas para cambiar el nombre a través de la aplicación. De acuerdo, entonces ese es otro factor. Entonces, como dije, haces un cambio. Tienes que ser amable fuera minucioso en causa consistente Va a querer algo llamado dejar historial y algo llamado dejar solicitud en otro lugar. Y luego te confundes. Entonces en el controlador de solicitud de licencia, el medio ralentiza todo lo que no es absolutamente necesario. Entonces necesito que sus amigas le den el dedo del pie. Dejo solicitud repositorio el. Voy a llamar a este informe de solicitud de una ive, está bien, y luego fuera de curso después de incluir cualquier referencia y obtener mi ortografía correcta. Entonces eso es privado. Rehacer el on luego incluir la referencia o el espacio de nombre para el repositorio de solicitud I leave . Yo solo uso mi bote salvavidas aquí. Incluya esa referencia en, luego allá vamos. Todas las demás dependencias es que podemos querer definitivamente sería el trapeador er on. A lo mejor uno para el gestor de usuarios. Entonces en cambio, off escribiendo el motor ya los tienen muy bien hecho dentro del dejar un controlador de ubicación encendido. Entonces, ya ves, cuando comienzas a construir un gran proyecto y tienes fuegos por todo el lugar y los incendios están abiertos, ya sabes, me gusta mantener mi completo divulgado para que pueda ir ahí, encontrar el archivo on, ¿sabes?, retrocede con rapidez en lugar de recoger la nuestra hasta que me tropezo con él como si estuviera haciendo la nieve. Entonces en controladores y tengo esos dedo del pie siendo hecho referencia a segundo este ejemplar los piecados ya que la dependencia está en luego fuera de curso. Hacer la inclusión necesaria fuera del para las carpetas o el nombre de la especie. Y entonces no sabría crea Michael instructor. Entonces mira, mira, thar Así que todo esto lo hemos hecho varias veces. Nada de esto debería ser ajeno para ti, así que solo voy a apurarme y hacer esto para que no esté gastando demasiado tiempo construyendo esta parte fuera, y hay constructores terminados. Entonces si pudiste hacerlo tú mismo, entonces eso es buena defensa, muchas veces buscando lechuga. Y eso es bueno. Si no toma el video spot encendido, Sólo intenta replicar ese hierro frío tan presionando por delante. Um, solo podemos hacer la vista de índice desde no. Entonces el índice tú Este va a ser un poco complicado. Por lo que nuestra vista de índice va a ser primordialmente para mostrar al administrador o el que sabes las solicitudes de licencia son. caso de que porque entonces ahí para indexar use que podemos tener la vista de índice, que es la vista que el usuario verá cuando quiera ver todas sus solicitudes de licencia que han presentado el. Después también está la vista de índice para el administrador, o donde van a estar viendo todo fuera de las listas pendientes. Por lo que el Concept off index realmente es la página de aterrizaje. No obstante, no siempre tienes que llamarlo índice por defecto. Todo aterrizará en el índice pagado, seguro, pero entonces ya sabemos que podemos controlar el piso podemos controlar quién ve qué creando acciones personalizadas que vinculamos a ciertos vínculos que ciertas personas pueden ver. Entonces voy a poner una gran plática autorizada sobre todo este controlador. Por lo que eso significa que nadie debería poder sacar nada dentro de este controlador de aplicaciones de licencia sin ser un miembro registrado fuera de esta aplicación. De acuerdo, pero luego hay ciertas acciones que voy a autorizar para rol de administrador sólo en entonces, hay ciertas que bueno, cualquiera va a poder meterse en nuestro probablemente podamos a autorización por solo el rol del empleado. También, alguien que aproveche esta oportunidad para configurar este discurso índice. Como administrar remos, indexar , ver corazones, primero me voy a sentar sobre autorizar encima de este en. Entonces voy a especificar el rol. Rose no es igual, señor. Igual abre cadena en, entonces. Esto es administrate tour. Por lo que sólo el administrador debería poder llegar a esta opción de índice dentro de la hoja solicitud Controller, sin embargo, ya estaban autorizando todo. Por lo que sólo una persona general o generalmente registrada sería capaz de acceder a algo que no es específicamente para el administrador. Está bien, para que puedas mezclar y emparejar. ¿ Podrías haber hecho la autorización sobre cada acción, que hubiera sido trabajo ocupado. Nosotros sólo podemos crear como todo el control. Por lo que hay que ser amado ser se autentican en primer lugar, pero luego los específicos para reglas particulares, solo podemos poner éste justo por encima de él. Gira. Entonces, para esta vista, en realidad tengo una visión donde cuando el administrador va a ver toda la solicitud de licencia, van a ver tal vez un recuento total de solicitudes de licencia para el periodo. Van a ver el número total de las solicitudes pendientes en. Entonces van a ver apagado el número total. Ya sabes, solicitudes rechazadas sobre pueden ser aprobadas solicitudes. Por lo que van a estar viendo tres figuras diferentes cuando aterricen en esta página. Eso se suma a la lista real fuera de las solicitudes que necesitan ser acción. Entonces para obtener una vista personalizada como esa, con todas esas estadísticas y demás, voy a estar creando un modelo de vista que esté orientado específicamente hacia ver ese tipo de datos. Entonces ese es otro caso por qué te tenemos modelos porque quiero entrar a los modelos. Voy a traer mi solicitud de licencia archivo VL en, entonces recuerda, solo estoy usando un archivo y en este único archivo tengo muchas clases. Ese es mi patrón. Otras personas yo creo un ámbito de archivo diferente, madre, eso está bien. Pero solo lo estoy manteniendo consistente en voy a decir clase pública on, Digamos vista admin o me refiero a dejar vista solicitud, ver VM Alright on. Estoy haciendo esto explícito porque entonces puede que tenga en licencia de administrador, solicite editar vía más detalle vm diferente a la regular vía así que quiero decir, solo estoy haciendo explícito el nombre de la clase para que no cometa un error cuando, al cruzar el líneas, um, voy a usar esta oportunidad una vez más a la configurar el mapa ings. Recuerda, si tenemos un modelo de vista y la madre de vista necesita de dedo trapeador a una clase de datos de lo que tenemos que asegurarnos de que somos representación. Pero realmente no creo que necesitemos ese mapeo ¿verdad? No. Entonces voy a construirlo y vamos a ver si necesitamos ese mapeo. Está bien, así que esto va a estar mostrando estadísticas. Por lo que esta sería la primera propiedad para mí es un entero que muestra la solicitud total. Por lo que esta será la totalmente fuera de las solicitudes en el sistema. Y solo duplico eso porque quiero que los valores enteros tengan solicitudes totales. Tengo solicitudes aprobadas tengo solicitudes pendientes el entonces he rechazado solicitudes. Muy bien, entonces estos son cuatro valores que quiero que me impriman a ST algunos solo sentados o propiedades para fregar por cada uno. Pero entonces, además de ver estas propiedades, también quiero deshacer la lista. Creer solicitudes en el sistema. Entonces, como lo hemos hecho en el pasado, solo creo una lista fuera del tipo de licencia, solicito VM en esto creería que las solicitudes. Está bien. Y luego podemos ver Get sit accidentalmente duplicados de esa línea ahí. Correcto. Entonces tenemos una lista. Yo lo estamos llamando peticiones de licencia. Ah, me olvidé de conocer a este público. Por lo que nuestro público menos plomo solicita hace un año. Por lo que se acordó. O simplemente conocen los que supervisan su no público, algún hoyo? No. Tengo mi modelo de vista. No puedo empezar a hacer algunas gimnasia y algunas cosas creativas dentro de nuestra acción antes de cargar el modelo y enviarlo a la vista. Entonces voy dedo del pie En primer lugar hacer Ah, cantera donde estoy recibiendo solicitudes, o déjame ser explícito al respecto. Dejan peticiones, y eso va a ser igual. subrayado del dedo del pie. Vi en una plaza dejar pedir tres tiros, no encontrar. Todos. Por lo que norma retirando todas las solicitudes de licencia en el sistema. Ahora que tengo todas las solicitudes de licencia en el sistema, puedo consultar para encontrar cuántas han estado pendientes casa y han sido esta casa. Cualquiera ha sido eso porque ya hizo una llamada a la base de datos. Y no, tengo todos los objetos puedo ejecutar las matemáticas en los objetos. Tenían dos opciones. Podría o bien ir al reporte y activar forma mostrada causa para cada uno de ellos, por lo que puedes conseguir coned off aprobado Coned off rechazado el. Pero entonces cada vez que escribes en línea, eso dice la solicitud informe punto encontrar todo lo que va a hacer una base de datos llamada que habría sido cuatro base de datos causa para obtener cuatro números. A veces quieres reducir en, um de base de datos, causa Así que en lugar de hacer eso, solo estoy recibiendo todas las solicitudes de licencia, y luego voy a usar este objeto habiendo hecho un día, Toby, empezar a hacer mi boca para que pueda decir algo como on. Bueno, antes de seguir adelante, estoy con los Muppets. Alguien que diga Vier pide permiso, modelos. Yo sería igual dedo del pie mah per en entonces trapeador er es fregando dedo del pie un tipo fuera de lista. Deja solicita la m Muy bien, así que estamos mapeando 12. Se van las cosas. Solicita la M y a lo que estamos mapeando eso son las solicitudes de hoja que acabamos de recuperar de la base de datos. Muy bien, Y luego solo agrego las referencias faltantes. Sí, así que líneas caseras o rojas. Entonces sabed, lo que sea que voy a estar haciendo, voy a estar haciendo con la modelo. Entonces esto es lo que puedo hacer. Puedo decir algo en Vire Model va a ser igual dedo del pie agregar vista media. Por lo que acabamos de crear la vista admin, señor, es bueno ir a una nueva instancia fuera de esta clase. Y luego abrí mis llaves que alos Muto línea por línea, declaran cada propiedad. El primer inmueble que quiero sería Digamos que las solicitudes totales van a ser iguales a, y entonces se supone que es igual del dedo del pie todo fuera de registro que acabo de retirarme. Por lo que el total de solicitudes quedaría todo fuera de registro. Acabo de recuperar, um, así que voy a ver solicitudes de licencia. Pero entonces recuerda que tengo las modelos. Ya no quiero estar interactuando con este objeto. Éste era sólo para obtener los datos. Ahora está fregado a mi modelo de vista, Así que voy a estar haciendo todo lo demás con el modelo de vista. Entonces deja solicitudes modelo dot y luego solo puedo decir contar porque el número total de solicitudes sería el número total de registros que acabo de recuperar. Muy bien, entonces. El siguiente que pueda ver sería aprobado. Solicitudes Puedo ver aprobar solicitudes es igual a la licencia del dedo del pie. Solicitudes de licencia. El relevador mamá misiones, lunares modelo. El día, me voy a poner en una condición fui a ver donde tú con mi flecha. Por lo que inicio de mi querida X persona en mi condición sería aprobado es igual a cierto, por lo que, a través de aprobado, es igual a cierto. Eso significa que está aprobado justo en. Entonces es ver algo que no puedo convertir implícitamente tipo off innumerable significado esto todavía va a conseguir una colección? Porque, no, es si hubiera 10 aquí y hubiera cinco aprobados en esto está devolviendo la lista. El cinco aprobado, no el número cinco. Necesitaba el fuego numérica. Entonces después de filtrar todo lo que quiero en esta lista, puedo ver a ese Conde Andi en esta ocasión. Perdón. Tiene que ser Brie, al parecer. Ver, Entonces en esta situación se está haciendo un conteo contra la recaudación directa. Justo en esta situación está haciendo cuenta contra, uh, conjunto ligeramente modificado. Entonces esto fueron garras y cualquier otra expresión lambda que pudieras agregar. Por lo que filtrar escribió o modificar la lista. Antes de hacer cuenta, va a cambiar cuál dices que va a tener que usar la función del teléfono en lugar los conos como propiedad. Está bien, para que puedas estar atentos a eso. Entonces si haces un continentes oscuros una línea roja, es más que probable visto que necesitas la función. De hecho, realidad podrías simplemente decir conos y usar la expresión maderera. Está bien, así que esto realmente se vería en la colección encendido y estás viendo yo quiero. Cuenta de todos los registros que cumplan con esto Esta, um, condición. Entonces ves que hay tantas formas en que puedes hacer esto, que es muy, muy flexible. Segundo, he hecho la cláusula where y luego telefoneé cuenta después del hecho. O simplemente podría usar los conos configurar mi Lunda en que esos los filtros de condición Andi no y en valor diciéndome cuántos registros cumplieron esa condición. De acuerdo, alguien que presione hacia adelante con esta variación fuera del cono. Entonces voy a hacer eso en entonces solicitudes pendientes se vería muy similar alguien para copiar esto de nuevo. Pero entonces esta vez la condición estaría pendiente. Sería que aprobado no es así que recuerde que cuando creamos la clase de datos para solicitud de licencia o simplemente puedo mirar en la VM aprobada está en ningún nivel. Entonces cuando ponemos el signo de interrogación contra el toro, eso significa que es notable, lo que significa que puede ser cierto. No podría ser caídas, y tampoco podría tener valor. Entonces técnicamente, cuando solicitas unas vacaciones o lo que sea, no tendría un valor en la aprobación de ranura porque no se ha aprobado no ser aprobado. Se han rechazado los medios, pero no se ha aprobado, lo que significa que no es cierto. Entonces está en otro estado. Está esperando. Entonces solo voy a usar ese medio crecido para el sí o no, que es el nulo para decir eso. De acuerdo, nadie le ha puesto ninguna opción, así que sigue pendiente, está bien, Y entonces la final sería rechazada. Pide a alguien ver solicitudes rechazadas son iguales en el dedo del pie. Entonces es literalmente solo solicitudes aprobadas al revés. Por lo que sería donde son falsos. Entonces, una vez más, si se aprueba, eso significa que se aprueba es igual a cierto. Si es gasto, eso significa que nadie ha puesto la aprobación afirmando que a través de nuestras caídas, entonces si es rechazada, eso significa que alguien lo ha puesto en un estado lejano. Entonces lo último para este modelo de vista serían las solicitudes de licencia. Entonces en realidad eso apareció porque acabo de presionar el control y el espacio. Por lo que sólo llenó la línea porque sabía que la única otra cosa que podría ir ahí para que ese estudiante visual haga tan fácil ser eficiente. Por lo que dejar solicitudes, está esperando en la lista fuera tipo de licencia solicitud VM on. Eso es por las solicitudes de licencia provenientes de la base de datos, que acabamos de hacer. Yo estoy levantando por aquí. Entonces para las solicitudes de licencia, solo necesito pasar la colección DR real que habíamos fregado antes. Ese es nuestro modelo. Por lo que la vista moderna nos hizo fácil simplemente inyectar nuestras propias propiedades personalizadas, um, um,que queremos Onda, cualesquiera que sean los datos reales que queramos, entonces simplemente lo vamos a devolver a la vista. No, en ejercicios anteriores, cuando estamos a punto de generar la vista que son muy quisquillosos a la hora de elegir cuál, um , modelo de vista usar el modelo, son para rayar la plantilla para la vista. Entonces en esta situación, voy a usar las solicitudes de licencia on. Entonces lo modificaremos dedo del pie excepto la licencia de administrador Solicitar VM encendido. Vamos a ir a través de él sello paso a paso, entender qué pasa. Entonces estoy haciendo clic derecho en vista en ellos, agregando la vista en entonces estoy eligiendo la plantilla de lista porque quería generar el formulario de tabla. Ahora bien, no quiero que se agote el trabajo tratando de hacer la mesa. Entonces la mesa para mí es la parte más difícil. Por lo que sólo voy a hacer una lista en la lista va a estar fuera de tipo licencia solicitud VM satisfaciendo solicitud de licencia VM on. Entonces tuve y no tenemos ni plantillas. Entonces voy a querer dejar el crear porque quiero darle al administrador su capacidad para presentar una solicitud de licencia en nombre. A menudo empleados, creo que sería una característica genial. Entonces voy a dejar el botón crear, pero voy a modificar esto. T no tener un modelo fuera del tipo I innumerable licencia Solicitar VM. No quiero una colección. Solo quiero una instancia fuera de la VM de solicitud de creación de licencia. Entonces solo voy a cambiar ese viejo admin leave Solicitar vista VM Lo sentimos, Onda, eso es o modelo. Entonces si este es nuestro modelo, eso significa que tenemos acceso a todo lo que hay dentro de él, que significa que no, tenemos acceso a la recolección de las solicitudes de licencia, lo que significa que nuestro para cada bucle necesita estar buceando a través modelo que dejan solicitudes esto ya se está generando llamado que sabe de las solicitudes de licencia para que no necesitemos hacer muchas modificaciones ahí después de todo. Correcto. Otra cosa que voy a querer incluir aviso que está diciendo, solicitando empleados que yo D. No quiero el i d fuera de los empleados. Lo que yo querría, sin embargo, son empleados. Uh, bueno, parece que necesito ir y modificar mis pocos modelo porque no estoy haciendo representación los empleados en. No estoy haciendo representar donde sí tengo el tipo de hoja. Por lo que necesito hacer que la representación sea objeto de los empleados. Entonces eso significa que necesito volver a mi modelo de vista, que es solicitud de permiso para ser AM Onda. Yo sí. Ah, es patrón solicitando. Perdón. Entonces la propiedad, la propiedad la propiedadme engañó. Entonces está solicitando yo Ok, entonces ya está ahí. Cómo mi cuerpo. Entonces es solicitando empleados dot Andi, quiero el nombre de pila. Andi. En realidad puedo simplemente poner el nombre completo en todo esto. Entonces es solicitando que te emplee. Entonces en esta columna, es mostrar el solicitante. Estoy solicitando empleados nombre Onda. Apellido. Está bien. Pero recuerdo en un ejercicio anterior, habríamos necesitado ir a la clase de datos e hicimos las inclusiones. Entonces, ya sabes, como dije, tu corte evoluciona y luego ves algo. Y luego a medida que ganas más experiencia, ves que algo va a pasar antes incluso de que suceda. Porque yo sólo preveo esto dándome la era nula que nos habríamos encontrado antes. Entonces solo voy a volver a mi clase de repositorio y encontrar la función que está recibiendo todas las solicitudes de licencia. Entonces sólo voy a decirle que incluya alguna distancia de la línea de freno encendida. Entonces voy a ver dot include, que luego me va a sugerir dedo del pie en una biblioteca para una darknet en diferente palabra core on . Entonces quiero incluir a los empleados que duct o va a solicitar empleado como objeto también quieren incluir? Aprobaron. Krul aprobado por derecho aprobado por era otro objeto empleado que tenía puesto. También quiero incluir tipo de licencia. Muy bien, entonces cuando recupere estos datos, está asegurándose de incluir todos los detalles asociados a cualquier otra con cualquier clave externa requerida que esté ahí. Por lo que sólo voy a tomar estos tres incluir archivos en. También sólo voy a poner en la función de hallazgo encendido. Voy a cambiar esta función de find a first o default. Entonces hicimos todo esto en una actividad previa, por lo que no debería ser ajena. Si lo es, está bien. Se puede revisar esa actividad anterior donde fue a fondo en explicar qué es lo que estamos haciendo aquí. Pero una vez más, sólo estamos asegurándonos de que cuando recuperamos nuestros registros se trataran todos los detalles de asistencia fuera del registro clave foráneo, más pequeños de todas las tablas están solicitando Empleado que hizo esta vez al empleado mesa aprobada por también viene de la mesa de empleados. Por lo que sabemos quién está solicitando podemos obtener sus datos. Quién está aprobando por si acaso. No es sólo el usuario admin, porque podríamos tener a otros usuarios en un rol de administrador que no pueden probar que quieren saber quién aprobó las vacaciones se proyectan sobre. Tenemos el tipo de licencia. Está bien. Por lo que volvamos a nuestro índice. Um, y eso sólo pasando y limpiando. Entonces tenemos la fecha de inicio, el final lo tenemos el nombre del tipo de hoja, para entonces sabrán qué nombre del tipo de licencia, y una vez más eso probablemente nos hubiera dado eso ninguna excepción. Si no cumplimos con esos ajustes, la fecha en que se solicitó, la fecha en que fue acción sobre DSO. No quiero tal vez estos detalles listados en la tabla. Entonces voy a tomar toda la fecha en que fue Acción y acción significa que o fue rechazada o aprobada el. Voy a quitar el aprobado por. No necesito ver quién lo aprobó en el me voy a poner un poco de fantasía con mi display para la sección aprobada. Entonces sólo voy a cambiar todas las etiquetas. Por lo que te das cuenta que debido a que cambió la vista el modelo de vista de nuestro modelo que es este está usando de la licencia solicita tipo de datos toe esta solicitud de licencia admin, que tiene las solicitudes de licencia en ella. Obviamente, estas propiedades tendrán alguna dificultad siendo mucho porque generalmente son mapas directamente al modelo. Entonces si consigues esas líneas rojas, está bien. En realidad puedes simplemente despejar el foso al escribir tu texto. Está bien, entonces para el primer bateador, quiero que esto vea nombre de empleados. Ese es el nombre de la persona que realiza la solicitud. Voy a ver empezar así que en realidad sólo se puede sacar algunos fuera del cable en sólo poner en el texto estático. Así que arranca y se va. Escriba el día en que se solicita. Y dejo los reportes que porque a veces puede informar hoyo sobre esa solicitud vacacional Ha estado ahí esperando ser opcionado. Artículo el encabezado de opción de fecha en artículo el acumulado por bateador. Por lo que tenemos 123456 columnas on Go on a near this. Consulte el estado de aprobación en su lugar. Off aprobado. Por lo que esto va a decir estado de aprobación. Está bien, en entonces tenemos 123456 Bueno. Y luego para que sea una tabla de datos, acabo de poner en nuestros datos i d tbl. Entonces voy a hacer un ajuste más en esta pantalla. Andi, esa es herramienta basada en el valor fuera del estado aprobado. Ya sea, um, ya sabes, está aprobado, pendiente o rechazado. Yo quiero imprimir, como una tarjetita o una pastilla que dirá: Vale, Vale, esto es todo. Estado y la codificación de color sugeriría qué es, verdad? Entonces bootstrap tiene lo que llamamos insignias, y creo que usamos budges en nuestros modelos anteriores. Entonces voy a mostrarles cómo se ve el presupuesto sobre cómo podemos usar las declaraciones de O. R. R. If y el dedo del pie Accord de Ari saben qué insignia imprimir fue. Entonces voy a quitar esta línea, y luego voy a ver ese letrero. Si arrancar en su declaración el entonces voy a ver si intento puntos y luego digo aprobado es igual a verdadero. Ahora la cosa con lingotes, siempre podrías no tener que ver lo verdadero. Podríamos simplemente decir si artículo que aprobó pero en este Mirani en nuestro problema porque, um y luego su estudio visual sentado que eso es ilegal porque tiene el no estado. Por lo que hay que ser muy explícito cuando se trata de un toro notable. Tienen que ver si me resultó una mojigata definitivamente es cierto. Entonces yo quiero. Y entonces esta es la cancha para un modge. Entonces estoy viendo hilado clase modge on Budge Dash éxito, lo que nos da, ah broche verde con la palabra aprobada que voy a decir otra cosa si lo siento como si y entonces la nueva condición es que me volteé ese aprobado es igual en caídas de remolque. O tal vez podría haber dicho, si no, Pero sólo estoy siendo muy explícito en. Entonces voy a ver en vez fuera aprobado, fui a ver rechazado. Y entonces éste va a ser peligro porque yo quería ser un lote rojo encendido. Entonces voy a decir algo como lo demás. Entonces de lo contrario es gastar. Entonces si no es cierto, no es farsa, entonces debe ser no encendido si no es que su gasto. Entonces voy a poner eso como advertencia para decir, Hey, ya sabes, ya sabes, darle algo de atención a esto, así que voy a decir pendiente de aprobación, Está bien. Por lo que tal y como está, no tengo ninguna y él deja peticiones en el sistema. Es decir, no hemos configurado la creación son nada aún, así que solo voy a ir insertar uno dentro de mi manual de base de datos es solo voy a ir a la mesa. Correcto. Haga clic en ver datos sobre eso. Voy a insertar uno usando los datos que tengo aquí. No tienes que hacer esto. Yo solo quiero hacer esto para que pueda dar una representación visual fuera de otra palabra que acabamos de hacer. Entonces en el siguiente video, comenzaremos a construir botes, cosas más creativas. Está bien, así que acabo de poner una regla. Sólo te estoy mostrando. Como dije, realmente no tienes que hacer este paso. Pero acabo de poner en un papel con uno fuera de los ID de usuario que he puesto en algún inicio ficticio y de hecho, uno de los tipos de hojas. Andi, solo siento que también la acción de fecha no es conocible. Entonces probablemente queremos cambiar eso porque, bueno, bueno, el hasta que se apruebe o rechace, entonces no hay acción de fecha, ¿ verdad? Entonces voy a estar haciendo ese ajuste a la base de datos también. Pero en este momento sólo quiero detener algún visual off. Lo que acabamos de poner en esto es sólo la primera parte. Por lo que sólo pasamos todo ese tiempo sentados en el modelo de vista en apagar el índice, la impresión para el discurso del índice. No hemos puesto los budges en la parte donde estamos mostrando los números. Todavía no hemos puesto esa parte, así que eso va a ser en la segunda parte fuera de esta actividad. No obstante, como dije, quiero lo visual, así que voy a ir a las vistas. Encuentra a mi Leo Haute el. Asegúrate de que mi enlace que diga dejar aplicaciones apunte el dedo del pie en el lugar de las tarjetas. Entender la copia de la existente de los caminos en. Entonces esto va a ser para dejar peticiones. Está bien, así que solo haz la ganancia de mi bro Y luego se evaluó nuestro trabajo. Muy bien, así que ahora vamos a ir a administrar y hacer clic en Dejar aplicaciones encendidas. Ahí vamos. Ese es nuestro listado de admin para aplicaciones de licencia. No obstante, nombre del empleado inició En efecto, el tipo de hoja se solicitaba la fecha en que se solicitó sobre el estado de aprobación, cual está pendiente. Entonces solo probemos esto también, si vuelvo a mi tabla de datos y me voy a quedar con el reloj de dinero tan justo no, está aprobado es no. Entonces si cambio esta tienda, solo puedo ver una, lo cual realmente es cierto en base de datos. Voy a volver al día de refresco. Por lo que recarga el posterior de la base de datos. Y no, parecía cierto. Me está dando aprobado por justo de la misma manera. Si dijera cero en su lugar, que es lo mismo cae EU. Hizo que al actualizar la base de datos no va a ver arte rechazado. Entonces eso es un lindo, um, sutilezas en remolque. Cómo agujero podemos imprimir contextualmente o elementos un poco extraños en la siguiente X en la siguiente parte. Fuera de este ejercicio, vamos a estar empujando un poco hacia abajo esta vista, Así que este codicioso va del dedo del pie aquí arriba, abajo en la página. Pero en la parte superior, vamos a tener cuatro tarjetas o cuatro secciones que imprimirán los números para cada uno los números de solicitud de licencia que habríamos calculado y puesto en R V M. Así que pegarse los nuestros en esto es para continuar. 39. Module de las solicitudes de bodas: configuración de Admin Index: Oigan, chicos. Entonces estamos de vuelta, y estamos listos para bucear en esta lección. Estamos continuando con nuestra actividad o desactivando la vista de administrador para que vean todas las solicitudes de licencia actualmente en el sistema. Entonces lo siguiente que voy a estar haciendo es configurar alguna representación visual. Zoff. Tan solo algunas estadísticas para mostrarlas. Ya sabes, me ocupo de tantas solicitudes de licencia están pendientes. ¿ Cuántos hay en su sistema en absoluto encendido? Simplemente lo arreglaremos a medida que avanzamos. Por lo que de vuelta en Visual Studio, vamos a estar usando tarjetas bootstraps. Entonces esta es mi representación visual fuera de elección. Um, Así que si vas en el bootstrap, no tranquilo, documentación es conseguir bootstrap dot com, ve a componentes y busca tarjetas. Entonces verás que tienen esta tarjeta buscando, um, representación tanto, te vas a llevar esto. Pero lo que realmente quiero es el número impreso en una sección sobre el tipo o un remolcador legal impreso en otra sección para ello. Correcto. Por lo que sólo estoy en minimizado. Mira, voy a pedir prestado esto anotado, acuerdo? Entonces ese es el núcleo que genera descarte por fuera de curso, lo voy a modificar un poco. Pero entonces aquí está la cosa. Quiero cuatro tarjetas impresas lado a lado yendo de izquierda a derecha. Entonces voy a usar regla bootstrap, lay old system y es bastante fácil. Entonces no voy a ir a la documentación. Simplemente paseando a través de ella como lo hago. Por lo que creé dar. Yo le doy el papel de clase. Muy bien, así que en realidad te permiten tipo de crear tablas en el uso de solo salsas. Por lo que esto representa literalmente un papel de izquierda a derecha. Continuar. No. Y luego dentro de esta regla, quiero que se den. Entonces le voy a dar a este div una clase off call Dash MD Dash tres. Por lo que yo hubiera hecho mención ya que la llamada MB en el número que realmente está viendo. Quiero una columna para pantalla de tamaño mediano fuera de tamaño tres en tres aquí presenta tres apagado. Ah, potencial 12. Por lo que de izquierda a derecha en cualquier pantalla bootstrap están en un bootstrap. Continuar tener 12 especies que puedes llenar. Entonces este es el ancho fuera del espacio. En otras palabras, después de 12 este vive la mayoría ocupan tres. Andi, quiero cuatro así que 34 hinchas. Entonces si tengo 43 espaciados da representando columnas, entonces puedo caber cuatro da nuestra para bits de contenido lado a lado yendo a través de la pantalla. Correcto. Entonces un poco de matemáticas ahí. Nada demasiado complicado. Pero por dentro cualquiera fuera de estas columnas. Yo quiero mis tarjetas. Voy a tomar este cable de tarjeta que acabo de copiar en piezas dentro de la columna. Ahora puedo empezar a modificar esta tarjeta. Entonces primero, no quieren esa imagen. Alguien para tomar todo lo que emite sección, luego en el cuerpo encendido sólo traeré de vuelta la documentación. Por lo que este sería el título. Este será el texto sobre. Entonces nos dan ah, libro de muestra. Por lo que su noción de que puedes poner casi cualquier cosa dentro de ella ataca la tarjeta. Entonces voy a hacer en cambio esto y cada uno de los remolcadores que se va dedo del pie tienen el número encendido entonces esta va a ser la etiqueta viendo lo que representa ese número. Entonces en visual studio, estoy cambiando esto de H cinco a cada uno en, entonces en su lugar ofrendas en las palabras título de auto. Por lo que nota aún va a estar dentro de una gerontocracia a signo modelo dot on en el primer conteo. Yo quiero mostrar sería solicitudes totales el número total de solicitudes en luego para el texto y luego engañar un rato para guardar. Ahí vamos. Entonces dentro del texto, voy a cambiar este algún contenido, algo algo, algo sobre lo voy a decir en modelo. Bueno, no, eso es inexacto, en realidad. Debería estar haciendo la pantalla para o mostrar nombre para así puedo decir en esta obra. Perdón. Perdón por html mostrando el ejecutor. Yo esta copia, Eso es no me refiero a ese error otra vez. Entonces estoy usando ese ayudante de conversación HTML que imprimiría la etiqueta de nombre. Dado en el modelo de vista, algunos tendrían que volver a revisar modelo y subir el que. Pero este nombre de avión para el entonces dentro de esto, sólo voy a montar un lambda Expresiones. Entonces modelo encendido entonces, ¿eh? Ponga el iro y luego digo modelo punto sobre el elemento que quiero. El disciplina en cuatro son solicitudes totales. Está bien, entonces eso significa que no. En el modelo de vista, tenemos que asegurarnos de tener el nombre para mostrar para las solicitudes totales. Y entonces sólo puedo quitar este botón ya que casi todo factor me fue. Este un H cinco en su lugar, fuera del impuesto R P. Voy a decir h cinco en lugar de p. Yo quería ese poco más grande que solo ah p remolcador. ¿ Qué? Ya veremos cómo se ve. Entonces esto nos va a dar una tarjeta en. Entonces vamos a previsualizar qué es lo viejo que realmente es. Entonces me voy de pie, refrescar la página, acuerdo? Y eso es lo que eso usará. Entonces estamos viendo el número uno que se imprime y luego estamos viendo el total de solicitudes. Entonces me voy a ir hacia restaurantes antes de que lo volvamos a mirar atrás. Entonces el primer ajuste es que voy a copiar esta columna. Por lo que todo este div de la columna mmd tres. Yo lo voy a copiar, y lo voy a pegar cuatro veces más dentro del si ese es el papel. O tres veces más Más bien. Por lo que ahora tengo cuatro tarjetas, una para el total de solicitudes. 14 solicitudes aprobadas. Entonces solo voy a cambiar los moldes. Está bien. 14 tendiendo. O tal vez en realidad debería ver pendiente primera derecha. Entonces ves que demostró que ves lo pendiente. Perdón. Entonces ves el aprobado el, luego ves, rechazaron. Entonces quiero decir, puedes dejar salir entero. Piensas, Um, sería mejor para ti. Por lo que entonces Rechazado. Muy bien, entonces tenemos cuatro tarjetas imprimiendo viejas, las diversas, um, estadísticas para nuestras solicitudes de licencia en el sistema hasta el momento. Andi, Entonces también notarías que hay muy poco espacio entre las tarjetas en la tabla de datos . Sargentos pusieron a ser nuestras pláticas para poner algo de luz del día entre ellos. Ah. Ahora, puedo, um, armar una sección aquí donde estoy gana una huella. Um, cada uno se pone así, cada uno de los cuales es una regla horizontal. Eso es sólo una línea encendida. Fui a ver a cada uno. Um, salir, solicitar bitácora. Está bien, así que eso es un log off todas las solicitudes de licencia. Actualmente, ya sabes prisiones pasadas y no van a futuro, pero así que sólo estoy seccional izando la pizza. Se ve un poco más apetecible. También me voy a poner el dedo del pie como algunas, um, algunas cosas para hacer más grande el texto. Mejor aspecto. Entonces, al igual que el número. No quiero que aún se quede. No quiero que el texto sea para disparar a la izquierda. Entonces para la clase dif, es decir, um, um, cuerpo de tarjeta de clase Cardiff. Yo sólo voy a poner en otra clase bootstrap como su centro de guión de texto. Entonces creo que incluso lo hago que eso entregue que todo dentro del div que está basado en texto solo será la línea central. Si no, entonces tendremos que ponerlo en los elementos individuales. Pero probémoslo por no a diez centavos. También, por cada uno va a poner en número visual, poner en colores que tipo de visualizar ¿Cuál es el estado? Entonces, como, por ejemplo, pendiente, lo voy a hacer con botones naranjas. Voy a ver en número naranja. Perdón. Por lo que texto guión advertencia. Entonces dar son en palos. Um, aprobado solicita esa. Voy a ver texto. De esta manera se aprueba ésta. Entonces esto es éxito. Eso es verde. Texto en. Entonces para proyectado, se podía ver guión de texto para peligro fijo. Está bien, um, así que sé que podríamos tener estilo. Esta historia probablemente se use alertas en su lugar, apagado usando una función de tarjeta, podrías haber usado la función de alerta de Bootstrap Andi poner tu contenido en silla de montar. ¿ Hay tantas maneras de hacer esto? Solo te estoy mostrando una opción y haciéndote saber que tienes otras opciones. Usa tu creatividad para rendir lo que quieras. Entonces, ¿el siguiente, um objetivo? No. Antes de refrescar respuesta, su trabajo es asegurarse de que tengamos nombres para mostrar adecuados para cada propiedad. En nuestros modelos de vista, voy a volver a este modelo de vista solo sosteniendo el control y haciendo clic en. Entonces voy a configurar estas anotaciones. Por lo que esto diría esta obra Onda nombre igual a on. Entonces esta es torta. Número de solicitudes fuera, está bien. Y luego la visualización va a requerir alguna inclusión de la biblioteca de datos. Entonces, ¿qué voy a hacer, sólo pasar y hacer esto fuera de cámara? Um, y puedes hacer una pausa de ti aquí y continuar por ti mismo. ¿ Se hacen algunos con mis anotaciones? Y así sólo voy a volver al navegador y volver a cargar la página y ver cómo se ve Art. Y ahí vamos. Por lo que ahora tenemos para me gusta, una bonita sección de tabla que nos muestra el número de solicitudes pendientes, aprobadas y rechazadas una vez más. Estos son los nombres para mostrar que habría configurado en el modelo de vista. Para que sepas que están imprimiendo o es agradable y limpiamente. Todo en Central y todo se ve un poco más uniforme. Los colores son una especie de guía, o Sesto, ya sabes, el estado sobre todo en quiero decir, esto no es lo mejor. No es perfecto. Cuenta con margen de mejora. Pero claro, tienes tu propia ráfaga de tu propio estilo. Seguro que se te está acercando con otro diseño que probablemente hace éste. Pero el concepto que habrías um ganado de esta lección te permitiría ser más creativo de lo que estoy siendo ahora mismo. Por supuesto, esto se puede limpiar un poco más porque entonces puedes cumplir con este enlace lucir un poco más atractivo en puedes tomar toda la palabra en eso. Entonces voy a hacer esas cosas. Pero los voy a hacer fuera de cámara. Yo quiero que te quites la práctica haciéndolo tú mismo, sabiendo lo que yo justo y como siempre, si te encuentras con dificultad siéntete libre del dedo del pie, ya sabes , línea dramática, contáctame y estaré listo para ayudarte 40. Module de la participación en las casas: crea una solicitud de - parte 1: Oigan, chicos, bienvenidos de nuevo en este video. Vamos a estar configurando el formulario de solicitud de licencia para nuestros empleados. Entonces, en otras palabras, cuando un empleado llega al sistema y hace clic en solicitar licencia, deberían estar viendo en formulario de solicitud, donde podrán especificar el tipo fuera del que les gustaría en el periodo durante que querían especificando la fecha de finalización y la fecha de inicio. Ahora bien, si rápidos ajustes que yo hubiera hecho fuera de cámara encendida, solo te los estoy mostrando para que puedas replicarlos. Por lo que en cada intervalo se puede pausar el video y replicarlo. Pero no quiero pasar demasiado tiempo en el video haciéndolas porque son cosas básicas . Pero por una, configuré el enlace de solicitud de licencia para apuntar al controlador fuera de licencia. Solicitud sobre la acción, llamada Crea, estará configurando dentro del controlador de solicitud de licencia la acción para crear, que fue lo que renderizará la forma para la aplicación para los empleados. Entonces ese es un cambio que he hecho para que puedas pausar el video, seguir adelante y replicar eso pero seguir adelante. También cumplo con nuestra licencia Solicitar vista modelo. Entonces para el modelo de vista de solicitud de permiso que estaba ahí antes de poner en marcha algunas anotaciones de datos están configuradas. Algunos nombres de visualización en algunas validaciones están a lo largo de las fechas. Pero también creé un modelo de vista específicamente para o crear forma esta crear licencia. Solicitar vista modelo tendrá validaciones para la fecha de inicio validaciones para la fecha de finalización. Una lista fuera del elemento de lista selecto llamado tipos de hojas. Andi valor individual para unas ideas tipo hoja. Por lo que las validaciones para las fechas incluirían Bueno, una, tenemos la pantalla. Entonces es iniciarlo, um, um, nosotros dos palabras distintas en, entonces lo tenemos como se requiere. Y luego estamos especificando que queremos el tipo de datos fecha fuera de servicio. Entonces eso significa en la forma renderiza, um, la entrada de hoy que seré fecha por defecto, ¿ verdad? Sólo porque estamos especificando que es el tipo de datos que queremos. Entonces eso es por tanto tanto esto arranca y de hecho en entonces el público. Perdón, La lista. El innumerable elemento de lista seleccionado llamado tipos de hojas retendrá todos fuera de los tipos de licencia que provienen de nuestra base de datos, y lo usaremos para poblar o lista desplegable. Entonces el contexto es que cualquier tipo de licencia que esté en el sistema se almacena en la base de datos, y si está almacenada en la base de datos, entonces necesitamos una forma de mostrarlos dinámicamente al usuario, porque no queremos mostrar a uno ahí cinco o mostrar uno cuando hay más de uno derecho? Entonces si son cinco, deberíamos exhibir fuego si su stand con el dispiritante. Entonces cuando la persona ama la forma para crear una solicitud de solicitud de licencia, dejo solicitudes. El listado desplegable siempre debe representar lo que hay en la base de datos. Andi, La lista desplegable también se llama lista selecta literalmente. El platillo para una lista desplegable se selecciona en DSO para cada ítem que aparece en esa lista, lo llamamos un selecto este ítem, así que ahí es donde tenemos eso ahí en, entonces El I. D es realmente lo que seleccionas. Por lo que seleccionas lees texto y haces clic en el texto que puedes leer pero en la parte posterior. Y lo que realmente está haciendo es mapearlo de nuevo al I D correspondiente en la tabla que viene de en adelante. Eso es lo que realmente se está almacenando cuando creamos una solicitud de licencia. Está bien. No incluí todos los demás campos que están en el modelo de vista como, um, el solicitado una acción de fecha porque estaremos sentados los de atrás en no estarán requiriendo que el usuario establezca. Esos son Así que creé este modelo de vista solo específicamente para el formulario de solicitud de licencia bajo aviso. Solo cuenta con los campos que son relevantes para el empleado que estará haciendo solicitud. Por lo que una vez más, puedes hacer una pausa aquí mismo. Copiar eso en. ¿ Te pudiste poner al día con? Voy a continuar y por no, esto debería ser muy fácil de entender y replicar. Por lo que de vuelta en nuestro control, vamos a empezar a sentarnos o a crear acción. No, es bastante fácil hacer clic derecho en la vista y generar la vista con una plantilla de creación para la creatividad que modelas y generará vista. No obstante, sí precisamos que necesitamos una lista desplegable de estrellas selectivamente la cual tendrá artículos robados de la base de datos, lo que significa que necesitamos crear esta vista con alguna cantidad fuera de datos yare término técnico sobre saber por hacer eso sería cargarlo con nuestro dedo del pie del modelo, conseguir un modelo cargado de datos y que crear la vista con nuestro modelo en mente. Entonces los datos que realmente requiero serían los tipos de hojas alguien para guardar tipos de licencia ira es igual dedo del pie en la puntuación Dejar tipo reporte tan fuera de curso, si estoy recibiendo tipos de licencia y cualquier tipo de licencia gente Así que si no lo has hecho ya, entonces puedes hacer una pausa aquí mismo hacer esto también. Pero necesitamos hacer representación para nuestro repositorio de tipo de licencia. Algunos incluyendo la dependencia soy, aunque la dependencia es que hubiera incluido ya algunos incluyendo el tipo de dejar repositorio. Lo estoy metiendo en el controlador y luego estoy inicializando para que puedas pausar aquí mismo . Asegúrate de que tu abrigo se vea así. Está bien. En puedes desafiarte en pausa un video e intentar hacerlo a ti mismo sin mirar a mi cancha. Y luego solo comparas después. Esta medida bajo la pista. Esa es una buena manera de que ET mejore. Pero presionando por delante. Nosotros salvamos la ira. Dejar tipos dejar tipo rifle punto encendido. Quiero todos fuera de los tipos de hojas actualmente en la base de datos. Está bien, vamos, entonces podemos ver var, y voy a llamar a este uno deje tipo I términos dejar ítems tipo, así que deja tipo cinco veces. No va a representar la lista de selección correspondiente versión fuera de los valores provenientes de la base de datos. Entonces voy a explicar esto lentamente. Ya sabemos que esto viene de la base de datos y si estamos por encima de la variable, vemos que estamos obteniendo una colección fuera tipo de licencia de tiempo. No obstante, nuestro modelo requiere en innumerables, que es sólo otra colección. Entonces se ve que una gran cantidad de colecciones o tipos de colección en C ojo agudo, nueva colección wearable de bicicleta, yo al menos un siglo, tal son. Pero el punto es que requiere alguna colección fuera de tipo, seleccione elemento de lista. Pero sabemos como los programadores que el selecto este ítem debe representar el tipo de hoja. Por lo que necesitamos hacer alguna forma de conversión de ah list off leave type toe nuestra lista off select list item tan y bonita manera rápida de hacerlo usando link o, al final, a diferentes extensiones de trabajo que funcionan en colecciones, Por cierto, podemos decir iguales. Entonces obtengo mi colección, que es tipos de licencia que quiero decir que Seleccionar Abrir mis llaves, iniciar un Lambda Expresiones. Estoy usando Q como mi variable Lundell. Y luego puedo ver que quiero seleccionar cada artículo fuera de esta colección en remolque. Un nuevo tipo de datos de elemento de lista de selección. Está bien, vamos. Es posible que tengas que incluir una biblioteca ahí mismo. Segunda pausa. Asegúrate de incluir una biblioteca antes de presionar adelante. Pero lo que digo aquí es que quiero interrogar esta lista que te distraigo de la base de datos en por cada ítem ahí dentro. Quiero seleccionar los datos en un nuevo seleccione este ítem o representar los datos y usted selecciona este ítem en. Entonces voy a seguir adelante y asignar los valores a las propiedades fuera del elemento de la lista de selección . Por lo que un elemento de lista selecto en acabo de romper en línea para que podamos ver exactamente lo que está pasando. ¿ Está encendido entonces el espacio de control? Ahí. Veo que tienes texto que estoy siguiendo. Esos son los dos. Más importante, una vez que el texto es lo que va a ver en la lista desplegable sobre el valor es lo que el sistema estará rastreando en asegurarse de almacenar son tan texto que es lo que vas a ver en la lista desplegable sería lindo punto on Recordar Lambda Variablemente excusas O que ahora nos da acceso a los diferentes datos que viene de los objetos son valores representados en la base de datos. Entonces el texto que quiero mostrar es el nombre porque quiero cuando dejo el trabajo solo algo el nombre fuera del tipo de hoja para una selección. No obstante, el valor que estamos rastreando va a ser lindo punto i d que es el yo devaluo de ese nombre correspondiente. Sin aviso. Estoy obteniendo una línea roja y eso se debe a que Valionis bear string i d es un entero para que pueda guardar acoplado a string, que es una función que puede convertir rápidamente. Um, ya sabes, es rápido, solo cambia el dedo indigente una cuerda. Trabaja nueve de cada 10 veces. A veces hay que conseguir más fantasía, pero eso funciona nueve de cada 10 veces. Entonces no, tengo una lista fuera y si poco más de mi nueva variable, veo que es un innumerable tipo off. Seleccionar estos ítems en esto se parece exactamente a lo que declaré dentro de mi modelo de vista. Entonces no, necesito crear el modelo de vista son crea un objeto fuera de los segundos del modelo de vista. Un modelo de fuego es igual a una nueva instancia off create leave solicita el m encendido. Entonces voy a declarar esto o inicializado este objeto para tener los valores para tipos de dejar siendo iguales dedo del pie los ítems tipo hoja que acabo de crear. Entonces uso mis punto y coma y oh, se crea mi modelo. Es off type leave request VM on Tiene los datos que necesita al menos una carga el formulario y así puedo pasarlo al formulario después. Entonces no, que he hecho todo fuera que puedo seguir adelante y crear mi forma. Por lo que Irak vista Te tengo en, entonces estoy agregando yo creo, Así que es elige la plantilla crear. Estoy usando los crea leave request el m on. Voy a eliminar el objeto de clase de datos. Entonces la clase de contexto de datos de la clase de datos que habría usado para algunas veces y la habría eliminado para otras veces. El caso es que funciona mejor cuando los valores son Los datos como se pasan se utilizan para generar. El plantilla tiene alguna relación de mapeo con la tabla de datos. Por lo que esta solicitud de creación de licencia en realidad no tiene ese mapeo. No llamé a la base de datos y luego encontré algo para marcar directamente a ella en dso me ahorraría algo de aire sobre no tiene clave si solo lo quito. Entonces si no lo eliminas y haces clic en agregar, obtienes un no tiene aire de tecla o algo fuera de ese inicio solo puedes volver a encenderlo solo puedes quitarlo y luego puedes seguir adelante y presionar anuncio, que luego nos da nuestro formulario. Entonces tenemos una forma, um debajo de mí, podemos seguir adelante y quitarnos los ojos y ya sabes, para comer un poco esta forma, pero me voy a centrar en lo que está siendo un renderizado. Por lo que tenemos ah, cuadro de texto para nuestra fecha de inicio o alguna entrada para nuestra fecha de inicio o alguna entrada para de hecho en . Había alguna entrada para la licencia tipo I d. Está bien? No. Recuerde que el contextualmente basado en el campo que se está solicitando para el tipo apagado. El control de entrada será diferente en este tipo. Podría estar determinado por el tipo de datos que especificamos. Entonces, en otras palabras, cuando este formulario se crea el, tenemos una entrada para iniciado. El tipo de entrada cuando se renderiza, va a estar fuera de tipo fecha. Está bien, entonces veremos el comportamiento fuera de eso en unos pocos. Pero sólo voy a hacer algunos cambios aquí donde voy a hacer trampa. Toma este grupo de forma que tiene, um, lejos el tipo de hoja I d la voy a tomar, y lo voy a poner en la parte superior. Es así que esta es la primera sección fuera de la forma que quiero renderizar. Um, quiero los controles del calendario. Perdón. Yo quiero que las fechas estén al lado del otro. Está bien. Alguien para crear un Teoh en vivo en curso, darle a este Dave el papel de clase, y luego quiero dárselo a otros tíos. Andi cada vivo va a tener la clase llamada MD así llamada dash. Andy y yo queríamos ser seis. Quiero que cada columna a Philip medio fuera del espacio fuera del rollo, ¿ verdad? Recuerda eso. Tenemos hasta 12 en diciendo seis. Significa que quiero seis fuera del 12. Y así quiero retomar seis después de las 12. Entonces simplemente no quería duplicarlo. Y luego voy a tomar iniciarlo y poner en el 1er 1 on, entonces efectivamente lo y poner en el 2do 1 Así que la expectativa es que cuando este formulario se renderiza, quiero tener esta entrada en. Entonces voy a tener lado a lado dos cajas de texto esperando entrada todo antes de nuestro botón de creación . Muy bien, entonces. A esto se le llama MD cuatro. lo que notan esto está tomando cuatro espacios fuera, 12 encendido, luego fuera de las cuatro especies de las 12. Yo quiero que este tome la mitad y éste tome la mitad. Entonces sólo voy a expandir esto a tal vez, uh, esto fue Eso fueron cuatro. Se lo voy a poner a ello. Por lo que la forma ocupa más espacio. Está bien, entonces, Antes de siquiera mirar el trabajo que estamos haciendo o hemos hecho hasta ahora, quiero hacer un ajuste aquí. Por lo que esta entrada es solo en entrada para hoja tipo I D. Que no es realmente lo que queremos. Lo que queremos es una lista selecta son lista desplegable Ahora hay múltiples formas de obtener una lista desplegable . Um, no de camino elegido fuera poca resistencia en DSO. Aquí vamos a hacer algunas modificaciones para conseguir nuestra lista selecta. Mira, um, para aparecer en su lugar, fuera de esta entrada para que puedas hacer una pausa aquí, echar un vistazo a lo que se renderiza. Entonces puedes volver y luego cambiaremos lo que sea que se renderice por esto, que supongo solo un cuadro de texto con alguna entrada para un número. Voy a cambiar esto para que parezca una lista desplegable. Por lo que el paso número uno se quita todo eso en la corte de fortitude. Entonces tenemos las etiquetas. Seguro. Arte y por supuesto creíblemente sprint fuera cualquier exhibición que se pusiera Ning. Por lo que para hoja tipo I d. dije que quiero imprimir la etiqueta tipo de licencia. Está bien, eso está bien. Pero entonces en cambio, fuera de esa entrada, lo que voy a usar es un ayudante html. Entonces tengo ese signo HTML y digo puntos gota lista de piedra cuatro y luego abrir brisa en, lista desplegable para y la mayoría de los demás. Um, sabes algo, Force. Tienen libros de texto para tu caja de radio. Para que tengas todos esos, um hmm. Ayudantes que te dan control un control de formulario cuatro, Correcto. Todos ellos toman expresión de alumna dentro de años. Um, como he estado haciendo desde el primer día, uso mi taco. Fue mi Londres verbal encendido y digo q punto en entonces especifico qué elemento del modelo más debería marcar de nuevo a esta lista desplegable. Por lo que el mapeo elemental es para el IV tipo i d Ahora que estoy mapeando el elemento, necesito decirle de dónde debe sacar la lista de valores por lo que sea que se muestre al usuario. Todo fuera de las, ya sabes, las cosas que simplemente cargamos dinámicamente y comemos un apuntado en la dirección correcta, algún lugar para decir. Nueva lista de selección. Por lo que vimos que tenemos elemento de lista selecta, pero también tenemos un control llamado selecto lista o un tipo de datos hermano, nuestro tipo de clase llamado Select lis. Y entonces esta lista selecta está quitando una lista. Seleccionar elementos de lista son una lista fuera de intentos. Por lo que la lista fuera yo términos que estoy pasando al selecto listo poblar. El desplegable viene de mi derecho más modelo de derecho y modelo, y digo puntos en. Entonces es la lista fuera tipos de licencia que literalmente acabo de cargar en mi acción antes pasar a la vista. Entonces deja tipos dentro. El modelo más debería tener desactivada la lista. Seleccionar elementos de lista en en los elementos de la lista de selección tiene dos propiedades texto sobre los valores. Por lo que necesitamos contar o seleccionar esto. Cuál de estas dos propiedades debe ser el texto y cuál debe ser el valor. Y creo que es claro corte en este punto que toma esto para texto y valores para valor, ¿ verdad? Entonces lo hace amable uniforme y tú, Andi limpio cuando usamos los elementos de lista seleccionados, así que voy a decir valor de coma para valor. Por lo que el seguimiento de valor debe tomar en plática sobre la propiedad de datos de valor de cualquiera fuera estos objetos en las listas que estoy usando, haciendo referencia dedo del pie en la propiedad de texto debería estar viniendo de la propiedad toma de cualquiera fuera estos valores que estoy aludiendo dedo del pie. No. Después de hacer todo eso, voy a volver a decir coma. Entonces pero sólo asegúrate de que estoy cerrando mis aparatos ortopédicos. Creo que me falta son corsé aquí. Entonces eso es. Ah, yo pienso en un corsé extra aquí. Está bien, bien, señor, sobre eso. Por lo que tenemos nuevo seleccione este ítem, entonces estamos de paso. Tendremos soporte abierto que tenemos la coma de colección la propiedad value en la propiedad text on. Entonces después de cerrar ese corsé, tenemos coma de que voy a configurar un mensaje predeterminado. Por lo que mi mensaje predeterminado es seleccionar tipo de licencia. Entonces cuando los ex unders, eso es lo primero que va a estar en la lista desplegable diciéndoles que seleccionen de aquí en adelante, entonces quiero ver una nueva on open up ah, sección aquí donde voy a defender algunos Atributos HTML. Entonces el atributo que quiero para este trabajo no enumerar sería que tiene la clase recuerde clases y atributos que este es un remolcador html. Este es un HTML atributos en ese remolcador. Entonces digo que quiero en san class, que es cuando representar estos mismos atributos y digo igual a Andi. Yo quería tener la misma clase que tiene cualquier otro control de forma, que se forma el control Dash, que es nuestra clase bootstrap. Para asegurarme de que parezca una forma bootstrap, um, elementos encendidos entonces para mi botón, entenderme en este bt y dash block. Muy bien, entonces bt y dash block, tal vez por la acción. No necesito respaldo de una lista, así que me voy a sentar. Voy a dejar eso por lo tanto. No. A medida que elaboramos nuestra, um, aplicación un poco más porque esta vuelta a la lista intentaría retroceder a la función de índice dentro de toda nuestra aplicación, que de todos modos está realmente reservada para los administradores. Entonces cuando estábamos kowtow, vamos a mostrar a los empleados su propia página de índice, lo que significa que va y ve todo lo que ella ha dejado nuestras aplicaciones y después puede hacer una solicitud si él quiere. Cuando trabajamos en ese punto de vista, entonces podemos cambiar esa ventaja. Entonces hasta entonces, dejémoslo como está encendido, entendemos, para guardar todos los cambios o cambiar de control y s encendido, Entonces solo voy a cargar mi enlace de navegador encendido. Entonces veamos cómo se ve esto. Está bien, así que ahora que lo hemos cargado, lo primero que voy a hacer es palo solicitar licencia. Y entonces nos está diciendo que necesitamos iniciar sesión porque sí dijimos que todo en todo este controlador necesita a los autorizados para que no me dejen pasar algún dedo lejano. Usa mi contraseña predeterminada para este usuario, que está fuera de W u org one. Está bien. Y me están diciendo que no puedo ser la contraseña. Yo solo hago eso se puede cortar a tiempo, cualquier hoyo. Así es como se ve la forma, ¿verdad? Por lo que tenemos nuestro tipo de licencia encendido. Tenemos esa lista desplegable, que es exactamente en lo que queríamos. Pero permítanme sólo inspeccionar elementos. Te puedo mostrar lo que quise decir con la conversación de texto versus valor. Entonces tenemos una lista selecta, ¿verdad? Entonces sobre acorde que dijimos cada html que desplegable lista cuatro. Generó un remolcador selecto. Tiene la validación construida en todas esas cosas que se generan cuando caí en esta lista. Observe que tiene la opción. Entonces para cada valor proveniente de la base de datos generó la opción en entonces las opciones tienen algún texto que es visible en algún valor. Cada texto como opción válida tiene un valor en el texto. Entonces eso es todo viendo cuando especificamos que queríamos esto para texto sobre este valor cuatro. Esto es lo que estaba haciendo, verdad y de verdad, ¿verdad? Entonces si tienes experiencia con seleccionar esto que decisión, no lo haría antes en lo que habrías aprendido siempre mantener para generar la lista desplegable dinámicamente en base a datos de otros lugares de tu aplicación, que es un útil en muy tiempo. Um, el ahorro de Neto tienen. Muy bien, Así que lo siguiente que quiero señalar al hecho de que tenemos las fechas lado a lado , cierto, cierto, Así que sí configuramos la regla en les dijimos que quería ya sea cuadro de texto son tampoco, um, control de entradas para que las fechas sean, ya sabes, para sacar la mitad de la especie que sea el contenedor. Por lo que los contenedores fríos salen ocho de posibles 12 espacios encendidos, luego dentro de fuera que ocho espacios estaban ocupando seis y seis. ¿ Verdad? Entonces por eso puedo mezclar y mucho los llamados MD para conseguir agradable, limpio, limpio, aspecto verde. Leales son muy pequeños, como sea que los quieras. No. Una cosa que quiero señalar es el hecho de que esto ya tiene el valor beat tipo de implícito en. Entonces cuando hago clic en él, es sólo preguntándome. Me está impulsando a poner en la fecha. Obtengo un control de calendario, cual es bueno porque lo último que quieres es que venga alguien y en realidad simplemente tecleando a mano alzada, a mano alzada, poniendo tonterías para el bit. El don 't side, sin embargo, toe a lowing the bro ER para determinar su control sobre solo voy a saltar por encima del dedo Internet Explorer es que el control de fecha se verá diferente para cada hermano. Entonces esta es la versión de Internet Explorer fuera de ese control de fecha, mientras que Chrome está dando el control de ese calendario buscando ahora, no quieres ese tipo de inconsistencia. Quieres asegurarte de que todos tus clientes en todas partes estén viendo una cosa. Entonces este sería un buen punto, no para incluir, como un recolector de fechas estándar que sabes que renderizará el control de costura en todos los navegadores. Entonces este es mi goto un recolector Así que este es Jake. Preocúpate yo dot com slash fecha Picker encendido. Este es mi goto por defecto. Cuando engaño en el cuadro de texto, él sólo saca ese control, y así se verá de manera consistente, ¿ verdad? Entonces voy a hacer que este control de calendario se presente siempre que alguien haga clic en el cuadro de texto. Ahora vamos a tener que hacer algunos ajustes, y una vez más, y una vez más, fuera de las palabras explican por qué, Andi, espero que entiendas por qué tenemos tantos fuertes de Buchan a veces cuando queremos a nuestro país ciertas cosas. Pero con la fecha voy a tener que no dejar que haga del beat un tipo za para las importaciones . Muy bien, haga clic en el cuadro de texto. No tienes que seguirme con esta enferma. Y este Mira lo que estoy haciendo. Correcto. Haga clic en los libros de texto que van a inspeccionar en el cuadro de texto de fechas de inicio, observe que el elemento en sí es Se renderiza con el tipo apagado. Come, correcto. Entonces sí dije que cuando especificamos el tipo de datos en el modelo influye en el tipo de datos que es el tipo de entrada que se utiliza en el renderizado. Entonces si quiero usar este picker de día. El tipo de entrada tiene que ser textos. Entonces si miro a ver fuente, voy a ver aquí. Ese tipo de importación es igual al texto, no a la fecha. Muy bien, así que hagamos algunos ajustes y luego metamos nuestro profundo ocurre en. El primer ajuste es asegurarme de que tengo los archivos de script necesarios para esto. Collender. El que fuera de los archivos serían los archivos CSS alguien a hacer sólo en copiar este CSS para nosotros es un montón de otras cosas. No son absolutamente necesarios. Están realmente sentados para el demo. Entonces esta es nuestra parte de saber lo que necesitas y lo que no necesitas. Entonces lo que necesitamos sería el archivo CSS base aquí que en realidad le dará a nuestro calendario ese aspecto y sentir que vimos a alguien para copiar ese archivo censal, volver a nuestro proyecto on go overlay o file on. Entonces agrega ese archivo CSS aquí. Muy bien, entonces tenemos un nuevo archivo CSS, una nueva orgía Cdn link toe. Corey, ¿por qué sigue? Queremos asegurarnos de que tenemos nuestros archivos de script en los archivos de script a los que se hacen referencia para escuchar a nuestro pequeño Necesitamos notar que esta es una versión fuera de Jake worry. Ya tenemos a Jake preocúpate. Pero la cosa es que, a veces los estos controles requieren funciones a partir de una versión específica de J. Query on tenemos en la última versión. Por supuesto, estoy tomando esta, um, um, versión de Jake Worry on. Yo estoy tomando el archivo de guión que está asociado con Jake o ustedes ojos. Yo los llevo a los dos. Y luego en mi aute temprano, me voy de pie, los pongo debajo del otro Jake peor después del Jake o está cargado de todo lo que depende de las cosas de esa versión de Jake. Preocupaciones están cargadas. Entonces cargaré mi geek donde, de hecho, mi archivo de guión aquí también tiene dependencia es para esa persona. Por supuesto que me voy con el dedo del pie. Ponlo aún más por debajo de eso. Muy bien, entonces no, estos archivos de script son referenciados. Um, ahí para el JIC o tú yo en entonces lo siguiente que dicen que necesitamos sería toe inicializar la función que provocó los controles deepika. Yo sólo voy a sacar este bloque del guión aquí. Copiarlo en entonces. Dentro de nuestro crear. Voy a arreglar una nueva sección cuatro guiones. Entonces quita esos scripts de sección Render Y esta sección aparecería debajo de todas las inclusiones de script por defecto, ¿ verdad? Por lo que siempre podía simplemente seguir adelante y decir guión, abrir un guión y empezar a hacer algo ahí. Pero cuando las páginas renderizadas, este guión se va a renderizar por dentro. Render cuerpo Andi. Se va a disparar antes de que se incluyan los guiones necesarios. Entonces voy a asegurarme de que rinda la sección Ejército referencia a la sección que está aquí antes de poner en los guiones, solo digo en la sección de ciencias on, entonces el nombre de la sección es guiones abrir y cerrar llaves en, luego dentro de estos aparatos ortopédicos. Ahora puedo poner mi cable JavaScript personalizado, que, que, cuando las páginas renderizadas, sí, renderiza un cuerpo, y renderiza todo aquí. Pero luego cuando llegue a la sección, puedes dejar el laurel hasta que haya terminado de renderizar todo lo demás encendido. Entonces rinde el guión ahí, para que así esa sección, um, funciona en frío. Entonces no, voy a hacer algunos ajustes. Uno Voy a cambiar el tipo de datos desde la fecha y hora, lejos de las fechas. Estoy quitando esa validación de DEET. Entonces, no, solo va a ver Fecha de inicio como cuadro de texto regular porque no estoy haciendo cumplir eso. Debería ser en su momento. Sí, este tipo de datos es el momento. Pero sin la notación de datos, la forma se renderizará por valores predeterminados. Tan solo un cuadro de texto de la entrada será el tipo de entrada será igual al texto. Lo siguiente que quiero hacer es asegurarme de que apunte a los elementos correctos o sé que está buscando un elemento con el recolector de fechas I. D. Y eso se basa en la demo. No obstante, tenemos dos elementos aquí lo iniciaron y de hecho es que necesitan los servicios fuera de los recolectores profundos . Entonces en su lugar voy a dar los pies a ambos el altavoz profundo de clase. Por lo que sólo estoy sumando a la sección de clases off. O bien ingrese el recolector de fecha de clase en eso en lugar de hacer referencia a los elementos del hashtag significa un i d on elemento con el I D apagado. Sea lo que sea que venga después de Ashdown, quiero elementos con la clase fuera. Lo que venga después de la parada completa. Por lo que es un especificar ideas. Etiqueta hash para especificar la clase. Usa el tope completo. ¿ Verdad? Algo completo stop fecha picker. Busca cualquier cosa que tenga el picker de fecha de clase en él, que acabamos de agregar dedo Estos dos controles en luego inicializar el picker de fecha son el control de calendario. Entonces solo voy a controlar turno s Hacer que esos cambios guarden esos cambios. Vuelve a mis aplicaciones. Puedo cerrar el Jake donde estás Enseguida fui a refrescar y vamos a ver qué pasa son así en la actualización Nall Podemos ver que la fecha, laaplicación de la fecha, aplicación de la fecha, esta tipode se ha ido. No, parece que en el momento sigue dándonos los elementos de control que vimos antes, Así que él iría a ese desplegable aquí y vamos a conseguir el calendario. Pero entonces si solo hacemos click en el cuerpo, estamos viendo orgía ¿dónde? Entonces esto siguen siendo especie fuera de conflicto y eso es porque el tipo de datos, que es tiempo muerto, sigue anulando el tipo. Y no es renderizar el texto. Todavía está renderizando algún tipo de fechas. Por lo que nuestras madrigueras o está probando su mejor facilidad del dedo del pie. Es de ese tipo. Está bien, Entonces si cambio esto manualmente a texto. Se dieron cuenta de que no habría nada. Pero entonces cuando hago click J Canteras calendario es el único calendario que se está renderizando ahí. Está bien, para que podamos investigar eso. Probablemente podamos hacer algo así como podemos cambiar en el modelo de vista el tipo de datos de diurno a solo cadena. Pero fuera de curso, tienes dedo del pie asegúrate de que cuando estamos haciendo nuestras operaciones y nuestra fregona cosas que estamos convirtiendo cualquier valor a la hora de la fecha. Entonces eso es así que a veces faltan mucho puede ocurrir. Entonces, por no, quiero dejarlo como el tiempo. Andi Sí, tenemos dos controles de calendario que compiten, pero lo voy a dejar en paz para no. Al menos entendemos lo que está pasando y más adelante, podemos poner en un tribunal más dinámico para manejar la situación. Pero por no, tenemos nuestro control de calendario estándar. Si lo miro en Internet Explorer, entonces todavía tenemos esa cosa conflictiva porque Internet Explorer llama al Control sigue tratando de llegar a Jake o así más adelante. Podemos cambiar eso, pero al menos por no, sabemos lo que está causando el problema, y enteros lo podemos resolver. Otra cosa que quiero hacer es asegurarme de que mi formato de fecha sea por qué, ¿ Por qué? ¿ Por qué? ¿ Por qué dash? Mm. Dash DD lo que significa que debe ser año, mes en adelante, entonces. Día. No quiero que sea, um, um, ya sabes, para causar alguna confusión como es. Por lo que sólo voy dedo del pie dentro de la llamada de función de selector de fecha abrir a llaves llaves encendidas. Entonces creo que tienen una propiedad en recolector de fecha para fecha. Dijo, igual que para mucho colon. En fecha, cuatro meses tendrán los valores. ¿ Por qué y dash? Mm. Dash d? No, solo una pequeña consulta bi la puede encontrar en la documentación. Si vuelves al Jake donde eres recolector de fechas y haces clic en cuatro meses, te mostrarán los diferentes formatos. Entonces los dos sabios me darán las fechas de cuatro dígitos. El año de cuatro dígitos. Perdón. Está bien. Y luego los meses y luego el día. Por lo que sólo quería buscar uniformes. Entonces eso es todo para los elementos visuales. A continuación, quiero encender la post acción. Qué sucede después de que el empleado clics crear nuestra solicitud alguien a adolescentes texto aquí de crea para solicitar licencia. No, Nuestra licencia de búsqueda va a requerir algo de inteligencia y fuera de curso una vez que hagan clic en que el flujo natural es para ir a la post acción para o crear. Entonces en el siguiente video, vamos a terminar la post acción para el create on. Vamos a estar poniendo algo de inteligencia que aún no hemos factorizado. Algunas reglas de negocio sobre quiero decir, puede que tengas una idea diferente de las reglas de negocio a la que hago en diff, ya sabes, para implementarlas. Entonces estamos bien porque entonces entiendes el concepto. No obstante, cuando volvamos a la siguiente lección, vamos a terminar esto, y estará enviando cada solicitud de licencia a la base de datos. 41. Module de la participación en las casas: crea una solicitud de - parte 2: Oigan, chicos, hablando desde donde lo dejamos en el video anterior y solo queremos empezar a despegar nuestro post crear acción para las solicitudes de licencia y solo voy a sumergirme justo dentro. Entonces ya estamos en el controlador en me llaman la acción. Por lo que la primera modificación a realizar son los datos que sabemos que va de vuelta en el buey en la acción, que es off tipo de datos crea leave, request VM. Yo lo voy a llamar Model Soul. Aquí vamos a hacer algunas cosas sólo para asegurarnos de que nuestra solicitud de licencia sea válida. La primera operación es comprobar si el estado modelo es válido. Entonces sólo voy a quitar ese comentario y luego voy a decir, si no modelo estado lo siento, modelo de estado que se valora. Entonces si no es válido, entonces sabemos que queremos devolver la vista. Ahora, aquí hay un pequeño truco que tal vez viste quizá no vio, Pero cuando regresamos la vista, necesitamos devolverla con algunos datos. Creo que teníamos un escenario como ese antes donde devolvíamos la vista, pero no la cargamos con los datos requeridos, y así nos dio alguna excepción. En este caso, devolverá la vista aunque pasemos sobre Model Model no está rastreando la lista desplegable y los artículos, por lo que eso significa que si lo devuelvo con modelo lo va a devolver. Perdón se lo va a devolver con algo de MT. Datos, ¿verdad? Entonces se va a regresar con un vacío caído sobre esto, lo cual es absolutamente necesario. Entonces tengo que asegurarme de que vuelvo a cargar modelo. Entonces sólo voy a copiar esto. Anotó Onda. Voy dedo del pie solo carga. Es en cuanto lleguemos al poste. Simplemente voy a correr esa consulta porque tenemos múltiples lugares donde la va a devolver. Entonces no quiero Oh, pon esa preocupación dentro de la declaración if y luego hay que volver a ponerla en el gato entender una vez. Entonces voy a asignar puntos modelo. Tipo de licencia. Así que ya tienen modelo. Algunos simplemente poniendo variables de tipos de hojas repoblantes con los ítems de tipo hoja que acabamos de obtener. Entonces si tiene que regresar en cualquier punto dentro del try on, en realidad, pondré esto dentro de la pista porque ese es el punto de la pista en ti operación Tran on. Si tienes una excepción, decir si hay una flecha de base de datos, entonces él atrapa. Es correcto, así que nos probamos, entonces obtenemos todos los valores que sabemos que necesitamos para el desplegable. Entonces decimos, si el valor si el estado del modelo no es válido y acaba de devolver el modelo y ya tiene los datos que necesita que claramente falta cuando se acerca, el inicio pobre. Entonces eso es lo primero. Entonces estamos revisando. Si el estado moderno es válido, entonces devolvemos la vista. Si no es después de eso, entonces quiero empezar a obtener algunos datos. Por lo que al principio quiero a los empleados en el empleado que actualmente está cabildeando. Entonces quiero Empleado que está haciendo solicitud de licencia en un personal estaba haciendo la solicitud de licencia tiene que ser el usuario que está conectado, así que no necesito rastrear eso en el formulario. No necesito que me digas quién eres, porque el sistema ya tendría una idea de quién eres basado en tu log en la única forma propia que es, si tengo tu pastor que tus credenciales y trato de amar las solicitudes de licencia como tú . En ese momento ese es probablemente su negligencia o mi intento de defraudar una situación, no para sacar detalles de la persona que firmó. No necesito que identifiquen a quiénes son sus en una granja en la que ya les hubiera encantado. Y ellos, habiendo amado ser, estarían presentando la solicitud de la hoja. que significa que solo necesito recuperar a la persona que es amada siendo en los puntos que esta solicitud va en alguien para recuperar a los empleados usando el gestor de usuarios, que ya se incluyó como dependencia de. Voy a decir algo como empleados de VAR es igual a en la puntuación usuario manager, que es mi identificador de dependencia acoplado. Después tienen un teléfono. Cálices consigue usuario un fregadero, alguien para conseguir usuario relajándose. Eso está esperando algún fire amateur off system que la seguridad reclama principio nuestros principios así dentro que voy a pasar nuestro objeto o una clase llamada usuario. Bueno, realmente son objetos de acto, así que si paso el cursor sobre la palabra usuario, entonces ves que es exactamente el tipo de datos que se requiere, que es eso limpia principio. Por lo que me estoy poniendo al usuario en. Entonces solo diré que los resultados para recuperar los datos reales ya que esta es una función asíncrona . Entonces no, mis empleados tendrán en los empleados objeto. Por lo que estoy recuperando al usuario que actualmente ha iniciado sesión. Entonces esa es una buena manera de recuperar al usuario actual. Quieres que el usuario quien haya iniciado sesión durante la sesión, tienen una palabra clave que es literalmente la palabra usuario. posible que lo veas un poco más complicado porque algunas personas realmente le dan un sistema totalmente calificado, esa seguridad que reclama que aclara principio, ese usuario. ¿ A veces ves eso? ¿ Qué? Eso está bien. Simplemente puedes decir la palabra usuario. Eso No, conozco al empleado que está haciendo la solicitud. Lo siguiente que necesito saber en cuanto a si necesito o no decirle si esta solicitud su valor es que en realidad le ha hecho daño a su asignación real, ¿ verdad? Por lo que necesito encontrar las asignaciones para este usuario para poder decir algo como Bar nuestras ubicaciones es igual de dedo en. Después vemos en el marcador Deja una ubicación en DSO. En realidad no tengo esa dependencia. Entonces voy a tener que volver a empezar. Asegúrate de que tengo una dependencia para mi asignación de licencias Denunciar a alguien que lo haga rápidamente. Diré que me voy. Ah, repositorio de ubicación en éste se va a dejar. Yo miro, sólo estoy roscada Informe de acortar. Entonces solo pondré las dependencias. Entonces solo estoy usando apalancando la cancha que ya está ahí para cumplir con este proceso. Foster. Entonces por supuesto, si voy demasiado rápido, solo, ya sabes, pausar video en ti solo re teclear en ponerte al día. ¿ Todo bien? Entonces no, tengo esa dependencia para las ubicaciones de licencia. Entonces intentemos eso otra vez. Entonces deja asignación. Subrayar. Deja atracado a Alec Repo. Entonces puedo decir que obtiene asignaciones de licencia por empleados, que está esperando alguna cadena para las ideas de los empleados que puedo decir conseguir por empleados. Ya se creó esa función antes. Entonces voy a pasar en los puntos de los empleados de valor. Yo d. Está bien, Así que estoy pasando en los empleados i d número. Pero entonces hay un peligro aquí. ¿ Y si esta operación se siente si se trata de recuperar esos empleados, Um, no era así de sobra lío si alguno. Um, los errores son tan en un supongo que por eso tienes al gato intentarlo. Por lo que atrapan una vez que obtiene alguna de esas flechas puedes atrapar la excepción en aún ese objeto que puedes simplemente pasar a la vista si quieres hacer un error del sistema o algo está impreso en la pantalla, lo cual no es necesariamente el mejor caso. Pero el punto es, ese es el punto de un try catch. Lo hemos hecho un par de veces y solo te estoy trayendo presento Por qué tenemos la pista todavía. Entonces intentamos operar, y luego atrapamos la era. Y si hay un error que hacemos algo así que me voy de pie oiría puntos de estado modelo impar en Model Arrow on. Entonces van a ser ñoquis. Pero entonces algo salió mal. Yo sólo estoy dando ah, cabezas arriba que algo salió mal con la operación. Um no decirles los detalles necesariamente. Pero para los mil millones de propósitos, siempre podemos observar este objeto. Cualquier casa que recuperemos o empleados, recuperamos las asignaciones que tiene este empleado. Y entonces nos dimos cuenta que no, que son todas las asignaciones y no es necesariamente específico de la asignación fuera del tipo de hoja que se está solicitando. Entonces eso me dice que hice otra función en mi repositorio para ser aún más específica. Por lo que solo me voy de pie, vuelve a mi repositorio para empezar con Contra. Por lo que yo, Levi ubicación repositorio on. Entonces voy a duplicar esto en. Entonces voy a ver obtiene una ubicaciones por empleados tipo Andi Así en las asignaciones por los empleados y los tipos de fueron a pasar en la cadena Empleado I d así como un entero tipo de licencia idea en entonces en el repositorio, voy para implementar esa función, así que solo espero hasta que llegue la línea roja aquí. Entonces yo poco más o tomo la bombilla, uso el responsable realmente en implemento interfiere en. Entonces esta función va a parecer muy similar del dedo del pie o conseguir asignaciones por parte de los empleados. Recuerda que estamos revisando por un periodo y estaban revisando las asignaciones, Entiende copia del dedo del pie. Esto anotó porque va a ser un poco muy similar fuera de curso, pero esta vez estoy viendo encontrar todos donde los empleados que yo d es es igual a la idea que está entrando en el periodo es igual al periodo en adelante. Entonces voy a decir Onda, los puntos Q dejan d dejo ideas tipo. Igual dedo del pie cree tipo I d entrando. No, En esta ocasión, sólo queremos uno. Entonces aunque un registro cumpla con esta condición lo que es cuando eso sucedió es que siempre estamos configurando para conseguir una lista nuestra colección. Por lo que sería una colección con uno. No quiero una colección con una. Yo sólo quiero un objeto. Entonces para obtener un objeto puedo cambiar esto eran tan primero o predeterminado. Entonces primero, nuestro defecto siempre solo traerá de vuelta un objeto ya que encuentra algo que mucho es la condición que trae consigo el primero. Entonces aunque trajeras si encontramos una colección de cosas que mucho el cólico, la condición, solo regresarás el 1er 1 Si no encontraste ninguna, entonces regresa. No, eso es lo que significa el defecto, ¿verdad? Entonces estamos usando las mismas expresiones Lambda Eran dis cambiando la función de fueron los primeros nuestro predeterminado en, así que no necesito en la lista. Entonces no. Cuando hago esto y estoy consiguiendo una línea roja aquí eso mi línea roja es porque Lo siento, estoy regresando. Una vez. Acabo de pasar por el periodo de la mitad diciendo que estamos esperando un objeto sin embargo declaré que esta función está esperando la recolección. Entonces solo necesito orbitar los tipos de datos aquí, así que dejar asignación en lugar de una colección en ese entonces eso no hace mucho el contrato. Por lo que voy a volver a mi archivo de contrato o mi archivo de interferencias y asegurarme de que estoy representando es correctamente. No. Después de hacer todo eso no debería tener ningún problema. Entonces yo tengo asignación de licencia, obtener asignación de licencia por empleados y tipo, que es conseguir uno. Y acabamos de implementarlo en nuestro repositorio. Está bien. Por lo que de vuelta en nuestro controlador, voy a cambiar esto verbalmente en de asignaciones dedo asignación. Por lo que es devolver un registro con la asignación articular que tiene este empleado para ese tipo de licencia. Entonces Oh, necesito cambiar esta función. ¿ Verdad? Por lo que no cambié las funciones en el in. El controlador no necesitaba nudos llamados esa función particular. Yo estaba llamando, pero llamando a uno conseguir asignaciones por empleados y teclear sobre ellos pasando un empleado i d y también modelo que dejan tipo I d. derecha. Entonces conozco a los empleados que hacen la solicitud y el modelo está trayendo el tiempo de hoja que se está solicitando. No, estoy revisando la asignación. No. Otro cheque que necesito cumplir. No, ¿Está el número fuera estos asignado o actualmente en el sistema para ese empleado? ¿ Es mayor o igual al número que se está solicitando. Entonces no, tenemos que hacer algún mes. Tengo que decir que solicitaste Ya sabes, entre este miedo que ese muelle, eso es X número de días. ¿ Tienes ese número fuera de estos en tu asignación? De hecho, creo que me salté por delante una validación muy importante que tiene que suceder antes de que podamos empezar a revisar ubicaciones. Y esa es una validación muy sencilla contra las escrituras porque tenemos un inicio la misma. Y entonces, en efecto, ¿qué? Tenemos que asegurarnos de que la persona no esté poniendo fecha de inicio. Eso es más allá que tuve en el futuro que la fecha de fin. Por lo que antes incluso empuje adelante con todo esto. Entonces eso me golpeó hace un rato que me perdí esa validación. No. El punto de este ejercicio es que cualquiera que sea la lógica que pongas aquí, las validaciones que esos pueden hacer y romper el sistema Esas son pequeñas cosas que causarán grandes dolores de cabeza. Cuando tienes una gran corporación y malas validaciones que permiten a los usuarios poner dos basura en el sistema encendido entonces como el desarrollador o la persona yo t a cargo del sistema, vas a ser tú quien limpie el desorden. Entonces es fácil. Simplemente piensa en lo que puede dar la vuelta en el punto apagado, entrada en adelante, luego valida contra esos Onda. Intenta eliminar o escenarios, ¿verdad? Entonces ya estoy revisando si la válida Si el estado es válido y estoy regresando, lo soy. Supongo que puedo usar esto son Bueno, voy a revisar. Usa otro. Si declaración, voy a decir si en día voy a usar Ah, la hora Compere Así fecha hora Ese objeto tiene algo llamado. Tiempo compere Justo en. Entonces se comparan su tiempo. Se necesitan dos valores. Quién toma dos fechas para que pueda decir modelo eso, Andi veo algo como lo empezó Así que toma las primeras fechas que se quieren comparar con las segundas fechas. Estoy comparando el primer día para apenas fecha de inicio el. Entonces lo estoy comparando. Puntas modelo de dedo final, ¿ya sea? Sí. Por lo que devuelve algo que es menor a cero. Si es anterior a si la fecha uno proporcionada es anterior a las dos siempre que devuelve cero. Si es la misma fecha en cualquier devolución algo mayor que cero. Si es, ya sabes, más grande de lo que obviamente queremos comparar y solo comprobar si es menos de cero porque nadie debería estar empezando y terminando empieza es el día que te escribieron en Dwell. No debe ser menor de lo que debería ser mayor que cero, en realidad, porque puede ser la misma fecha. Si solo tomaste un día, entonces seleccionas el primero el inicio bajo nd para ser el mismo día que sabemos que es un d derecho. No obstante, si es que la fecha de inicio es la 16 en el Indy, es la primera. Entonces sabemos que tenemos un problema. Entonces solo voy a comparar y decir si esa comparación usa un resultado que es menor que cero , entonces quiero regresar. Entonces entiendo dedo del pie volver a la vista, ¿verdad? Por lo que podemos tener tantas validaciones como veamos necesarias. Por lo que la próxima validación va a ser en contra de la asignación configurada. Entonces no, tengo la asignación para ese tipo de licencia encendido. Entonces voy a ver es el número fuera el se solicita mayor o igual al número fuera estos en la asignación. O mejor dicho, ¿es? Sí, es un mayor que es un mayor que el número de éstos en la asignación. Entonces habríamos tocado otro punto de validación o regresado. Entonces para este, permítanme simplemente agregar el error de estado del modelo para que podamos imprimir en la pantalla específicamente, ese es el iniciado. No puede ser, um, más en el futuro que la fecha de fin. Entonces le estamos dejando saber al usuario que la basura que sí lamentaron en DSO estaban rechazando y haciéndoles saber que esa es tu flecha. Estos arreglaron eso. Por lo que convulsión hace que sea muy fácil hacer esto, um, cálculo para el número de días libres entre la fecha de inicio y el nd Así que el compare realmente solo devuelve uno negativo si es anterior a cero. Si es el mismo día en adelante, entonces mayor que uno si es si el inicio se recibe hecho. Muy bien, Onda. Como dije eso, me di cuenta de que tengo una era lógica aquí mismo. Por lo que necesitamos comparar la fecha en la hora de la fecha de inicio y de hecho en ella. Tenemos que darle a Irwin. Es mayor que uno. Perdón por eso. Entonces dije menos que cero, lo que significa que si esto comenzó, es antes que el indio, entonces nos ponemos menos de cero en. Eso estaría bien, pero el problema es que queremos cuando queremos detectar el problema cuando el inicio es mayor que el Indy it encendido cuando eso sucede en esta función devuelve el valor de uno. Está bien, entonces es realmente la que tenemos que comprobar. A continuación, devuelve el error por el para la lesión. Entonces alrededor de dos horas de cálculo para el número de días voy a decir algo como int se solicita es igual a en entonces una forma sencilla de calcular esto sería decir, modelo dot start hizo u otro modelo que terminó su ya que eso es un valor mayor. Es un modelo que Andy dot dit menos Así que tengan las deudas más grandes o lo que sabemos. Entonces si conseguimos este incendio y sabemos que efectivamente es claramente más grande que iniciarlo, entonces vemos mi nariz modelo punto fecha de inicio que funciona. Entonces después de hacer eso, entonces nos quedamos fuera de la brisa si dot días. Entonces lo va a hacer. Su cálculo no sólo es lamentable. Eso son días totales, así que los días totales volverán a John. Simplemente podemos mirar el interés ya que devuelve el valor del tiempo actual hilado en su totalidad y fraccionalmente. Por lo que realmente queremos aguantar. Devuelve un doble, pero yo quería estar en Seúl. Va a devolver alguna fracción, ya sabes, tal vez 2.4 días que tal vez en un salto aquí, pero realmente lo estamos poniendo en un entero encendido. Entonces estamos poniendo la línea roja en debajo de esta línea fuera de cancha porque no parecen que esto esté devolviendo un doble, pero estamos diciendo en un entero alguien que lo eche implícitamente en entrevista solo abriendo nuestro corsé, escribir la palabra para encerrar un descanso. Entonces así de fácil puede ser echar entre los valores de América. Tienes doble en un lado en el que quieres, John hace que Eddie solo use esta técnica para costar. Entonces ahora estamos consiguiendo pero se solicita el número de descuento. Entonces voy a revisar de nuevo para ver si el número fuera el que se solicita excede la correspondiente nuestra ubicación. Entonces fui a ver si se solicita es mayor que una ubicación. Eso es número apagado Estos ¿verdad? Entonces estamos revisando. Los días solicitados exceden el número fuera estos en ese registro de asignación que acabamos de recuperar de la base de datos para que empleados en el tipo de hoja que se solicita el. Entonces si ese es el caso, entonces si se cumple esta condición, regresamos la vista. Entonces solo copia eso, Andi, tuve ah error de estado modelo para verte. No deletreé B. Está mal en esta área. Cuando a pesar de que alguien que te vea no tienes suficiente. Estos no tienes suficiente es para esta solicitud. Por lo que les estamos haciendo saber que no tienes suficientes días de pie, cumple con esta solicitud, por favor. Arrgar. Correcto. Entonces estas son una especie de validaciones que realmente sucedieron. Al hacer clic, enviar y obtener un mensaje de error basado en algunos datos que puede haber puesto en que violaron las reglas de negocio son cualquiera que sea la aplicación de reglas se construyó su propia literalmente allí sólo una vez más, un amontonarse si las declaraciones , um, solo comprobando por cosas diferentes que el desarrollador no quería la facilidad del dedo es entretener. Entonces después de que hagamos todos estos cheques, No. Si llega más allá de esto, si declaraciones entonces podemos asumir con seguridad que se trata de una solicitud de licencia válida. Entonces podremos iniciar el proceso, creando un registro en la base de datos sobre hacer la deducción necesaria. Entonces uno quiero deducir el número de días libres del registro de asignación real en entonces una vez ese número apagado, éste ha sido el doctor. Después insertamos en la búsqueda hepática para que podamos hacerlo en orden inverso insertamos las peticiones de licencia on. Entonces hacemos la deducción. De cualquier manera, ambos pasos tienen que suceder, Así que quiero decir vier licencia. Solicitud es igual a aan den Voy a empezar con una nueva solicitud de licencia. Por lo que deja solicitud VM encendido. Entonces este objeto va a tomar valores para el on Vamos a empezar. Empieza despacio, Digamos que el empleado que está solicitando es un empleado requirente I d. sabemos esto porque tenemos el objeto de los empleados y podemos conseguir el i. D. Así que la persona que realiza la solicitud la persona firmó estaba haciendo la petición. Conozco al empleado solicitante me d siguiente valor. Queremos fecha de inicio. Por lo que la fecha de inicio va a ser modelo de igualdad que inicio fechas el final. Va a ser igual modelo del dedo del pie eso y sea así. Entonces lo siguiente más importante sería el estatus de aprobación, que sabemos que nadie lo ha aprobado. Se acaba de presentar, así que voy a decir aprobado es igual saber. Vamos, entonces. Dijimos que lo solicitaba. Entonces la solicitud de deuda que es punto muerto? No, porque acabas de solicitarlo. Sólo lo sabe. Sé cuando solicitaste System sabe cuándo se solicitó el. No creo que nada más sea absolutamente necesario para ser insertado en la base de datos porque d me configuro una vez creada, la detección estaría en blanco. Pero entonces sé que va a haber una flecha porque la acción de la fecha es, um, no es Snoble. Por lo que tenemos que aportar algún valor de fecha aquí. Por lo que tenemos dos opciones. En este punto, podemos proporcionar un remolque de valor de fecha. Evita eso, no hay excepción. O podemos volver a nuestra clase de datos de base de datos. Simplemente lo encuentro o clase de datos para solicitudes de licencia en. Entonces lo cambiamos dedo del pie datum desconocedor. Entonces si conseguimos a este matón inconocible, tendría que cambiar la acción de fecha. También dos notables. ¿ Verdad? Entonces tenemos esas dos opciones quiero elegir la más fácil y la golosina Bueno, con el propósito de pasar por este ejercicio, sólo voy a dar fecha solicitada o deducción. Más bien el mismo tiempo DEET. No hay valor no son así. Estamos proporcionando algún valor para la acción de fecha, pero fuera de curso, eso es propenso a cambiar cuando cambia el estado de aprobación. ¿ Verdad? Por lo que hemos creado nuestros objetos que Toby cargó. Entonces voy a llamar a este modelo de solicitud de licencia en su lugar. Ya que es el modelo de vista y no la solicitud en realidad que quiero decir Vier leave Solicitud es igual. Toe el mapeo, por lo que subrayan los puntos mapeadores. Muff on. Entonces estoy mapeando al tipo de datos off leave requests, que es nuestro tipo de clase en el objeto a fregar es modelo de solicitud de licencia. No, probablemente te estés preguntando. Ok, entonces ¿por qué tuve que ir y hacer referencia al otro modelo de vista antes de poder poner en licencia Solicitar modelo en dso on. Entonces sí, tenemos creativo tu modelo crear dejar Solicitar vista modelo guiando lo que estaba en el formulario. Pero entonces estamos construyendo licencia solicitud VM Así que siempre guarderé modelo de vista que se mapea directamente a la clase de datos y otras versiones propias de escala que realmente usan bajo modelo. Entonces estoy usando este modelo de vista porque tiene todos los campos que van directamente hasta la clase de datos en. Entonces después de hacer todo eso, vamos adelante y salvamos Nuestro es tan cess es igual a subrayar. Dejar Solicitar tres. Tire atracado. Crear el. Estamos creando el nuevo registro, que es solicitud de licencia. Por lo que la solicitud va desde el terreno de arriba. Entonces sabemos que esto está devolviendo un lingote, entonces solo voy a decir, Si no, Si no, es éxito que significa Si la inserción falló, entonces voy a volver la vista una vez más con ah en un camino. Eso es algo salió mal con presentar tu para la corte. Para que lo sepas, estos errores son buenos lugares para ver contactar a tus administradores, cosas así. Pero de cualquier manera, yo soy el pegajoso. Si no es éxito que hacer eso en, entonces voy a volver al Action Off Index, que no necesariamente quiero hacer, porque sí dije antes que indexado dentro del contexto de este control realmente va para ir al archivo administrativo, um, um, índice, que realmente no necesitaría que volviera el usuario. Correcto. Por lo que necesitamos configurar nuestro punto de vista que les muestre sus peticiones y el estado fuera de las solicitudes . Y eso va a estar en el siguiente video. Um, pero entonces, por no, me voy de pie, sólo redirigirlos al índice de los controladores domiciliarios. Puedo estar en desacuerdo con coma de acción directa sobre. Entonces puedo especificar el controlador para estar en casa, ¿verdad? Entonces es real Índice de acción directa en el controlador de casa, que sabemos es esa página de inicio, que ahora está bastante en blanco. Entonces ya sabes, estamos construyendo en la aplicación. Podemos hacer todo a la vez, pero poco a poco. Se van a meter piezas. Por lo tanto, vamos a guardar los cuatro cambios y luego tomar el control de la forma de solicitud para una ejecución de prueba. Entonces me voy de pie, recargar este formulario de solicitud y transmitir solicitud. Por lo que la reforma se recarga y nuestro selecto que quiero salir de vacaciones osciladores Onda. Yo quiero vacaciones, Lee desde el primero de enero. Me refiero a esa selección. Entonces ven aquí que es conflictivo a pesar de que estamos obteniendo nuestro control de calendario, todavía necesitamos arreglarlo. Entonces lo haremos en otro video. Pero ahora mismo, solo quiero enfocarme en superar esta selección de violencia. Por lo que el primero del 2 de enero, el quinto de enero. Todo bien en entonces, las deidades 2020. Entonces puedes ver que si no nos referimos a la aplicación correctamente, que estas cosas pueden ser muy frustrantes en make o romper la experiencia para nuestros usuarios. ¿ Verdad? Por lo que dejaremos eso para nuestros retoques finales por donde pasamos bajo pantalla hasta esos pequeños matices. Entonces solo hago clic en solicitar licencia, y luego me está diciendo que necesito dedo del pie poner en algo valorado. Está bien. Entonces supongo que no podemos esperar porque estoy aquí tratando de meterlo y estoy recibiendo un montón de errores. Entonces arreglemos eso juntos y pongamos esto a descansar. No, voy a tener que hacer algunos ajustes. Por lo que nuestra vista modela en el camino en que estas cosas están configuradas. Entonces el primer ajuste que estoy haciendo es ir al modelo de vista para el create, y estoy cambiando el tipo de datos de diurno a una cadena. Entonces porque es ese momento, sigue tratando contextualmente de darnos un día que tipo de entrada, lo que nos está dando el control de calendario para el navegador antes de que nos esté dando el ecuerry G una vez en el asiento allá arriba. Claramente, no está funcionando, así que estoy cambiando esto a string. No, si cambio eso la corriente, eso significa que tengo que cambiar cómo interpretamos el valor que viene del modelo, porque ahora es cadena, pero estamos tenemos un montón de operaciones fuera de fecha haciendo así que estoy yendo dedo del pie en la parte superior de la página. Guardar nuestra fecha de inicio es igual a modelar esos bits de inicio, y luego voy a costar esto hasta fecha hora. Y hicimos una especie de costo antes donde hicimos el costo entero. Para que eso no siempre funcione tan bien, no en todas las situaciones. Por lo que tienen una clase de conversión, puedo ver convertir acoplado en. Entonces puedo ver a día tener el tiempo. Entonces conviértalo a fecha hora, y luego estoy pasando en el valor que está en el campo de fechas de inicio en nuestro modelo. Entonces solo estoy duplicando esa línea y haciendo lo mismo para la fecha de fin. Entonces fecha final, convirtiéndolo Y en este modelo punto y se que tengo variable inicié una India que voy a empezar a usar para reemplazar las referencias a las variables modelo. ¿ Verdad? Entonces en cualquier lugar que había empezado antes, solo voy a reemplazar todo eso con apenas empezar a ser variable encendido. Entonces voy a repetir eso con fecha de fin. Entonces toma nd Es el reemplazo de Ripley modelo dot y está en todas partes. ¿ Todo bien? No, vamos a verlo. Todos esos cambios en recargar nuestra forma y ver si algo cambia para mejor. ¿ Todo bien? Entonces, no, no estamos viendo los presets hicieron valores. Pero cuando hacemos click, obtenemos nuestro recolector de fechas. Entonces sí dije que estamos probando entre el 1 de enero del cinco de enero. Bueno, seis. Por lo que otras pequeñas consideraciones serían que si alguien está solicitando licencia de vacaciones en ese fin de semana está incluido o fin de semana, estas están incluidas. Quieren excluir esos días de fin de semana de los cálculos, ¿verdad? Entonces esas son pequeñas reglas de negocio que necesitas poner a medida que construyes este sistema o para el de Nolan, solo calculó que todo el mundo trabaja setenta a la semana. Entonces cualquier número fuera de estos que hayan solicitado ese es el número fuera estos nuestro cálculo en contra. Y entonces decimos, solicitar licencia. Nos estamos poniendo en fila Ver que algo salió mal, lo que significa que captó alguna excepción. Hay algo que no está disparando, así que cuando nos encontramos con este tipo fuera de Eros, es mejor. Nos vamos a de barco amarrado en puntos de descanso establecidos para que podamos rastrear sobre la actividad. Entonces voy a entrar en modo de depuración encendido. Voy a establecer un punto de descanso en el inicio de esta función encendida, luego pasaremos por cada línea para ver exactamente dónde se está rompiendo nuestra cancha. Está bien, Así que tengo la forma, siento esa autoridad. Entonces cuando hago clic en solicitar licencia, debería golpear nuestro punto de descanso en el post encendido, para que podamos monitorizar y ver eso. De acuerdo, Empieza su descendencia sobre este valor para que pueda dar un paso y paso. Entonces empieza a ser no, Tiene una fecha hora libre que cuatro meses, que creo que es el o son meses el derecho. Entonces esa es la fecha hora que se creó para la fecha de inicio al final, es demonios aquí meses el o Lo siento. Entonces esa es la sexta. Entonces el si entonces encontramos todos los informes de tipo de licencia, en realidad soy sólo como saltarme adelante, porque creo que somos bastante buena idea de lo que sucede entre estas líneas en algún lugar para saltar adelante a esto. Si la declaración en, entonces su declaración está comprobando. ¿ Es válido? Por lo que es válido. Entonces sabemos que eso no es lo que está volviendo a nuestra opinión. Entonces estamos haciendo la fecha. Comparar donde estamos comparando las fechas de inicio con la fecha de fin el. Entonces damos un paso adelante en que la comparación cumple Oh, nuestros requisitos. Entonces lo siguiente es que tratamos de conseguir a nuestros empleados. Entonces si miro en los objetos de usuario, entonces puedo ver que hay algunos detalles sobre que se almacenan. Conozco el nombre Onda algunas otras cosas, pero luego cuando haga el usuario recibe una llamada de lavabo, obtendrás todos los detalles requeridos en el objeto. Tengo el empleado, el i d. Todo sobre este empleado no está en el sistema o listo para Austin manipula. Siguiente. Estoy recibiendo su asignación. Entonces paso a través de eso otra vez. Andi. Bueno, solo paso, haz unos pasos, deja que pase por ese proceso. Entonces esta soy yo usando f 11 solo para asegurarme de que no me estoy saltando por delante nada que sea artes importantes después de unos pasos. Y me dieron un poco de queroseno que el día Sin volumen tarde porque fuera de todo el paso, Así que si tienes un Terry podría ignorarlo. Si estás haciendo esto conmigo, si no lo estás, entonces está bien. Pero estamos pasando por esto juntos. Por lo que la asignación está de vuelta y tenemos todo sobre la asignación que necesitamos. No, voy a dar un paso adelante otra vez. Por lo que voy a CF 11 en entonces se ve es el número fuera de días solicitados mayor al número fuera este asignado el. Sabemos que si estoy solicitando dos días sobre la asignación son 15 días, entonces esa validación está Bien. Por lo que pasamos, construimos nuestros objetos. Entonces déjame ver si aquí es donde aparecen los Eros. Entonces cuando construyo esa licencia, solicito objeto modelo entonces estoy viendo. Aprobado el, aprobado por y aprobado por yo d Todos sabemos que obtenemos nuestra opción de fecha ser solicitados y mordido todos ellos están construyendo todos los grandes momentos como esperamos Así que todo eso debería estar bien, Um así que sólo voy a continuar, so f n f l alguna vez Lo siento por entonces ir a la presentación donde se suma la entidad. Entonces estoy sumando la entidad fuera de tipo las solicitudes de permiso que acabamos de construir pasan por eso Entonces está guardando los cambios. Y luego, al guardar los cambios, captó la excepción, ¿ verdad? Entonces, como siempre digo, ese es el punto fuera de la captura de la pista. Por lo que va a probar la operación y luego está atrapando una excepción alguien para pasar más allá de esta línea. Entonces no puedo examinar Así que al agregar esta línea a la captura, puedo ver en qué se encuentra la excepción. Entonces puedo perforar hacia abajo y ver que dice que el inserto falló Insertar declaración en conflicto con la restricción de clave externa para el tipo de licencia I d. Muy bien, entonces eso no hace exactamente lo que está mal? No lo hice en construir la fuerza modelo de misión. No puse en el tipo de hoja I d Así que voy a parar, y luego voy a arreglar mi error en voy a decir que el tipo de licencia. Ya veo. Está bien. Está bien. Entonces lo sé. Ya veo ¿Por qué no lo metió? Porque tengo el objeto tipo hoja, pero no tengo el campo tipo leave en mis modelos de vista. Por lo que no creé correctamente mi modelo de vista. ¿ Verdad? Entonces sólo voy a poner en esas ideas tipo hoja. Algunas copias distantes promedio aquí ya. Ponlo en remolque, el objeto medio, y saben que lo tengo en el medio me refiero a clase. Perdón. No, así es como ahí me fui a hacer representación para ideas tipo hoja. Puntos modelo de dedo iguales. Deja el tipo I D encendido entonces estoy muy seguro de que esta licencia se presentará esta vez alguien para quitar este punto de freno desde el inicio. Yo sólo lo voy a bajar por el éxito. Sí, es o es exitoso o no. Entonces si golpea este mismo punto que sé que fue sometido a la base de datos, o al menos si se siente, entonces iría a la captura ¿verdad? Entonces déjame volver a depurar. Más que intentar que otra vez son así que intentemos eso otra vez. Estoy seleccionando la fecha la primera fuera enero 2020 sobre al quinto de generador en 20 solicitar licencia. Entonces me está diciendo que valoro aquí no es válido. Necesito un valor adecuado. No seleccioné de la lista desplegable. Déjame intentarlo de nuevo. Después golpea el punto de freno. Por lo que no bombardeó voto en esta tierra como lo hizo anteriormente. Y cuando rondo sobre esto, este es su éxito es cierto, lo que me dice que fue sometido a la base de datos sin ningún tema. Alguien para quitar mis puntos de descanso haga clic en continuar en, Entonces se va a redirigir a la página de inicio. Como te dije. Entonces le dijimos que hiciera eso. No hay dedo del pie validar que está ahí. Digamos que presenté la hoja y luego me acerco a H R. Y luego le digo a la persona que conozco aprueba arrendamiento eso. Oye, lo presenté. Necesitan validar si lo presenté. Por lo que inician sesión como el administrador. Entonces se van a ir con los pies a gestionar, luego empleados. Ah, eso es inexacto. Gestionar, dejar aplicaciones más bien, y luego verán que tienen que solicitar. Uno está gastando uno fue rechazado en. Entonces pueden ver que usuario de prueba hizo una solicitud de licencia vacacional si quieren verlos en orden fuera de lo solicitado Bueno, siempre podemos simplemente poner en nuestra tabla de datos en esta sección. Uh, sólo toma algo rápido, Andi. Entonces sé que una tabla de datos estaba aquí. Noté que se ha vuelto a una tabla HTML regular sobre die. Apenas inspeccionó elementos en fue a la consola y en ninguna parte Mirar un error en esta flecha está aquí porque fuera de nuestra temporada con RG nos consulta. Entonces vamos a tener que pasar algún tiempo arreglando esas referencias porque Si no me equivoco, ninguna tabla de datos se está cargando en este punto porque fuera de ese error, está bien, entonces eso es otra cosa que debería han sido un equipo de datos. Entonces tenemos algo de trabajo que hacer. Pero al menos podemos sentirnos seguros de que los empleados no pueden pedir permiso. Aparecerá en la lista de alguien, um para aprobación o no. 42. Module de las solicitudes de bodas con las claves de bodas con las que las personas con Requests de la autorización de: Oigan, chicos, bienvenidos de nuevo en esta lección será construir toda la funcionalidad que permitirá a nuestros usuarios admin aprobar o rechazar las solicitudes de licencia. Ya sabes, nuestra lección anterior habríamos construido a partir de oportunidad que permite a un empleado realmente presentar una solicitud de licencia. Y eso habría sido por seleccionar un tipo en entonces el arranque. Y de hecho es desde ese video hice algunos ajustes menores porque habríamos dejado esa lección con, ah, ya sabes, sabes, toga guerra entre nuestro Jake o tú y control de calendario en tablas de datos de puertas conoce el ajuste que quiero decir, fue realmente menor. Todo lo que hice fue quitada la referencia al Jake donde fuego para el calendario. Entonces originalmente, habría copiado tanto el archivo J query Js en la mejilla o tú los archivos I Js han eliminado desde entonces la segunda referencia. El Jake donde archivos desde que ya tengo una referencia en mi proyecto están en el experimento, y sí funciona. Por lo que son ciertas versiones apagadas. Jake. Preocúpate de que el geek donde tú y recogedor de calendario no funcione con Andi. Me refiero a esa suposición. Al principio haber experimentado algo así en el pasado, No, realidad acabo de quitar la segunda referencia. Ajay Consulta. Andi, tengo una referencia a una consulta y luego cada otra biblioteca que tiene una dependencia, incluyendo, o Jake. Donde tú ¿Por qué? Al hacerlo alos ambos sobre tablas de datos para cargarse correctamente. Entonces así debe ser nuestra tabla de datos. Ah, cuando hubo un conflicto, fue justo ahí jugando mesa que habíamos intentado cambiar. No, es dedo del pie trasero Cómo debe verse. Ser una tabla de datos sobre también para nuestro formulario o calendario se acerca. Y en contra de eso, el resultado del bro de completar. Pero nuestros calendarios de así todos una forja, una consulta o controles de bestia javascript están disparando como los necesito. Entonces esa es una manera. Si tienes conflictos con J, unos archivos de consulta o unos controles de JavaScript y estás obteniendo la consola de Arizona y no estás obteniendo el control como debería parecer, Entonces tal vez puedas intentar mover tus propias referencias. Recuerda que el Orden importa, Andi , Por supuesto que puede haber conflicto. Entonces solo ten cuidado al hacer esas cosas moviéndose. Nuestro objetivo para esta escucha es toe alot para un usuario admin. Una vez que estén en esta interfaz para poder seleccionar una solicitud de licencia el, luego ser capaces de bien, ir a los detalles y aprobarlo o rechazarlo. Entonces eso significa que vamos a tener que refinar las opciones que están viendo aquí, lo que significa que no quiero que puedan editar en ellos para poder eliminarlo. Pero quiero que vayan a una vista la cual puedo utilizar los detalles usted. Eso fue para que todos los detalles, ya sabes, otros detalles fuera de la solicitud que yo, un funcionario aquí en entonces, al final de la revisión, poder dar click a una prueba que entonces, tú saber, ponerlo en un estado aprobado o rechazar, lo que luego lo pondría en un estado rechazado. Ten en cuenta también que una vez que se apruebe la solicitud de salida, entonces se tendrá que ajustar la asignación que ese empleado tiene en el sistema para reflejar esa deducción. Entonces entrémonos al fondo. El primero que voy a hacer es modificar los interfieres, y ese es el archivo de índice en o dejar la carpeta de solicitud encendida. Lo que voy a hacer es quitar parte de la acción. Entonces como dije. La única acción que realmente necesito son detalles o mientras estoy realmente yendo del dedo del pie, hazlo decir críticas. Entonces en lugar de ver los detalles de la palabra, el enlace en sí va a decir Revisar. Voy a añadir mi Bt en primaria Bt y Dash. Voy a ver vieja línea primaria andan Justin para agregar en un icono de cinco o dos. Entonces déjame hacer eso rápidamente. Yo también estoy al frente. Maiken, no sé por qué sigo viendo cinco ícono, pero esto es lo que estoy haciendo. Por lo que agregué ese fondo Impresionante. Icono de Um referenció un archivo en esto es lo que renderiza en la pantalla. Entonces ahora tenemos, ah, botón que dice's review. Pero fuera de curso va a estar apuntando a la acción de detalles dentro del controlador. Por lo que ahora necesitamos implementar lo que hace esta acción. Por lo que de vuelta en nuestro controlador, voy a ir a mi acción de detalles la cual está esperando algún perímetro entero fuera yo d. que sabemos que va a ser el yo d fuera de las solicitudes de licencia. Por lo que necesito recuperar esa solicitud de licencia de la base de datos alguien que diga solicitud Vier es igual o déjame ver. Solicitudes de licencia viral es igual a en el marcador. Deja un reporte de bloqueo puntos encontrar por I D. Y entonces estoy ayunando en que d para amateur. Habiendo recuperado eso, cargamos fuera de nuestro modelo de vista. Por lo que tenemos licencia Solicitar vista modelo en mí. Tan solo doble comprobación y asegúrate de que tenga suficiente para mí en ¿Te das cuenta? Todavía tengo eso. Esas anotaciones de datos para beat. Está bien, así que les dejo en ese modelo de vista, así que voy a perder sangre del modelo y el modelo C var es igual a on. Después fui a mismo arriba ese mapa y luego mapeo en la dirección fuera de la solicitud de licencia VM en el objeto a mapear es solicitud de licencia. Y luego después de estar fuera de que acabamos de pasar en nuestro modelo sé que tenemos el modelo pasado y solo hago clic derecho en agregar vista. Y luego acabamos de estropear el discurso de detalles con la plantilla de detalles modelo final, que es leave request vm on. Después da click en Todo a la derecha. Entonces solo estoy haciendo a los pocos menores los ajustes habituales que voy a poner en alguna parte. Los detalles aparecen así revisión. Andi, ya veo. En san model dot los empleados están solicitando a los empleados ese nombre apellido. Entonces voy a decir que estoy revisando solicitud de licencia para este empleado en una solicitud de licencia C apóstrofo s . Está bien, así que esas son las cosas que puedes poner en tu pantalla para que sea un poco más, ya sabes, personal. No voy a modificar el Leo toot off. Como puedes ver, ya es mapeo. Entonces esto es decir este nombre de juego para en entonces nos está dando el yo d. Entonces, como esa idea quiero imprimir el nombre en. No ellos empleados i d. Así que sustituí esa fecha de inicio lo terminó el tiempo de licencia a solicitar para eso. Lo voy a subir por debajo de la sentencia de revisión. Alguien que acaba de ponerse a los cuatro años a diez centavos. Fue a ver el nombre de visualización para el solicitado en entonces dash para que esté arriba. ¿ Cuándo? Este día en que se solicitó para empezar esta licencia. Entonces lo está revisando para esa persona, y luego la d solicitada derecha sobre Anethe on. Entonces puedo quitarlo de los detalles generales, así que no quiero esos detalles. No quiero la acción de fecha. Um, el usuario administrador ya sabe que está en estado aprobado el. Entonces me voy a mover el dedo del pie por la parte que ve o lo siento, ya sabe que no lo es. No es un estado no aprobado sobre vamos a movernos. Ah, aprobaron por. Por lo que esos detalles no son necesarios cuando este usuario administrador está tratando de decidir si debe o no aprobar. Deja la derecha. Por lo que queremos mostrar playas relevantes podemos arreglar ese pho que queremos en. Entonces podemos presionar hacia adelante con funcionalidad. Entonces queremos que algunas acciones estén disponibles para este usuario. Queremos que puedan aprobar, rechazar o volver a la lista. Entonces lo voy a hacer así ahora, alguien que diga una prueba, y voy a copiar este botón sacando la pipa. Entonces voy a ver rechazar a Andi. Yo quiero dejar atrás una lista por lo que tenemos tres botones encendidos. Entonces solo voy a pasar algún tiempo y darles todas sus clases, así que lo haré fuera de pantalla. Lo que voy a hacer aprobar Bt y el éxito llegando a hacer rechazar Bt y peligro de espaldas a esto va a ser BT y secundaria. Entonces voy a hacer una pausa y hacer eso. Puedes intentarlo por tu cuenta. ¿ Todo bien? Para que el éxito, el peligro y la vieja línea de guión secundario. Creo que hice trampa un poco. Yo no dije Oh, Linus, dijo Sikander. Pero eso está bien. Cualquiera que elijas. Es para tu propio beneficio y para tu propia creatividad personal. Art. Por lo que también voy a sumar el fondo. Icono impresionante. Algunos voy a romper línea para que pueda ver a cada tío atacado por sí mismo. Pero estoy agregando los iconos para comer. Entonces para este, voy a dar f e espacio F ocho guión. Creo que tienen teca. Um, no los conozco todos. A veces hago una conjetura educada basada en el tipo de icono que espero que esté ahí, y a veces me equivoco. Por lo que todavía tengo que terminar volviendo a la documentación de todos modos. Pero solo voy a hacer eso primero y después refinar a Andi. Mi inteligencia me está dando alimentar a este. Yo voy a ver. Yo quiero algo que sea como un X ray, así que creo que tienen uno que es suyo quitado para que si te quitas entonces para la lista A respaldada , quiero que una flecha regrese. Entonces voy a decir f A r o izquierda. Entonces déjame simplemente hacer eso rápidamente. Este es F E R O. Eso queda. Entonces, en realidad, solo revisa la documentación y vi que no es tick, pero es cheque. Entonces por eso me uso como un pequeño cheque una garrapata. Está bien, así que una vez más, siempre se puede ir a la página web y hacer referencia al frente también estaban usando la versión 4.7 puntos todo no me memorizo todo fuera de ellos, pero bajo demanda, voy y encuentro lo que necesito y 15 en consecuencia. Entonces ahora estos son nuestros detalles. Tienes algunas otras cosas que quiero cambiar de aviso, o al menos un rechazo comprobado. Ambos apuntan a la acción de edición. No necesariamente quiero eso, pero sí tienes una serie de opciones a la hora de lidiar con esta situación. Entonces lo que algunas personas hacen sería crear un formulario y hacen que todo este tipo de botones de envío. Necesito enviar botón irá a la post acción Andi. Trataremos de hacer la presentación en el postsubasta, ¿ verdad? Eso está en opción. Siempre puedes crear tus propias acciones en la solicitud de permiso en troller en el controlador on . Después señala la acción correspondiente. Entonces, por ejemplo, puedo hacer una acción que sólo visite aprobaciones. Por lo que cuando este enlace sea correcto, llamará a aprobar acción. Y entonces todos podemos suponer que esa acción de prueba va a estar aprobando la transacción . Correcto. También puedes crear otra situación en la que hubieras ganado para su aprobación en 14 rechazos. Puedes tener múltiples opciones. Puedes tener tantas acciones como quieras. Podrás crearlos bajo demanda. Podría crear una acción que tome un parámetro. Eso es tal vez un rebaño para ver, ya sabes, verdadero o falso. Verdadero significado. cierto, Escierto,se aprueba, digamos, ¿aprueban pasos sobre dfars? No está aprobado, por lo que haces los pasos de rechazo. Entonces, al final del día, sabes que hay un ahí hay individuos que van a salir en tu implementación, y depende de ti. Pero para esta situación o el propósito de esto. Escucha, voy a crear una acción para aprobación en una acción para expulsar. Entonces eso significa el botón aprobado al que va a llamar ahí. Es la acción. Aprobar Solicitud el. Entonces la opción de rechazo va a llamar a la orden de acción. Botón de expulsión. Perdón. Se va a llamar a la acción rechazar solicitud el. Entonces todos sabemos que la batalla es sólo va de vuelta al índice de todos modos. Entonces con eso se hace en, ambos aceptarán el i D off the lever quest. Entonces sabemos que en esa prueba, estamos aprobando la búsqueda de palanca con esto d. En el rechazo estaban rechazando la licencia. Solicitó que yo d. Así que sólo voy a ir a mi controlador rápidamente encendido entonces. Voy dedo del pie crear mi resultado de acción en este se va a llamar solicitud de aprobación en su toma en int con un I D abrir y cerrar llaves encendidas. Entonces puedo hacer Skopje todo esto Onda hacerlo en remolque. Rechazar solicitudes comestibles lado a lado. Ahora vamos a trabajar ¿O qué pasa cuando golpeamos? Aprobar lo que necesitamos hacer primero Estos recuperaron una solicitud de licencia que está a punto de ser reprobada aprobada. Perdón. Entonces solo me voy de pie. Usa esta línea una vez más, y sólo voy a construirlas tipo de simultáneas, porque en cualquiera de las situaciones, necesito retirar la solicitud de licencia que es capaz de ser aprobada. ¿ Verdad? Entonces estoy recuperando esa solicitud de licencia. No necesito fregar en esta situación porque no hay operación que como elementos visuales , así que no hay necesidad de un modelo de vista. Por lo que recuperé la clase de datos. Entonces modifico el. Entonces actualizo. Entonces tiempo estoy modificando. Cuando alguien aprueba la solicitud de licencia, los elementos que necesitan ser cambiados estarían en Anderson para decir solicitud de licencia no en. Entonces la aprobación nos inicia el día. Me olvido de qué campo estaría. Yo sólo sé, notando que llamo al informe enteramente equivocado. Está bien, así que si alcanzan este incendio, seguro que están muy decepcionados conmigo, pero llamo al informe equivocado. No sé por qué me fascina tanto la idea. Off leave asignaciones, pero me estoy ocupando de las solicitudes de licencia. Así que he dejado a Alá creep. Ah, y se llama en la asignación de licencias, razón por la cual no estoy encontrando que los campos son difusos que estoy esperando aquí. Entonces déjame justo a mis errores. Estoy usando la licencia Solicitar descanso. Espero que ustedes cogieran eso en Euro. El carting encendido si lo hiciste, entonces sólo puedes pegarme y hacerme saber que lo hiciste. Y entonces podemos formar alguna forma de recompensa por tu pensamiento rápido y aquí habilidades de depuración . Pero déjame solo conocer esas correcciones. Por lo que estoy recibiendo el reporte de solicitudes de licencia. Entonces si depuro, um, depuro, um, la solución antes de lo que habríamos obtenido ese error porque entonces el mapeo habría fallado. ¿ Verdad? Entonces las imágenes país lo siento por eso. Por lo que deja solicitud de informe. se informa, en la solicitud se solicita reporte. Entonces en una solicitud de licencia Ahora, estoy viendo lo que debería ver. Voy a cambiar el estado aprobado tan cierto, puedo relevar solicitud de nuevo el entonces. Esta vez estoy cambiando el aprobado por I d. Para ser el usuario que está encerrado en este momento. Yo lo haría algo similar fueron recuperados. ¿ Quién es el amor siendo así? El punto es que puedes tener múltiples usuarios admin, y si va a estar usando una organización. Van a tener múltiples personas de RRHH que puedan aprobar y rechazar la licencia o si hay, ah, sistema más complejo donde es un supervisor que puede ser cualquiera en cualquier momento en el tiempo. Um, en disparar ese escenario más complicado. es que queremos saber quién está haciendo la aprobación en base a la persona con amor ser y haciendo la acción, igual que cuando estábamos haciendo la petición, ¿ verdad? Entonces solo voy a recuperar a la persona usando uno de los bits anteriores de código que escribimos . Lo tengo aquí en el create, um, um, subastas. Yo sólo voy a Richard justo donde esta cosa fuera de la cancha y luego volvemos en el día. Fui a recuperar eso. Por lo que voy a llamar a este usuario Savar el. Déjenme sólo para que todo lo que escribamos para la aprobación básicamente se retire por los rechazados. Entonces sólo voy a hacer con aprobado y luego solo copiamos y modificamos en consecuencia. Por lo que el usuario que sería o el aprobado por idee es usuario. Eso está encendido. Entonces obtenemos yo d por ese campo. Entonces tenemos solicitudes de licencia la fecha Acción en ese no es el momento. Sin sentido. Es el momento en que ahí se tomaron acciones. Aan den. No estoy seguro si hay algo más en la solicitud de licencia que necesito modificar cuando se apruebe o rechace. Entonces sabemos que está aprobado. Nosotros fijamos, que es aprobado por el i. D. La fecha en que fue acción. Es necesario cambiar las solicitudes y dejan tipo. Creo que eso es todo. Entonces sepan que me tenemos esas modificaciones a nuestro objeto, um, o del pie nuestro registro. Necesitamos realmente ahorrar bien. Entonces voy a decir si o mejor dicho lo siento, fui a ver un virus. El éxito es igual subrayado del dedo del pie. Deja solicitar reforma, no cometerte ese error otra vez punto. Entonces vemos actualización llamando a esa función de actualización en. Entonces voy a estar pasando en nuestras solicitudes de licencia, modelo Mama. Y entonces digo, si es éxito o si no, es éxito, es éxito, entonces redirigir sus muchas maneras dedo del pie manejan elegantemente estos errores. Pero solo estoy usando, ya sabes, un pase rápido y fácil para que nos pongamos al día y abramos corriendo y tengamos una apreciación de lo que está pasando fuera de curso, necesitamos envolver todo esto en un intento. Atrapa a alguien para verte intentarlo y luego presiona dos veces. Y luego conseguimos ese Intenta, atrapar, bloquear. Asegúrate de contabilizar la excepción en eso. Voy a tomar toda la operación que estamos intentando y poner dentro del bloque try encendido . Entonces voy a hacer la captura donde acabo de regresar. Redirigir el índice, y luego eliminé el tiro. Entonces el tiro en realidad mata todo lo que sabes, todo fuera de la operación fuera de su aplicación, que no necesariamente quieres todo el tiempo. Entonces estoy redirigiendo dedo del pie el discurso índice, si no el éxito. Bueno, voy a redirigir de cualquier manera. Está bien, Entonces si tiene éxito, ellos quieren redirigir. Si no tiene éxito, estoy redirigiendo. Entonces estoy asumiendo ese cheque para si es exitoso, y luego solo digo, Haz todo fuera de esto. Prueba todo esto. Redirigir, Incluso si hay una excepción. Siguen redireccionando. El punto es que si hacen clic en aprobar y aprobar, estado no cambia porque algo campo en el camino. Entonces cuando vuelvan al discurso del índice, todavía va a estar en un estado aprobado, momento en el que probablemente llamarán a I t. De todos modos. Pero eso requiere algo más, ya sabes, ocurren operaciones complejas. dedo del pie puede indicarnos dinámicamente si esa operación fue exitosa o no, que aún no estamos del todo listos para eso. Entonces solo estoy acumulando. Hazlo en. Estoy tratando de mantenerlo lo más simple posible, ¿verdad? Entonces todo lo que acabamos de hacer en aprobar, voy a copiar eso. Y luego lo voy a hacer en rechazo CNC. Antes decía que podríamos tener a acciones que hagan cualquiera de los dos escenarios. Y eso es lo que estamos haciendo. ¿ Quién pudo haber tenido una acción que tomó una inundación? Y los lectores tienen una función que estos fueron la Operación Cuenca. Y si vaporizarlo para que sepas que es realmente abierto, es realmente un asunto fuera de implementación. Por lo que quieres hacerlo. Entonces en esta situación es todo lo mismo, um, datos, excepto que Proust estaba en grúa cae. Está bien, entonces, no, ya hemos hecho todo fuera de eso. Quiero enseñar esto para una ejecución de prueba, así que voy a abrir mi aplicación usando el enlace del navegador activado. Entonces veamos qué ha cedido nuestro trabajo. Muy bien, Así que ya tenemos una solicitud de licencia en el en la aplicación en un estados pendientes y se fue a simplemente crear rápidamente otra Onda. Entonces podemos probarlo con cualquiera de los escenarios con un aprobar o rechazar. Esto es algo que salió mal. Creo que es porque estoy en usuario admin. Déjame intentarlo de nuevo. ¿ Todo bien? Entonces, no, he hecho otra solicitud de licencia usando un usuario regular. Ese usuario administrador sí tiene alguna asignación. Entonces consiguió la flecha. Algo salió mal. Entonces estamos probando otra vez. Entonces deja las aplicaciones. Sé que tenemos que dejar peticiones, ¿verdad? Hecho por el mismo utilizable. Eso es evento de orina. Entonces vamos a ver qué pasa con alguien para hacer clic en revisar, que debería cargar los detalles. Y estoy viendo todos los detalles. Entonces estoy viendo que estamos viendo esta solicitud de licencia. El solicitado fue extensión fecha en tiempo, Los empleados solicitantes prueban usuario el. Entonces ven que algunos fuera de mis etiquetas todavía necesitan algo de refinamiento. Por lo que sólo podemos modificar el modelo de vista para que estas etiquetas se impriman mejor arte y el tipo de licencia es de vacaciones. Nos aprobaron rechazar en una batalla es botones. Entonces empecemos con una lista de botellas. Está bien, eso funciona. Volvamos a eso. Vamos a tratar aprobado en entonces esto lee Eric's El índice son así que no quiero que redireccione esta página de índice. Yo quería redirigir dedo del pie las aplicaciones de licencia, um, discurso índice, artes o solicitud de licencia en victoria. Entonces modificaremos eso. Creo que había especificado el controlador. Ahí vamos. Entonces especifico que deberíamos ir a casa, que no quiero que alguien se quite esto. Basta con ver Leer Eriks to Index. Está bien, así que esa es una de esas No dice copiar y pegar corte casi ciegamente. Pero por suerte, es nuestro propio código. Lo escribimos para que podamos modificarlo como usted desee. De acuerdo, así que he hecho esas modificaciones en. Entonces vemos que aprobaron funcionalidades funcionando y vemos ese contexto sólo ellos pueden ver cuál se aprueba. Entonces no, saben que tienen éste pendiente de aprobación sobre esta persona es los mismos usos. Solicitando algunos días Onda, no queremos darles con demasiada frecuencia. Entonces fui dedo del pie a rechazar este. Muy bien, entonces hacemos clic en rechazar y luego esto debe saber redireccionar que están listando y vemos rechazados y rechazados por lo que a las solicitudes rechazadas en nuestro sistema. Y tenemos pendiente un cero aprobado. Por lo que tienen tres en total cero pendiente un dedo aprobado rechazarlo. Eso es bueno. Ahora, una cosa que no hicimos para la aprobación fue modificar la asignación de empleados porque recuerden que no han asignado oficina de Norm para vacaciones. Alguna vez harían sus peticiones. Lo habríamos aprobado. Pero no pusimos en la funcionalidad para realmente cumplir con las deducciones de la de la ubicación A para el periodo. Entonces tengo que volver a mi controlador y luego vamos a ir a nuestras solicitudes de aprobación el. Entonces tenemos algo más de trabajo que hay que hacer. Por lo que ahora llego a usar mis informes de asignación de licencias. Por lo que después de que hayamos recuperado la solicitud de licencia, necesito recuperar esas asignaciones de empleados. Voy a decir asignación es igual a dejar yo ubicación y sería cuidadoso esta vez atracado. Entérate, entonces. Aquí tengo encontrar por idea y encontrar todo Pero entonces necesito encontrar la asignación por parte de los empleados. I d número. Entonces lo que voy a hacer es modificar el repositorio para asignaciones de licencias en Duh. En realidad sí lo tengo conseguir asignación por empleados. Yo sí lo tengo. Perdón por eso. Por lo que simplemente olvidé el nombre de la función. Entonces, solo escuchemos el dedo del pie deshacer todo eso y no es encontrar, pero se consigue conseguir asignaciones por parte de los empleados en. Entonces voy a volver pasando el empleado i D, que sabemos de la licencia. Solicitar objetos provenientes de nuestra base de datos. Entonces es permiso solicita que empleados o empleado solicitante I d. Así que ahí a patrones. Cuando, al hacer esto. A veces a la gente le gusta referirlo directamente desde el objeto. A veces la gente miente para ser variable clara, así que simplemente dirían, Empleado, yo d. Es lo que sea que esté pasando del objeto, y luego usan esa variable para realmente hacer estas tareas meniales, ¿ verdad? Entonces quiero decir, es un patrón diferente. Haces el con el que te sientes cómodo. Creo que se ve más limpio cuando haces la variable y luego haces tus tareas con la variable en lugar de referenciar la propiedad y los objetos a lo largo del tiempo. Pero eso está bien. Entonces sepan que tenemos la ubicación ah o bien, en realidad, necesitamos asignación para los empleados. Se trata de asignaciones para el patrón. En realidad necesitamos la asignación de partículas para el tipo de hoja. Por lo que aquí hace conseguir asignaciones por empleados y tipo de licencia. Entonces pensamos en todo ya así por empleados y el tipo. Por lo que este requiere de dos parámetros, que sería el empleado I d. On. Esto no es muy explícito. Entonces necesitamos volver atrás y refractor que Así es muy explícito. Y sabemos que estamos tratando con empleado I d. Muy bien, así que solo cumplimos con esos cambios. Si lo hago en la interfaz, hay que hacerlo en el repositorio. Me refiero a estas modificaciones mientras enseño porque quiero mostrarte que escribes la cosa. Funciona bien. Pero en un escenario diferente, alian que todo lo que pudiste haber sido, ya sabes, un poco más explícito o un poco más limpio en tu cancha, y luego van a estar terminando haciendo estos cambios a medida que avanzas. Entonces sabes que necesitas ser flexible, y es bueno cuando entiendes lo que estás haciendo, Qué se hizo sobre por qué necesitas cambiarlo. Esas cosas te harán imparable. Entonces no, hemos hecho esos ajustes en Entonces puedo proceder también por ser ideas más explícitas de los empleados de glaseado . Alguien más quiere venir a ver mi núcleo. No tendrían que adivinar de qué idea estoy hablando porque ya es una especie de saliva para ellos. Entonces estoy pasando en el empleado me d pero también necesito los tipos de hojas. Quiero decir que el tipo de licencia es igual a on. Después recupera ese Leave tipo I d del objeto de solicitud de licencia, pero se van. Piden que deje tipo idea en empleado de DSO I d coma tipo de licencia y realmente debo decir Leave type I D. Aquí. Está bien. Deja tipo I d. Bien. Por lo tanto, sepan que tenemos la asignación que tiene este empleado para la solicitud que se está haciendo. Puedo proceder a ver que su asignación debe saber Ser el número días libres en la solicitud menos el Lo sentimos, el número fuera estos en su asignación a menos que el número fuera estos en su solicitud para que pueda ver una ubicación en esa es número de días libres no es igual dedo del pie el mismo valor, que es el número de días fuera menos Leave request dots on, entonces. Creo que tengo un campo que dice's solicitado número fuera días. Yo no. Por lo que la propia solicitud de licencia no está rastreando el número de días libres solicitados. Simplemente conoce la fecha de inicio al final. Es lo que significa que voy a tener que hacer algún mes dedo del pie figura esa parte, ¿ verdad? Por lo que puedo determinar dinámicamente eso. Y usaré el código que escribí previamente al crear la solicitud de licencia. Por lo que antes habríamos hecho algo donde nos quitamos ese número. Estos solicitaron e hicimos los cálculos. lo puedo repetir. Ahora esta copia en. Vuelve a mi acción. Por lo que se solicita Vier D. Entonces ya ves, tenemos bastantes operaciones. Es después de ir, así que tenemos los días solicitados el. Entonces eso será dejar. Solicita eso y un poco menos. El pedido no inicia deuda. Está bien, así que una vez más, podrías haber puesto esos en sus propias variables y luego haber hecho la operación usando las variables. Ya sabes , depende de ti entonces. Sé que tengo el número de días solicitados de lo asignado Normal va a ser ese número. Mi nariz ahí se solicita entonces, después de hacer ese ajuste a este campo, ¿está este año el valor? Entonces hay una forma más fácil de que pudiéramos haber hecho esto. Pude haber dicho menos igual a en. Entonces estas solicitaron. Entonces eso es un bonito aunque nosotros que c Sharp Alozie para escribir esa declaración donde básicamente está diciendo que lo que dice menos igual, Simplemente implica que cualquier valor que esté de este lado menos este valor en, entonces sea cual sea la bienvenida es almacenado en ese valor. Entonces esa es una forma alternativa de escribir esa declaración. Entonces lo que haré es escribirlo en ambos sentidos. Entonces si eres un principiante verías agudo, entonces puede que no estés familiarizado con esta técnica, así que está bien. Entonces esa es otra forma en que alguna vez podrías en este hilo y ver visual studio incluso vienen, ya sabes, tipo de sugiriendo que alguna vez lo haría de esa manera, bien, Así que después de hacer ese cálculo y quitar o reduciendo el número de días libres que no están disponibles por el número off se solicita el, luego sentado todo fuera de las banderas encendidas, luego actualizando la solicitud de licencia, solo voy a decir actualizado a alguien que realmente despegue este año porque estoy no usarla. Por lo que a veces no se quiere declarar disponible. No estás usando en esta situación. No necesito esa variable. Entonces estoy haciendo la actualización de reporte de solicitud de licencia, y luego voy a dejar una ubicación no vibrante porque acabo de hacer cambios en el registro de asignación. También en entonces la entidad o el objeto y pasar es la asignación. Y luego, una vez que todo fuera eso se hace, Entonces redirigimos el índice de tienda fuera de curso. Si es rechazada, entonces con tu ciudadela cae y nada cambia por sus asignaciones y quita esta variable no utilizada también encendida, entonces podemos intentarlo de nuevo para que podamos intentarlo con un empleado que hará una solicitud de licencia. Y luego vemos el cambio en la asignación después de que se apruebe están aquí estoy con el usuario creando la palanca de búsqueda para vacaciones. Recuerda que las vacaciones por defecto, al menos de mi lado, se fijaron en 15 días, si se usa un valor diferente al que solo necesitas estar cansado del valle que usaste. Pero voy a solicitar del 26 de enero al 30 de la f. Está bien, ¿y qué? Domingo de 2016. Entonces déjame hacerlo un poco más realista. Entonces del 27 al 30 eso son unos tres días. Solicito la licencia, está bien, y eso fue exitoso. Así que simplemente inicia sesión como nuestro usuario administrador rápidamente, y solo veo las contraseñas. No tengo que volver a tipo cada vez. No, sólo retrocedamos del pie la asignación de licencias. Simplemente verifique o que no muestre las asignaciones de licencia. Perdón por haber perdido mis cojinetes. Eso debería estar yendo los empleados del dedo. Entonces puedo ver los detalles Así que este empleado tiene 15 días de vacaciones. Tengamos eso en mente. Ese es el número fuera de estos que han asignado. Entonces voy y voy a dejar aplicaciones para administrar las de Noah. Tienes una nueva crítica, Andi. Entonces una cosa que probablemente me gustaría hacer es ordenar las solicitudes de licencia en el orden fuera del ritmo solicitado para que las más recientemente solicitadas floten hasta arriba. ¿ Verdad? Entonces voy a estar ordenando eso es más adelante, o te voy a desafiar a que hagas eso, ordenando reordenar en el control. Ah, eso se ralentizó en este dato, pero voy a saber solo ve a revisar y luego me voy a aprobar el dedo. Entonces sepan que está aprobado. Andi, sé que está aprobado para justicia Usuario, que ste en B t No es ser, supongo que son acumuladores que usé, pero voy a ver el perfil del usuario de prueba. Miro los detalles y no, estoy viendo que la licencia vacacional no se reduce. Por lo que la próxima vez que hagan una solicitud de licencia tienen hasta son hasta 12 días a partir de los cuales para mí esa solicitud. Entonces si intento de nuevo esta solicitud, recuerda que ponemos en alguna validación que las solicitudes nunca deben exceder la asignación. Alguien para intentar solicitar la misma licencia vacacional con el mismo usuario. Pero esta vez voy dedo del pie aplicar por un mes que valga vacaciones y seleccionar ser es que claramente superan 12. Estas solicitudes se van. Después obtenemos nuestra flecha. No cuenta con días suficientes para esta solicitud. Está bien, eso está bien parecido. Por el momento, quiero hacer un cambio más en eso es dedo del pie. Elimina ese botón de revisión. De hecho, me voy a quitar el dedo del pie la capacidad para Déjame volver a dejar aplicaciones. Voy a eliminar la capacidad para on admin user para cambiar el estado de la solicitud de licencia . Entonces, ¿sabes qué es eso a pesar de que está aprobado? Se expulsan. Al hacer clic en revisar, todavía obtienen acceso a los tres botones. Bueno, más importante aún, aún tienen acceso al aprobar bajo botones de rechazo, que no quiero así de vuelta en mi vista de detalles en la sección o en ese Dave que está cargando esos botones. Yo sólo puedo ponerme si declaraciones voy a decir acto, firmar si y luego llamar a la modelo en entonces dijo Que aprobado es equivalente a saber. Por lo que la única vez que deben poder aprobar o rechazar es cuando la bandera aprobada está en un no estado, lo que significa que hay que decir lo verdadero o lo falso. Entonces aceptaré el HTML asociado a estos botones que se muestran. De lo contrario, sólo se mostraba de nuevo para arrendar así o no lo hará. De lo contrario. Si está en un no estado, entonces exhibirás esto, pero siempre mostrará que nace la batalla, así que esa es una bonita salida rápida. ¿ Controlando qué? El usuario administrador, lo que cualquiera es capaz de hacer en base a ciertas condiciones y reglas de negocio. Entonces con esa modificación hecha, si vuelvo a este discurso, que una solicitud de licencia ya aprobada y refresco, entonces todo lo que verán es el botón de lista de batalla para que no vean el aprobar y rechazar porque ya está en otro estado. Pero y esto casi es motivo de preocupación. Entonces otra señal visual que podemos poner es poner como una pequeña sección en la parte superior que muestra es su pendiente. ¿ Ya está aprobado? Porque vienen aquí? Pueden ser los olvidados el estado en el que se encontraba cuando hicieron clic en el botón de revisión. Entonces, ¿quieres darles otra señal visual? Está bien, entonces con eso en mente, había hecho algunos ajustes a los interfieres, y te voy a guiar a través exactamente de lo que hice. Yo lo hice fuera de cámara, pero quiero desafiarte a tal vez los spots que el video replicó, pero voy a explicar exactamente lo que está pasando de todos modos. Entonces puse en un comunicado en la parte superior fuera los detalles que usted dijo, si el modelo no es igual a Oprah voz equivalente a saber, Lo siento, similar a la que hice no aquí con los botones. Entonces estoy viendo si es igual interno, lo que significa que está en estado pendiente. Después exhibe en Dave con clases de bootstrap. Alerta en alerta dash warning Así siempre puedes ir al refuerzo de la documentación y mirar la documentación en las alertas. Muy bien, en sólo sacarlo rápido, nos fuimos de pie. Consigue componentes y alertas de bootstrap dot com aquí. Este es el ejemplo que seleccioné. Por lo que son alertas simples donde, ya sabes que solo puedes imprimir como da de color o contenedores de colores con texto, y tienen los diferentes colores, el mismo éxito secundario primario, todos los colores, palets que tienes disponibles para botones y todo lo demás. Entonces lo tienes también para la alerta. Está bien, así que eso es todo lo que hice. Acabo de decir, Si está en un no estado, entonces dame una alerta que parece una advertencia. Entonces esa es una alerta naranja. Dame un encabezado. Eso es una aprobación de gastos, y eso es una necesidad de remolcar, luego una pita que está imprimiendo vieja la etiqueta en luego el nombre de la persona encendido, luego una pequeña línea. Eso es HR Tug on, Entonces esa pantalla para la D solicitada. Entonces este tipo, la misma información que tenía en la cabecera. En un principio, sólo lo estoy poniendo por dentro. Dar con un poco de arte para colorear en, entonces estoy haciendo contexto. También tenga la sentencia para el nulo, luego tenga una sentencia para True on. Es más o menos verlo. Tienen, excepto que esta vez es éxito justo en el verbo ege podría ser un poco diferente, así que no, está aprobado por en lugar fuera pendiente de aprobación. Entonces el jefe EU es aprobado por el entonces Si si ninguna de las dos instituciones es cierta, entonces obtenemos una. Ese es su peligro. Eso nos dice quién lo rechazó en más o menos una información parecen para los empleados. Y así si echamos un vistazo a lo que eso nos muestra, si voy a lo aprobado y otros los abro en pestañas separadas, si miro uno aprobado que voy a ver una alerta verde en la parte superior, si miro una rechazada, entonces veo esa alerta roja en la parte superior derecha y rechazada por su blanco. Debe tener el nombre y apellido fuera. Quien lo esté rechazando. Pero nuestro usuario administrador no tiene nomb 43. Module de las solicitudes de permisos con la participación de la participación en la participación en la participación en la que se los: Oigan, chicos, bienvenidos de nuevo para esta lección. Yo sí dije que estaríamos armando la pantalla que ven nuestros empleados cuando quieren mirar sus asignaciones y sus solicitudes de licencia a la fecha en dso ya construí toda esa interfaz y toda la funcionalidad. Bueno, dejé algunas, pero te estoy mostrando lo que vamos a estar mirando a la Corte cuatro. Yo sistemáticamente estaba trayendo a través de todo el código que se escribió para apoyar lo que se está mostrando en este momento. Ahora lo hice de esta manera por dos razones. Una, quiero desafiarte a que realmente escribas el código tú mismo con la menor orientación posible de mí , porque ahí es donde realmente brillarás. También creo que esto es relativamente simple y debería probar suficiente como un reto para si eres principiante. Pero debe ser divertido para ti intentarlo y por tu cuenta. De cualquier manera, voy a estar caminando por la cancha que fue escrita el día. Puedes pausar el video en los diferentes periodos y copiar fuera de la cancha como sientes la necesidad de hacerlo ahora. El primer cambio el. Bueno, me refiero a modificaciones que Leo Ph. Pero el 1er 1 para efectos de esta escucha, es que agregué el enlace navegacional dedo del pie nuestra nueva acción, que es mi licencia. Por lo que acabo de agregar un nuevo elemento nunca en el controlador consume ya que Acri solicita permiso. Pero esta vez la acción es mi licencia sobre el texto es mi licencia. El otro ajuste en medio es que cambio el verbo ege por las solicitudes de licencia bajadas para decir solicitudes de licencia en su lugar, que encaja más con lo que realmente tenemos. Por lo que ahí tenemos nuestro enlace de navegación a nuestra Miley Fitch. Andi, ya me hubiera querido. Entonces el hecho es que sólo se puede conseguir este registro de miedo al fuego siendo porque recuerda que habría autorizado todo el controlador. Y luego una vez que hayas iniciado sesión, puedes hacer clic en mi licencia en. Entonces determinamos contextualmente quién eres y te mostramos solo tu información. No fuera de curso. Para que se mostrara información como esta, tuvimos que crear un modelo de vista que iba a ser capaz de almacenar los datos en, luego renderizarlos en pantalla. Entonces te voy a llevar al modelo de vista que creé, Así que creé una nueva clase dentro de fuera solicitudes de licencia. VM en este se llama Employees Leave. Solicitar Ver Ver. Es un múltiplo, pero eso es realmente para lo que sirve. Es una vista de solicitud de licencia, ver modelo para empleados justo en entonces dentro de ese modelo de vista. Tengo una lista de asignaciones de licencias y tengo una lista fuera de solicitudes de licencia. Está bien, para que lo veas. Eso está apagado. Siguiente arriba es nuestra nueva acción llamada Mis hojas. Por lo que dentro del controlador Leave request, creé una nueva acción llamada My Leave on. Todo lo que realmente estamos haciendo es uno determinando quién está conectado, y eso ya lo hemos hecho antes. Por lo que consigo a los empleados o al usuario que actualmente es amado estar en. Entonces veo Bueno, solo guardo el empleado I D, que luego usé para recuperar las asignaciones de informe de asignación de licencias, obtener asignaciones por empleados con los empleados que d en. Entonces hago lo mismo por las solicitudes de licencia. Dejar Solicitar informe recibe peticiones profundas por parte de los empleados, que no estaba allí antes. No. Entonces, fin de obtener las solicitudes de licencia para el empleado en cuestión son los empleados cuyo salto solicitado Definitivamente quieren volver específicamente. Lo que hice fue ir a mi interfaz para un repositorio de solicitud de licencia y crear una nueva función . Yo cobro Lee solicitud obtener solicitudes de licencia por empleados que aceptan un perímetro de cuerda fuera empleado I D. On. Entonces lo implementé en la clase de repositorio real el. Todo lo que realmente está haciendo es solo canteras listas y la misma cantera que el hallazgo. Además, es más o menos verlo encontrar toda cantera. Entonces en realidad podría haber escrito esto como encontrar todo eso ¿dónde? Entonces déjame solo reescribir ese encontrar todo lo que básicamente está devolviendo todo de este dato De todos modos , en entonces digo Docked eran así entonces el punto donde no está solo filtrando en el empleado requirente yo d ser igual a la idea de que está recibiendo a través del parámetro. Y entonces lo que hace es devolver todas las solicitudes de licencia que este empleado en particular en más específicamente la persona estaba vigente permitido bin todas las solicitudes que alguna vez hayan cumplido. Vestido lateral hizo ese ajuste a mi cordón. Se puede quitar eso. No. Después de alguna vez tratado sobre asignaciones y todo fuera de las solicitudes. Entonces sigo adelante y hago el mapeo. Entonces estoy mapeando el que estoy creando. Siempre creer asignación empleados modelo de asignación. Perdón por estoy mapeando toe a list off. Dejar VM de asignación pasando en objeto proveniente de o consulta de datos en. Estoy haciendo algo similar por las solicitudes de licencia en. Entonces cargo el modelo por lo que creo una variable para el modelo o un objeto fuera de tipo empleados dejar solicitud vista B m sobre eso, estoy pasando la licencia Asignaciones sobre em, pasando las solicitudes de licencia sobre. Entonces estoy devolviendo la vista con el modelo No, para crear la vista. Lo que hice fue hacer clic derecho Ver como de costumbre Haga clic en Agregar en. Entonces cargé una plantilla de lista, pero en el pasado has visto esto donde tenemos un modelo personalizado encendido. Sabemos que si ellas propiedades en ese modelo no son las simples propiedades que nada obtendrá realmente se renderizarán en la pantalla para ese modelo. Entonces en este caso, tenemos que clases tipos. Nada realmente se renderizaría. Entonces el tipo de tío de corte engaña al sistema. Utilizo la clase modelo, off type leave request VM. Entonces eso es dejar solicitud VM encendido. Entonces agregué esa vista en luego la vista que se agregó. Puedo distraer. Podemos ir a verlo nos hubiera dado una tabla de datos o un listado de tablas. Con todo fuera de la palanca Quest VM se siente como sabemos la plantilla de lista lo hace. Entonces cambio el modelo de la innumerable off type leave request VM toe mi nuevo modelo de vista , que es empleados dejan solicitud vista VM y luego para la tabla. Cambié todas las etiquetas porque estoy seguro que recordamos que cuando lo hagas así, las etiquetas dejarán de generarse o el código generado empezará a dar sidras era hardcore que los títulos en su lugar encendieron. Entonces recuerdo que en los cuatro cada era para cada elemento en modelo soy Gina ese dedo del pie para cada elemento en el modelo de hoja de punto solicita. Entonces estos son los encabezados. Y por supuesto, me aseguré de poner en mi i d para datos tbl para que esta tabla se vea como la tabla de datos que hemos llegado a conocer y amar. Entonces estos son los encabezados para mi mesa Y luego estas son las columnas encendidas. Después para las columnas retuve con la correspondiente a la cabeza. También dejan tiempo mucho nos dejamos tipo. Ese nombre inició Muchas para iniciar ahí para terminarlo el estado de aprobación solicitado. Reutilizo la declaración de sobre Previ ous admin view. Así que acabo de decir Si está aprobado y mostrar éxito si no es un folleto rechazado Andi on De lo contrario mostrar dependiendo budge on. Entonces después de todo eso, tengo una acción dentro de esta acción bateadores. En realidad puse algo ahí. Eso es cáncer. El cáncer solicita porque esa es la única acción que quiero que un empleado pueda llevar a cabo en su propia solicitud de licencia. ¿ Verdad? Usted hizo la solicitud. Puedes cancelarlo. Um, sí. O sea, aunque ya esté aprobado, todavía no se toma, así que puedes cancelarlo ahora. Te reto a poner en esa funcionalidad ya que tienes que hacer que algunos datos sean intercambios . Vas a tener que allo ellos para hacer clic en este botón en, los escribió a una acción llamada Solicitud de Cáncer, que está tomando el i d para el ítem de solicitud el. Entonces vas a tener que escribir alguna lógica para ver que la flug que se queda con nuestro no es cancelar. Entonces eso significa que vas a tener que hacer una base de datos cambiada para incluir alguna forma de bandera que digamos es una solicitud cancelada no son así. Entonces hay que cambiar esa bandera a Sí, está cancelada el. Entonces vas a tener que hacer algo de Musto re agregar esos días asignados, también. El reparto original. Justo en. Entonces, fuera de curso, los vuelves a agregar sólo si la vista si se aprobó la licencia. Entonces solo te estoy dando un escenario donde vas a tener que hacer tu propio negocio. Están en suspenso las normas. La cancelación puede ocurrir en el sistema. Está bien, Entonces si si alguien hizo una solicitud no ha sido aprobada, sigue pendiente, entonces Obviamente, no deberían estar regresando en Edie de la asignación Si ha sido aprobada, eso significa que la asignación se ha deducido de, y así si pueden, por lo que necesitan recuperar sus días. Lógica dura es que si se rechaza y probablemente no verías las cancelaciones en este momento , la única lógica que tengo para determinar las circunstancias bajo las cuales verán la opción a solicitud de cáncer es que estoy viendo si el elemento que lo inició o si la fecha de inicio de esta solicitud de licencia es menor a la diurna que no significa que aún no has empezado a salir . Está bien, así que el inicio hizo Ondas. Te estoy explicando que estoy viendo que aquí tengo un error lógico. Entonces la fecha de inicio, si es mayor que la hora no significa que se sienta en el futuro, lo que significa que no has comenzado. Todavía lo ha visto, por eso de acuerdo juntos es bueno. Entonces tengo que cambiar esto. Si la fecha de inicio es mayor que no, entonces puedo cancelar el dedo del pie. Eso significa que el día en que aún no ha llegado. Y luego, como dije, si se rechaza, entonces no necesito permitirles a Kansas, entender usar esta oportunidad y en esa línea, o que poco fuera de lógica y ver a Andi o más bien, Voy a decir son así Es o bien que la fecha de inicio aún no ha llegado o puntos de artículo aprobados es equivalente a caídas en la otra circunstancia y ver otra área lógica, debo decir, si es igual a cierto, ¿ verdad? Entonces si está aprobado, entonces puedo cancelar el si no ha comenzado que puedo cancelar. Si ya llegó la fecha de inicio, entonces tenemos el dedo del pie. Um, queremos un bajo el empleado para cancelarlo. Si se rechaza, entonces no vamos a permitir que se cancelen. No tiene sentido en ese momento. Para que alguna lógica que estoy usando para mostrar la solicitud de cancelación no sea así. Una vez más, voy a Hola, ustedes dos, o les estoy desafiando a crear la acción para la cancelación. No, eso es para la tabla de datos. En lo anterior la tabla de datos. Tengo otra sección donde estoy mostrando la asignación de licencias. Entonces tengo el título, las asignaciones IV, y luego estoy usando una clase bootstrap llamada Jumbotron para este Div. Por eso le dan esa espalda gris crecido mirando, um, efecto en, luego dentro de ahí, estoy usando tarjetas similares pensadas que habría usado. En realidad sólo estoy reutilizando esa corte desde el panel de administración. Lo único que eliminé fue la capacidad de editar la asignación. Por último, modifiqué la acción de crear. Son el post crear acción en nuestro controlador, donde después de que un empleado haya creado la solicitud de licencia, recuerda que estábamos navegando o literario Derek's directamente a la página principal fuera de toda la aplicación, que Yo no quería. Entonces en cambio, dejo que se redirija a mi licencia. Por lo que después de que lo han presentado con éxito, entonces vuelve al patrón, ellos su asignación actual así como su núcleo, y prendió solicitudes Lee que no están pendientes. De acuerdo, sirviendo el discurso una vez más aquí es que mi sección de ubicación con el grado Jumbotron pero gimió con nuestras asignaciones de licencia listadas en, luego sobre registros de licencia mostrando todas las hojas. Tomado saber. Al mirar esta pantalla, vi que tenemos otra era lógica sucediendo aquí, Así que la fecha de inicio ya ha pasado. Está bien, así que esto se está haciendo el día 12 de general, lo que significa que nuestra solicitud de licencia para que comiencen en el primero que ya se han derrumbado el entonces. Esto está en una orilla estatal aprobada, pero entonces la opción de solicitud de cáncer sigue ahí. Por lo que fuimos después de encontrar su dedo del pie de declaración. Asegúrate de que no estamos anulando cuando nuestro dólar porque sí vi si está aprobado, entonces mostró solicitud de cáncer o si se pasa un inicio. Es en este apagado. Esas condiciones se está evaluando a cierto y así estaban consiguiendo los botones. Entonces solo necesitamos arreglar nuestra declaración para asegurarnos de que no conseguimos que ese botón alguien lo arregle, y una vez más te estoy retando a arreglarlo. En realidad no es tan difícil. Solo puedes usar unas permutaciones y sapos iniciados, pero lo tendré arreglado. Entonces con eso, terminamos con este modelo más o menos en la siguiente lección sólo va a ser una revisión. Onda Check in para conseguir hub entre no y el pollo para levantarse. Te reto a implementar la función Cancer Quest así como la sección de comentarios. Solicitudes de licencia de cuatro horas. Un poco más de contexto alrededor en los comentarios es que en los empleados, al presentar Oliver Question, poder escribir en un comentario para decir, Ya sabes, necesito este tiempo para hacer X y Z en otra sección para el rechazo donde el administrador o quien esté haciendo el rechazo, um debería poder ver, Por eso estoy rechazando la solicitud. Una vez más, esas dos actividades requieren algunos cambios en la base de datos. Algunas actualizaciones de modelo de vista en algunas actualizaciones de vista en Estoy ansioso por ver que lo haces por tu cuenta. Siéntase libre de contactarme. Si necesitas más orientación, lo voy a hacer fuera de cámara, y entonces sólo podemos revisar esos cambios en la siguiente lección. 44. Revisar y añadir cambios a GitHub: Oigan, chicos, bienvenidos al video final de esta modelo de aquí. Simplemente estaremos revisando toda la palabra que ponemos y el pollo en nuestros cambios para levantarnos ahora. Recordatorio rápido de lo que hicimos. Empezamos configurando nuestro uso administrativo para licencia. Pero en base a lo que hay en la pantalla, te paso exactamente por lo que hicimos. Configuramos el formulario de solicitud de licencia crear para nuestros empleados. Andi, hice algunas modificaciones desde la última vez que estamos en cámara. Originalmente, tenía las formas Dave a decir toe call MB. Dash it. Lo amplié a 12. Por lo que no hay rellenos de izquierda a derecha de todo el contenedor. También sí batió y bloqueó para ambos los pedidos. Deja uno en el botón de atrás a lista encendido. Nos hice como cambio al objeto de datos donde incluí un campo para iniciado por lo que habría modificado la clase de datos e incluido una columna de cadena llamada Solicitar comentarios. Eso es lo que yo llamo a eso. Puedes llamarlo como quieras si eliges incluirlo en el tuyo también. Por lo que incluí ese campo en la clase de datos y fuera de curso. Si lo pongo en la clase de datos, entonces también lo pongo en el modelo de vista. También le habría dado el nombre para mostrar Empleado comenzó en Die. Dale un musulmán de descuento 300 en el campo que incluí fue uno para cancelado. Por lo que te reté dedo del pie poner en la funcionalidad cancel que pongo en un campo que es un matón, y cuatro cancelaron que fuera de curso, cuando el usuario es o los empleados que hacen su solicitud de licencia se establecerían las caídas por defecto. Y en el canciller solicitar acción, que creé en el controlador de solicitud de licencia, acababa de decir Dame la idea fuera de la solicitud de licencia on set esa bandera a true on Entonces ejecuta la actualización en, luego regresa a mi salir. Entonces esa es básicamente la función de azar en la solicitud. No hice ningún cambio en la acción de crear sobre cómo construí ese objeto, porque realmente, si el objeto se crea, va a ser por defecto cae. No obstante, si te sientes más cómodo, podrías declarar explícitamente que cancelan estos iguales o falsos. No incluí, sin embargo, sin embargo,los comentarios en el edificio fuera de este objeto. Entonces si voy al formulario que es crear que está en mi vista de creación en lugar de la carpeta de solicitud de permiso en lugar de vistas, entonces veo que sí tengo el campo que es un área de texto en Este es un SP para solicitar comentarios. Por lo que se ve más o menos igual a todas las demás ah, forma rubí que hemos tenido. Excepto que no estoy usando input, pero estoy viendo área de texto definiendo la sensación de que es para darle ese control de forma. Entonces una vez que hacemos clic en enviar, entonces este bit off data, lo que sea que se ingrese aquí también se presentará para su creación. Entonces eso significa que necesito saber incluir esos datos dentro del objeto que estoy construyendo dedo del pie crear una nueva solicitud de licencia para que solo podamos hacer eso juntos. Donde veo comentarios de solicitud en el objeto es igual dedo del pie modelo puntos solicitar comentarios, y ahí vamos. Entonces cuando presentemos una nueva solicitud de licencia, entonces esa solicitud de licencia se generará con contenido para los comentarios. Si está ahí, no lo hice obligatorio. A lo mejor quieren poner un venidero. A lo mejor no lo hacen. Por lo que no es un campo requerido ahora sobre nuestra licencia Usted. Hice algunos ajustes. Añadí una columna y pongo el título solicitud chancel el el. Después agregué otra columna a la sección de cuatro bucles o el para cada sección de bucle donde bien uno agregué, y una nueva condición a las declaraciones que nos dan los diferentes budges para el status. Por lo que agregué uno por cancelado si se cancela. Por lo que cancelado en este campo es nuestro lingote. No es un lingote bien informado, así que solo puedo ver si se cancela o si no se cancela. No tengo que instalarlo ni tomarlo en consideración. Ah, posible sin valor. Entonces estoy diciendo que si el ítem tiene un estado cancelado que significa cancelarlos en un estado de valor verdadero, entonces quiero imprimir el budge secundario con la clase secundaria. Perdón por entonces veo la palabra cancelada el. Entonces acabo de poner a otra cosa delante de la declaración if que teníamos originalmente. Entonces ahora este es nuestro nuevo If block on entonces para el botón cancelado, vamos a ver. A cada uno me contactan y me dijeron que se incurrió en la forma en que tenía las reglas de negocio. Entonces tuve que hacer un cambio. Entonces todo lo que estoy revisando en este momento es si la solicitud de licencia no se cancela en la fecha de inicio aún no ha llegado, que significa que si lo han aprobado, entonces no podemos volver a casarnos para que los botones de cancelación no aparezcan si es o si el par, si no lo es, aunque no haya sido aprobado o rechazado en si es gasto mientras que eso inició se haya aprobado, entonces no debe ser elegible para la cancelación. Por lo que de nuevo sobre mi página de licencia, la voluntad adicional la señal visual adicional es el estado off cancelado. Por lo que note que esta fecha aún no ha llegado. Pero lo cancelé. Y para que ese botón no vuelva a aparecer. Pero si hago ahora mismo una nueva solicitud de licencia, entonces vendría esa solicitud de cáncer. No, no voy a pasar mucho tiempo escribiendo mucha cancha. Puedes pausar el video en diferentes puntos y copiar el código fuente con el que quieres decir que ayudarías. Pero quiero que China y tú lo escribas tú mismo. No, Lo que vamos a estar haciendo es revisar nuestros últimos cambios para levantarnos. Entonces solo voy a ir en mi solución. Expertos en la parte superior, fuera del árbol de archivos en. Entonces voy a dar click derecho en, luego Goto commit. Entonces, después de hacer clic, comete yo tipo de señora Tan alto espíritu la mecanografía y simplemente la puso en ya. Entonces creo que este carruaje y ver comprometer todo y hundirse. Recuerda que todo padre que hubieras creado o modificado estaría incluido. Y si antes tuvieras un archivo y probablemente lo cambiaras de nombre o lo eliminaras y verías con un golpe a través de un león, lo que significa que será eliminado de la siguiente iteración apagado, tu fuente anotó. Entonces entender, para comprometer todo y hundirse. Y eso se ha hecho con éxito. Entonces estoy en mi perfil de ghetto y estoy mirando mi repositorio, y estoy viendo que hace apenas unos minutos a mí, el pollo exitosamente en solo quiero felicitarte por llegar tan lejos. Hemos hecho un poco fuera de trabajo. Ya has aprendido. C afilado. Has aprendido Desarrollo web. Has aprendido a usar bootstrap Four Elements hotel incluyen Jake Worry Um, tú I elementos dentro de tu abrigo lo has hecho bastante. Y debes darte una palmadita en la espalda. Como siempre, puedes sentirte libre de llegar a mí. Algo no está crujiendo contigo, necesitas más ayuda para completar estas tareas. De cualquier manera, si hubiera huecos en el código fuente como sabes lo que mostré en la pantalla versus lo que realmente hicimos juntos, entonces se te proporcionará el código fuente. Siempre proporciono las facturas de guitarra donde puedes ver esa versión exacta fuera del código fuente para la lección en, entonces podrás replicar lo que necesites. Como siempre, siempre estoy aquí para ayudar. 45. Previsión de temas de AdminLTE: Oigan chicos, Oigan chicos, bienvenidos a este nuevo modelo donde estaremos restyling toda nuestra aplicación. Ahora en pantalla, tengo Ah, el Leo con el que hemos estado trabajando hasta saber. Ese es el Leo que nos ha sido dado por defecto por nuestra estructura de proyectos. En esta perfecta, funciona bien. Llegamos a poner en enlaces de navegación, tenemos esas cargas donde tenemos que esos márgenes a los lados en todo se ve bien. Pero entonces quiero decir, a veces quiero un poco más poseer por lo que en este modelo va a estar cambiando sobre estas cargas al admin LTTE. Leo también estará mirando cómo podemos soportar múltiples diseños,ya sabes, ya sabes, para que una página pueda usar un solo diseño. En otra página es un cargas maternas o todo. Esos utiliza un diseños completamente diferentes. Entonces estaremos transformando de este Sloat a algo que se parezca más a esto que es el admin LTTE Leo Andi Quiero decir, ahora mismo se ve muy jugando. Eso está bien. Pero entonces, como se puede ver, la tuerca barra la izquierda. Tenemos algunos iconos, por lo que cada botón tenemos ah DACA ble bar on. Tenemos un buen portero así que lo estaremos cambiando para que puedas agregar tus propias bengalas. Te vas, pero te estaré mostrando lo básico detrás de cambiarte o hacer cambios importantes en el look y siéntete fuera de tu sitio. 46. Crear una página de la composición: Oigan, chicos, bienvenidos de nuevo en esta lección. Vamos a estar revisando nuestra página de diseño y observando las cosas más importantes que necesitamos para poner atención de los pies a la hora de crear un nuevo pH Leo. No examinar exactamente el Littlepage existente debería ser territorio familiar. Podemos encontrarlo dentro de fuera o vistas carpeta ir a compartido. Y luego tenemos nuestro diseño literalmente llamado subrayado Liotta dot CS html en entonces este Leo pH y entender diseccionarlo. En primer lugar, se forma encima de la estructura o esqueleto HTML básico, como yo lo llamo, donde tenemos o etiquetas HTML o tirón de cabeza o tiempo de cuerpo. Muy bien, entonces todo básicamente cae en ese mismo HTML donde somos declaración médica en html, cabeza de etiqueta, cuerpo en DWI. Cierra cada etiqueta a medida que avanzamos. No obstante, se puede ver que pasa mucho entre cada remolcador, luego por encima incluso del tipo doc. Tenemos algún cordón de aspecto afilado C. Entonces en la parte superior fuera de la página, tenemos toda nuestra dependencia es, por lo que necesitamos la biblioteca es ser net cord out identidad. También necesitamos incluir nuestro espacio de nombres de datos para que podamos incluir nuestro inicio de sesión en los modelos de gestor de usuarios para nuestro diseño. Y si recuerdas, los usamos para algunas operaciones más no. Por lo que tenemos nuestra dependencia es o C fuerte dependencia bibliotecaria está en la parte superior. Entonces iniciamos nuestro HTML regular. Podemos insertar datos dinámicamente. Entonces vemos aquí donde dijimos ver los datos es igual a título en o ver el título de los datos en. Entonces lo levantamos con cualquiera que sea el nombre de las aplicaciones que esté encendido. Entonces si quieres saber más sobre este título de datos de vista, si nos fijamos en una off o vistas y solo iré a dejar asignación y mirar tal vez listar empleados. Cuando abrimos esto, ves que te estamos configurando título de datos es igual a alguna cantidad, algún poco fuera de texto esto toma que se han generado automáticamente el entonces. Este texto, combinado con nuestro texto estático, es lo que aparece en nuestro hitter de navegador. Entonces eso significa que si quiero que una lista de empleados luzcan más amigable o legible, podría simplemente ponernos espacio ahí en cualquier modificación que me encuentro con esta cadena, está levantado dedo del pie todo el título que se renderiza a pantalla Así que eso es lo que puede hacer que tu títulos dinámicos. También seguimos con la inclusión fuera de los cuatro stand. Ella iba a algún lugar allí antes de algunos agregamos después. Entonces por defecto tendrías un botón bootstrap en su versión. Porque en este punto, habríamos incluido nuestras tablas de datos o fondo. También, um, cesa en también r j te consulta yo CSS Y luego al final de todo eso, tenemos un link toe nuestro propio archivo CSS. ¿ Deberíamos necesitarlo en algún momento? contenidos del cuerpo son bastante sencillos. Tenemos un encabezado en el interior. El encabezado es realmente la barra de navegación. Entonces cabecera que navegación y luego o barra de navegación es una navegación bootstrap. Agregamos algunos enlaces en. Después mostramos contextualmente algunas cosas en base a la persona que se ha inscrito. Si están en roles administrativos están en un rol administrativo, entonces verán ciertas cosas que el usuario regular no vería en. Entonces, después de nuestra cabecera, vamos a nuestro contenedor que es nuestro cuerpo, ¿no? Y luego dentro del cuerpo, tenemos ah, alguna sección llamada mean on entonces tenemos esta función llamada render body, que realmente está renderizando el contenido o la vista en la pantalla. Después de eso, tenemos o pie de página encendido. Habíamos cambiado los votos que lleva a ser dinámicos para el año en adelante. Entonces tenemos nuestros archivos de script, incluyendo ahora. El motivo por el que te di ese tour es que esto forma la base sobre la cual Leo pH necesita ser creado dedo del pie . Yo en realidad para apuntar el dedo del pie atrás, y a veces esta sección se olvida porque es tan poco visible. Lo que esta sección de render nos permite incluir guiones dentro de nuestras vistas. El día, se renderizará después de todos los demás guiones del arte Peach. Entonces una vez, como estaba viendo, necesitamos saber esto cuando estaban creando otro pH de Leo. Porque aquí son ciertos elementos que la mitad del dedo del pie se repiten, por ejemplo, renderizan cuerpo si hay más en el cuerpo que la navegación, así lo has sentido, porque esto es lo que realmente hace que lo que hay en el ver dentro del contenedor en general . Entonces para crear una nueva Página Leo y tenerla reconocida por la aplicación, lo que tenemos que hacer es bien, uno ir a compartido en lo compartido es el mejor lugar para poner su realmente pueden ponerla donde quiera. Pero entonces sólo tiene sentido ponerlo donde sugeriría la estructura del proyecto. Tú lo pones para que vayamos a compartir. Podemos hacer click, agregar, entonces solo crearé un nuevo artículo. Por lo que para nuestra presentación fue a seleccionar Razor Leo enseñó el día fui a cambiar este lado. Es Estarán usando un tema LTTE admin cuando empezamos. Entonces solo voy a llamar a este anuncio de significan LTTE. Por lo que no hay error sobre el derecho encendido. Entonces hacemos click en así están resultando archivo es muy sencillo. Como puedes ver, es literalmente ese esqueleto html. Ellos sólo tratan de darnos un poco de dinamismo por el título sobre Nos dan una sección para renderizar el cuerpo. Entonces es muy, muy sencillo. No, después de que hayas hecho esto y no voy a pasar por todos los cambios que necesitan suceder todavía. Pero después de que hayas creado este No, querías ser el predeterminado alguien para hacer esta sencilla página El predeterminado que tenía fuera de nuestra página de capa grande que ya existe para hacer eso. Lo que puedes hacer es ir a ver inicio. Entonces si sigues en la carpeta Vistas, entonces tienes un archivo llamado Ver. Empieza en eso a la vista Inicio dirá disposición igual a Leo. Entonces en la partitura, Leo, ese es el nombre del archivo que está identificando como el diseño. Por lo que sólo voy a duplicar esto en el comentario. Oats una línea, y luego voy a cambiar esto para decir, Subrayar ad men lt on Entonces podemos guardar todos los cambios en. Entonces vamos a previsualizar cómo va a ser esto. Entonces note cuando nuestra solicitud o los Señores eran literalmente sólo una página en blanco, porque eso es todo lo que tenemos. Simplemente tenemos el esqueleto en una sección que es su cuerpo de render. Entonces si intento manualmente dedo del pie navegar a cualquier apagado para pantallas existentes y digamos que trato de ir toe leave types on, desmantelar el log in aviso de que el registro todavía se está cargando con el originalmente escrito en eso es porque para eso sección off para aplicación, también tendríamos que cambiar los diseños que se están utilizando. Si voy solo a épocas, toda la identidad entra en páginas, entonces ves un archivo similar. Ese es su punto de vista. Inicio en El archivo Ver Inicio apunta directamente al durazno viejo laico dentro de las vistas compartidas y el diseño. Entonces solo voy dedo del pie duplicar provocativamente esto y comentó Coat on. Entonces voy a cambiar esto para ver agregar significan LTTE que CSE html on. Entonces ahorra y vamos a intentar volver a cargar esta página y ver qué pasa. Muy bien, entonces estamos consiguiendo una era, y en esta área se está viendo que nos falta una sección que ve guiones. ¿ Recuerdas eso? Sí vi que son ciertas secciones que tienen que estar ahí para algunas páginas en las que el trabajo realizado en nuestra página de inicio de sesión, que es lo que estoy tratando de renderizar algunos distantes para perforar y encontrar o iniciar sesión vista o iniciar sesión en vista. Esos llaman a una sección llamada guiones, donde llama alguna vista parcial para que sexual necesite estar presente para el trabajo del dedo del pie Leo para el discurso. Recuerde que tenemos un simplemente viejo aquí en para o originalmente escribió. tenemos esa sección que mencioné antes donde renderizamos guiones. Muy bien, entonces en nuestra próxima lección empezaremos a transformar esta página en blanco en el administrador LTTE Leo. Es con todo fuera de la sección requerida para que las cuatro vistas puedan usarlo. 47. Configura AdminLTE y dependencias: Oigan, chicos, en esto Escuchen, vamos a estar configurando nuestra aplicación con el administrador. Lt e layout. He estado viendo este admin lt admin, LTTE. Si no sabes lo que es, entonces puedes llegar a su página web yendo dedo del pie admin l t e que yo Oh, no, lo es. Ah, plantilla de tablero administrativo Bootstrap. Y, bueno, uno muy, muy, muy convenientemente. Por lo que se basa en bootstrap, y creo que han tenido versiones demasiado cada versión fuera de bootstraps. Entonces ahora mismo estamos usando bootstrap cuatro. Entonces la versión que vamos a estar usando es la más reciente que soporta bootstrap four . También tienen apoyo para la diversión. Impresionante. Cinco iconos. Entonces eso significa que vamos a estar pasando por en potencialmente cambiar viejos algunos de iconos de vanguardia , impresionantes que hubiera usado previamente en podemos retener para, , pero entonces estaremos implementando cinco también. Entonces, desde su página web, puedes ir a su Página Donald. Se puede ir a una vista previa en vivo y también se puede visitar allí. Consigue el repositorio TOB donde puedes simplemente puedes descargar toda la fuente requerida para esta plantilla. Entonces voy a ir primero a la plantilla, la demo, y mostrarte lo que Todo es un barco. Como puedes ver esa barra de navegación a la izquierda, tienen una en la parte superior. Tienen pequeños iconos de notificación en, Bueno, el potencial para la visualización de datos y el diseño es realmente, realmente, realmente increíble. Ahí vienen, chock lleno de bibliotecas caen de estas coloridas cartas, y han puesto un retorcido en los estilos bootstrap donde sabes ciertas cosas, mira un poco más encontrar órbitas, ya sabes, modificado cuando se compara con el bootstrap original Leo. Son nuestras clases, ¿verdad? Por lo que tienes la plantilla de la versión de dashboard una donde sabes que es bonita. Es diferente lado de diferente. Se pueden los gorriones y obtener ideas de ello. Y luego tienes la versión dos, que es todo lo que estamos viendo. Sólo sé, Así que en realidad puedes pasar algún tiempo y hacer clic en una fila y ver todos los gráficos, las diferentes formas, las diferentes tablas que han comprado. Entonces, en última instancia, quieres llegar a la sección de documentación donde realmente puedes ir a un barco aprendiendo ho para instalarlo en tu aplicación. Ahora, las instrucciones de instalación simplemente están orientadas hacia en PM, que es más bolsillos Manager Bore, que es un gestor de paquetes para JavaScript, o compositor, que es, Ah, gestor de paquetes para Ph. B. Pero entonces estamos usando dot net core, así que no Record tiene su propio gestor de bolsillo en forma de nuevo get y va hasta cierto punto un cargado para usar bower. Pero entonces, personalmente, me parece más irritante. Tratar de sacar a este tipo de bibliotecas en un núcleo dominante en, sobre todo porque es más o menos sencillo, es sólo algún núcleo que nos han dado. Una vez más, es de código abierto. Por lo que en este video, entienda para guiarle en el abastecimiento del cable en la implementación de su interior off o aplicación No, por el tiempo libre. Esta lección admin LTTE dos puntos para es la versión anunciada aquí. Pero esa no es la versión con la que vamos a ir, así que vamos a ir a levantarnos. Voy a decir que no sé último lanzamiento, que nos va a llevar a su repositorio para en media LTTE tres puntos o punto uno. Entonces sepan que estamos en este repositorio en el scroll on conseguir el archivo zip con todo fuera su fuente anotada. Y eso nos da una carpeta agradable, saludable con un montón de apagado leer Mies y algunas plantillas más que podemos ver. Por lo que el templo tan temprano no puede no necesariamente haber sido indicativo fuera de la última versión. Entonces solo voy a Teoh extraer esta carpeta del dedo del pie en mi computadora. Entonces lo pongo en mi carpeta de descargas encendido Entonces solo voy a abrir una fuera de estas páginas. Por lo que tengo tres páginas de índice que puedo ver en que también han comenzado alguien para abrir cada una y que podamos evaluarlos fuera. Entonces abrí índice, y esto es lo que muestran los discursos índice. Entonces ves que los widgets entienden que es un poco diferente a lo que habríamos visto en el sitio web. Una vez más, el sitio web probablemente mostraba 2.4, que se basa en bootstrap tres. En esto se muestra 3.4 punto uno, cual se basa en bootstrap cuatro. Entonces ves algunas, ya sabes, mejoras en la forma en que se presentan las cosas. Pero tenemos este ejemplo de tablero. Contamos con dashboard donde este es dashboard tres. Entonces ten dashboard por ejemplo, y luego tenemos dashboard tres ejemplo encendido, luego tenemos una muestra muy, muy simple, que se llama Starter Now, el inicio una plantilla es mucho más simple que se digan los otros dashboards sobre Verdad, basado en la aplicación que podríamos tener conmigo o quizá no necesite todos esos, um, um, gráficos y displays, ¿ verdad? Entonces para nuestra aplicación, que es un sistema de gestión de licencias, no necesito un cobro. O sea, el cualquier trapeador de un país son este tipo de apropiaciones de tierras? Realmente no necesito todo eso. Por lo que la plantilla iniciada es un buen lugar para mí. Toe realmente poder examinar la cancha on hacer esas transiciones sobre mi proyecto otra cosa para notar que en los bonos fuera de incendios que hubiéramos conseguido, nos habrían dado todos fuera de los archivos CSS y JavaScript requeridos para conseguir esto vapor arriba y corriendo. Y también tendríamos ah, wealth off plug ins para todos fuera de las gráficas, las tablas de datos sobre todo lo que se incluiría dentro de lo que se está mostrando en sus plantillas. No obstante, sólo necesitamos unas pocas de estas cosas para abrirnos corriendo en una de esas es el arrancador, alguien a la derecha, haga clic en arrancador en Abrir con. No tengo parte más plus si no la tienes, esa es una gran herramienta para solo ver. Um, sabes que marca archivos judiciales abiertos y sencillos. Si tienes código de estudio visual, esa también es una buena herramienta en nada menos que eso no es parte. Pero yo sugeriría que consigas al menos conocer Pat plus plus o Visual studio Court. Entonces solo voy a dar click derecho en Abrir con todo por plus, y esto me dará toda la página HTML con todo ese equipo, un esqueleto del que siempre hablo. Señalarán qué se está incluyendo, qué rápido y dónde se pueden encontrar. Para que podamos fuente estos archivos dentro de los fans que estaban en el archivo y verterlos a nuestro proyecto en visual studio mientras activamos el vapor. Entonces lo primero que quiero hacer es copiar todo fuera de esta puntuación en, Entonces voy a volver a mi página de diseño on. Entonces voy a controlar una Onda y controlar visa. Yo solo estamos moviendo todo lo que hay ahí y estoy pegando todo este bloque html. No, Al hacer eso, habría quitado algunas cosas como la sección de cuerpo de render on. Vamos a volver a poner eso, pero te das cuenta de que te están dando comentarios para especie de guiarnos La sección qué fuera la cancha que estás viendo actualmente. Mi siguiente objetivo principal sería asegurarme de que tenga las hojas de estilo requeridas incluidas en el proyecto y que mis referencias sean correctas. Entonces veo aquí donde tienen una hoja de estilo dentro de la carpeta CSS dest slash llamada admin lt ee dot mean dot CSS. Por lo que necesito asegurarme de que tengo esta hoja de estilo dentro de mi proyecto y la estoy referenciando correctamente en visual. Estudiante hace que sea relativamente fácil obtener archivos sobre alguien para volver a la carpeta de archivo , ir a dissed, ir a esa carpeta llamada CSS. Identificar ese archivo en, entonces realmente puedo copiar y luego volver a visual studio on. Entonces sabemos que en nuestro proyecto de estudio visual para tratar de mantener esos archivos estáticos, esos archivos CSS en su lugar están dentro de W W root CSS y luego puedo simplemente desmontar en esa carpeta. No, yo puedo hacer eso. Misma operación para o fondo. Impresionante. Por lo que está en los enchufes fondos Impresionante. CSS libre todo significa que CSS Así que sólo voy dedo del pie volver atrás y tratar de encontrar eso. Por lo que era enchufes en entonces frente. Impresionante. Eso es gratis en luego CSS en. Entonces fue todo lo que significa que CSS voy a hacer lo mismo donde copio en luego volver a estudio visual en ese entonces. Haga clic derecho en CSS Onda a destajo. No, a estas alturas se olvidan en realidad, Holder, ¿verdad? El camino a los tontos CSS entender? Para mirar hacia atrás en mi pH Leo original Sólo para algo de inspiración en. Entonces veo aquí donde debería estar la HR hasta el día slash CSS cortó las partes del archivo. Entiende la copia que el fuego camino a la más completa ya que todo el más rápido y eso parece CSS más lleno. Y entonces puedo simplemente reemplazar la parte relevante tan bien, esos ccs ya CSS arias. En realidad puedo decir hasta que corten CSS. Entonces solo para asegurarte en el lugar correcto, realidad puedes simplemente quitar este tu control sobre el espacio y luego se enumerarán todos los archivos . Si estás viendo todos los hechos, eso significa que has escrito el pop. Parcialmente. Entonces yo soy el primero, incluyendo el admin lt. No, eso es incorrecto En primer lugar, incluyendo todo lo que significa no CSS encendido. Entonces solo voy a modificar este dedo incluye el archivo CSS admin lt. Ahora, el archivo LTTE admin encapsula más o menos todo fuera de nuestras clases de bootstrap para que todavía podamos acceder o las clases desde booster que conocemos enamorados en. En realidad no tenemos que ir y referir bootstrap en contra. Solo estoy abriendo el archivo CSS ltte dot para que puedas ver que realmente está usando mucho fuera de las clases bootstrap en la versión bootstrap en este 4.3 punto uno. Por lo que la mayoría de esas clases, si no siempre siguen funcionando, Pero habrían puesto su propio giro en el dedo del pie. Serían salida a la pantalla. Mi siguiente objetivo principal sería el de hacer los mismos pasos de juego con nuestro trabajo, un script files. Entonces veo aquí donde necesitan la indagación g. Pero ya tenemos jaker. Ya tenemos Bootstrap pero sí necesitamos el administrador LTTE que archivo Js Así que si profundizo en el GS Bueno, no Jair. Perdón, la lib encendida. Entonces bajaremos a Bootstrap dissed en Js on. También tenemos lo mismo para Jake Worry por lo que solo puedo modificar las referencias para Jake Worry y Bootstrap. En realidad, sólo puedo volver a mi voto sobre la reutilización de esas referencias. Entonces ese es el J. Corey y ese es el bootstrap encendido. Voy a copiar esos y luego sólo voy a reemplazar estas referencias porque está haciendo referencia al mismo conjunto de archivos en entonces para el admin LTTE on went toe tienen que entrar en la carpeta Js adentro fuera su dist. Encuentra la copia del archivo G s en la que está, luego colócala en el proyecto. Por lo que sólo voy a poner eso dentro de la sección GS arrancada. Entonces solo puedo usar mi hasta allá. Entonces eso sigue siendo este slash gs slash admin LTTE que significan que gso No, tengo mis archivos Js y mis archivos CSS siendo incluidos. Está bien, así que hemos hecho bastante fuera del trabajo son simples como puede parecer en el DNO. Quiero previsualizar cómo será este discurso. Entonces Pero antes de hacer eso, déjame simplemente poner el título para que sea tan dinámico como solía ser. En algún lugar de regreso a Leo. Y encuentras que te aburres mucho del Leo o Paige existente porque, quiero decir, le hiciste mucho trabajo. Entonces en lugar de volver a escribir, entonces se usará reutilizando muchas cosas. Por lo que te recomiendo que no lo elimines, al menos aún no. Algunos simplemente copiando el título existente en lo estoy pegando en el nuevo Leo Peach on. Hay otras cosas que se van a estar transfiriendo, pero en este momento sólo quiero que veamos el dedo del pie cómo se ve la página. Entonces entiende vista previa del dedo del pie que bastante rápido. Y cuando hacemos eso, estamos consiguiendo este muy desagradable arable s un bistec o tiempo y leemos qué es cantar. Por lo que está diciendo que tenemos una excepción de operación inválida donde render body no ha sido llamado para la página en y luego simplemente listan toda la trayectoria del dedo del pie sobre nuevo leotardo. Entonces la toma clave es que se está quejando de la sección del cuerpo de render, por lo que no se está llamando a la función del cuerpo de render. Recuerda en nuestra avena originalmente, teníamos esa sección muy, muy crucial donde dijimos Render cuerpo. Por lo que necesitamos asegurarnos de que admin LTTE sepa que debe entregar cuerpo No basado en las secciones que se dan para la página, sabemos que el cuerpo debe ser rendido en algún lugar con contenidos no pecados barra suficiente no en el barra lateral. El menú lateral del MIT compró más en la era del contenido. Entonces veo aquí de contenido o superior y luego tengo una sección que es su contenido medio. Por lo que eso significa adentro fuera de mi sección principal de contenido. Debería estar renderizando cuerpo. Entonces esto es todo datos de muestra, Como sabrías, desde mirar nuestra puerta Leo o página de muestra de inicio, eso es todo. Tan solo fecha de muestra. Realmente no necesito eso. Por lo que en realidad sólo voy a quitarme todo esta sección Haute. De hecho, parte de la página de inicio. Entonces todo lo que está dentro del fluido Deve Container lo voy a quitar o bien, en realidad, sólo voy a ver desde el contenido. Rapper so content Dash rapero Todo lo que está dentro del contenido. Dash rapero, voy a quitar. Sólo me estoy quitando todo este barco, ¿verdad? Todo lo que se usó el signo más hasta bien, el dedo del pie signo menor, ya sabes, condensa las secciones. De acuerdo en entonces me voy a quitar todo esto de avena puesta. Voy a poner mi función para renderizar cuerpo. No ¿Qué? Yo hago eso y guardo y refresco. Esto es con lo que terminamos donde hermana tiene algunas maneras de ir. Pero esto es progreso. Se puede ver aquí que el nuevo diseño se está mostrando en nuestro contenido, ¿no? No. Tenemos que asegurarnos de que nuestra barra de navegación desagrade nuestros enlaces de navegación ¿No son los enlaces de sumidero ? No, De vuelta en nuestros diseños, hay pocas referencias que quiero asegurarme de incluir desde No, que me olvide más adelante. Entonces voy a volver a mi Leo Ph y que estoy viendo eso. De acuerdo, tengo algunas bibliotecas centrales por encima de alguien para asegurarme de que hago referencia de estas bibliotecas dentro de este diseño y van por encima del tipo doc. Andi, voy a hacer referencia toe algunas de estas hojas de estilo, así que tengo una hoja de estilo para mi tabla por tabla de datos. Tengo uno para divertirme. Impresionante en. Tengo uno para mi friki. ¿ Dónde sabio? Yo sólo me voy a llevar los tres, pesar de que realmente no necesito los fondos. Impresionante. Uno para esto porque estamos cambiando la versión de frente. Impresionante. Algún arquero Justin para borrar ese. Yo sólo hice eso porque era más fácil sólo tomar tres líneas y borrar una. Um, así que tenemos todas nuestras referencias CSS en. Entonces me voy a asegurar que haga referencia a mi tabla de datos así como a mis G s y G . Consulta archivó a alguien para copiar esos también y asegurarme de que incluyo esos scripts en la parte inferior de la página. Y luego, además de esos guiones, necesito asegurarme de renderizar las secciones de guiones. Yo también soy entidad que lo hace en un solo asiento, pero eso está bien. Por lo que sólo estoy asegurándome de haber contabilizado todas las referencias de una carga existente porque sus páginas que dependen de éstas. Entonces si yo estuviera cambiando poco que queremos asegurarnos de que estos estén incluidos ahora, otra cosa es que quiero decir, es como un mal juicio con nuestro paquete bootstrap donde es bootstrap dot empaquetado hasta hombres esquiva en no el bootstrap archivo dot Js. Entonces en realidad necesitaba incluir ese archivo, y lo encontramos dentro de Brogan Js Lo sentimos. Enchufes. Bootstrap Js en el archivo es bootstrap dot Bonded up significa que GSC podría copiar eso. Pruébalo dentro de la carpeta GS junto a l admin lg ese molino dot Js on Entonces arregle la referencia en consecuencia para asegurarse de que esté incluido. Ahora, otra cosa que omití fue divertido archivo para nuestros fondos. Impresionante. dio cuenta de que tenemos plazas donde debiste haber dejado los iconos. Y eso es porque no trajiste la carpeta de fondos de la Web del fondo. Impresionante. Eso es gratis. Entonces solo voy a tomar esta carpeta y copiarla, y tenemos que ponerla en nuestro proyecto en una parte muy relativa relativa relativa a CSS. Por lo que notó que está al lado de la carpeta CSS. Entonces las armas tienen archivos? Claro, pero luego relativo a la carpeta CSS ahí en los mismos niveles hay que asegurarme de que copio esta carpeta y la coloco en nuestro proyecto relativo para ver evaluar. Entonces el único lugar en el que podría colocarlo relativo a CSS y tenerlos uno al lado del otro es si pongo fondos web como nuestra carpeta dentro de la carpeta raíz W W o nuestra sección, por lo que diferentes personas pueden un poco diferente. Solo estoy tratando de mantenerlo simple. Entonces después de hacer esos ajustes y recargar o paz y empezamos a ver sobre iconos para que veas ese pequeño icono de chat, el icono de Bell y donde eran cuadrados. No hay ícono. Entonces no, tenemos o iconos en funcionamiento. Podemos continuar con o modificaciones. No, sí dije que se suponía que íbamos a estar modificando las propiedades por encima de la navegación, y voy a ir paso. Entonces esta es la barra nub en esa es la barra de nota superior. Por lo que toda esta sección, si solo hago clic en la plática que sea suficiente, podemos desplazarnos hasta que veamos la siguiente resaltada. Y sabemos que todo eso es la barra nub, y luego nuestro número tiene secciones para enlaces top of bar. Entonces si queremos enlaces en la parte superior en seco, no, nos están dando 14 casa en una para contacto. Si los queremos ahí, entonces sólo podemos cambiar el motivo. Queremos más de lo que podemos simplemente duplicar. Y a más. No quiero suficientes enlaces de navegación en la parte superior. Algunos solo quieren controlar a Casey para comentar. El foso. Yo estoy comentando los fosos, pero puedes creerlos si quieres mientras los comete todos. Porque tal vez podamos encontrar uso para ellos más adelante, cierto. Y es más fácil mantener la plantilla que tratar de recordar cómo se veía. Entonces no necesito esa barra de búsqueda, al menos aún no. Entonces estoy comentando que también luego sobre los derechos. Están viendo que tenemos un mensaje gota No. Así que en realidad puedo simplemente ir en vista previa cómo se ve ese mensaje desplegable, está bien. Y entonces, ves, ahora tienen un montón de imágenes rotas. Pero no trajimos las imágenes porque no necesariamente las necesitas. Pero ahora mismo, no necesito ningún mensaje. Notificación el. Vemos que tenemos la campanita con el envolvente de notificación. No necesito nada de estas notificaciones, así que solo voy a t esas viejas pero Sería realmente genial si tal vez por cada solicitud de licencia o cada nuevo artículo que entra que requiera acción. Simplemente mostramos un número ahí fuera para eso en Eso sería realmente genial. No obstante, estoy quitando porque realmente no los necesito, ¿ verdad? No, Esta sección entera de lo abierto a Cerrar UL constituiría el derecho dentro de la nunca barra y así en realidad puedo simplemente condensarlo o colapsar todo eso y voy a manual el tipo o los cordones de comentario que eso es un signo de anuncio encendido y encendido. Asterisk Andi lo abrirá y cerrará casi automáticamente para mí. Alguien dedo del pie se agarró eso. Entonces tendré que estar seguro de que estoy cerrando la U más entender dedo del pie lugar que comentario al final de la U. S. Ya sabes, todo esto se comenta una vez más, podrías borrarlo, pero lo están dejando en caso de que lo desees más tarde de lo que puedes tenerlo. Muy bien, entonces nuestra barra de amor en la parte superior está bastante vacía. Está literalmente justo ahí como barra suficiente, y no es luz de salpicadero comprador. Es blanco encendido. Es decir, es Es es está ahí. Por lo que May agregó, puede restar. No es ni aquí ni allá. Lo que Eso no comprador hace en este punto Nuestros Hijos segundos pensamientos. Simplemente recuerdo que hay una porción fuera de este gallo por eso realmente necesito. Y esa es la parte para hacer un plegable. Entonces esta sección que ya sabes, puedo hacer clic en ella y se expande o se contrata realmente quieren retener que en eso se llama en la sección estadounidense para barras de empuje. Entonces si miro muy cerca de la cena, ver en la parte superior la suficiente ladra nosotros en realidad tenemos ah on en sección ordenada que hubiera comentado antes en ¿Tiene los suficientes préstamos para el hogar, el contacto, pero en la parte superior tiene una sección para el menú push o los compradores. Entonces lo que voy a hacer es sólo al mando esta sección porque realmente sí quiero esa sección así que contra Vale, tú en, entonces lo que puedo hacer es sólo elogiar haute, los dos enlaces que realmente no necesito. Entonces solo quiero rutinar la parte con las pastillas que mucho Mito me el comprador lateral ir en Ah , escribió No cuatro o yo en barra lateral Veríamos que tiene algo dedo del pie tal vez el discurso índice , porque la muestra Andi I significa, eso está bien. Eso es comprensible que vengas con eso, Pero siempre podemos cambiar todo eso e treff. Entonces algo más. Yo sólo voy a poner un hashtag para que no vaya a ninguna parte. Conserva su clase el. Entonces está esperando una imagen. Entonces no voy a poner ninguna imagen. No tengo ninguna imagen, pero luego en un tiempo posterior, tal vez puedas modificar la aplicación en la que acepta un avatar para un usuario en. Entonces, cuando a esos usuarios les encanta ser que las llantas ABBA mostraban. Por lo que sólo voy a comentar viejo esta sección para una foto en luego para este hilado sexual como su administrador LTTE tres. Voy a dejar que diga el nombre fuera de nuestra aplicación, que es otro decir, dejar las gerencias para esta sección fuera de la barra lateral. Quería mostrar las secciones de registro. Recuerda que tenemos un registro, um, um, los socios está registrando y registrándose en. Teníamos eso en el anterior, um, Leo. Es donde teníamos al seis John en el nav bar, y era realmente un parcial que se estaba imprimiendo. Por lo que la cancha para los enlaces de inicio de sesión y registro están realmente dentro de este parcial. Por lo que quiero que ese parcial se rinda en este apartado. Por lo que fui a tomar abrigo el contenido de esta barra lateral sobre lo voy a reemplazar por el par show para nuestros cientos de registros, los botones encendidos. Entonces solo voy a agregar un poco de efecto visual y poner una regla horizontal para que haya una pequeña línea para mostrar dónde comienza esta sección por ahí donde comienza la siguiente sección. Está bien, así que esto es lo que nuestro trabajo ha cedido aquellos lejos Cambiamos con secciones de gestión tonta . Tenemos los ings de herramienta, y vamos a poner en algún lugar estrellas en eso porque note que son visiblemente diferentes a la espera. ven los otros enlaces, pero por saber que pueden permanecer en No, necesitamos modificar la retención. Estas cosas se ven tan notadas que tienes una sección que puede bajar. Tienes un ing simple, así que voy a estar creando algunos enlaces que se parecen al simple ing on. Entonces estaremos creando una sección desplegable para nuestra barra de amor, así que de nuevo en nuestra cuerda. Entonces voy a empezar esta transformación solo diseccionando esto, no un poco el código de barras. Entonces tenemos la UL on hizo. Es que tiene todas las clases que se requieren para que se vaya a un costado. Y luego tenemos el primer elemento de lista en esto, como un elemento de lista tiene un clasicistas, tiene menú vista de árbol sí abierto, y luego tiene un enlace en luego otra lista de pedidos dentro de ella. Después de eso, tenemos en lista ítem que tiene las palabras simple ing. Por lo que este elemento de lista puede ser nuestra plantilla para elementos de enlace no expandibles en este puede ser nuestra plantilla para elementos de enlace expandibles. Yo me voy a llevar este. Eso es un sencillo ing. Voy a cortarlo, Andi. Después lo colocamos por encima de la que dice tiene vista de árbol No para nuestra Simple Inc. vamos a hacer algunas modificaciones, notamos que tenemos una etiqueta de tobillo y está señalando a ninguna parte. Entonces sólo voy a volver a nuestro Leo original en. Entonces voy a copiar las partes relevantes para toe Tener un link alguien que tome el área SP Controller SB Sección de acción fuera del remolcador ancla Porque quiero que este primer ing simple sea en casa alguien para reemplazar un verdadero si con esos con esos atributos on, dejamos la clase encendida. Entonces fui a cambiar el icono de FAA Dashti envejecido Si un dash home y notó visual studio está haciendo estas sugerencias porque el archivo CSS forefront impresionante no es parte del proyecto en entonces estoy con la oportunidad en el texto desde simple ing toe home entonces en este para quedarme en casa y realmente no necesito ese lapso. Está bien, vamos, está bien. Es una buena idea que tipo de retener el templo que te dan, porque si fuera a quitar esas etiquetas p el layout sería ligeramente diferente a lo que estoy viendo en el anterior. Por lo que hay que ser muy cuidadoso y deliberado a la hora de hacer modificaciones. Si quieres retener el look original y sentir así tengo la ciudad natal y voy a duplicar esta herramienta tiempos porque también quiero la tachuela que dice's tuck que dice Solicita permiso en también uno que ve mi permiso Así volviendo a los enlaces originales teníamos uno. Eso es todo. Solicitar arrendamiento. Estoy seleccionando o tomando todos estos atributos de ese enlace en adelante, luego colocándolos dentro de mi segundo Simple Inc que los está reemplazando. Y entonces se va a solicitar el texto para licencia. Entonces esta copia eso. Por lo que estoy haciendo mucho fuera copiando y reemplazando fuera existente siendo vendido lo mismo para mi licencia en DENR. Sustituir esos atributos en consecuencia. Realmente no necesito traer la clase porque te das cuenta de que las clases ahora dash link. Y sí, hay texto blanco. Pero dice ahora dash link ya en o Tío Ataques son realmente borrar. Er coloca eso otra vez. Por lo que sólo reemplazar los atributos reales del evento para que Tío Tags funcionen todo lo que esperamos funcionen no para la siguiente sección que cuenta con una caída. No recuerden eso o desplegable de u original Liotta tendría bean activo o visible solo si alguien se conectó aún más si están enviando como administrador, por lo que en realidad podemos simplemente reutilizar estas estimaciones. Yo sólo voy a tomar estas declaraciones, volver a continuar, luego me voy a pegar. Entonces todo se está sangrando y fuera del trabajo. Pero eso no es problema, porque al final, fuera de este bloque de aliados, sólo voy a poner dos carreras solo la ropa de las declaraciones. Entonces todo fuera, nuestro código se realineará correctamente. Entonces si la persona está firmada y si es administrada, entonces verán esta sección desplegable. Y entonces este descenso sexual necesita tener los mismos vínculos que estaban en el impulso. No, el más alto nivel fuera de la zona de caída tenía la palabra hombre, es entender tomar la palabra manejar, y voy a reemplazar el primer enlace por esa palabra. El contenido fuera de la parte superior más, um, elemento o elemento de navegación en toda la gota conocida debería ver manejar aviso de que a la derecha de ella tendrá un ícono tío nazis a la izquierda, así que es como un desplegable. Se alterará cuando sea,ya sabes, ya sabes, se conozcan las esperanzas, Um, y luego los metros de tackle. Por lo que pasaré y cambiaré estos iconos más tarde. Pero para no, queremos simplemente enfocarnos en los elementos de la barra de navegación y en los enlaces, asegurándonos de que vayan al lugar correcto. Entonces el contenido fuera de nuestra barra suficiente estaría bajo suficiente revisión de polvo y se ve que tenemos a Ling's aquí Lo que necesitamos cuatro. Algunos acaban de ir copia del dedo del pie y les arrancó una dos veces más. Y luego podemos empezar de nuevo la cirugía donde empezamos a cambiar todo el texto sobre las referencias son el a trip. Entonces lo voy a hacer rápido. Hicimos algunos ya Alguien para pausar el video son Puedes pausar un video aquí mismo y tratar a ti mismo cuando quieras pausar. Yo ya lo hubiera hecho, y entonces sólo podemos comparar después. Está bien, así que al final de ese ejercicio, deberías tener algo parecido a lo que tengo en la pantalla. También me tomé la libertad de cambiar todo el icono. Entonces tengo algo así como una lista para los tipos de hojas. Tener Effie Dash Angelis para asignaciones en En realidad hizo esto a ciegas. Pero todo eso fue genial. Effie Dash y luego un poco extraño cedido a sugerir dedo del pie lo que tengo disponible para mí en. Tomé decisiones ciegas. Ya sabes, si no quieres tomar decisiones sobre tierras, siempre puedes ir a financiar. Impresionante. Pero vamos. Ya que estamos usando la versión cinco, puedes proceder a ir iconos en. Después se puede ver todo lo que está disponible. Así que más o menos. Si ves listado en la inteligencia y quieres saber cómo se verá, entonces las posibilidades están encendidas más que probables, puedes ir al frente Awesome the website on Solo tienes que escribirlo en. Entonces se tipo de filtro escribió y te mostrará cómo podría ser tu ícono. Otra cosa a notar que más que probable será la versión gratuita fuera de lo que ves en el listado para los 1er 3 enlaces de navegación. También hice cambios porque autor de ellos habría tenido el icono de la casa. Entonces me cambiaron esos viejos también Andi, voy a hacer un ajuste más, y eso es a la página de inicio de sesión, porque si observas y me dejas solo volver a mi página si observas que el log in Ling's no bastante parecen como barras ho o tuercas, los enlaces se ven. Entonces quieren que todo se vea uniforme tanto como sea posible. Alguien para modificar el diseño fuera de nuestra página de registro parcial en. Ya veremos cómo funciona eso. Entonces este es el log in parcial pidge Andi. Como puedes ver, la UL, le faltan algunas de las clases que necesitan los U els para nuestra barra lateral. Entonces si miramos a uno de los existentes, vemos que tiene clases. Amor, knave Las facturas de Dash ahora tienen barra lateral de dash y columnas flex. Voy a tomar todas estas clases y asegurarme de que estén presentes dentro fuera del registro imparcial. Entonces no, el no bar se parecerá algo más a lo que ya tenemos puesto. Entonces los elementos de lista dentro de fuera que necesitarás parecerse más a los elementos de lista dentro del existente. Por lo que estos elementos de lista tienen la etiqueta de tobillo puesta, luego tienen el icono, que fuera de curso es opcional. Pero está ahí y tienen un remolcador de P. Por lo que todas estas cosas realmente funcionan juntas para dar el tipo de efectos fuera que necesitamos alguna disciplina para realizar. Un poco de modificación en esto son realmente su tío Targa, Sólo línea de freno. Trae el texto. Entonces este texto es lo que está diciendo hola persona que está conectado. Por lo que quiero que eso sea exhibición. Por lo que quería que me mostraran dentro de una pita on. Entonces voy a incluir un ícono igual en el ícono. Aquí puede ser tal vez, como una silueta de una persona. Entonces voy a decir icono, clase de remolcador y luego incluir mi f e o F E s esta vez porque están cambiando avena. El frente impresionante. Entonces es F e s. y luego si e dash on, veré al usuario salir. Es decir, ese icono se va a mostrar al lado de las personas que utilizan el una vez que estén logueados. siguiente es este botón, y las modificaciones que estaré haciendo serán bastante similares. Entonces voy a tomar todo este contenido, reemplazar la palabra ley cabra on, Entonces en la etiqueta P, Bueno, se va a decir cabras bajas. Entonces esa es la ley. Cabra en día masacró al Pete. Me mordieron ahí para que vuelva a hacer eso y hacerlo correctamente esta vez. Entonces eso es barco de troncos en su lugar, fuera de ese Peter encendido para el ícono. Yo voy a hacer algo. Al igual que si una embajada, tienen algo de firmar También. Ahí vamos. Yo he firmado mientras que ese fichaje tenemos niños firmados. Terrible. Entonces f e d firmar nota a alguien para modificar los otros dos fuera de pantalla, y te estoy desafiando a conocer mods. Optó por cero en iconos. Usa tu propia creatividad, pero yo lo voy a hacer y luego podremos comparar cancha después. Entonces tengo dos iconos que incluí uno llamado Effie Dash registrado para cualquiera que quiera ya surfear con nosotros. Lo que sea. Apenas el enlace. Y luego nos hemos evadido usuario para el registro. Entonces quiero decir, estoy repitiendo unos cuantos me estanques alrededor del lugar, pero en última instancia, una vez más, puedes elegir tus propios iconos y hacer lo que sea adecuado para ti. ¿ Qué? Voy a guardar todos estos cambios y volver a mi edad Reversión. ¿ Ver el fruto fuera de mi labor de parto? Está bien. Y así estoy viendo un nido son para registrarse en la silueta para iniciar sesión. Y solo para asegurarme de que escribí correctamente la cancha, solo voy a hacer clic en esto y verlo expandirse y contraer adecuadamente. Entonces igual que lo hizo en los ellos sobre el texto desapareció por completo y sólo mostrar el ícono . Si no escribiste los Todd o los ítems de lista para los enlaces de navegación correctamente, entonces cuando intentas el contrato del dedo del pie, entonces puede que no esté tan limpio diciendo que quiero revisar eso. De cualquier manera, le proporcionaré la cancha para que siempre puedas revisar o reemplazar. Ahora, lo último que voy a hacer es reemplazar el contenido de nuestro ahora nuestro cuatro pie de página encendido . Yo quería ser un poco más oficial, pero siempre es bueno darle crédito a las personas que crean los temas y las cosas de código abierto que tú. Entonces tengo ah mensaje de pie de página aquí en este filtro. Pierde su es a la derecha estilo por y creo un link toe admin. Lt e dot io Andi. Conservo ese mensaje original de pie de página de nuestro diseño anterior. Entonces solo voy a iniciar sesión como administrador para que podamos ver el resto fuera suficiente comprador y verificar fuera de la palabra que hemos hecho cuando vaya a la página de inicio de sesión. ¿ Ves eso? A esta página le vendría bien algún trabajo. Necesita alguna modificación para encajar en el tema Mejor. Pero voy a dejar eso solo para no e iniciar sesión como el administrador. Y cuando hago eso, están viendo aparecer algunas casillas. ¿ Dónde? Donde los íconos deberían ser Algunos Justin para comprobar dos veces lo que está pasando con el código Onda. De acuerdo, entonces veo aquí donde tengo si están en vez fuera si es así que pudo haber estado ahí antes. La temperatura puede haber venido con F e r para esa sección, pero quiero cambiarla o f a s porque eso es lo que realmente quiero en. Entonces guarde. Y luego repasemos eso de nuevo. Está bien, eso es más parecido. Entonces, no, estamos viendo en uno sigue faltando. ¿ Qué? Podemos arreglar eso más adelante. Por lo que al menos hemos hecho algunos avances. Estamos recibiendo iconos, y podemos ver que tenemos este menú desplegable para ciertos Bueno, para el admin on cuando no somos amados en este admin, no veremos eso también, cuando estemos registrados y veamos que está diciendo hola en el usuario en Tenemos nuestro enlace de cabra baja. ¿ Cuánto vas a quitar la palabra Hola? Y yo sólo voy a imprimir. Ah, es la dirección de correo electrónico la que se asocia con quien haya iniciado sesión. Entonces esas son las modificaciones que voy a hacer. Voy a arreglar este ícono. Voy a quitar la palabra Hola on. Voy a ver qué pasa con la página de inicio de sesión, y les compartiré todas esas con ustedes. Pero si pegaste la nuestra hasta el final y, ya sabes, que el panel de administración se vea algo como esto, entonces buen trabajo en. 48. Arcos y incorporaciones esenciales: Oigan, chicos, bienvenidos de nuevo en esta lección de video que estará pasando por algunas correcciones esenciales que nos encontraríamos a nuestro layout. Entonces sí dejé el video anterior diciendo que eliminaría la palabra clave hola de la sección donde estamos mostrando el nombre de usuario. Yo sí arreglé la referencia del icono. Tenía lista lesionada inicialmente y eso no estaba incluido en mi conjunto de fondos. Entonces lo cambié a User Plus e hice una solución aún más crítica para el Lay. Además, si recuerdas cuando teníamos nuestra página de inicio de sesión y yo solo navego a esa playa semanal, estaba, ya sabes, apegado al comprador lateral o demasiado cerca para decidir por ese margen no estaba lo suficientemente definido. Y así cada otra página era amable renderizando de esa manera. Entonces quiero decir, esos arreglos fuera de cámara, y sólo te los mostraré. Um, así que para más Bueno, durante mucho tiempo, imparcial, todo se dictaminó la palabra clave hola de la sección que renderiza el nombre de usuario. Espero que todos estemos cómodos con los iconos por No, Así que así es. Arreglé esa plaza y el ícono que estaba asegurando la paridad. Entonces lo cambié para usar su guión plus así que eso siempre es bueno. Si intentas una y obtienes la plaza en su lugar, solo prueba otra. Y luego la sección más importante que afectó sobre Leo fue nuestra sección de contenido. Por lo que había quitado un poco demasiado cancha de nuestro contenido. Y así no se estaba renderizando adecuadamente. Por lo que necesitaba un dar llamado contenido Encabezado de ceniza que tenía su fluido contenedor fluido dentro fuera que si y luego agregar otro que dicho contenido con un guión contenedor WouId dar también y en eso renderizamos el cuerpo. Entonces si vuelvo a la plantilla original, se puede observar que este era el código original. Teníamos contenido, lo referíamos a un montón de información de muestra y luego tenía contenido con un montón de información de muestra. Por lo que inadvertidamente había quitado demasiado del interior de estas inmersiones. Entonces, ¿qué? Que se les reintrodujo y luego esta vez acaba de quitar de la regla en adelante y luego reemplazar eso con el cuerpo de render y así sobre el contenido no se renderiza correctamente. Por lo que puedes positividad ahí mismo y copiar el código del carrito. Si tú, Nieto, pero voy a seguir adelante y voy a hacer algunas otras modificaciones a algunos elementos existentes a nuestra vista. Así que pasé a nuestra página de tipos de hojas en. Estamos viendo la tabla de datos aquí, así que algunos fuera de los iconos faltan aviso Algunos de ellos se ven diferentes, pero luego falta la pluma así que estaba ahí. Entonces necesitamos asegurarnos de que no, que hayamos cambiado la versión fuera del fondo. Iconos impresionantes por los que no pasabas y asegurándote de que nuestros iconos estén apareciendo para cada página. Por lo que faltan de los empleados de asignación. Observe el texto en nuestras páginas de solicitud de licencia, No del todo cómo lo dejamos encendido. Al menos todo está bien con el discurso de nuestros empleados. Otra cosa ligeramente irritante es que este enlace parece estar siempre activo. Entonces voy a modificar esta cosa Así que no siempre está activa. Por lo que comenzando con la modificación fuera del enlace, si miramos a la cancha para el enlace, vemos que tiene una clase llamada activa. Entonces entiendo quitar eso Así que todos los enlaces buscan parecen si queríamos que cambiara actividad, entonces tendremos que leer algún otro tribunal. Pero no voy a dejar entrar en eso ahora mismo. Sólo estoy haciendo que se vea un poco más uniformado. A continuación en nuestros tipos de hojas en XP, Jim fue a modificar los iconos utilizados Así que primero, después fue a decir F A s. Así que obtenemos la clase esa y luego estoy cambiando esto de Effie Dash, lápiz toe, tal vez. Bueno, lapicera de lápiz es lo que tienen para mí. Puedo dejar el círculo de entrada y dejar la basura encendida. Entonces podemos revisar eso. Esos cambios ahora que estamos viendo son icono de Pena una vez más. Ahora solo voy a hacer un viaje a nuestro discurso de detalle porque lo creamos hace un tiempo . Pero lo que hicimos fue decirle explícitamente qué página de diseño usar. Entonces cuando creamos nuestro nuevo Leo para lo habría establecido como el predeterminado en, sin embargo, eso puede ser anulado en un Pediatría específico. Simplemente voy a pasar a ese discurso de detalle sobre ustedes verían aquí donde está especificando el diseño a usar. Por lo que esto anularía esa configuración predeterminada que ponemos a la vista comienza. En realidad sólo voy a quitar esto. Pero si tienes el admin lt d más tener un tema. Trabajando con lo que Tener múltiples Leo, Melocotones, ¿alguien? Algunas páginas para usar una y no la otra. Entonces así es como puedes anular específicamente esa pequeña referencia para nuestra localizo Dejar índice de asignación PGE Voy a cambiar el icono Toe FD Dash User Dash edits on que renderizará algo más parecido a esto con ese lápiz con ese silueta y luego voy a dar o dejar Solicitar edad alguna atención. Entonces primero, voy a quitar este, um, este texto que es índice y también voy a quitar este botón ya que realmente no implementamos nada para este botón y luego voy a modificar la pantalla apagado estas tarjetas en los datos ahí en por lo que de nuevo en nuestro código, simplemente puedo eliminar estas dos líneas la H un tipo para índice en el botón para crea acabo de quitar las de. Entonces revisemos nuestras tarjetas. No volver dedo del pie ni admin. Lt Edad o páginas de muestra que habríamos conseguido en nuestro archivo archivo. Estoy mirando la página de widgets y estoy viendo aquí su idea fuera de cómo pueden verse los widgets . Por lo que me gusta la fila superior fuera de los widgets. Creo que encajan perfectamente con lo que quiero lograr. Ahora, fin de encontrar la cancha asociada al widget que se muestra, podemos simplemente hacer clic derecho en él o para inspeccionar Elemento. Y eso traerá a la altura toda la cancha asociada a ese widget. Por lo que inspeccionar elemento es un agradable lago y utilizar el evalúo. ¿ Qué está pasando? Entonces ven que tienen la regla. Después tienen la llamada MP tres, la división, las mismas divisiones que tenemos para más de cuatro tarjetas que implementamos. Pero entonces el yo en parte es que tienes en caja cuatro y luego dentro de la caja de información. Tienen algo de contenido, así que solo me voy a derrumbar el dedo del pie. Este def. Eso se llama info box. Puedo dar click derecho en. Entonces puedo copiar en dykan, copiar todos los demás elementos de copia puntual, y luego volver a mi cable encendido, luego de adentro apagado. Llame a MD tres. Voy a pegar todo lo que acabo de copiar. Entonces, por cada llamada MP tres que tenemos, tenemos ese cuadro de información. Solo estoy mental duplicado a través de cada uno antes de empezar a conocer cualquier modificación. Entonces eso es eso. Y luego es fácil de modificar e incorporar porque ya tengo todos fuera de los archivos de script requeridos para el info box el trabajo. Ahora empecemos nuestra modificación. Observe que lo que copiamos tiene texto estático encendido. Simplemente necesitamos apoyar el texto estático con nuestro texto dinámico de la misma manera. Por lo que tenemos el área de contenido sobre la era de contenido tiene algún texto en algunos números, por lo que recordamos que habíamos contratado Title, que tenía el texto. Por lo que se trata de solicitudes totales. Entonces t esto reemplaza los mensajes de palabra y luego tuvimos el valor de conos en Die reemplazar esa sección y luego puedo acabar con mi tarjeta original y luego voy a hacer eso. Se adapta a los tuyos para cada uno de descuento. Él va hacia adelante, así que voy a hacer otra por ti, alguien que tome este valor que estamos generando dinámicamente. Voy a reemplazar mensajes sobre eso. Fui a tomar el número y luego reemplazar ese número, y luego puedo acabar con esa tarjeta, alguien que haga los otros dos. Andi, voy a retomar Habiéndolos hecho, puedes hacer una pausa y hacerlos tú mismo son geniales. Entonces espero que no tuvieras problemas en dure coat se ve similar a esto? No. Lo siguiente que queremos hacer es cambiar el color. Por lo que tenemos B g info. Recuerda que estábamos usando diferentes colores para los diferentes estados. Por lo que las solicitudes pendientes habrían sido BG dash warning. Um, entonces tenemos B g dash para éxito aprobado con aviso de que tenemos BG codicioso en exitosamente . Si queremos un codicioso en color, podemos hacer eso también. Y luego tuvimos B g dash danger Onda dejar. Yo me voy. El reporte de tortura dice en para lo siguiente que probablemente quieras hacer es cambiar el ícono de tipo off que se está usando. Entonces, por ejemplo, solicitud de gasto. Probablemente usaré algo que es como una exclamación para decir, Oye, Oye, ya sabes, se requiere atención en estos. Utilizo círculo de pollito para las solicitudes aprobadas. Está bien, así que voy muy rápido camión. No te voy a aburrir con mi selección fuera de los iconos, pero solo quiero mostrarte cómo debería ser al final ese ejercicio donde tienes tus iconos siendo mostrados. Si intentas hacer ícono y no funciona, más probable es que la primera parte fuera de las clases, si están en quieres cambiar eso? Si es así puedes intentar esa modificación. Entonces se ve en algún lugar fuego basado en la plantilla que copiamos y algunos son Si él s asi me trabajo para que yo no trabaje. No te voy a aburrir con por qué uno va a trabajar en por qué uno no lo hará. Pero puedes destruir y probar todos los iconos y ver cuál es un buen ajuste. No, tengo una modificación más que quiero hacer para esta lección en particular sobre que está rodeando la tabla de datos. Entonces sí, se ven bien. Pero luego en realidad hay un look de cuatro bootstrap que se puede aplicar a la tabla de datos en admin. LTTE sí tiene el enchufe rápido para mí eso pasó. Entonces volvemos a nuestro archivo con nuestros archivos LTTE admin y entramos en enchufar más corto de lo que ves. Una carpeta llamada las Tablas de Datos Dash Bs cuatro y que viene con un archivo CSS en un J s lejano, por lo que sólo necesitamos copiar esos sobre el dedo nuestro proyecto como lo hemos hecho con otros archivos en el pasado. En caso de que por botón, voy a hacer el CSS ganado para ti haciendo clic en el que termina con los hombres dot copia CSS y luego ir al proyecto y dentro de la carpeta CSS. Voy a dar click derecho y Click Pegar. Entonces repetiría esos pasos para el archivo JavaScript. A continuación, volveré al administrador LTTE Leo Page on en la sección donde originalmente había referenciado la tabla de datos, ve este archivo por CD y link. Sabré reemplazar ese texto por una referencia al archivo CSS local en la carpeta de mi sis para tablas de datos que atados significan que CSS on de manera similar al final de este golpe melocotón, sustituiré la referencia al archivo de script por una referencia al Archivo GS local. Entonces eso sigue ahí, slash gs slash on, entonces esas son las mesas que habia golpeado entonces puedo ver si esto en luego probar mis cambios. Muy bien, entonces mi página se recargó y toda la mesa se fue. Entonces eso significa que me falta algún archivo veranos de referencia entender? Para inspeccionar el elemento Onda, comprobar lo que está pasando en mi consola en él me está diciendo que no puede encontrar alguna llamada de función , y está apuntando a la preocupación geek. Entonces creo que me falta algunos otros archivos de consulta J. Yo quiero volver a mis enchufes. Andi, revisaré mis datos. Carpeta Tablas. Ah, así que en realidad me falta este archivo de script Java esencial, que solo se requiere para las tablas de datos por completo. Entonces solo copiaré esto. Andi, tráelo a mi proyecto. Se sienta en la carpeta, y luego solo voy a duplicar la línea que incluye las tablas de datos. Pero entonces por encima de la línea original, voy a cumplir referencia a esta nueva tabla de datos J Query data tables file. Entonces lo guardaré y lo intentaré de nuevo tenemos lift off. Entonces no, estamos viendo o tabla de datos luciendo un poco más refinada, y como que encaja en el, ya sabes, todo el proyecto un poco más así que vemos que tenemos la misma funcionalidad de ustedes. Contamos con nuestra búsqueda tenemos o filtramos qué búsquedas de filtro tenemos o paginando Andi. Todo parece más uniformado. Entonces espero que te hayas divertido haciendo estos ejercicios, ya sabes, restyling nuestras páginas. Sólo estoy pasando por asegurarme de que todo esté bien. Pero sí sé que hay algunos vacíos. Uno, no hay página de inicio. Hemos llegado tan lejos sin hacer una página de inicio. Te estoy desafiando a que llegues a un bonito hogar creativo. Que sea compartir conmigo. Seguro que encuentro valor en la forma en que lo hiciste. Yo mismo voy a inventar uno. En también hay otras páginas que tal vez los iconos han desaparecido. O tal vez la página no era, Ya sabes, no se tomó mucho cuidado en el armar real fuera de la página cuando estábamos trabajando en ellos inicialmente. Entonces te estoy desafiando a que solo pases por el proyecto, limpies esos fuera cambio de esos estilos y lo hagas tan hermoso como necesitas que sea. 49. Ingreso y páginas de registro personalizadas: Hey chicos, bienvenidos de nuevo en esta lección estará buscando configurar una página de inicio de sesión personalizada y página de registro para nuestra aplicación. Como sabéis, hemos estado trabajando con el tema admin LTTE y así estaremos inspirándonos en el vapor y sus preajustes del diseño del dedo del pie, nuestro propio inicio de sesión y formularios de registro. Ahora, en mi pantalla, verás las plantillas de pantalla de inicio de sesión LTTE admin donde pidieron contraseña de dirección de correo electrónico . Tienen un botón de asignación de caja de recuerdo ME, y también tienen botones para cualquier otro letrero en motor que pudiera estar en uso. Además, tienen enlaces para Olvidé mi Contraseña y regístrese y nueva membresía. También verás que tienen una página de registro que es de naturaleza muy similar. Pero los campos serán diferentes y relativos del dedo del pie la información que estará pidiendo o los usuarios que se registren en última instancia de cualquiera fuera de las páginas de muestra. Ya sea índice 12 o tres, podrás acceder a la sección que dice extras. Entonces en el trueque de knave a la izquierda, se ven extras y luego se ven enlaces de inicio de sesión y registro en ambos off. Estos enlaces conducen a las páginas de hombro anteriormente para que no te den esas páginas de muestra en. Tienes algún otro arrancador y aire para cuatro o cuatro páginas y otras páginas de las que puedes inspirarte. Pero una vez más para este video sólo estará inspirándose en el inicio de sesión en el registro. No, ya he configurado el inicio de sesión en Die puede hacer clic, registrarse y navegar a mi registro. Y si tomas nota, ves que ya personalicé ya sea forma dedo del pie mi contexto, ¿ verdad? Entonces no voy a conocer a ésta una larga lección. Yo ya este el recurso es toe soportes. Con esta lección se incluyen las actividades, pero vamos a pasar un corto tiempo pasando. Parte de la personalización es, y algunas de las modificaciones que se tuvieron que hacer, ya sabes, es una facilidad. Este lifting facial no, en la pantalla es el código que utilicé para mi pitch de registro. Pero antes de entrar a mi cancha, quiero mostrarles la corte original y luego tipo de caminar por Hawaii, ya sabes, transfirió sus los cambios que hice en DSO. Si vas a estar haciendo el mismo proceso que yo. Entonces se te lo puede conseguir en consecuencia. Ahora las páginas originales se pueden encontrar dentro de la carpeta at admin lt dentro de páginas y ejemplos y luego ves registrarte y también verás iniciar sesión. Así que los abrí ambos en Nope I Plus plus Y empecemos con el log in ahora la hinchazón es bastante directa. Tienen un estatuto adicional el cual no me molesté dedo incluir porque realmente no vi la necesidad de ello. Pero puedes incluirlo y ver qué es diferente al respecto. Pero yo no incluí este. Todo lo demás ha sido incluido. El asiento estrella para el icónico Framework es realmente un enlace Cdn el cual se escanea, ya implícito por nuestro uso fuera de los archivos CSS LTTE admin. Pero avanzando hacia adelante. El apartado en el que me concentro mayormente fue el Dave con el cuadro de registro de clases. Entonces todo dentro de ese Dave, en realidad copié barco, así que seleccioné todo fuera de este dar y lo copié. Pero luego eliminé la sección para los Loggins Sociales porque realmente no tengo ninguna necesidad de eso en este contexto. Pero fuera de eso me quité todo el cable asociado ID con la página de inicio de sesión o activé que te diste cuenta de que el cuerpo tiene una clase llamada hold dash transition en otra clase log en ese discurso. Por lo que en realidad creé mi propio vivo en lugar de usar la charla corporal. Yo creo esas ideas. Andi. Reutilizo estas clases, y eso es lo que hace alinear su centro, sabes, se muestra en la página lo más cerca posible de la demo. Entonces de vuelta en estudio visual y en mi cancha, ves que tengo que dividir la parte superior con las clases, mantener esa es transición e iniciar sesión en ese discurso. Y luego tengo los datos para el cuadro de inicio de sesión. Tengo el título cargando, luego dentro de fuera de la tarjeta para el título que he enviado a gestión de licencias de núcleo. Yo re incluí mi live con el resumen de validación, así que en realidad saqué algunos fuera de la cancha de la página de inicio de sesión original en re incluido en este formulario. Por lo que tengo el tribunal para el resumen de validación. Empecé a cambiar viejas las entradas para los elementos por lo que la entrada original de la plantilla habría tenido tipo de entrada igual al correo electrónico en la clase y el marcador de posición mientras mi modificación a eso fue que dije entrada. Y luego tomé la S antes de introducir ese correo electrónico del cuadro de texto original para el correo electrónico en usé eso para reemplazar el tipo igual a parte porque recuerda que una vez que use nuestros ayudantes SB, se especie off implica el tipo on implica la validación que necesita ocurrir. Pero conservé todo lo demás. Hice eso para el cuadro de texto E mas email, y lo hice de nuevo para los últimos cuatro libros de texto. También me adelanté e incluí el apartado para la validación el. En realidad debería haber colocado eso fuera de este dar porque entonces en realidad aparecería en la misma línea. Entonces necesito poner eso entre los Dave. Entonces acabo de hacer ese cambio mientras estamos aquí. Y así la sección el lapso para el mensaje de validación aparecerá fuera del grupo de entrada da desde la plantilla moviéndose. No modificé el recordarme en die retuvo el letrero en Andi. No cambié nada con esos para los cuatro, pero contraseña onda registra enlaces. Cambié los enlaces o los caminos para el tobillo. Toxie is be dash speech on for about password. En el original, habrían tenido una deriva, creo hashtag bien, tenían un viaje algo. Por lo que están apuntando a las otras páginas de plantillas en el tema admin LTTE para Olvidé Contraseña y para Registrarse Sarah coloque las con nuestras prácticas. Pero claro, una vez más, si quieres inspirarte como, por ejemplo, para la página de Pastor Olvidado, entonces puedes hacerlo. Eso es todo por las modificaciones hechas a lo grande en tono. Y entonces puedo pasar a la página de registro en usted ve que es bastante similar. Por lo que acabo de volver al impulso ahora para que podamos ver lo que está pasando. Entonces ya ves, es el participio de loto. El cuerpo tiene clases, mantenga transición de tablero y registre página de guión en die una vez más utilizó el sustituto de licencia para esa etiqueta de cuerpo ahí mismo. Tengo un profundo para el encabezado en, y luego el formulario. Por lo que nota que el formulario toma ah, nombre completo en. Después toma contraseña de correo electrónico y se retiró en la confirmación de la contraseña. Por lo que mis modificaciones provenientes de mi página de registro original habrían tenido nombre y apellido. Así que sólo el nombre completo Dave Group Live Input Group on lo duplicó e hizo uno en s antes de nombre en uno en este antes apellido también se aseguró de incluir esos vanos de validación justo de la misma manera después de que cada grupo de entrada en chico cambió avena, el S antes de cada entrada, por lo que tienen entrada. Perdón. Tener contraseña de correo electrónico de nombre, apellido y luego tener la contraseña y contraseña confirmada en entonces para el envío me recupero cualquier otro enlace y solo use el botón dentro. El regla en este botón es Bt y Block. Por lo que se extiende justo a través de la pantalla y luego para el ya tengo una cuenta. Me refiero a que seguro de simplemente cambiarlo a sp page dot slash iniciar sesión. No hice más modificaciones en DSO. Yo sólo voy a traer de vuelta a la pantalla lo que hice en entonces podemos jodernos esta noche. Por lo que este es el formulario de registro en este es sobre forma de carga, ya que generalmente siempre se puede pausar el video en los diferentes puntos donde se desea copiar fuera la cancha de cualquier manera han incluido las referencias de corte con este menos. Una modificación más que hice fue en mi control domiciliario, donde lo puse para autorizar. Entonces lo que no quiero es que nadie pueda ponerse el dedo del pie del Bro. Cualquier parte fuera de esta aplicación sin que se autorice se autentica. Por lo que al sentarse autorizado en el controlador domiciliario, lo primero que le va a Lourdes cuando trance solo. El home page es la ley en pitch. Entonces vamos a probar esa experiencia. Entonces si voy a la aplicación completamente en Molestado, entonces se va a cargar el log in pit. Entonces déjame probar y Bro directamente desde mi página web, y entonces eso trataría de seducir al control domiciliario. Pero fíjate que fue directo al tono de autenticación. No irá a ningún otro lado hasta que seas autenticador, porque he puesto autorizado prácticamente en todo el controlador. Entonces en este punto, o bien tienes que autorizarte o autenticadores tanto lo siento o registrarte para que puedas tener en un conos más o menos sintetiza todas las modificaciones que yo hubiera hecho a las páginas de registro e inicio de sesión. Andi, espero que tú, ya sabes, sigas el ejemplo, y no quiero que el dedo del pie de carbono me copie. Usa tu propia creatividad y trata de conseguirlo con el dedo del pie. Mira como te gustaría que Look, Andi, siempre estoy abierto a la retroalimentación. Siempre estoy abierto a ver en qué estás haciendo. Podrás compartir tus capturas de pantalla conmigo y todos podemos, ya sabes, escrutar todo nuestro trabajo en conjunto. 50. Revisar y añadir cambios a GitHub: Oigan, chicos, bienvenidos. Pero esta es nuestra lección de revisión final para este modelo donde habríamos implementado un nuevo diseño usando el tema admin LTTE. Tan sólo una revisión rápida. Habríamos cambiado sobre el diseño de nuestro bootstrap estándar para Leo. Eso habría llegado con nuestro proyecto en. Implementamos este nuevo layout donde tenemos una barra lateral. Tenemos iconos bonitos, intuitivos. Tenemos unas cuantas animaciones más. Habría personalizado la página de inicio de sesión en la página de registro en entonces para nuestra página de inicio . Bueno, te hubiera retado a que llegaras a algo creativo, pero entonces para mí, ¿qué? Que se autorizó para que cuando se carga la aplicación, se requiera que una persona inicie sesión antes de poder proceder a cualquier otra cosa Después iniciar sesión, el usuario es llevado a la página de inicio. Y una vez más, me interesa ver qué se le habría ocurrido para su página de inicio. Mantuve la mía más simple e informativa para que puedas ver exactamente de qué se trata esta, um, esta aplicación. De cualquier manera, quiero que seas creativo y saquen lo mejor de las herramientas puestas a tu disposición. Entonces solo voy a volver a nuestras páginas de muestra de LTTE admin y te mostraré que tenemos una sección ahí llamada la documentación donde realmente te muestran cómo implementar la mayoría si no todos fuera de los enchufes y componentes que son, tú saber, incluido en todo este framework edificio Andi Además de eso, el hecho es que admin lt utiliza todo el bootstrap para los componentes. Entonces cualquier cosa que puedas usar desde bootstrap que hemos estado usando sobre para saberlo también está disponible dentro de admin. Lt sólo con, sabes, un ligero giro ya que habrían dado su propio estilo para comer estilo. No obstante, puedes consultar toda la documentación, mirar los otros enchufes en los componentes o los otros componentes de JavaScript y ver que, ya sabes, podría haber cosas ahí que te gustaría usar que yo no uso en mis clases. Pero se puede seguir adelante e implementar. Y como siempre, si te encuentras con problemas o dificultad sientes, Frito, avísame y me aseguraré de ayudarte. Como dije, esta sería una breve revisión ya que sólo vamos a saber, balance de lo que hemos hecho, entonces adelante y check in para levantarse. Por lo que solo hago clic derecho en mi solución al click Comprometidos Entonces proporciono mi mensaje de check in. Así que acabo de decir que implementé el tema y agregué requerido rápido en entonces solo voy a seguir adelante esa corriente en, luego comprometerme todo en fregadero después de completar este ejercicio. Nuestro tribunal no está actualizado en el enlace a este repositorio o a este set off cambios se incluirán con esta lección así como cualquier otro recurso. ¿ Eso te refieres a necesidad? Si lo has llegado hasta aquí, quiero felicitarte. Buen trabajo hasta ahora una vez más, sé creativo. Prueba algo a un costado de la caja. Andi, si te encuentras con algún problema, avísame y me aseguraré de ayudar 51. Funciones de repositorio y síndrome de: Oigan, chicos, bienvenidos de nuevo en este video estaremos buscando convertir sobre funciones en unas funciones síncronas y estaremos empezando con el repositorio. No, tengo abierto el punto de registro CS que ven ocasional ese archivo CS, que es el tribunal detrás para nuestra identidad. Edad es un incendio de ConEd por iniciar sesión. Solo estoy usando este dedo del pie de archivo representar cómo se ve una función asíncrona así que habría visto funciones asíncronas en uso. Las vialidades son aplicación, Andi. A veces los uso, a veces un faldón alrededor de ellos. Pero hoy queremos ver cómo las implementamos y por qué están ahí o bien. Entonces cuando la función asíncrona realmente se implementa como ah parte del paradigma de programación paralela que está orientado hacia hacer o cuarto en un poco más eficientemente y utilizar el recurso del sistema es un poco más eficiente. De acuerdo, entonces lo que pasa es que en si core son dot net core y en trabajo diferente, o que él era bastantes funciones asíncronas y suelen usar la palabra un fregadero al final las funciones síncronas está aquí sino tasing. Tienes el registro de contraseña en un creo que tienes un montón fuera de ellos. Pero creo que también notarás que las definiciones de función también son un think. Entonces verás algo así como tarea de enfrentamiento público en luego el nombre fuera de la función, ¿ verdad? Entonces cuando es función de evitar, así es como se ve. Es solo tarea de enfrentamiento público andan on get Así que si tienes un vacío seguro de que quieres hacer función sincrónica internado, lo haces algo como esto. Sustituirías ese vacío por la tarea de palabras clave. Muy bien, Cualquier vez que estés haciendo una función call toe une función síncrona, tiene dedo del pie tener la palabra clave lejos. Entonces en cualquier lugar que veas un fregadero, vas a ver la palabra clave un trigo. Por lo que dicho, esas son tres nuevas dos horas. Estaré buscando facilitar tarea en espera Andi También notarás que cuando es una volea regresando Foshan que tienes tarea andan tío bracket en el tipo de datos siendo devuelto y luego cerrar tío bracket Así que esas son cosas que quiero mirar como nosotros empezar a re factor son cordón para ser un sincrónico solo voy dedo del pie minimizar las áreas aquí en ellos sería comenzar con mi bestia repositorio de ojos. Entonces aquí sabemos que definimos todas las funciones que cada otro repositorio hereda. Entonces quiero que cada repositorio herede en función asíncrona. Está bien, así que bien. No, son synchro nous su default la forma en que los hicimos inicialmente, lo que voy a hacer es ver tarea abrir corchetes angulosos alrededor del tipo de retorno, que en este caso, es yo colecciono tiempo fuera t ser clase ordinaria y luego cierro ángulo bracket on, entiendo seguir adelante y hacer eso para el siguiente, lo cual está bien por I d. T siendo la clase genérica que queríamos encontrar. Entonces somos eso con los corchetes angulares. Por lo que estas son todas funciones de retorno del valle que acabamos de ver. El patrón es que vemos que los corchetes angulares de tarea son propiedad del valor o eliminar el tiempo que se devuelve, y luego cerrar los corchetes angulares. Yo sólo voy a hacer eso por todos los demás. Muy bien, entonces no, cada función dentro de mi archivo basado en repositorio es un synchro nosotros. Entonces sólo voy a decir que en ese entonces quiero iniciar una transformación con el tipo de hoja. Entonces voy a ir a la me voy, tipo nuestra positividad. Eso es un choque concreto en la foto del cartel. Lo sentimos, Dejar repositorio de tipo. No. Dejo a Tyra Buster la clase de concreto encendido cuando llegue, veré la línea Roja. Conoce la línea roja está ahí porque está diciendo que bueno, no he implementado los interfieres. Eso es realmente porque acabo de cambiar cada función para ser sincrónico, pero todavía sólo tengo las mismas implementaciones de Cronus aquí. Por lo que vamos a pasar por estos juntos va a estar cambiando cada uno de estas funciones para ser una enfermera de sincronizado para que empiece con crea. Por lo que tenemos toro público crear. Entonces, como acabamos de discutir, lo primero que necesitamos aquí es público un fregadero, y luego y solo veremos tarea. Y luego fui er arriba el tipo de retorno, que es toro dentro de corchetes angulares. No, vamos a conseguir una línea verde aquí porque está diciendo, Bueno, Bueno, veo que estás implementando algo un fregadero, pero no estás haciendo nada. ¿ Un fregadero? No. Una vez más, las funciones de carreras que se nos dan suelen tener la palabra clave que piensa al final. Entonces, al igual que se da el anuncio los compran en diferentes trabajos. Pero debería poder hacer en una cosa. Entonces si llego al final aquí o si solo me quito el punto la palabra se suma al doctor y luego sí controlo el espacio. Entonces veré agregar un fregadero, ¿verdad? Entonces no, hemos agregado, sin embargo, en un fregadero ahora está apareciendo otra línea verde porque recuerda, cada vez que estamos haciendo una llamada a función flexibilizadora, tenemos que precederla con la palabra clave esperar. Sé que eso está hecho. Te diste cuenta de que todas las líneas se han ido, todas las advertencias se han ido, y no está satisfecho que esta sea una buena implementación off en una función de sumidero y una llamada a función de cantar . Ahora podemos hacer lo mismo para borrar. Por lo que una vez más, necesitamos la palabra clave un fregadero tras público. Entonces decimos ángulo de tarea, sujetar el tipo de retorno encendido, luego los leads. Bueno, entonces necesita algo asíncrono. Entonces voy a buscar si hay algún quitarte, no lo es. Y cuando hago eso no veo, me quité un fregadero. Está bien, entonces ahí algunas funciones que nos dan que Tener en un fregadero Twin son alternativas ahí ? Algunos que simplemente no así, ya sabes, manera de elegir Andrew. Entonces voy a dejar borrar, como es para no en pasar a los siguientes. En realidad, voy a hacer eso por todas las funciones dentro de aquí. De verdad estoy justo en copiar la tarea A sink en los primeros corchetes angulares y luego entender ritmo del dedo del pie que en cada uno que voy a la derecha? Por lo que no más encontrar Todo es nuestro soporte de ángulo de tarea de cara pública. Devolver nuestra colección de tiempo e daña nuestro tipo de licencia on, luego bajo corchetes al final de ese derecho en, entonces lo que cumpliría esta temporada podría ser una versión A sink fuera de la lista a? No. Cuando llego al final las palabras a policíaco sobre control de prensa y espacio, vería que la inteligencia apareciera si hubiera más opciones encendidas. Como puedes ver, no hay nada apareciendo de persona. Randall. Apareciendo algo que realmente es porque no hay un fregadero que se está proporcionando ahora. Esto es realmente porque no tengo la biblioteca que necesito. Necesito asegurarme de que estoy usando, creo que Microsoft dot entity framework core. De acuerdo, así que la cosa es, que ese enlace nos da algunas funciones increíbles. ¿ Qué? Estamos muy limitados del dedo del pie oferta de Aleen Cust, pero el marco o biblioteca de la entidad de Microsoft realmente lo abre. Entonces si no ves las carreras funciona su hermano, porque no tienes esta biblioteca, si las estás viendo, entonces significa que tienes la biblioteca, y eso no es problema. Entonces si vuelvo a la lista y luego presiono el espacio de control, entonces verán que estoy consiguiendo el turista se hunde. Está bien. Entonces, quiero decir, si estás si todavía no estás viendo eso, entonces tal vez hay un problema más grande en, ya sabes, puedes contactarme, pero deberías estar viendo a listar que se hunde bien el. Entonces una vez más, una vez que estemos haciendo una función, llama a Tony hundirse. Tenemos que precederla con la palabra clave. Uh, espera. Está bien. En eso resuelve eso. Entonces podemos simplemente continuar con esto. Um, acabamos de poner esto de nuevo en el portapapeles. Simplemente lo estaré pegando para cada función en definido. ¿ Se encuentra un fregadero? Por fin hay un fregadero en DYP recibió esa llamada con un peso moviéndose. Andi, tengo estos teléfonos y no modificé esto. La definición para la declaración fuera de esta función en la clase de repositorio tipo hoja de ojo . Ah, déjalo como está. Pero me muevo en el dedo del pie uno que en realidad está implementado. Por lo que hes existe, haciéndolo en remolque. Sincrónico ¿Hay algún pensamiento? Ahí vamos, por nuestro camino, todo bien. Entonces por favor señala que si sientes ponerlo en la hora aunque pongas en la muerte que para el encabezado para el teléfono mostrado ser un fregadero y todo si no lo pones en la tarjeta de función y vas a estar viendo un angosto que no es realmente diciéndote el pelo. Te falta la palabra clave flexibilización. Oh, espera. Perdón. Correcto. Entonces solo recuerda poner en eso espera porque el error realmente no te dice que falta. Muy bien, así que a continuación tenemos guardar haciendo que uno asíncrono hay una caja fuerte cambia un fregadero. Ahí vamos a bucear, evitarlo con la palabra clave. Esperar más para actualizar convertirlo en un fregadero. ¿ Hay una actualización un fregadero. Vamos a revisar. Está bien. No hay actualización, A cantar. Está bien. Pero entonces te das cuenta de que save me está dando un error de repente. Y eso se debe a que guardar está regresando a tipo de tarea boule cuando se espera que esto devuelva un toro. Entonces sí, puede que veas Task bull aquí en esto es un toro de tarea giratoria. Pero todavía vas a ver la flecha una vez más. Si estás haciendo un call toe en función asíncrona, ya sea que lo definas tú o que es uno que te da el framework, necesitas la palabra clave. Yo espero. Entonces una vez que pongo de alguna manera, es que todos están contentos. Está bien, Así que puede que no seas capaz ya sabes, hacer la parte central F es sincrónicamente. Pero al menos si tenemos esto implementado como asíncrono, entonces seríamos capaces de llamar o hacer uso de esa funcionalidad asíncrona. Ahora, dado que ahí algunos casos donde podemos hacerlo asíncrono en algunos casos donde no podemos , ya sabes, gris afuera, podrías ponerlo algunos lugares y no tenerlo algunos lugares. Eso está perfectamente bien. O sea, el hecho es que puede que tengas la opción. Algunas cosas pueden no. Está bien, entonces si vuelves a crear sí, teníamos el anuncio mirando pero entonces estamos llamando a otra función de cantar aquí. Por lo que esta es una llamada de función de flexibilización. Éste nos fue dado por el sistema. Pero entonces esta es nuestra función definida, que es una cosa. Por lo que necesito decir un peso en entonces para borrar mientras eliminado no tenía un increíble Nosotros sí tenemos una cultura de la fortuna en una función de fregadero. Así que mira lo que pasa si no hice que toda esta función sea sincrónica Entonces voy a estar consiguiendo el error aquí en entonces va a estar viendo no puede convertir implícitamente el tipo encendido. Entonces yo diría Oh sí, porque tú crees que necesito un trigo y ellos miran lo que pasa cuando digo Oh, espera. Obtengo un error aún mayor porque el hecho es que si voy a llamar a la función sincrónica que a la función, hacer la llamada también necesita definirse como un intento sincrónico. Entonces esas son pequeñas cosas. Poco gotchas. Una vez más, los errores pueden no ser tan claros a veces la sugerencia no es la mejor o la solución real que podría desear en la situación. Entonces es bueno tener un entendimiento fuera de lo que cada situación causa para no. Cuando miramos hacia atrás, vemos que hemos implementado dejo tipo repositorio con éxito. Andi sabe que un repositorio para el tipo de hoja está bien para que podamos pasar al otro. Entonces si voy a salir de solicitar repositorio que voy a ver la misma línea roja sobre tendría que realizar la misma cirugía tipo off en lo mismo para dejar un lugar. Entonces lo que voy a hacer o lo que te sugiero que hagas, es video positivo. Intenta estos por ti mismo. Yo los voy a hacer y luego cuando se reanude, podemos comparar nuestras notas. De acuerdo, algunos de vuelta y voy a recoger con el repositorio de solicitud de licencia. Entonces en primer lugar, estoy modificado. Deja al solicitante positivamente girando el pozo. Dejo postura solicitante girando la definición o declaración lo siento en remolque, una función de tarea. Y entonces procedí a cambiar todo lo demás en una tarea muy parecida a por qué no me fui repulsado er ahí ciertos que estaban en excepción en Bueno, realmente. El get peticiones por parte de los empleados, como que tuve que refractar la cancha porque lo que pasó es que yo estaba regresando. Encuentra todo punto ¿dónde? Todo lo demás que te das cuenta de que donde no tiene nada en la lista para en esta situación no tiene en un fregadero. Por lo que f core realmente te da estas funciones de enlace las funciones de enlace siendo el desgaste y los turistas y los primeros nuestros valores por defecto y ese tipo de funciones que te dan cuando estás interactuando directamente con el detalle, sé tan como primero nuestro default en esta situación, está interactuando directamente con la base de datos. El para enumerar un think está interactuando directamente con la base de datos. No obstante, en esta situación tuve que definir una llamada variable. Es solicitud de dejar esperar los resultados de la llamada de funcion find all la cual cambié en una flexibilización on. Entonces devolví la solicitud de licencia que en realidad eran así que estas funciones dispuestas ya no están interactuando directamente con la base de datos, pero no hay interactuando con sólo otra variable, ¿ verdad? Para que algunas situaciones se vea el enlace con el A se hunda. A veces no lo verás. De acuerdo, entonces por eso era importante que incluyéramos a la Biblioteca Entity Framework porque la biblioteca funciona contra la base de datos no es necesariamente los conjuntos de datos que vienen o los resultados de datos que provienen de la base de datos. Entonces después del hecho a la cancha un poco para que pudiera facilidad ese peso en la final en día, devolver los resultados en consecuencia cuando acabamos, ya sabes, reformar que todo lo demás, sin embargo, era bastante en línea con lo que hicimos más en el repositorio tipo hoja. Entonces estoy seguro de que no tuviste dificultades ahí. Y si lo hiciste, entonces sabes que puedes sentirte libre de pausar el video sobre revisar estas funciones ya que me estoy desplazando y enfocando en cada una. Muy bien, así que a continuación tenemos la asignación I leave o poster, que tenía tres funciones personalizadas adicionales, que también cambié en tareas. Está bien, en ese entonces, en la implementación, tendré que hacer factoring similar. Entonces en este caso, estamos regresando. Encuentra todos los puntos donde conozcas, todo lo demás. En cambio, creé una variable de distancia a los resultados fuera del hallazgo todo en. Entonces regresé resultados pensados eran para que sepas que de hecho puedes, acuerdo. Es posible que tengas dificultad en la cara del pie si pensaste que se lo dijo. Saludos a. Si no, entonces aquí está nuestra manera nuestra propia hija y dificultad pudo haber enfrentado. En cuanto a los otros genéricos crean borrar órbita. Andi existe y encontrar por yo d en encontrar fuera de todos esos Mira igual. Estamos más o menos tenemos el para enumerar una cosa donde el primero, nuestro predeterminado un fregadero en, luego para los otros personalizados donde teníamos que encontrar todo en canteras en ellos agregamos lo mismo donde yo simplemente bien, el resultados del hallazgo todo dentro de una variable en luego devolvió la operación contra los resultados fuera del hallazgo todo lo mismo para los consigue asignación de licencia por empleados y tipo rand, Todo es más o menos se ve a parecer. El cool es que nuestro posit Torrey debe comportarse de manera más eficiente a la hora de consultar la base de datos al realizar nuestras canteras y tal. Pero entonces cuando construya, verás que tenemos un montón de errores fuera tan bien, esta zona parece que es sólo ah falta mucho. Creo que pude haber cambiado algo en un fregadero encendido. Permítanme que sólo verifique eso. Por lo tanto, déjame votar. Creo que ahí va hice esto un pensar en la victoria algunos pero no lo hice en la definición. Entonces déjame hacer eso rápidamente. Y luego fui a construir sobre dso les voy a mostrar los errores que espero ver . Entonces sé que voy a conseguir errores. Esto no es un ejercicio hecho porque acabamos de ver que cada vez que llamas y función asíncrona , necesitas la palabra clave. Espero ahora en nuestros controladores, estábamos llamando a estas funciones del repositorio en su forma síncrona en No, que las hemos cambiado para que sean asíncronas. Tenemos que volver a nuestros controladores y modificar la forma en que interactuamos con estas funciones son los resultados de estas funciones. Entonces en el siguiente video, vamos a pasar y vamos a limpiar nuestros controles en asegurarnos de que o lo sabías, no tenemos eras 52. Controladores y acciones indígenas: Hey, chicos, Bienvenido de nuevo en este video estará buscando convertir nuestras acciones de controlador en causa de función en código de remolque que soporta son repositorio asincrónico. También estaremos revisando otras instancias donde usamos las funciones sincrónicas en estar haciéndote saber, están aprovechando al máximo lo que tienen para ofrecer. Entonces estoy empezando con el control de tipos de hojas. Creo que este es el más fácil de empezar. Fue bastante sencillo en Sólo estaremos convirtiendo. Vemos todas estas líneas rojas todos estos errores en solo seremos refractarios nuestra corte una manera que sabemos se necesita para apoyar sobre ningún repositorio asincrónico cable alguien para empezar con Index Noto, facilitar este Orwell toe evaluar esta flecha Primero tenemos que entender lo que está pasando aquí. Entonces encontrar todo es, ah, función que sabemos que acabamos de convertir para ser un reporte Andi sincrónico es, bueno, el repositorio tipo hoja encendido. Entonces vemos aquí que está bien dándonos un temprano en las dos listas. Entonces básicamente es decir que no puedo solo enumerar en una tarea sincrónica por lo que encontrarás que el encadenamiento método se convertirá en un poco más dificultad no será un transparente como solía ser , porque aquí no puedo simplemente encadenar en las dos listas. Aunque me ponga el lejos lo que sabemos cuando tenemos ah, función. Eso es algo que necesitamos decir a nuestra manera. Pero entonces estamos en Contra un error aquí porque necesitamos cambiar la función real en dos y un fregadero uno. Entonces para hacer eso, necesitamos un fregadero en la tarea, y luego el tipo de retorno son resultados de acción. Entonces envolvemos eso en el corchete angular en incluso eso no es suficiente dedo del pie arreglar la flecha porque todavía están terminando con la flecha. Entonces esto básicamente nos va a decir que no puede en mear? Bueno, palestino basado no puede enumerar algo que es una tarea. De acuerdo, entonces lo que salí a hacer es quitar la lista a del hallazgo todo en adelante. Entonces voy a tener que agregarla al mapeo. Entonces no, la a eliminada de esto a listar de la línea final a la línea de tipos de hojas porque ahora está diciendo que bueno, esto es una colección de ojos en ellos. Mapeo bestia en lista. Entonces solo voy a decir, OK, OK, tiempos de licencia. Pero esto lo puedo hacer así. O podría haber introducido otra variable donde dije dejar tipos para enumerar y luego esa variable. Cualquiera de las dos funciona. El hecho se considera fuera del librado de la línea roja, y podemos seguir adelante. Está bien, así que detalles tiene que conseguir el mismo trato. Entonces solo voy a copiar tarea de flexibilización en su soporte en colocarlo en los resultados de la opción aquí en. Entonces parecía que no puede simplemente realizar los nudos en una tarea. ¿ Verdad? Por lo que el no operado la explicación no se puede aplicar toe opere y off task bull para que alguien a hacer es simplemente introducir una variable. ¿ Verdad? Por lo que encuentras que un poco oferta factoring hostil van en el dedo del pie, facilidad que este cambio. Algunos quieren decir que esta nueva variable es existe es igual dedo del pie esperan, y entonces voy a llamar informe. Eso sí existe. He dicho esa película mostrando llamada que estoy poniendo aquí como una llamada de fortuna aliviante. Entonces solo pasaré la variable dentro del original. Si declaración sobre ahí vamos. Todo el mundo no es campista feliz. Si miras esta función, llama aquí vía leave type la gente encuentra por idea, ningún amigo por ideas. Hijo asíncrono fue a ver un peso en entonces eso debería ocuparse de eso, así que puede que no veas una flecha, pero cuando sí ves la oportunidad, sabes que es algo que te llame. Tan solo asegúrate de poner bien el exteriorizado. Ahora. Crear no es hacer nada que sea asíncrono. No es hacer nada especial en algún lugar para dejar eso, así que a veces los convertirás. A veces no vas a encenderte. El hecho es que si lo conviertes y no se requiere que extraño, ajustes de estudio han sugerido que no conviertes eso todo, ya que no estás usando los métodos sincrónicos de todos modos, son así para el post para creador poniendo un tarea persiguiendo, acción corrupta, resultando corchetes tío en. Entonces solo me estoy desplazando, lentamente buscando otras funciones de borrado. Yo ce éxito aquí es crear, que está en un fregadero, así que lo voy a decir lejos y se dieron cuenta de que esta línea roja desaparece porque el resultado apagado esperando la tarea a completar es del tipo concreto. Entonces sin la forma en que va a estar sacando de esta forma, shonka estará consiguiendo el toro de tarea. Por lo que estoy esperando los resultados fuera de la tarea. Y así el resultado de la tarea es el verdadero derecho booleano? Y es por eso que eso se procesa incluso uno mejor así o procesa sobre un error. Entonces moviéndonos a lo largo vamos de los pies ediciones que ponemos en nuestra tarea, entonces tenemos que hacer el mismo tipo fuera de su existe aquí yare espera los resultados del informe. Entonces solo estoy escribiendo esto porque realmente no quiero perder lo que hay en el portapapeles algunos copiando y pegando. Entonces sólo puedo quitar estos, um, otros elementos. Entonces no, esperamos el resultado fuera de estos existe y hacemos la declaración if, también espero el hallazgo por i d. Y luego avanzamos adelante cambiando entonces el poste en remolque en tarea de facilitar um, la órbita. Nosotros lo owie porque eso es asíncrono. Y luego nos movemos a la eliminación, Di, mira, después de que te acostumbras al patter y en realidad no es tan difícil simplemente convertir tu cancha para usar todas las funciones de casing o el patrón de casing que ese mitt core nos ha hecho tan fácil de implementar, ¿ verdad? Por lo que en cualquier lugar que tengas una llamada de canto de rodilla. Simplemente asegúrate de que uno la función sea asíncrona en tu están esperando la llamada. Está bien, así que eso es todo para el controlador de tipo de licencia. Mira eso. Ya terminamos. Entonces si hacemos una construcción Randhawa y ver el aire está regresando del controlador de tipos encendido , podemos decir ese archivo, pero aún tenemos solicitudes de licencia y asignación de licencias. Entonces vamos a hacer peticiones de licencia juntos una vez más después te voy a dejar para hacer la asignación IV, y luego solo compararemos notas. Muy bien, Así que para el índice, sólo voy a convertir esa tarea del dedo del pie en. Entonces. Sólo estoy mirando a través. Entonces encuentra todo lo que necesitamos para esperar los resultados fuera. Encuentra todo en. No veas nada más desde arriba no se implementa ni trapea. ¿ Eso es lo que piensas? ¿ Está ahí? A mí me toca un canto. Bueno, no lo hay. Entonces eso está bien. Podemos movernos a lo largo de mi licencia. Voy a encontrarme con esto un sincrónico. Por lo que pongo en la tarea mi licencia. Después obtenemos puntos doloridos donde estamos usando administrador de usuarios. Teníamos que conseguir usuario un fregadero en eso. Dije no resultado. Entonces recuerda dije que cuando esperas, entonces estás obteniendo el resultado de la llamada como un tipo concreto. Eso es lo que pasó aquí. Entonces que los resultados realmente nos dan sobre el tipo concreto? No, no creo que esos resultados sean en realidad o o llamar a la función de flexibilización como esta en realidad está haciendo pleno uso de la funcionalidad asíncrona que se está brindando los dedos de los pies. Entonces lo que voy a hacer es quitar los resultados de punto en ir del dedo del pie, esperar esta llamada. Muy bien, entonces no, tenemos usuario manager dot aún usuario un fregadero y no tenemos los resultados del doctor. Entonces lo que pasó es que en este punto, no quería abrumarte con hacer la acción en relajar solo para que pudiéramos usar al gestor de usuarios, acostumbrarnos a un fregadero, Así que lo dejé solo. Acabo de usar esos resultados. Para que veas que puedes usar esos resultados, o simplemente puedes hacer que todo el bloque sea asincrónico para facilitar la llamada de flexibilización real. ¿ Verdad? No seguir adelante. Vemos que tenemos el informe de licencia sobre sólo por flotar. Veo que esto es una tarea. Esta también es una tarea. Yo lo sé también porque, bueno, yo hice los cambios. Mi programa. Correcto. Por lo que entiendo Espera esas dos llamadas mi permanente superior en entonces no hay causa más que Uday Singh por lo que podemos movernos en detalles me la función o la opción. Perdón. El, um, resultados de acción. Nosotros lo hacemos Tú crees que estamos en peso. Después pasamos a las solicitudes aprobadas lo convertirán en un sumidero. Entonces no podemos esperar. Entonces note si lo guardo en esta línea, es monitor de usuario. Gestor de usuarios, consigue al usuario un fregadero entonces es que da como resultado. Entonces con el resultado que como no va a funcionar así es uno u otro. Entonces si eres la función no es un fregadero, entonces puedes usar los resultados de punto. Si lo haces un fregadero sobre solo usas la palabra G. Ah, espera y quita los resultados de punto. Está bien. Entonces podemos esperar a todas estas causas y notar cuántas Tierras se fueron cuando acabo de decir que espero esto encendido. En realidad estaban consiguiendo sobre el tipo de concreto, que se requería para empezar cuando guardé una lágrima. Esos otros errores a continuación deberían desaparecer entonces. Ya sabes , son las líneas verdes aquí. Entonces estas líneas verdes están diciendo que veo que aquí llamando función asíncrona, pero también usando las cosas del sinker. Entonces si lo encima, entonces ves que el Responsable estaba diciendo que eso es lo que él sólo puede insertar esperar. De acuerdo, Así que lo mismo que he estado diciendo es algo extraño estudios han sido sugerir solo poner un peso delante de tu función, porque está bien, así que nos movemos. Ojalá supiera la situación aquí donde traté de protegerte de la complicación, pero oye, ¿dónde Brad? De vuelta aquí en dso hago resultados de rechazo. Asíncrono sobre chico. Hacer un tomar ventaja el administrador de usuarios consigue usuario un fregadero y ver de lejos en. Entonces eso debería ocuparse de algunas cosas en. También voy a esperar el hallazgo por d llamar a eso. Fui a esperar la llamada para actualizar y me paso a crear que sea un Andi sincrónico inserto mis son malas hierbas donde es necesario y ves cuántas cosas se resuelven ahí. Entonces tal vez no voy a estar hablando tanto? No, porque creo que ustedes se están agarrando. De cualquier manera, sólo voy a seguir adelante sólo voy a estar haciendo estos cambios. Siempre puedes pausar un video en cualquier punto donde, ya sabes, puede que me haya movido demasiado rápido y rebobinado donde no entendía. En def, todo eso se siente y siéntete libre de alcanzarme. Entonces eso es que podemos tener algún diálogo propio lo que se estaba haciendo. Está bien, así que sólo me estoy moviendo. Y creo que casi termino con este controlador donde un tenso una petición lo hizo cualquier piense insertó un trigo nuevamente insertó un trigo. Entonces para mí, el objetivo es no tener líneas. Si son verdes azules son rojos pero sobre todo leer la palabra de Dios significa que no va a correr. Pero ya sean verdes o azules, solo tienes que quitar todas las líneas para que en cualquier momento eliminar no fueran aplicables. Dejar solicitar controlador. Por lo que pasamos a dejar un controlador de ubicación en DSO. Puedes pausar el video aquí, intentarlo tú mismo. Yo lo voy a hacer, y luego sólo nosotros los archivos de computadora. Está bien, así que estoy de vuelta, han hecho los cambios alguien para pasar por cada función en dso. Bueno, hice los cambios, y claramente no los completé porque aquí tenemos los tipos de hojas con espera al hallazgo, todo en la era de lista que vimos cuando vamos a dejar tipos, controles, entender. Toque me ese ajuste y ver que enumerar por este lado. Si vas con una solución más elegante, siéntete libre de compartirla. Um, pero entonces podemos movernos junto con éste. Entonces ese es el índice. Lo hizo internamente función sincrónica fuera de curso. Ponga en mi distancia. Se mueve establecer leave han puesto en que esperamos estamos para eliminar los resultados de punto del gestor de usuarios En la sentencia if, también inserté el superado Así que una vez más, vez que tengas una función llamada en función asíncrona, solo puedes poner bien las malas hierbas fuera. Funciona casi en cualquier lugar y qué decir Casi en cualquier lugar. Muy bien, entonces. Yo inserté el fuera. Espere aquí el crear para los empleados de la lista. Esperé que el usuario manager consigue reglas. Consigue a los usuarios en rural un fregadero, quita a los médicos. Mira, eso estaba ahí en detalles. Yo Ok, entonces me perdí uno. Entonces hice la distancia aquí por el mapeo para los empleados. Pero me perdí este. Por lo que es bueno comparar notas. Seguro que me señalaste si hiciste un buen trabajo. Por lo que para las asignaciones eran manera. Es conseguir las asignaciones de licencia por parte de los empleados. Andi, eso se hace en el mapeo. Por lo que las filosofías difieren en términos de cómo manejamos estas funciones causa y se las pusieron. Entonces realmente, en realidad, para tal vez propósitos educativos, en realidad, que podrías haber hecho la llamada de función aquí. Um, mi preferencia es realmente ponerlos en un terrible. Por lo que definiría una variable donde almacenaría el que usan que cubre de nuevo desde esta función. Convocatoria. Entonces pasaría ese verbal en remolque. Este, um, sencillo completo para ellos arriba. ¿ Verdad? Entonces esa es mi preferencia, verdad y de verdad. Pero sólo lo dejaremos. No soy factor alfabetizado para citar demasiado porque, bueno, esto es nuevo. Un nuevo tema, Andhra. Factorizarlo para tal fin no es absolutamente necesario. para traer este tema a través, por lo que sólo vamos a seguir adelante. Entonces para la edición, um, esperamos aquí el post para las ediciones. Esperamos el registro. Nosotros también ah, éxito de trigo en Eso es todo para la conversión o controladores. Entonces si hago otra compilación, entonces veo que esto en realidad fue muy exitoso. Entonces una compilación tuvo éxito en realidad voy a ejecutar el programa y entrar en algunos de estos controladores. Sólo asegúrate de no romper nada. Está bien, así que estoy ejecutando mi aplicación y me encanta ser exitosamente. Déjame,ya sabes, ya sabes, tomarte la suya. Sólo asegúrate de que estoy viendo lo que espero ver. Entonces aquí veo que estoy trayendo tarea de creencia de lo que esto hubiera estado llamando a nuestro hallazgo todo bien, si voy a dejar asignaciones y puedo hacer clic en asignar empleados, todas esas funciones fuera de ellos es durante cualquier excepción . Entonces supongo que eran solicitudes de licencia aquí en así que recuerda que todos estos consiguen o cualquier cosa que esté recuperando datos. Todos ellos habrían frijol bien convertido en función asíncrona. Entonces supongo que es seguro decir que no rompimos nada cuando solo hago clic en el nuestro, todavía tengo todas las funciones que tenía antes. Todos están funcionando bastante bien, por lo que la aplicación generalmente solo haría un mejor uso del sistema. Recurso es al consultar la base de datos y recuperar datos en bien con los usuarios que interactúan con ella en, verá las funciones asíncronas deficientes a lo largo del tiempo. Como saben, carga del sistema aumenta hará que nos quiera de nuevo. mejor uso fuera del recurso. 53. Revisar y añadir cambios a GitHub: Oigan chicos, estamos en la sección donde solo vamos a revisar lo que hemos hecho y luego revisar nuestros cambios para que nos enganchemos juntos. Por lo que una vez más, sólo una revisión rápida. Lo que hicimos en esta sección fue uno implementar nuestras funciones asíncronas en nuestro repositorio. Por lo que cada uno fuera de nuestras interfaces consiguió las declaraciones de tareas para las funciones. Las clases de país que habrían heredado de la base o del repositorio que está heredando de la bestia también habrían obtenido esas declaraciones o modificaciones asíncronas . También nos aseguramos de incluir entidad, framework core para que pudiéramos aprovechar al máximo las funciones asíncronas que entidad framework nos ha brindado. Después extendimos ese bit off trabajo a nuestros controladores y acciones porque una vez que has sido función asíncrona, la forma en que interactuamos con los cambios. Por lo que el inicialmente que interactuamos con ella e inicialmente la corte tuvo que ser refractada un poco de dedo facilitan estos cambios. Entonces en todas partes que teníamos una función llamada a, uh no una función sincrónica, tuvimos que poner la palabra clave un trigo duro y también nos referimos a todo por acciones es sincrónico por lo que esto simplemente significa que en adelante podemos escribir todo es sincrónicamente encendido. Aprovecha al máximo el mecanismo de programación piloto que dot net core nos brinda cualquier agujero en este video. Vamos a estar revisando nuestros cambios. Entonces como de costumbre, simplemente vamos a nuestra solución, click derecho, click en los viajes. Entonces nos hará saber que tenemos que poner un mensaje. Entonces voy con el dedo del pie, empieza a escribir y voy a ver cambiado Repositorio. Déjame empezar con tan rápido. Muy bien, entonces mi mensaje lee Cambiar controladores depositantes en ins reales para apoyar programación asíncrona . Está bien, así que ese es mi mensaje de compromiso encendido. Entonces solo dejaremos que este auto se vaya a comprometer todo y hundirse, lo que nos ofrecerá comprometernos los cambios localmente y luego sincronizar con digital. Entonces una vez que eso esté terminado, podemos fuera de curso ir a ponernos hub on. Veremos los cambios el último compromiso en la última calma. Sucedió hace unos segundos en Ya veremos el mensaje de cambio ahí. Entonces como de costumbre, voy a compartir el puntera específicamente esta oportunidad contigo en para que puedas revisar esos cambios por tu cuenta 54. Revisión de los patrones de programación: Oigan chicos, bienvenidos de nuevo. En esta sección, vamos a estar explorando diferentes patrones de codificación y explorando por qué los necesitamos. Entonces en este video en particular, solo quiero dar un paso atrás, mira lo que sale de la caja con o aplicación core MVC.net. Y entonces podemos ver por qué habríamos implementado nuestro patrón. Porque si bien aludimos brevemente a la funcionalidad lista para usar, realmente acabamos de ir a implementar el repositorio que Patreon haría, sin explorar realmente por qué necesitamos la arena de potes del repositorio. Y luego por extensión, vamos a ver las debilidades del repositorio sobre cern y todo el fin de semana bien, tanto implementando el patrón de unidad de trabajo como cuáles serán las ventajas y desventajas. Entonces, empecemos con esto. Tengo el proyecto de gestión de plomo y lo que voy a hacer es generar un controlador y sus respectivas vistas utilizando el mecanismo de andamios listo para usar. Entonces una vez más, nos haremos brevemente los arranques donde fuimos a agregar para el control de seguimiento y para agregar, agregar nuevo controlador. Y luego podemos seleccionar el controlador MVC con vistas usando el anuncio Entity Framework. Y luego seleccionamos nuestros modelos. Entonces sólo voy a usar, digamos, vete. Encontremos un tipo fácil de una hoja. Entonces deja apretado, lo siento, no el tipo de repositorio. Está bien. Entonces voy a usar el tipo de hoja para generar, para rascarse. Ahora en partes anteriores, lo haría, tendría en error usar el modelo de vista, digamos una asignación de vista de Estados Unidos o elif tipo VM, ¿verdad? Hubiera usado VM de por vida y levantar la clase de contextos de datos. Y eso fue un error por mi parte, porque una vez que se incluye la clase de contextos de datos, lo que hará automáticamente se asume que esta es una tabla de base de datos. Y si aún no está incluido en la carpeta de datos, entonces lo incluirá en el contexto de la base de datos de la aplicación. ¿ Está bien? Por lo que si Bach y ves alguna hoja empate VM y alguna de las VM hasta la audición en el conjunto BB, puedes eliminarlas de forma segura. ¿ No deberían estar ahí? Pero cuando estás andamios usando una clase que ya está ahí. Entonces en este caso van a estar usando controladores tipo Leaf, vistas de controlador con Entity Framework. Y luego seleccionamos el tipo de hoja y dejamos la aplicación en contexto DB ahí dentro. Y solo voy a permitir que nombre el controlador dice dejar tipos un controlador y viejo problema porque RAW types controller, así que agrega eso y esta actividad, no necesariamente tienes que hacer lo que estoy haciendo. En realidad sólo lo estoy haciendo con fines de demostración sólo porque queremos nuestra discusión. Está bien, así que una vez que se hace ese andamio y se hizo con clase de datos, entonces verás que se inicializa contextos. Entonces contexto de base de datos de aplicación, esa es su puerta de enlace ART a los datos. Tiene el contexto. Entonces este es el patrón MVC listo para usar en el trabajo, ¿verdad? M de pie para controlador CFO vista modelo V4. Correcto. Y hemos pasado por lo que el MVC, lo que cada componente, esos. Entonces que en sí mismo es en realidad un patrón. Este patrón se desarrolló porque lo que pasaría es que tendrías mucha lógica, como lo que va en el controlador siendo mezclado con el HTML, que está casi en la vista. Y luego la conexión de datos y las comunicaciones de datos suceden ahí mismo. Por lo que trataron de abstraer estas tres funcionalidades distintas en la M para el material de datos del modelo, V para la vista, las cosas visuales, y ver para el control de las cosas lógicas. Ahora cuando sacamos esto del controlador de caja y se inyecta el contexto de la base de datos de la aplicación. Te darás cuenta de que en realidad genera todo ese código para ti. Por lo que tienes la capacidad de leer o leer todos los tipos de contexto. Entonces esto es solo contextos de enlace simples, tipos de hojas a listas. Hemos pasado por esto, ¿verdad? Sin embargo, los primeros nuestros valores predeterminados cuando vas a crear Gua se unen a la clase de datos. Y podemos modificar esta lista para decir que no queremos traer un crea de un día. Seguiría trayendo todo esto o alguien pone además, no son ya parte del modelo, entonces podemos ignorarlos usando esta lista. De acuerdo, así que esto está todo fuera de la caja y es fácil para un principiante recoger y empezar a usar y eso no es problema, funciona para Microsoft nos dio una buena plantilla a partir de la cual arranca. El motivo aunque empezamos a implementar un patrón encima de lo que sale de la caja tiene que ver con la capacidad de minton y posiblemente legibilidad. Significado en este caso de este bind, home mantenible Es esto cuando tenemos que modificar esta clase de datos. Y luego tenemos que sumar campos para salir de la ciudad porque luego vuelve el negocio. Entonces Censo hey, ya sabes, tipo de licencia necesita tener estos USA adicionales, los agregamos. Claro, los modificamos y tendremos que recordar volver al controlador, ampliar esta lista de campos deshuesados para la lista extendida para las ediciones. Y entonces ese es un ciclo que tiene que ir y venir cada vez. Y, ya sabes, yo solo pienso que eso no es sustentable, ¿verdad? Entonces implementamos lo que llamamos MVVM por encima de eso, encima de todo este mecanismo. Por lo que MVVM es la abreviatura de modelo, vista. Ver modelo. ¿ Está bien? Entonces MVVM básicamente es donde trajimos el modelo de vista. Entonces abstrajimos cómo se ve realmente el tipo Leaf y lo pusimos en forma de modelo de vista. Para que luego se deshizo de este enlace, la dependencia de este enlace listas. Y entonces podríamos saber, decir cómo debería ser el modelo de vista. Por lo que se unirá automáticamente al empate de hojas VM, ¿verdad? Los campos adicionales necesitan ir y simplemente vamos a dejar tipo VM y añadirlos y se les agrega universidad porque estamos viendo el modelo, ya no estamos viendo este enlace, al menos. Muy bien, entonces podemos limitar lo que queremos a través de todos nuestros modelos de vista. Entonces ese es el primer patrón al que probablemente podríamos prestar atención y decir, acuerdo, para que puedas ver dónde se implementó realmente el modelo de vista-modelo. Por lo que agregamos un modelo de vista a tipo de medio entre el modelo real, que es el tipo de hoja proveniente del vidrio del tipo de datos, y la vista misma, que es la visualización de los datos. El ViewModel agregó o restó los campos que consideramos necesarios para las operaciones. Entonces, pasando de MVVM, hablemos un poco de algunas de las cotizaciones de acceso a datos autogeneradas. Entonces tenemos contextos, dot-dot-dot, tipos IV, punto ac, este que primero inició los valores predeterminados. Y los tenemos por todo el lugar, ¿verdad? Tenía que encontrar etcétera, etcétera. No. El caso es que si necesitaba levantarme manera de disfraz de conseguir tipos de licencia de Butler. Y creo que tuvimos que hacer algo con conseguir las solicitudes de licencia para un año en particular o las asignaciones de licencia de alguien para un año en particular. Entonces eso significa que cada vez que estoy recuperando esta lista después de recordar ponerme mi dondeClause y luego ponerme la lambda dónde y lo que sea. Digamos, digamos que el default es, dije que dejaría asignación lo que estamos usando tipos de hojas aquí. Entonces esto sólo me humor, inundado. Por lo que tendría que recordar hacer eso cada vez que soy tendencia a pool buck leave tipos tardes en el índice y cualquier otra pantalla personalizada después de romboides cuando estoy haciendo una lista desplegable donde los tipos de hojas después recuerden escribir la consulta exactamente como esta cada vez. Y entonces eso lleva a cierta cantidad de repetición. Y si bien podría ser viable para una aplicación pequeña en un entorno empresarial, no es sustentable porque las reglas de negocio pueden cambiar casi cualquier segundo. Y ya sabes, necesitas poder modificarla aplicación rápidamente en función de estos nuevos requisitos. Entonces por eso introducimos esa obstrucción que llamamos repositorio. De acuerdo, así que déjame saltar al repositorio. Por lo que del repositorio tipo Leaf. Y eso es implementando desde el repositorio tipo elif y por extensión desde el repositorio de la B. Entonces tuvimos el repositorio base porque sabemos que hay, ahí. Estas son las funciones básicas que siempre estaremos haciendo. Siempre estaremos haciendo alguna cantidad de público financiándolo. Y entonces siempre podemos cerrarlos Mies, exactamente cómo encontramos a cualquiera de ellos dándole su propio repositorio. Entonces para el tipo Hoja, pude ver que cuando estoy encontrando todo para los tipos de hojas, quería conocer, hecho. Entonces esta consultas personalizadas escribieron un 1s, una protease y usado en otro lugar si necesita ser actualizado, solo tengo uno preinstalado. Entonces esa es una de las ventajas del patrón de repositorio. Y todo donde hacer el patrón Repositorio puede ponerse bastante molesto es en el caso donde tenemos que interactuar con muchos repositorios y al ser Request Control es un ejemplo perfecto de eso. Por lo que tenemos que tener referencia a tres repositorios diferentes porque necesitábamos interactuar con tres tablas diferentes. En este controlador. O sea, funciona. Hemos llegado tan lejos haciéndolo. Pero entonces, ya sabes, para mí en realidad se estaba poniendo un poco 1B y porque fuera para ser como, oh, sí, sé que necesito este repositorio. Ah, sí, no, necesito esa, etcétera, etcétera. Entonces por eso estamos buscando implementar la unidad de patrón de trabajo, que es donde tendremos un IV o repositorio genérico Bs. Y una implementación de repositorio que será suficiente para todas las tablas que necesitan acceder. O con todas las mesas a las que necesitamos acceder más bien. Está bien. Entonces eso fue sólo una rápida revisión de por qué lo pusimos en el repositorio Potter, y espero que aprecien por qué la mantequilla del repositorio y no fue necesaria hasta este punto. Pero entonces, claro, muchas veces durante las actividades de asignación de licencias, te darás cuenta de que, de acuerdo, esto fue un poco molesto. C en este caso, este soy yo por ubicación donde hacer esto dos veces en solicitudes. Teníamos que hacerlo, ya sabes. Por lo que podría volverse un poco molesto cuando tienes que estar trayendo 56 repositorios diferentes, incluso oblea, solo necesitas una consulta no contra una de las tablas. Entonces en el siguiente video, lo que vamos a estar haciendo es sentarnos o modificar nuestro repositorio base para que sea un poco más genérico. Y luego estaremos implementando nuestro patrón de trabajo de unidad y viendo cómo eso nos puede ayudar a tener código más centralizado, código más personalizable, e incluso ampliar algunas de las funcionalidades como con el hallarnos, porque hay momentos en los que hemos tenido que encontrar todo y después escribir una lambda expresiones de campo encima de él. Entonces vamos a estar implementando todas esas cosas donde podamos crear funciones filtrables y tener un repositorio más poderoso. Así que quédese por ahí. 55. Implementar un repositorio genico: Muy bien chicos, pavos de bienvenida. Entonces vamos a meternos en ello. Por lo que la primera tarea es modificar nuestro repositorio base. Y todo lo que ya hemos hecho un buen trabajo City antílope para ser bastante genérico. Y luego tenemos las implementaciones concretas por clase. Después de ser genérico, inicialmente, quería especie de modificar las funciones aquí, a saber, el while, el hallazgo, todo el hallazgo por ID. Y la facilidad existe ¿verdad? Ahora lo que estoy pensando es que bien, no, estos sólo le están permitiendo encontrar si tiene una identificación, pero que si hubiera una condición diferente por la que quisieras encontrar, entonces lo que tendrías que hacer es encontrar todo y luego hacer un punto cualquiera si consigues lo que estoy tratando de conseguir ese trabajo, sé que eres lo suficientemente hábil en LinkDin. Trabajos de desalación integral. Pero y si quisiera encontrar si hay alguna solicitud de licencia sin particular d dos están empezando en una fecha en particular o Mini entero, que las solicitudes de licencia son XYZ, ¿verdad? Entonces tendría que escribir consultas personalizadas en cada uno de los repositorios para cada uno, ¿no? Entonces tenemos nuestros contratos y tenemos nuestro repositorio obeso. Seguro. Pero entonces si quisiera consultas personalizadas para solicitudes de licencia de lo que tendría que tener un montón de ellas aquí. Y lo que realmente se está haciendo en cualquiera de ellos es mirar el fuego y luego filtrar todo se basa en el hallazgo todos los resultados. ¿ Y si ampliamos el hallazgo todo eso? Podríamos simplemente incluir nuestra expresión como parámetro. Y luego si la expresión está presente, entonces actuará como nuestro filtro automáticamente. De acuerdo, así que eso es lo que quiero hacer, al azar. Entonces en lugar de decir encontrar todo solo en blanco o ya sabes lo que voy a hacer, en realidad sólo voy a empezar de cero. Entonces sin modificar el repositorio base, solo voy a hacer uno nuevo. Entonces, solo empecemos de nuevo y hagámoslo desde cero para evitar cualquier confusión. Entonces voy a crear una nueva interfaz. Y déjame simplemente hacerlo ahí debajo. Entonces en el mismo archivo, tengamos un archivo, cual solo crearé una interfaz diferente. Entonces interfaz pública. Y voy a llamarlo genérico, y lo llamaremos s1, yo repositorio genérico. Y va a seguir el mismo tipo de incrementos. Ten la abstracción que es T. Y estamos especificando dónde se supone que t está abracadabra. ¿ Está bien? Y entonces voy a tener prácticamente las mismas funciones. ¿ Está bien? Pero entonces, como dije, vamos a tener modificaciones para mantener su implementado. Yo he encomendado ie colección. Es decir, bueno, es los análisis no está en alist de todos modos, así que probablemente solo podría ver yo lista desde el principio, ¿verdad? Y entonces el hallazgo todo va a tener tres parámetros y solo estoy rompiendo en la línea para que pueda mostrarte cada parámetro individualmente. Por lo que tenemos la capacidad de escribir una expresión. Y estoy diciendo esta expresión que va a ser un teléfono Sean el que involucre, eso es DIVERSIÓN. C, perdón, eso implica un genérico que es el mismo T genérico, alguna forma de booleano. Y yo lo llamo expresión. Entonces esa es una sintaxis. Entonces este es básicamente el tipo de datos para una expresión lambda. De acuerdo, entonces cuando estás en una expresión lambda que se parece a j2, y luego tienes tu lambda r y q dot id es equivalente a algo. Escribe esa expresión lambda que escribirías. Literalmente este es el tipo de datos que facilita el, por lo que este valor se almacenaría en estas expresiones. ¿ Está bien? Por lo que Q representa el té y tu booleano aquí está representado por esa expresión al final de la misma. De acuerdo, así que eso es lo que estamos facilitando donde permitir que alguien diga encuentre todo y después poniendo la expresión lambda si tienes, si quieres agregar un campo ese tipo de encontrar todo desde el principio, entonces haz con eso. Pero entonces no es todo el tiempo que alguien quiere un filtro, lo que necesitamos hacerlo nulo por defecto. Entonces si no se proporciona ninguno, entonces sólo asumimos que, bueno, sólo traemos de vuelta todos los registros. Si esto no es nulo, entonces necesitamos configurar la función de tal manera que haga el filtrado y luego vuelva. También quieren agregar la capacidad a, al arte o por alguien que diga FUN NCI. Y voy a precisar que el consultable para lo que sea t es ese genérico, ¿no? Y luego voy a decir que ordeno u ordene que me consulta. Ahí vamos. Pedido consultable para ese mismo genérico, ¿verdad? Entonces eso es lo que será esa función. Y voy a llamar a este orden BY y también igualmente distante nulo, ¿verdad? Porque cuando estamos queremos pedirlo, supongamos que querías filtrar, y luego queríamos pedir el filtro. Y viendo algo mal aquí, un soporte angular extra. Ahí vamos. De acuerdo, entonces este segundo parámetro nos permite ver Q dot, Q dot orden enviando, o simplemente podría ser ordenado por, realmente no importa. Pero este SecondParametro nos permite especificar que queremos ordenar por una columna en particular de cualquier manera. De acuerdo, entonces eso es lo que. En los parámetros para. Y luego cuando queríamos incluir, Recuerda que a veces a, para extraer datos y a veces necesitábamos incluir. Entonces creo que lo que hicimos, acabamos de pasar e hicimos como una inclusión mayorista para ellos en el repositorio. Déjame ver si puedo encontrar algún ejemplo de esa mentira aquí. No incluimos así que hicimos el hallazgo todo lo dijimos cada vez que encuentres todos, por favor incluya el tipo de hoja e incluya al empleado. Pero eso no es necesariamente cierto. No es cada vez que encontraríamos todo lo que queremos incluir. Entonces aquí mismo, el Incluido no es opcional, sobre todo aquí abajo no es opcional, ¿verdad? Por lo que realmente podemos implementar algo para que sea opcional. Entonces lo que haré es crear una lista o un parámetro que será una lista de tipo string. Y a este lo llamamos incluye y creamos a nula, ¿no? Entonces eso significa que si quiero encontrar todo y estoy incluido en lo siento, me interesa incluir los datos relacionados. Entonces puedo enumerar lo que quería incluir porque puede que quiera una mesa y no la otra. Correcto. Y en otra situación quizá no quiera incluir nada. Está bien. Por lo que sólo quiero encontrar todos los registros para esta tabla en particular sin ningún incluye, sin ningún filtro, etcétera, etcétera. Entonces esto nos permite especie de reducir el número de consultas personalizadas que tenemos que estar escribiendo para obtener bac ciertos datos creo que aquí como tenemos asignación de cheques. Bueno esa es una costumbre. Eso está bien. Pero a medida que vamos por uno donde refactorizado, todo esto es ligero. Este obtiene asignación por empleado aquí mismo. Derivamos una consulta personalizada para obtener las asignaciones y luego poner en el filtro. Entonces lo que estamos haciendo te permitirá solo llamar a findall y agregar tu filtro en consecuencia. Entonces sigamos adelante. El siguiente que me gustaría modificar es el hallazgo por ID. No, no quiero especificar un hallazgo por id porque podría haber otros, vamos a ver, otros factores que quiero usar para encontrar un registro en particular. Entonces en lugar de simplemente encontrar por IBM cuándo darle el mismo tipo de expresión o la capacidad de facilitar una expresión. Así es que solo voy a copiar esto y usarlo como parámetro en su lugar. Y entonces también te voy a dar la capacidad de incluir otras tarjetas rojas u otras mesas relacionadas, ¿verdad? Entonces tienes la expresión y luego puedes incluir, si así lo deseas ya, si lo necesitas en absoluto. ¿ Está bien? Y luego para el Xist, digamos que es lo mismo. Podría querer averiguar si algo existe. No sólo con base en el IID, sino con base en otra cosa, se basan en alguna expresión. Por lo que esta expresión es muy poderosa porque una vez más, nos permite poner en casi cualquier expresión aquí, y sólo va a ejecutar esa expresión y los resultados deseados. De acuerdo, así que eso es más o menos para la configuración genérica del repositorio. Ahora echemos un vistazo a configurar la clase concreta que estará heredando de nuestro nuevo repositorio de alto genérico. Y en concordancia con la convención de nomenclatura, llamaré a este repositorio genérico. Y de acuerdo con donde estamos implementando y subimos a implementado en repositorios con aviso agregamos un BCE, pero que teníamos varias interfaces herederas para contratos. Y luego por extensión tuvimos varias clases de repositorio heredando, ¿verdad? Es por ello que al final del día tuvimos que estar inyectando tantos repositorios en todos los controladores en ese momento. Entonces en esta ocasión solo voy a crear una nueva clase y solo voy a llamarla repositorio genérico. Entonces una vez que tengamos ese repositorio genérico, necesito decirle que eres relativo a un genérico llamado t. Y vas a estar heredando I repositorio genérico, que también es relativo a una t genérica. Y donde t es una clase. Ahora hecho como sabemos, necesitamos implementar nuestro repositorio Arte, lo siento, nuestra interfaz. Entonces, adelante y haz eso. Conseguiré todas nuestras funciones como se esperaba. Pero entonces ahora nuestra inyección va a verse diferente. El primer renglón va a ser una línea familiar. Va a ser nuestro contexto de base de datos de aplicación. Y entonces la segunda línea es totalmente nueva. Va a ser para un conjunto DB de tipo T. Ahora habríamos visto el conjunto DB, esa sintaxis que usamos para esto, incluyendo las bibliotecas faltantes, habría visto esta sintaxis antes de un conjunto de DVD porque en la aplicación DB contexto y cada vez que agregamos una tabla, teníamos que usar conjunto de bases de datos. Y luego especificamos el tipo de datos, pan, empleado, solicitud, etc. En esta situación, sin embargo, conjunto de DB se va a inicializar a lo que sea t. T es muy genérico. Por lo que es solo un conjunto de DB para cualquier clase genérica que vaya a entrar. Y entonces por supuesto sabemos que cada vez que hacemos nueva clase, simplemente inyectamos a través de nuestra dependencia inyeccion arte inversión de control contenedor, ¿verdad? Entonces tenemos el contexto que se inicializa, pero inicializamos para ser iguales al contexto, contexto punto de t Así que no somos dependencia. Y inicializando éste. Donde inicializarlo después, después de inicializar contextos RDB, entonces le decimos a la tabla, derecha, que eres del contexto y tu desplazamiento, diré que crea un conjunto DB de entidad T. Entonces cada vez que ves que estos dos están en servicio de inteligencia aquí la t es realmente un genérico. Por lo que lo llaman t o clase de calidad o una entidad o t, como sea. Simplemente significa, alguna clase genérica estoy preparado para facilitar cualquier clase que se me pase. Eso es lo que realmente quiero decir. Por lo que crea el BID dijo que se puede utilizar para consultar y ver instancias de lo que sea. Está bien. Observe lo que sea t. Por lo que es muy me quedo. El genérico de la puerta es probablemente sobreutilizado por nadie, es muy abierto, correcto, donde no ser tan específico como estábamos en nuestro repositorio, ¿verdad? Por lo que el repositorio genérico nos está permitiendo facilitar un conjunto de características para casi cualquier tabla, sea lo que sea, soy capaz de interactuar con él ya que necesito dos. De acuerdo, así que empecemos con las más simples, las funciones más simples de implementar. Echemos un vistazo a nuestros crea. Entonces para los Crea, ¿Qué queremos hacer con el creador? Creado es bastante simple. Sólo necesitamos ver cómo es Y bueno, necesito realmente cumplir con estos es sincrónico porque por supuesto queremos aprovechar al máximo o la programación asíncrona. Por lo que ya es un orden sincrónico son las tareas de este lado. Déjame asegurarme de que haya un fregadero en este rojo. Tan asíncrona para Crear. Está bien. Y entonces lo que vamos a estar haciendo aquí es ver a DB. Bueno, la razón por la que hice una pausa, acabo de notar que todavía estamos regresando un bool, así que vamos a cambiar eso un poco. Entonces en esta etapa no vamos a estar regresando un booleano. Sólo estamos haciendo una tarea, ¿verdad? Para que podamos volver atrás y sacar bool de estas operaciones. Y en realidad tampoco necesitamos tener la salvada. Acabo de hacer una copia y paz. Implementaremos el CVE en otro lugar. Entonces solo comentaré eso para que puedas seguir adelante y hacer esos cambios a la interfaz del repositorio epigenético. El único que debería estar devolviendo un booleano existe por lo que creo que serían razones obvias, pero los demás están realizando tareas. Y no necesitamos el C, al menos no aquí. Eso irá en un apartado diferente. De acuerdo, así que volvamos. Y así porque acabamos de hacer esas actualizaciones, necesitamos tomar el bool de estos flujos a través de una demo de actualización, todos, tomar todo el guardar hasta el estado de ánimo de las actualizaciones. Y entonces nuestra interfaz debería dejar de quejarse. De acuerdo, así que volver a crear. Todo lo que realmente va a pasar aquí es que somos peso. Y entonces podemos decir subrayado DB Sono dB es nuestra conexión porque db no se inicializa a lo que sea correcto. Db representa esa tabla. Pero también usa habilidades muy genéricas para simplemente agregar, quitar y actualizar, ¿verdad? Entonces db.json asíncrona. Y lo que estamos agregando es, está bien, y eso es todo. Acabamos de agregar T. Así que siguiendo ese ejemplo, lo siento, no T, mi mala entidad, lo siento, más concentración ahí. Entidad T, entonces estamos sumando entidad, ¿verdad? De acuerdo, entonces con el delete, lo que queremos hacer es esperar en el puntaje db dot, quitar y quitar a Ising. De acuerdo, no hay alias de eliminación. Entonces eso significa que esto no puede ser una tarea. De acuerdo, así que solo quita y estamos moviendo entidad. De acuerdo, así que déjame seguir adelante y modificar esto. Esto no es una tarea, esto es vacío o así, un poco de refactorización, pero sabemos que eso iba a venir. Por lo que hay un buck lento sobre ingeniero a estrum para evitar. Creo que las actualizaciones tampoco tiene una asíncrona. Entonces vamos a cambiar eso para evitar desde aquí. Y luego encontrar actualizaciones James punto para anular. Y luego la actualización es bastante sencilla, es la actualización db dot, ¿verdad? Sé que asíncrono está ahí, así que nuestro tomar la entidad, está bien. Entonces cuando hacemos aunque una línea, cuando hacemos eliminaciones, una línea crea una línea. ¿ Está bien? Ahora veamos un, como dije, estamos lidiando con los más fáciles primero, ¿verdad? Entonces el siguiente que me gustaría hacer, el existe. Entonces veamos lo que existe aquí. Cuando necesitamos encontrar si algo existe, significa que necesitamos obtener todos los registros de la tabla. Entonces voy a inicializar una variable i consultable de tipo t De acuerdo? Y sólo voy a llamar a una consulta. Y eso es igual a subrayar DB. Aunque, una cosa a tener en cuenta, DB va al arte, Lo siento, yo consultable es básicamente como un tipo de datos que todavía está atado al objeto db. Entonces cuando es cuando entraste solo la consulta va a ser de forma consultable, razón por la cual generalmente tenemos que analizarlo a las listas son a i innumerables para otras operaciones pero en wearable es como si todavia atado es como una colección de los objetos reales de la base de datos cuando lo analiza. Ya no es un objeto de base de datos almacenado en la memoria, por lo que ya no está conectado a la base de datos. Por lo que dentro de este repositorio mantequilla y queremos mantener todo lo que me ponga. Es por eso que seguimos usando AI queryable en todo el lugar porque quería mantenerse lo más atado a las necesidades obvias posible, justo arriba en wearable para liberarlo en la memoria para una aplicación. Entonces yo consultable de tipo T consulta, ¿verdad? Y entonces puedo saber C regreso. Y yo solo haré una espera aquí, lo que significa que esto necesita ser hundido, ¿verdad? Devolver nuestra consulta. Por lo que la consulta no encarna la versión wearable ICC de todos los registros en la base de datos. Y fui a ver a un médico. Cualquier escena A. Y entonces adivina qué puedo hacer. Simplemente puedo pasar en la expresión. Por lo tanto, recuerda que la expresión, el valor de esa expresión tendría parecería algo así como q, r, cualquier token lambda. Y digamos ID equivale a diez. De acuerdo, así sería esta expresión. Entonces si hiciera esta sintaxis aquí mismo, funcionaría. Entonces en lugar de codificar duro esta sintaxis, correcto, sobre todo porque está siendo genérica. Entonces esa es una parte importante. Observe que hay una línea roja bajo q porque q o realmente no, ¿verdad? Y la expresión lambda aquí realmente no tiene sentido porque todo es genérico. Consulta el Bb, no sabe si tiene un campo ID o un campo de nombre o no no hace ningún arco aquí. Entonces no puedo codificar el, el cheque para ver si el ID existe aquí, porque no sabe si no ID q no sabe lo que es. Podría haber, razón por la cual estamos abstrayendo su propia expresión para que nosotros como programadores sobre esta situación, cuando queremos saber si es el ID, solo escribimos en base al id y luego basándonos en la tabla que estamos consultando, que se determinará por lo que pasemos como T, entonces se puede ejecutar la expresión. Entonces por eso nos están vendiendo. Entonces una vez más, genérico usando la palabra expresión y no codificando nada duro, total. De acuerdo, así que son los primeros días antes de que funcione esa expresión. Por lo tanto, veamos el siguiente fácil, que sería encontrar por petróleo sólo para finar. Entonces ésa es ésta, ¿verdad? Simplemente bien. Entonces déjame hacerlo asíncrona. Seguro tendremos operaciones asíncronas que podemos llevar a cabo y ver cómo funciona todo esto. Entonces lo primero que hacemos es obtener el conjunto de DB de la misma manera que lo hicimos en el, en la salida que consulta consultable es igual a db. Entonces después de que nuestra consulta sea igual a db, lo que voy a hacer es pasar e incluir a alguien que diga Si incluye. Entonces recuerda que nuestro parámetro incluye nos tendría cadena o una lista de representaciones de cadena de las medias de la tabla en caso de que eso no estuviera claro. Entonces eso significa cuando estamos tratando de encontrar algo, si quisiéramos incluirlo después, digamos, lista nueva, cadena nueva, lista, ¿verdad? Y luego inicializarlo para tener comillas, nombre de tabla comas comillas de tabla y hace un valles nupciales. Entonces estoy viendo si la variable includes no es igual a null, entonces indica claramente que queríamos incluir cosas con lo que se devuelve, correcto. Entonces saldríamos por cada uno y una será para cada uno. Digamos que lo voy a llamar mesa, sólo para dejar claro que estamos incluyendo mesas, ¿no? Por lo que para cada tabla que se enumera en eso incluye. Vamos a decir consulta. Recuerde, la consulta es igual a la consulta. Y tenemos acceso a la inclusión. Y entonces puedo decir una mesa, ¿verdad? Porque esta será una representación fuera del nombre de la tabla. Entonces estoy viendo esto incluir lo que entra incluye esto. Basta con seguir adelante e incluirlo. Y luego al final de todo eso, ahora puedo volver y el resultado de la consulta primero nuestro default. Y adivina qué expresión. De acuerdo, así que en realidad con toda franqueza, en el hallazgo, la persona X no debe ser anulable. Porque ¿qué más vas a encontrar si esto es nulable? De acuerdo, así que en realidad voy a sacar el PNL de ahí y dejarme volver al repositorio y sacar el PNL de aquí. Entonces lo que es nullable es lo que quieres incluir. Pero debes darme un experto en bio, cual voy a encontrar un disco o como no tiene sentido, ¿verdad? Entonces sí regresamos o su consulta. En primer lugar, nuestra asíncrona predeterminada. Por eso estamos llegando. Línea roja asíncrona, expresión punto y coma. Entonces así es como implementamos el nuevo hallazgo para ser genérico. Y luego saber por el más grande, que es el perro fino. Y este el más grande porque tenemos los tres parámetros. Entonces quiero decir solo vacante de lentes de Gran Bretaña, todos ellos en pantalla a la vez. Está bien, algo así como en inclinado. Tenemos que atender si hay una expresión. Si necesitamos pedir por y si hay alguno incluye. La parte preliminar va a parecer muy similar a lo que hemos hecho con los existe y la multa. Y esa es la primera línea. Siempre empezamos como casi todos FOX. Podemos llevar todo a la parte incluye, otra vez, esta copia que y bajarla a la bala final. Voy a simplemente reordenar la cotización, arte audaz. Por lo que tenemos nuestro objeto de consulta, shore. Lo siguiente que quiero hacer antes de pasar a la incluye. Y lo siguiente que quiero hacer es averiguar si hubo una expresión. Entonces veré si la expresión no es igual a nula. ¿ Verdad? Entonces hay un filtro, ¿verdad? Si hay un filtro, entonces la consulta no debe ser igual a la consulta punto donde expresión. ¿Verdad? Porque entonces si queríamos encontrar algo somos creados POR, lo siento, Libia y encontrar algo sencillo donde el número de B en nuestros D es mayor que uno, etcétera. Entonces dirías q punto es mayor que 21, eso es más fácil. John, ¿verdad? Y por supuesto todo esto sería en una expresión lambda. Y esto sería erupción Oppio No.2. Estamos bien. Entonces en lugar de requerirte que consigas todos los registros y luego postulas consciente, te estoy dando la capacidad de llamar a esta función, este golf encuentra todo. Y entonces sólo me puedes decir los expertos en que quieres, ¿verdad? Y entonces si esto y yo nos almacenamos en expertos en si esto tiene contenido que simplemente aplicamos la cláusula where en su nombre. Correcto. Y luego tenemos las inclusiones y acabamos de pasar por 1A incluye esas. Entonces no voy a repetir esa explicación. Entonces tenemos otro parámetro que es arte o por alguien que haga el arte o por desgracias, no lo hace. No creo que a estas alturas realmente importe. Si haces el primero 1, primero r en montones de todos, a menos que piense tal vez en términos de eficiencia, aplique primero la expresión. Pocos se requieren para hacer las inclusiones y los ideales de orden en lugar de ordenar a todos y luego filtrar. Entonces en ese sentido podría tener sentido, pero en el gran esquema de las cosas, no es ni aquí ni aquí. Entonces lo hacemos si ordenar por no es igual a nulo, entonces hacemos algo similar. Decimos que la consulta ahora es igual a ti mismo. Ordenar por y luego la expresión R. Bueno, el valor OrderBy que se pasó, correcto, ya se ven un ejemplo de lo que podría ser, verdad? Oh, en realidad, no. Por lo que esto no requeriría mucho. Ordenar por orden, por, lo siento, ordenar por sería la función que toma el parámetro. Entonces si solo miras hacia atrás la definición y esta es una función, ¿verdad? Por lo que ordenar por es una función y tomará como su parámetro que yo consultable t, que en este caso Query. Por lo que la consulta no es igual a lo que todas las funciones devuelven después de que haya ordenado que yo consultable. ¿ Está bien? Y luego al final de todos estos fines de semana regresamos cómo consultamos puntos y todo entra en alist de todos modos, así que dos lista. De acuerdo, entonces ruido cuando lo soltemos y lo enviamos de vuelta. Y déjame ver cuál es el error. O el método no es asíncrono, así que hagámoslo fácil. Ahí vamos. De acuerdo, entonces eso es por configurar nuestro repositorio genérico, ¿verdad? Entonces hicimos dos cosas. Eso es sólo una recapitulación rápida. Uno, implementamos este repositorio genérico, genérico. Simplemente uso el mismo archivo si cantidades en archivo diferente, eso está bien. Simplemente uso los mismos archivos que tendré el código viejo en comparación con el nuevo código con bastante facilidad, ¿verdad? Dijiste que todo lo que hicimos un poco de refactorización va con llamado Booleans, que van la función segura y las barinas fuera de tarea a funciones irregulares del vacío, ¿verdad? Y luego implementamos nuestro repositorio genérico para ser lo más genérico posible. Porque una vez más, ¿quién lo quiere? Este código base uno aún facilita cada otra clase, cada otra clase de datos. Entonces todo el mundo que no exista, el Senado ruanda podría existir, debería poder usar esto. En lugar de cada vez que presentamos una nueva tabla, tenemos que introducir un nuevo repositorio. Y ese juego de respaldar cosa de E14. Esto le quitará todo ese salto entre y tener un código sólido B que prohíbe cualquier circunstancia atenuante que requiera código más personalizado, por supuesto. Entonces cuando regresemos, buscaremos implementar nuestra unidad fuera archivo de trabajo y luego veremos comenzar el trabajo real. 56. Implementar la unidad de trabajo de trabajo: Nuestros chicos. Entonces donde Bach y saber lo que vamos a estar haciendo es configurar nuestras i unidades de trabajo y la unidad de archivos de trabajo. Muy bien, así que pasemos a nuestros contratos y creemos una nueva interfaz. Y este se va a llamar i unidad de cuatro. ¿ Está bien? Y luego una vez que eso se haya creado, claro que hay que recordar, hazlo público. Y entonces comenzaremos a implementar ciertas cosas. Entonces lo primero, bueno, en realidad quería heredar de yo desechable, desechable. Entonces en nuestros controladores, hay un método implícito de recolección de basura llamado disponer, ¿verdad? Si bien queremos hacer es una especie de crea una sobrecarga donde cuando está desechando incluye esta unidad de cuatro objetos. Porque las unidades de trabajo, como hemos estado viendo se giraron todas las tablas a través de cada archivo. En lugar de tener 20, los depositantes tendrán una unidad de trabajo que tenga acceso a todos ellos. Por lo que tipo de viene con la etiqueta de precio de usar memoria volátil así sucesivamente para manejar la eliminación correctamente y la recolección de basura en forma adecuada. Y así estarás implementando AI desechable junto con nuestras unidades fuera donde 1o M0 dot corrió Nolan, obtenemos tweets. Ya verás cómo funcionará. De acuerdo, entonces cuando queremos hacer nuestra unidad de trabajo, lo que tenemos que hacer es hacer una referencia a nuestro repositorio genérico y a las diferentes tablas que se deben incluir. De acuerdo, así que déjame hacer, déjame, yo, y eso tiene sentido. Entonces diseñé repositorio, no recuerdo que yo repositorio genérico el cual acabamos de implementar, ¿verdad? Yo repositorio genérico requiere clase concreta, así que es en el yo soy mismo trabajo sin duda empezamos a especificar las clases concretas, ¿verdad? Entonces el primer vaso que podemos usar, tipo, tipo de dejar, no vm, tipo ludus neve. Está bien. Déjame deshacerme de los Moguls. Entonces deja tipo y luego puedo llamar a este tipo de hoja simple. Y entonces solo duplicaré este mundo y otros. Entonces, ¿qué más tenemos solicitudes web y nos vamos, dejamos solicitada. El tipo de datos dejará solicitudes. Tan similar a siempre se sienta los conjuntos DB donde tenemos el tipo de clase, pero luego tenemos la versión pluralizada que está haciendo interior, solo quería esa convención de nomenclatura. Y entonces tenemos la asignación. De acuerdo, así que estoy dejando que la i unidad de trabajo, o al menos estoy creando referencias entre la asignación de licencias, la clase concreta asignación ingenua y el repositorio genérico. Entonces no, A través de los depósitos genéricos o podemos hacer todas esas cosas maravillosas con cualquiera de estas gafas. Una base de código. Está bien. Y no necesitábamos nada para empleado Lo siento, sé que solo tengo tres mesas. Esos son los tres, pero estoy seguro que ya puedes ver que en un sistema empresarial cuando tienes 20 tablas, sería más fácil simplemente manejarlas todas aquí con una base de código que estar implementando 20 contratos y 20 coincidentes repositorios para esas tablas. Está bien, entonces una vez que eso se hace, tenemos una cosa más, que es un medio y eso se guarda, ¿no? Por lo que necesitamos poner en las unidades de fuerza, para que eso se encargue de esto. Porque una vez más, podría estar manejando operaciones desde múltiples tablas. Por lo que solo manejará la misma operación una vez. Por lo que sabemos cuando implementamos una interfaz, tenemos que tener nuestra clase concreta. Todas las fuentes bajan al repositorio, adelante y agregan una nueva clase. Y luego su llamada unidad de trabajo, y agregarla. Y luego te bajas del trabajo, hereda de, bueno, lo adivinaste, Unidad 04. Y luego seguimos adelante e implementamos eso. Entonces déjame explicarte qué va a pasar. Entonces ya ven, porque implementamos yo desechable que nuestra llamada de función disponer así como las otras que declaramos nuestras células. De acuerdo, entonces lo primero que quiero hacer es implementar, implementar e inyectar, inicializar una instancia de nuestro contexto DB. De acuerdo, así que vamos a seguir adelante y hacer eso. Obligación contexto DB. Y en nuestro constructo, trabajo duro, compromiso contexto DB, contextos. El segundo que está un poco por hacer es implementar versiones privadas de cada uno de estos. Por lo que para cada Wanda pública habríamos hecho en el, en la interfaz, necesitamos tener como objetos privados que los representen aquí en nuestra clase concreta. Entonces sólo lo haré rápido. Justin, para lubricar esto o bien, déjame duplicar esta vez y traer esto aquí. Esto tiende a ser eficiente con mi copia y pegado y llamar a esto tipos de licencia. De lo que voy a duplicarlo. Y entonces estás en todas las peticiones y estás solo. ¿Está bien? Entonces eso fue debido, pero así tenemos nuestros contextos dv aplicación privada y nuestros objetos privados que vamos a estar usando para devolver las obstrucciones y encapsulación. El público es el público frente a uno. lo que realmente estaría regresando nuestro privado y lo que sea en el privado, r. Así que empecemos con cómo implementamos para nuestros tipos de hojas. Por lo que se puede ver que los comunistas automáticamente con un get y set. Pero lo que realmente estamos haciendo es. Conseguir que no necesitamos sentarnos nada. De acuerdo, entonces lo que obtenemos de nuestros tipos de licencia será el objeto, objeto privado para dejar tipos, ¿verdad? Pero entonces necesitamos hacer una comprobación de conocimientos. Vamos a ver si es nulo. Después regresamos una nueva instancia del repositorio genérico con el contexto. ¿ Está bien? Entonces, esta línea de código se vería algo así si es equivalente a null, luego regresar. Eso si estás usando tipos de licencia de operador ternario o devuelves una nueva instancia de tipo de hoja. Perdón, conocía incienso en repositorio genérico siguiendo tipo de hoja y con el contexto. De acuerdo, entonces por eso estamos para conseguir el contexto en esta unidad de donde porque el repositorio genérico, recuerden, esta bala de currículum ahí tiene la construccion de eso requiere el contexto. Por lo que sólo pasaremos el mismo objeto de contexto justo a través. Y será relativo a lo que sea que se especificó la clase, que en este caso es tipo de licencia. ¿ Está bien? Algunos, consiguiendo algunos errores aquí, en realidad, usando las nuevas características veré a Sharpie que no tienen que hacer eso se pone a sí mismo. Prefiere solo usar mi flecha ahí mismo, ¿verdad? Entonces esta dosis de RO dejan tipos si es equivalente a nulo. Pero entonces voy a acortar un poco más esto. Voy a ver salir tipos R0. Y entonces puedo ver en este punto, interrogación, signo de interrogación igual, ¿verdad? Entonces este es el cheque nulo es como un cheque nulo que dice si esto es nulo, entonces devuelve eso. Por lo que va a devolver esto. Y si no lo es, le devolverá eso. Y estoy consiguiendo esta época, creo que pensamos, oh, esto no debería ser de sólo lectura. No se le debe leer a la derecha. Y entonces por supuesto necesito el punto y coma. Entonces otra vez, haz todo eso en una línea como esta, ¿verdad? Ya sea más o menos legible para ti, no estoy seguro, pero más o menos. Siempre que tengamos una función rápida que necesitamos escribir en las versiones más modernas del diagnóstico C-sharp use esta flecha como una flecha lambda, y luego disturbios lo que sea que queramos devuelto cuando esto se llame, este constructo es llamado. ¿ Está bien? Y bien, así que aquí, aquí está dando un error porque decía que no estamos implementando. Seguramente no necesitamos los sets, así que déjenme volver atrás y quitarles esos. Y esas solo probabilidades de hábitats ponemos esa causa no estamos poniendo nada en la unidad de trabajo donde queremos llegar, correcto. Entonces, claro, eso, eso se va. Entonces cuando la unidad de trabajo sea causal, estará viendo algunos tipos de licencia al alza de unidades. Y entonces podemos acceder a los contextos y a todo, todo lo que está implícito a través de nuestra programación. Por lo que seguir esta sintaxis estará haciendo lo mismo para la solicitud. Entonces déjame solo seguir adelante y solo copiar y pegar y luego hacer los ajustes en consecuencia. Entonces aquí, no creería tipos lo que vas a creer solicita y las clases concretas, las peticiones. Y aquí serían asignaciones de licencia y clases concretas dejar asignación. ¿ Está bien? Por lo que sólo el alto cuatro nos va a dar acceso a cualquier mesa. Digamos que si tenías otra mesa que necesitaba presentar mañana, entonces solo creas el privado, creas el público. Por supuesto que asegúrate de que esté en la interfaz. Por lo que probablemente lo puso en la interfaz primero. Y entonces esto se quejará que implementaste para crear los privados y cualquier punto rojo, líneas similares. Y probablemente estés mirando esta retina y diciendo, vale, entonces ¿por qué no hicimos este patrón antes de hacer el repositorio Patreon? Bueno, todos son bloques de construcción y al menos has conseguido exposición al repositorio Patreon ya en ninguna parte podemos agregar otro patrón que podríamos arrojar a la mezcla. De acuerdo, entonces vamos a discutir esta función de disponer en toda la función de disponer, como dije, realmente va a hacer nuestro mango o recolección de basura para la unidad de cuatro objetos, ¿verdad? Por lo que típicamente verías esto implementado es que tienes la función que vamos a crear, Dios disponer. Y luego llamamos a esta recolección de basura controles recolector de basura. Ese es un servicio de reclamos diarios automáticos sobre la memoria usada. Por lo que es muy importante si quieres tener una aplicación en ejecución eficiente. Y verá que el punto GC suprime finalizar. Y El, está bien. Y luego disponer va a ser, bueno, déjame solo genera una llamada de método disponer justo debajo de aquí. Y entonces básicamente es pedir un booleano. Entonces le estamos diciendo que es cierto en todo momento. ¿ Todo bien? Y entonces aquí vemos si estos están bien, si V, Así que déjame cambiar este departamento en Gamow ruidoso, lo llaman v, me gusta llamarlo. De acuerdo, entonces si disponer, entonces lo que queremos hacer es disponer del contexto mismo también. Entonces para liberar cualquier memoria que sean conexión a base de datos podría estar consumiendo. Está bien, así que eso es todo para los enajenados. Y luego por el ahorro. Y aquí es donde el ahorro es bastante sencillo. En realidad sólo vamos a ver cómo estamos en los contextos de partitura. A ver si cambia como se ve, ¿verdad? Y por supuesto, tienes la escena Yo. Por lo que los cambios de guardar ocurren en la unidad de trabajo a diferencia del repositorio esta vez alrededor porque siempre va a estar viéndolo aparentar una vez. Por lo que en el lapso de plomo derivó cambios de CFD o cuatro veces en nuestro repositorio, simplemente lo haríamos una vez en la unidad de trabajo. ¿ Está bien? Y entonces todos estos están implementando nuestra heredera la funcionalidad que acabamos de definir en nuestro repositorio genérico. Y eso hará que la consulta sea mucho más fácil en todos los ámbitos. Ahora lo siguiente que quiero hacer antes de cerrar toda esta actividad es registrar las unidades fuera para nuestro startup dot cs. Por lo que sabemos que cada vez que añades una nueva interfaz con la común húmeda o seca, cada vez que añades un nuevo repositorio. Bueno, esta vez con la unidad de trabajo puedo hacer c y servicios. Y voy a añadir este como transitorio. Yo sería transitorio. Y tengo la misma unidad fuera del trabajo. Y necesitas un trabajo duro. ¿ Está bien? Y así cuando hacemos eso, podemos tener una implementación de todas las operaciones relacionadas con la base de datos para todas nuestras tablas. Una vez en un solo lugar, fácil acceso, fácil de ver y cambiar. De acuerdo, así que vamos, en la siguiente lección realmente pasa y empezaremos modificando nuestros tipos. Contralor. ¿ Ese sólo tiene un repositorio? Por lo que sería fácil simplemente modificar este repositorio y luego construimos a medida que avanzamos. De acuerdo, así que mantente atentos. 57. Controlador de los tipos de licencia de refactor: Muy bien chicos, así que estamos de vuelta en donde están los anuncios. Controlador de pestañas y empecemos nuestra cirugía. Entonces lo primero que voy a hacer es y no voy a eliminar ninguna de la coda, sí comenta en cualquier parte que hubiera conflicto, cita otros comentan. Pero quiero dejar los alcaloides de origen IQ y al menos tenerlo con fines de comparación o así. Voy a seguir adelante e incluir mi unidad de trabajo y lo voy a llamar subrayado unidades fuera del trabajo. ¿ Está bien? Y por supuesto, si estamos haciendo esto, tenemos que inyectarlo de la misma manera que habríamos hecho con la onda real. Entonces solo adelante y hacer nuestra inyección. Realmente no importa dónde escribas entiende estar estructurado. ¿ Está bien? Entonces en ninguna parte he accedido o unidad fuera del objeto de trabajo. ¿ Qué hacemos cuando queremos encontrar a todo alguien para comentar esta línea y pasar al siguiente nueve. Bueno, déjame duplicarlo. Por lo que la nueva forma de encontrar todo será siempre Unidad 04 puntos. A qué mesa quiero encontrar todo de Ramallah, esos objetos de cara pública, esos son a todos los que tenemos acceso aquí. Entonces unidad fuera, no estamos tipos de dejar, pensamiento encontrar todo. De acuerdo, ahí mismo, los estoy encontrando a todos. Entonces si yo, yo soy, quiero decir, todos somos humanos que podríamos haber dicho erróneamente asignaciones de licencia o bien dijiste que necesitas software, localizaciones, encuentra todo, entonces obviamente obtendrías un error aquí abajo porque entonces esto es volviendo a evolucionar tipos de ubicación, ¿verdad? Entonces por supuesto, ya sabes, los cheques y equilibrios tipo de disuadirían la capacidad de cometer cierto tipo de errores? No, la razón por la que lo tenemos llamado tipos de hojas aquí es que lo llamé tipos de dejar en las unidades de trabajo. Entonces si lo llamo las entidades de tipo sanguíneo tipo de hoja t o lo que sea, sus virtudes lo llamo. Se subiría aquí. Algunas personas, cuando implementan esto, en realidad se sentarían MC Light para dejar tipo repo y dejar solicitudes de repo. No veo el punto de volver a ver un repo, ya sé que estamos lidiando con verdadera Unidad 04 tipos dot find. Está bien, echemos un vistazo a este por existe. Entonces permítanme duplicar el original. Y luego voy a decir unidad fuera del trabajo. Tipos de dejar. Eso es existe ningún icono de aviso sí pasa en el ID porque espera la expresión algunos fueron después de la llegada, la expresión real. Entonces voy a decir Q. Y entonces cuando haga la expresión aquí, en realidad sabe que relativo a dejar ficha, estas son las columnas que nuevamente miro. Entonces si quería saber si existe uno por este nombre, R1, por defecto, el número de b son por ID. Sé tener mejor control sobre qué tipo de filtro aplico aquí sin tener que escribir tres o cuatro funciones diferentes para facilitar a través de nuestros cuatro escenarios de filtros diferentes, ¿verdad? Entonces puedo decir que existe donde el ID es equivalente a la ID aquí. ¿ Todo bien? Y luego no escuches dónde hacemos el hallazgo por DNI. Hacer los niños y comentar a alguien que diga aquí que quiero unidad fuera de palabra.tipos inferiores, no encontrar, correr por, renombrarlo de encontrar por ID. Pero ahora tengo la capacidad de escribir en mi expresión Q dot id equivalente a ID. Ahora lo que quiero hacer es volver al repo original para el tipo Leaf. Bueno, no creo que incluyéramos nada para el tipo Leaf, pero sólo quería doble comprobación. Por lo tanto, deja tipo de repositorio. Cuando nos encontramos no incluimos nada. No creo que nada esté relacionado con ello para conseguir incluirlo de todos modos, Eso está bien. Pero si tenemos que incluir y cuando pasemos a todos los que involucran incluye y verás exactamente cómo funciona eso. Entonces esa sería la nueva forma de encontrar. Y una vez más, podríamos encontrar fácilmente por cualquier expresión que necesitemos para el crear. Hacemos todo eso. Por lo que incluso yacía este talón creado donde poníamos manualmente en la fecha creada ahí e incluso ser modificados, cosas así. Probablemente no comas todo. Puedes abstraer esta funcionalidad y lo haremos en unos pocos. Pero en este momento solo quiero enfocarme en el, así que déjame comentar eso fuera. Duplicar KU y luego unidad de trabajo. Deja tipos punto crear. Y entonces, bueno, ¿cuál es el error aquí? Vacío. Ok, entonces en realidad nos deshacemos de estas cosas ahora, ¿verdad? Bueno, en realidad el es exitoso entonces arriba aquí. Está bien. Entonces lo que pasa es que cuando creamos uno, es sólo hacer lo creativo o los blancos no ahorrar. Entonces en el repositorio más antiguo parecíamos después cada vez que creábamos, déjame simplemente volver al repositorio más antiguo y mirarlo de nuevo. Entonces cuando creamos y en este mar de volvería. Y déjame simplemente no, no engañes esos cambios no guardados y devuelve el uno o 0. Entonces vamos a replicar eso en nuestra unidad de trabajo sólo para que estemos en la misma página. Pero entonces el problema aquí con la unidad de trabajo es que estos contextos ahorrando cambios recibiendo a través de cualquier tabla. Entonces no es del todo fácil de destruir en Xj o para esta operación en particular, fue exitosa o no? Entonces en realidad sólo voy a acabar con esa herramienta para comprobar porque la mayoría de las veces cuando hay un error, la captura sería, sería, saltaría de todos modos. Entonces en realidad me voy a llevar por completo todos estos 0s de comprobación de éxito. Y lo que hacemos es solo nuestra unidad fuera de trabajo punto c. Y lo conozco a c. ¿ Verdad? Entonces así es como se hace eso. Entonces sí, son dos líneas. Si no estuvieras haciendo las declaraciones if y así sucesivamente, probablemente simplemente lo harías en una línea de todos modos, liderar eso. Pero sí, son dos líneas. Lo que creo que los beneficios a largo plazo o nosotros, ya sabes, sólo el hecho de que estamos produciendo un nano es de dos líneas. Entonces sigamos adelante. Entonces aquí hacemos lo mismo existe y esto se parece exactamente a los detalles. Entonces solo voy a copiar y pegar. Realmente para el d, para la edición, copiar y pegar. Y luego para, bueno, modificamos o eliminamos de todos modos. Entonces echemos un vistazo a la otra edición nulo. Entonces para el editor Post, tenemos lo mismo es éxito, cheque, metros, comentar todo esto viejo. Yo lo moví inicialmente, pero sólo lo comentaré. Y entonces lo que haremos es, bueno, la actualización no fue sincrónica, por lo que unidad de palabra.tipos inferiores Actualiza y estamos actualizando tipo hoja, ¿verdad? Y luego ahorramos. Ah, y guardar es lo correcto. Entonces ahí vamos. Entonces hicimos algo similar. Entonces aquí la eliminación, lo encontramos, y luego nos adelantamos y borramos. De acuerdo, entonces lo que voy a hacer aquí es pensar, lo que terminó me lo hago en. En realidad hicimos dos de ellos de la misma manera. En realidad no estoy recordando cuál. Recordar. Déjame volver a la vista para que pueda hacerlo bien. Creo que lo hicimos desde el índice. Entonces más que probable que lo hiciéramos. Entonces incluso así, borra, vamos a modificar la forma en que funciona esto. Voy a quitar esto. Las cláusulas Onclick pueden ser una preocupación importante en materia de seguridad. Y lo que estaremos usando es como un envío de formulario al puesto. Entonces sólo voy a modificarlos ambos tableros adelante queremos usar el post porque quiero tener la protección del anti 4A Tolkien. Cuando estamos haciendo una operación de eliminación, la forma en que lo escribimos inicialmente, mientras que fue fácil y se ve limpio. Esto en realidad es un riesgo para la seguridad. Estará revisando eso en unos pocos. Entonces yo soy uno de ellos sólo va a modificar una de las dos para que se vean de la misma manera. Pero una vez más, queremos avanzar con esto. Entonces lo que hacemos aquí es el hallazgo. Entonces permítanme duplicar los comentarios, el origen. Y luego voy a ver en una unidad cuadrada de trabajo puntos dejar tipos, punto hallazgo y la expresión será, y entonces en caso de que sí quiera negro, morí. Cuando tienes múltiples parámetros, puedes decir expertos en colon o como quieres especificar qué parámetro estás impidiendo un valor cuatro, nuevo para ver el nombre de Parramatta colon y luego pones el valor, ¿no? Entonces j2, perdón, expresión es q. Y esta expresión lambda donde decimos q punto o, lo siento el nombre de la función está mal. Entonces find se preguntaba por qué eso no funcionaba. Ahí vamos. El ID de geodatos es equivalente en ID. Entonces se va a devolver un parámetro, o lo siento, el objeto aquí. Y luego vemos que quieres hablar por punto tipo hoja borrar y aliviado de que sea vacío. Entonces no le debemos a1 y por supuesto no comprobamos el éxito ni nada por el estilo. Quita todo eso. Por supuesto lo envolvería en un try catch. Entonces es bits rotos, es una tendencia rápida que atraiga consigue, que es lo que hicimos aquí. Por lo que esto se permite un poco o en uso de todos modos. Entonces solo copiaré ese código y lo pegaré aquí abajo. Está bien. Entonces como dije, vamos a refactorizar nuestras eliminaciones. Pero eso es en realidad todo para cambiar o el código de controlador tipo hoja. Para que podamos seguir adelante y probarlo. Puedes probarlo. No voy a probarlo. Por lo que realmente estoy aquí para refactorizar y cambiar un patrón donde puedas seguir adelante y probarlo. Yo crearía, eliminaría y actualizaría, y verás que todo va a funcionar como si nada hubiera cambiado, ¿verdad? Pero entonces cuando miras la base de código, ¿ves que habríamos usado unidad de trabajo en lugar del repo? No. Para esta modificación uno a uno, no parece mucho de gran cosa. En todo caso, parece más una molestia. Porque a veces reemplazamos una línea potencial por dos líneas. ¿ Está bien? Entonces lo que vamos a hacer es o y aquí, ¿no? Entonces recuerda, siempre necesito guardar los cambios. Por lo que necesita ser en una palabra dura, guardar cada vez que hagas la actualización, ¿verdad? Por lo que hizo el CVE, salvo para el Eliminar, Actualizar eso. De acuerdo, entonces lo que voy a hacer ahora es pasar a la final. No están bien no se abanico en la siguiente, que es la emisividad solicita y asignación Aleve. De acuerdo, la asignación de licencias es un poco más fácil de manejar. Entonces voy a estar haciendo las solicitudes de licencia que hacer porque teníamos tres repos diferentes interactuando con. Entonces vamos a pasar por refactorizar este juntos en el siguiente video. Pero entonces te voy a desafiar para que intentes hacer esto por tu cuenta. Entonces voy a hacer con este fuera de cámara y luego podemos seguir adelante y comparar que lo hiciste correctamente o incluso que lo hice correctamente. Pero vamos a estar haciendo esto juntos. Por lo que puedes ver exactamente cómo el patrón de unidad de trabajo nos permite convencer o genérico, lo siento, nuestro patrón original de Repositorio un poco más. 58. Controlador de las peticiones de votos de falta de Refactor: Muy bien, entonces estamos de vuelta y estamos modificando y dejando solicitudes de control o controlador. Perdón. Entonces ya he ido adelante e inyectado, ¿verdad? Todavía no eliminé las referencias originales a los repos. Entonces después de terminar las modificaciones que podemos volver atrás y limpiarlo y verá cuánto más fácil es mirar el código. Y yo soy camión. Entonces, empecemos con modificar nuestro índice. Entonces sí cae en parecer Potter y solo voy a duplicar una línea luego entrar y luego vemos unidad de palabras. Por lo que note que sumamos a las solicitudes de licencia muy específicas, repo, repo. Por lo que esta vez te puedo decir y está fuera de trabajo, especifica las tablas. Entonces este es el punto de solicitud encontrar todo No, no hay filtro ni nada. Entonces eso está bien. Todo se encenderá en consecuencia. Y luego aquí, aquí hay una buena nota. Aquí te dejamos una buena razón para toda la expresión y la capacidad de hacer el filtro sobre la marcha porque teníamos que mirar las asignaciones de empleados y luego buscar la asignación de licencias. Y tuvimos que hacer una función personalizada para que ese empleado solicite para hacer eso y en una función personalizada. Entonces veamos cómo podemos reescribir. No sigas los de Shun y sé más genérico. Entonces tendremos al empleado, recuperamos el DNI del empleado. Entonces déjenme duplicar este 1 primero. Ponga un poco de espaciado para que podamos ver exactamente qué se está modificando, ¿verdad? Por lo que las asignaciones de empleados ahora serán iguales a las asignaciones de licencia por unidad fuera del trabajo, sin disfraz, y decir que no hay código personalizado ni ningún costo en la función, simplemente bien. Está bien, y luego llegamos a poner en la expresión Q lambda Q dot ID de empleado iguales a id de empleado Mira eso. Está bien, entonces estamos diciendo unidad de trabajo asignaciones de licencia Dame todas las demás adquiridas donde esa condición sea cierta. Y podemos hacer lo mismo por este. Entonces déjame venir Momento. El original, Nuestro ver esta vez es las solicitudes de licencia. Por lo que es Unidad o olvidó dejar solicitudes mesa. Encuéntralos todos. Donde la expresión q punto está ahí una identificación de empleado o bien, bien, Así que esto son solicitudes por parte de los empleados. Entonces déjame ver exactamente qué se estaba usando aquí. Entonces es disciplina artefacto ir a ver Así puedo usar sí ir a la implementación. Y estaba revisando dónde. Entonces esa fue la expresión lambda original, ¿verdad? Por lo que puedo literalmente sólo esta expresión lambda original. Esta es una función personalizada, ¿recuerdas? Pero no, no necesito una función personalizada. Yo puedo hacer esa expresión lambda y ponerla bien en el hallazgo todo. Y estamos bien para ir y déjame comentar eso fuera. Y hará el mismo trabajo. Muy bien, Polar off siendo genérico una base de código y permitiéndonos leer consultas poderosas usando expresiones muy simples. Y luego hay chasqueando porque nada ha cambiado realmente. De acuerdo, hagamos lo mismo por este. Entonces hagamos los comentarios de Pickett y luego unidad de trabajo. Esto es lo que pide dejar. Entonces esta copia esto, y está bien. Y la expresión es q dot ID es igual a ID. Eso se ve bien. Y luego aquí hay un más grande en ninguna parte. Creo que aquí es donde teníamos todos los repositorios que se están incluyendo fueron adquiridos en este. Entonces, trabajemos a través. Entonces, en primer lugar, encontramos las solicitudes de licencia. Bueno, eso lo hicimos aquí, así que sólo voy a copiar y pegar ese código. Está bien, como para como, entonces obtenemos al empleado solicitante, la hoja tipo ID, entonces tenemos que conseguir al Dios, esta asignación de licencia, obtener asignaciones de licencia por empleado y función de disfraz tipo 1B, ¿verdad? Entonces si voy a la implementación, puedo ver lo X-Y que hizo. Tenía que conseguir el periodo en el que este año. Y luego dijo, yo localizaciones, suelo tendrá todas las asignaciones. Y luego dijimos asignaciones me consiguen las primeras son por defecto para el empleado, para la esfera y para esa hoja tipo ID, ¿verdad? Entonces sólo voy a copiar toda esta expresión en poco claro, tenemos un poco más de trabajo que hacer, ir tras poner el PIR. De qué podemos hacer eso desde dentro del controlador. No necesariamente tenemos que hacer eso en el método, ¿verdad? Entonces quiero decir que es una refactorización existe como una sal donde aquí no es absolutamente necesario en este punto. Déjenme simplemente cerrar. Muy bien, entonces el Contralor de Solicitudes, aquí vamos. Entonces voy a reescribirlo. Y cuándo decir la ubicación var es igual a. Y solo escribiré como uno todo mano 08 unidades fuera de punto de trabajo, dejar, localizaciones, dot find. Y esto es que se suponía que iba a conseguir uno, así que está bien no encontrar. Está bien. Y entonces tenemos nuestra expresión, que es Lindsay se ve algo así. Pero me fui a modificar la subred porque necesitamos periodo. Entonces déjame solo conseguir el par para guardar var fecha periódica, hora, punto No.2 año. Está bien, así que me sale el periodo no. Y luego seguimos adelante. Entonces estoy recibiendo un poco de error aquí. Localizaciones o, y eso es porque no traje el taco y el tipo de hoja se deletreó incorrectamente. Por lo que B a esto girando un tipo IV. Y claramente q para la expresión lambda. Y ahí vamos. De acuerdo, entonces ahora así es como le gusta a la raíz cuadrada. Entonces quiero decir, podría no ser tan ordenado como tener esa función LM costera. Pero para mí, es mucho más mantenible y no estoy diciendo que esto sea prescriptivo. No estoy viendo esto. El modo en que debes saber implementado si te sientes cómodo con lo genérico, con el naranja ahora patrón Repositorio, entonces por todos los medios usa eso. Solo te estoy mostrando una dimensión diferente a cómo podemos conseguir código escrito y más mantenible. De acuerdo, entonces vamos a seguir adelante y conseguir nuestra asignación usando la unidad de trabajo. Y luego para las actualizaciones AC actualizamos aquí, ¿verdad? Entonces sí actualizó luego ver si en este que actualizar y ver si ese. Para que pueda, sólo voy a comentar estas dos líneas. Y voy a ver unidad de subrayado fuera de punto de trabajo, solicitudes de licencia, punto albeit. Y va a creer las peticiones. De acuerdo, así que esa es la primera pendiente necesita. Y en la segunda estarán asignaciones de licencia. Esa será Janet poniendo en juego la asignación. Y entonces qué tenemos que hacer después de que hagamos todo eso? Sólo tenemos que ver. Entonces esto literalmente solo va a llevar a cabo parezco operación en una vez. Entonces mientras estamos convirtiendo dos líneas de código en tres, el punto es que no estamos haciendo algo después ahorrando y luego haciendo algo que ahorrar donde dejar que el contexto ni que esto tenga que hacerse. Entonces y por fin vemos que solo se compromete y se satisface. De acuerdo, así que comentamos unas líneas. Y, bueno, algunas líneas parecen más largas que algunas porque ésta, toda esta línea parece un poco más cromosoma que este BOD para mí. Y esto es lo primero y lo haré una vez más, va a ser más mantenible en el futuro, ¿verdad? De acuerdo, así que aquí tenemos usuario manager consiguiendo eso y luego no escuchamos, hacemos una multa por lo que unidad de trabajo, dot leave solicita encontrar. Y en nuestra expresión lambda, ella no equivaldría a eso. Y luego hacemos la actualización. Por lo que todavía estoy tratando de comentar y reescribir y así podemos hacer un seguimiento de los cambios que estamos haciendo. Entonces eso son solicitudes de licencia. Pensamientos sobre las solicitudes y dejar, ¿verdad? Y entonces por supuesto hay que recordar dar seguimiento a eso con nosotros. Y esto es un fregadero. Entonces para el So para crear, llegamos a todos ellos. Entonces comentarios, var, lo siento, déjame duplicar y nos vemos en todo por. Entonces esa es una de las partes molestas de la refactorización es difícil prestar atención y Chen ser centro muy meticuloso retumbó de estas cosas. Pero hey, entonces cambiamos ese OneNote para el create. Y aquí, aquí hicimos esa misma búsqueda para el empleado y las cosas de asignación. Entonces sólo volveré en prestado ese pedacito de código. Entonces fueron estas dos líneas. ¿ Y simplemente reemplazar este por esas dos líneas? Había lo mismo ¿no? Hoja tipo D, OK, fue la misma búsqueda, solo se pasaban datos diferentes. Por lo que esto debe ser model.predecir tipo. Ah, era ID de empleado y luego modelo de hoja de punto tipo ID. De acuerdo, solo doble comprobación para asegurarme que estoy haciendo la conexión correcta entre la herramienta. Por lo que fue modelado en elif tipo ID para ese parámetro. Y éste hubiera sido empleado dot id. De acuerdo, como por falta. Y aunque haces todas esas cosas. Entonces cuando lleguemos a aquí por lo creativo, solo peinando el alma. Y recuerda Unidad 04, puntos, peticiones crean. Y estamos pasando en ese objeto de solicitud de permiso. Y entonces esta es una escena. Y luego peso la unidad de punto de trabajo. Y yo sólo me voy a llevar todo este cheque. Entonces una vez más, estoy tomando todo ese jet porque más de 90 algo salió mal, cogeríamos la excepción y de repente estaremos haciendo lo mismo de todos modos. Entonces sólo tratando de ser mientras estamos factorizando, voy a ser más eficiente a es nuestra operación y veo que tengo una flecha aquí, así que déjame solo arreglar eso. Empleado puntos IID con lo guardé. No oigo encontrar por DNI. ¿ Hiciste un ID de la NBA si en algún lugar cercano? Ah, no cambiamos este. Esto debió haberse cambiado. Entonces voy a cambiar este antes de seguir adelante. Entonces esa es nula Unidad 04. Los puntos dejan tipos, no encuentran. Está bien, así que para este, déjame reescribirlo. Obtendrás los cuatro tipos. Y estamos encontrando por la expresión q-dot, estos equivalentes. Entonces eso está bien. Y así, para que no quiero que me malinterpretes. No estoy diciendo que sea duro en foss que más te y esto es solicitudes aseadas, lo siento, no es difícil en Fossae debes usar el genérico porque si tuvieras funciones personalizadas que querías teclear en mi Yolanda para montar las funciones por algunas cosas. Siempre puedes implementar tu propio contrato, tu propia interfaz, y luego hacer que la unidad de guerra u otros terópodos derbies hereden de ese gradado. Por lo que siempre que la interfaz hereda de una interfaz. Entonces quien hereda esa interfaz, que en el caso del repositorio genérico , lo hará, será un poco complicado. Entonces tuve un tren de pensamiento y lo siento. Pero podrías maniobrar yo flecha y si realmente quisieras agregar unas funciones personalizadas, ¿qué para mí? Escribirlo de esta manera es mucho mejor porque entonces no necesitas tener demasiadas funciones de personalización están en el lugar. Otro patrón que realmente podría implementar algo así como patrón de comando y consulta, donde encima de la unidad de trabajo, tendría una capa de comandos donde interactúa con el comando. Y el mando tendría en realidad las funciones de vestuario, que luego provocan una unidad de cuatro funciones en consecuencia. Por lo que hay muchas obstrucciones y capas que puedes poner al final del día, está algo fuera de lo que necesitas. No es cuestión de hacerlo con estilo. Es cuestión de lo que es mantenible para ti, sustentable y en el futuro, puedes modificarlo un complemento más fácilmente. Entonces creo que ya terminamos con la licencia Solicita Contralor. No hicimos nada con el editor, así que no tenemos que modificarlos. Ah, aquí hay una línea más. Y luego cuando terminemos esto, podemos seguir adelante y limpiar todo el código que ya no es útil. Entonces esto es dejar peticiones pensadas, Oh, esto no es ver así que no hay malas hierbas fueron entonces por supuesto hay que esperar unidad fuera donde no. Está bien. Por lo que ahora terminamos con la limpieza del descanso. El más antiguo presupuesto de la OPI. Si no lo estamos, entonces estoy seguro de que surgirán más errores cuando empezamos en esto. Pero ahora que estamos usando la unidad de trabajo, ya no tenemos que inyectar todos estos. Entonces en realidad sólo voy a eliminar las referencias. estoy quitando porque quería ver el nuevo código. Entonces cualquier cosa que se comentara ni se moviera. Y tienes todas las versiones del código. Entonces si necesitas volver a la Tierra me referencias, siempre puedes hacer eso. Pero ahora que los hemos quitado, solo sigamos adelante y cualquier cosa que se comente, solo me lo voy a llevar todo. No me gusta ver demasiados comentarios en nuestro código, ¿verdad? Por lo que el evaluador los movió. Y esta limpieza actividades casi se hacen. Y la mayor parte es realmente parecida para como dije, muchos de ellos como las consultas son 19. Pero entonces nos complace un terreno con más líneas de código más adelante. las operaciones que se requieren, ahorrando. Pero la ventaja definitiva o la victoria definitiva para mí fue el hecho de que con una inyección, quiero referirme a un punto de referencia, puedo acceder a todas las mesas. Así que inicialmente cuando me inyectaron los tres repos, ya sabes, quiero decir, podía imaginar que yo estaba interactuando con esta mesa, esa mesa y esa mesa. ¿ Está bien? Y si una cuarta tabla entrara en la mezcla, entonces tendría que pasar por todo el proceso de nuevos contratos, New Repository, inyectándolo, recordando muy inquietante a asombrado, y luego usando ese informe, específicamente gorro con una unidad de trabajo, si una nueva mesa viene en toda la tarde es aunque una, la interfaz aquí para unidad de trabajo. Y luego para actualizar la clase concreta para la unidad de trabajo, asegúrate de inicializarla y luego terminamos. Y una vez hecho eso, en cualquier lugar que inyectes tu unidad de trabajo, ya sabes, tienes acceso a cada clase o cada mesa que se haya definido para la interacción a través de tus contratos. Entonces que para mí es la meta ventaja con esta unidades genéricas fuera de patrones de trabajo. Como dije, siempre son pros y contras porque algunos buenos no, argumentan que encuentran desdeñosos. No les gusta el hecho de que después escribe la expresión lambda directamente dentro del controlador, que es un punto de vista válido, que es un punto de vista válido, ¿verdad? Porque entonces se convierte en una Missy y demasiado fácil para olvidarse de hacer algo más adelante. Por lo que eso es un puntos válidos. Por supuesto, hay pros y contras, pero entonces, ya sabes, no hay dos patrones claramente diferentes, bueno, uno se construye sobre el otro, pero no se conocen dos formas de implementar este tipo de patrones. Puedes usar marihuana te convenga en tu situación es contextos Maribel que lo que es nuevo y lo que es el autobús. Por lo que hemos hecho leave requests controller, les voy a dejar para que sigan adelante y hagan el ejercicio de factoring del controlador de asignación. Yo lo voy a hacer y va a volver. Simplemente comparamos y pasa por ahí. Y luego simplemente avanza con un extremo a otro modificación y aplicación de tienda. 59. Control de las ubicaciones de ausencia de la: Nuestro tipo, así que estamos de vuelta y quería empezar con el controlador de peticiones. Esta es la que acabamos de hacer, pero hay ciertas cosas que he omitido. Y espero que al menos hayas probado y hubieras visto algunos errores. Entonces habrías estado consiguiendo Arecibo, el nulo o el subsónico forense. Y esas excepciones de referencia nula serían respecto a las tablas que se habrían incluido Con base en el repositorio anterior. Entonces, ¿recuerdas eso está en el repositorio original como para solicitudes de licencia quién habría ido automáticamente adelante y dijo que queremos incluir estos tres? No, en el genérico hacemos disposiciones para incluir lo que tienen que declararse explícitamente. El motivo de esa diferencia es que no necesariamente quieres obtener todos estos detalles cada vez que quiere hacer una búsqueda, ¿verdad? Y para que esta plaza en realidad fuera mucho más lenta porque entonces cada vez que estás encontrando todas las solicitudes de licencia, es automáticamente interior uniendo todos los detalles para estas otras tablas, lo cual podría no absolutamente necesario para esto vista particular. Sólo querías enumerarlos. No necesitas ningún detalle, pero entonces te estás acercando a Dios, los detalles no los usan, ¿verdad? Por lo que en el repositorio genérico o unidades de mantequilla de trabajo y en realidad hicimos disposiciones que pueden ver para esta solicitud en particular, quiero incluir estas tablas. ¿ Está bien? Y así para las solicitudes de licencia, empecemos con el índice. Entonces solo les estoy mostrando la imagen terminada justo donde ya cambiaron o dejan solicitudes para ser la unidad de trabajo. Las solicitudes encuentran todo bien, no hicimos fue incluído o parámetro para inclusiones. Entonces recuerda dije que siempre se puede, cualquiera que sea el nombre del parámetro que esté en la versión más reciente o C-Sharp, realidad se puede ver que Parramatta nombre colon y luego decir, ¿qué quieres escribir originalmente, tú hubiera tenido que hacer algo así como expresar que el primero es nulo. Expresar que en un segundo encendido es todos esos parámetros T3 toma expresión. Toma orden por Annie toma que incluye LR. Por lo que originalmente tendrías que decir nulo para los expertos en anular el orden por este valor para el Incluye. Pero no, si solo quiero proporcionar un valor para el Incluye, puedo decir que incluye dos puntos y luego simplemente tener cualquier valor que deba ser para ese parámetro. Entonces de esa manera no tengo que pasar por cada parámetro solo para decir que no, no quiero ese. Entonces así es como irías en barco, incluyendo tus mesas en este nuevo patrón. Está bien. Por lo que queríamos incluir al empleado solicitante y tipo de licencia porque en el índice de solicitudes de licencia, creo en que al menos estamos mostrando realmente el nombre del empleado y estamos mostrando el tipo de hoja que solicitaron, por lo que necesitamos esos dos detalles. Y si tú, si no estás seguro de cuándo hacer el incluyo Darwin no también hace backtracking porque ya construimos aplicaciones. Por lo que de nuevo, esta camioneta Bach y vaya a la página de índice de solicitudes de licencia. Y en cualquier lugar que nos veas haciendo algo que yo no aquí, donde tienes este punto algo punto algo más que sabes que esto es lo que se incluyó son esto es lo que necesitaba ser incluido, correcto. Por lo que el empleado solicitante necesitaba ser incluido. Por lo que obtendrá el primer nombre y Type necesitó ser incluido para que pudiéramos conseguir ese nombre. Está bien. Por lo que sólo voy a pasar por el resto de las solicitudes de licencia. Ya lo hicimos, así que no es mucho más lo que necesito mostrarte. Por lo que para el índice, tenemos al empleado solicitante y tipo de licencia, para que puedas seguir adelante y actualizar esos valores en la llamada de función. Tenemos en las millas, tenemos que incluir tipo de hoja. Por lo que en mi licencia, no necesito incluir los detalles del empleado solicitante. Porque la teoría detrás de las páginas Mi Hoja que yo el empleado revelando mi propia página. Entonces estamos obteniendo todos los detalles de quien sea amado ser. Y luego cuando obtenemos las asignaciones, solo hay que averiguar ubicaciones en tan lejos que empleado y doess incluyan tipo de hoja. Eso es todo. Y entonces mi licencia va a funcionar por los detalles que tenemos para conseguir a quienes se lo acreditan, quién lo solicitó, y dejar tipo. Entonces ya ves, eso es lo que estoy viendo. Podemos decidir dinámicamente cuándo necesitamos un solo detalle. Cuando necesitamos algunos detalles, son cuando necesitamos todos los detalles, no tenemos la habitación, buck todos los detalles todo el tiempo sin motivo porque aquí estás viendo que los datos aprobados por el empleado requirente habrían sido obsoleto para esta página en particular. Entonces no quieres introducir algo que va a significar la carga del lenguaje del doctorado cuando no tiene que hacerlo. De acuerdo, avanzando, sólo estoy pasando por ahí y viendo si había alguna otra que tuviera que poner en un inclusivo y no había otros. Por lo que eso sería por las solicitudes de licencia. Está bien. A pesar de que el reto hubiera sido que terminaras todo creer, asignación. Y pasé por ahí y ya está listo para ir a todas las inyecciones y las sustituyó por la unidad de inyección de trabajo. Y vamos a dar un paso adelante. Entonces para nuestro bien, déjame ir a la escuela una línea a la vez. Entonces para el índice, sé justo cómo encontrar todo, encontrar todos los tipos de hojas. De acuerdo, y luego cargamos la página de índice para la asignación en pantalla. Por una licencia fija. Yo intercambié todo el hallazgo ahí mismo y algunos de ellos los borré y así sucesivamente. Y luego después recuerdo que debería haber comentarios. Entonces como éste para comprobar la asignación. Check allocation habría devuelto originalmente un booleano. Y ese booleano habría ejecutado esta expresión usando estos valores. De acuerdo, así ID MID y cuando tenga periodo. Por lo que siempre pueden volver atrás y mirar la asignación original de garrapatas. Pero mientras lo hicimos, acabamos de definir periodo aquí. Y entonces dijimos que existe la Unidad 04 asignaciones. Y que estoy viendo esos existen donde el ID de empleado coincide con eso, dejar tanto es que bajo peer en mucho? Es eso. Entonces eso es, eso es más o menos nuestro booleano ahí mismo, ¿verdad? Y luego aquí abajo, vamos adelante y hacemos nuestro Creador y nuestros empleados en la lista. Bueno esa es una ya está confiando en el administrador de usuarios, así que los matices no han tocado el administrador de usuarios. No construimos un repo para Usama. John, no estoy haciendo software para user manager porque ya está implícito dentro de nuestros monitores de usuario. No quiero que eso sería exagerado. Pasando a los detalles, vamos adelante y obtenemos los detalles de todas las asignaciones. Y así esta línea se divide en dos líneas, ¿verdad? Entonces hicimos la llamada de Fang Xiang, cuando hizo el mapeo y luego la llamada de función. Y lo dividirán en la llamada de función y luego el mapeo, correcto, para que sea más fácil de consumir. Entonces en este en particular, tenemos tarjetas rojas donde estamos haciendo una búsqueda sobre asignación de licencias en estable. Y entonces tenemos la expresión. Entonces esto ahora tenemos dos parámetros expresión para obtener el ID de empleado igual. Entonces eso es bajo periodo, fue un periodo. Y por supuesto fuera, encuentra eso ahí. Y luego tenemos los Incluidos, donde solo incluimos la única cosa. Por lo que una vez más, en el origen, nuestro repositorio habría estado incluyendo dos o tres tablas más cuando era residencial, solo necesitas incluir una para la vista de detalles. Entonces, donde ser un poco más eficiente aquí, ¿verdad? Y luego pasando por la edición, cuando nos metemos en asignación de licencias donde entonces lo mismo, tenemos nuestra expresión y tenemos nuestros Incluidos. De acuerdo, así que después de pasar de la edición, pasamos al poste donde obtenemos el récord de robots submarinos que necesitábamos hacer actualización y luego ver. De acuerdo, y eso sería todo por nuestro controlador de asignación de licencias. Y por extensión, eso es realmente todo para las unidades genéricas de trabajo o el repositorio genérico Patreon y unidades de trabajo donde quisieras congelarlo. Entonces eso es realmente todo lo que necesitábamos discutir para esta sección del módulo. Y más adelante lo que haremos es ir por cómo podemos personalizar los correos sentados, como cuando una e una solicitud de email va, oh, probablemente quería enviar un correo electrónico al usuario administrativo. Basta con disparar un correo electrónico o se aprueba una licencia de victoria o, ya sabes, se interrumpe con aprobar, rechazado o lo que sea, entonces quiso enviar un correo electrónico al empleado para que se lo haga saber. Correcto. Para que podamos ver los correos electrónicos de notificación. Y también vamos a limpiar esa eliminación. Como mencioné antes, que queremos cambiar el código aquí donde tenemos eso. Déjame ver si puedo encontrar en tipos de licencia donde hacemos eso onclick. Queremos un tipo de asegurar este ánimo más. Entonces, cuando regresemos, veremos esas modificaciones. 60. Actuación: el tipo de forma extendida para la unidad de trabajo: Oigan chicos, bienvenidos de nuevo. En esta lección, vamos a estar echando un vistazo a modificar nuestras unidades de trabajo para que sean un poco más fuertemente mecanografiadas cuando se trata de la lista de Incluye. Entonces en este momento solo se basa en una lista de tipo string y nosotros, los desarrolladores tenemos que escribir las cadenas manualmente. Ahora esto se puede mitigar en contra de los que tienen nombres de clase, porque podríamos decir nombre fuera y podríamos ver empleado. Por lo que eso en realidad simplemente renderizaría una representación de cadena del nombre empleado. Entonces esto funciona, pero entonces todavía no es infalible porque no todas las propiedades de navegación tienen un nombre de clase correspondiente. Por ejemplo, en nuestro creo que localizaciones controlador o dejo Solicitudes Controller otro, no hay navegación. No hay clase que corresponda con empleado solicitante, ¿verdad? Por lo que no necesariamente es infalible. Pero si te preguntas, ¿por qué querrías modificarlo? Otro tema podría ser que si cambiamos el nombre de nuestra clase o algo que está en el futuro o incluso no propiedad. Si modifico la propiedad en la asignación de hojas estable de ser empleado a empleado torcido, entonces no habría indicación en el código de que algo ha cambiado. Entonces sería, compilaría, construiría, y luego se desplegaría, y luego se encontraría con un error más adelante. Y los usuarios que se quejan de que esta característica funcionó ayer, no está funcionando hoy. Y solo sabes que cambias una propiedad que no rompió el código. Bueno, lo hizo por este tipo suelto, derecho, o restricciones sueltas en la propiedad. Entonces lo que vamos a hacer es modificar nuestro repositorio genérico y vamos a cambiar el tipo de datos para el Incluye de una lista de cadena 2, lo que llamamos un I incluido, I consultable HIS, eso es un bocado, pero vamos a mírenlo juntos. Por lo que vamos a saltar a nuestro repositorio de ojos en nuestra carpeta de pistas clínicas. Y cuando estamos aquí tenemos nuestro hallazgo todo y encontramos. Por lo que retinol una vez más, sólo estamos usando lista de cadenas para nuestros inclusiones. Entonces voy a modificar un poco esto. Y lo que voy a presentar va a lucir similar a nuestro ojo ordenable, lectura consultable o pedí queryable. Pero éste va a ser de tipo I consultable con tipo T. incluyo doble queryable, que está tomando una expresión lambda y justo de la misma manera. Muy bien, entonces eso es lo que estoy reemplazando esa lista de ancho de cadena. Por lo que solo puedes seguir adelante y pausar y replicar eso e incluir cualquier referencia que falte en consecuencia. Y esto solo es bueno tener un gran efecto ondulado a lo largo del código. Entonces si saltamos al repositorio genérico, que es donde todo necesita ser implementado, solo podemos seguir adelante y modificar los parámetros consecuencia para incluir lo que se necesita incluir. Y entonces sólo vamos a tener que modificar cómo hacemos la parte incluída. Entonces cuando estamos haciendo la lista de cadena, dijimos si tenemos contenido en esa lista, entonces para cada propiedad o incluida, adelante y hacer la inclusión. Ahora esto en realidad nos va a dar una función llamada incluir. Muy bien, entonces esta vez, no necesito un bucle. Puedo tomar este bucle avena, y esta propiedad debe llamarse incluye. Entonces déjame seguir adelante y arreglarlo. Esto se incluye esto incluye todo bien. Tan solo para mantener la nomenclatura consistente así es incluye. Entonces no todo lo que tiene que hacer es decir consultas iguales a incluye, que es una función. Y luego voy a poner en consultas. Entonces, en otras palabras, estamos viendo que tenemos la consulta. La consulta, sí. Pero entonces para la consulta, quiero efectuar todas las inclusiones que aquí se estipularon. Entonces veamos cómo se va a ver el código en un minuto, pero solo voy a replicar ese código en la versión find all de este método y arreglar ese parámetro, ¿verdad? Y todos están contentos. Y entonces soy cizalladora. Entonces cuando lo implementamos, no creé un nuevo archivo. Entonces esto es una especie de liderar todos los costos separación de preocupaciones, por supuesto, porque estoy poniendo demasiado rápido y en realidad es justo, tomó un tiempo encontrarlo. Entonces lo que voy a hacer es solo crear un nuevo archivo mientras estamos aquí. Entonces tenemos que ir a los contratos. Y yo sólo voy a sumar la clase. Sabemos cómo hacer esto ya, llamándolo ya sea repositorio genérico, pero en realidad solo va a jugar host o yo interfaz de repositorio genérico, ¿verdad? Entonces ahí mismo, sé dónde encontrar mi repositorio genérico en todo momento. Adelante e incluye cualquier referencia que falte. Y eso se ve mejor. Entonces ahora sabemos dónde está nuestro repositorio genérico ocular. Contamos con nuestro repositorio genérico. Está bien, y tenemos nuestras unidades de trabajo ¿qué minoría? Y podemos construir sobre eso. No, Echemos un vistazo a lo que necesitamos hacer en nuestros controladores. Porque no, todo está en RRE, todo lo que está en desorden, lo siento, todo lo que tenía un Include es saber desorden. Entonces veamos lo que esta nueva sintaxis. Se verá así. Entonces en el hallazgo todo, todo lo que hice fue encontrar todo. Y entonces dije que quería incluir estas propiedades de navegación, ¿no? Empleado solicitante y tipo de licencia. Tan nula, puedo usar una expresión Lambda. Por lo que puedo decir q punto y luego decir incluir. Q-dot, incluir. Y estoy obteniendo una línea roja aquí porque necesito insertar esta declaración usando para Entity Framework Core. Entonces una vez que sigas adelante y hagas eso, puedes continuar. Entonces estás viendo q lambda expresión, Q dot include. Y luego dentro de este método quieres otra expresión lambda. Sólo voy a usar x como el Tolkien esta vez. Y luego me da todas las propiedades de la mesa. Por lo que originalmente hubiera querido x-dot solicitante empleado. Y entonces puedo encadenar estos incluyen declaraciones a lo largo. Así que mira esta parte con mucho cuidado porque si se alimenta, si no se presta atención, Es fácil estropearse. De acuerdo, así incluye, entonces iniciamos la expresión lambda y con esto Tolkien decimos q dot include. Después tenemos la expresión Lambda dentro del include, y luego podemos encadenar otros inclusiones. Entonces puedo ver luego incluir si quiero, lo que significa que si había algo en esta propiedad que quería podía ver incluir al empleado solicitante, luego incluir algo dentro de esa mesa. Correcto. También podría decir solicitando punto empleado e incluir cualquier otra cosa un barco, aunque propiedad de navegación. Entonces esa es otra forma de tener múltiples inclusiones en la declaración uno. Pero también puedo decir simplemente incluir de nuevo, lo que me da la oportunidad de usar otra expresión lambda y especificar la otra propiedad de navegación que es de tipo hoja. ¿ Está bien? Entonces espero que eso no te haya confundido de ninguna manera. Sólo sabe lo que está viviendo, solo recapitúrense rápidamente. Entonces sabe cuando estoy haciendo los Incluidos, tengo una expresión Lambda. Entonces digo q dot include. Entonces otra expresión lambda dentro de ese método incluyen donde estoy viendo esta es la propiedad de navegación que deseo incluir. Entonces todo esto asume de querer declaración grosera, o al menos esto resume queriendo declaración de comida. Pero entonces tantos incluye como tengo, puedo continuar la cadena y decir punto incluir y luego otra expresión lambda en esa. Y entonces puedo seguir incluyendo o no incluir puntos incluir, usarías entonces incluir si querías luz la del nieto. Entonces si estuvieras en la mesa de padres y el cercano incluido en el niño y quieres un niño fuera de ese niño, entonces dirías incluir al niño, luego incluir al nieto, por así decirlo. Y podrías ir por la cadena, liderar eso. Por lo que ahora podemos deshacernos de esta lista porque ahora todo está fuertemente tipado. Entonces si algo cambia dentro de la clase de dominio, entonces el código definitivamente se romperá. Y es mejor cuando la corte se rompe durante el tiempo de depuración y compilación que cuando se rompe cuando está en producción, ¿verdad? Para que podamos continuar nuestra repetición de que los pies aquí abajo para cada otro incluyen declaración y sólo los haremos juntos. Entonces esto es solo tipo de dejar, solo estoy copiando y pegando el de arriba. Pero claro que no necesito empleado solicitante. Y aquí hay un caso en el punto. Esta es la tabla de asignaciones de licencias. Está bien. No cuenta con propiedad de navegación de solicitar empleado. Por lo que un orden usando la lista de cadena, no habrá forma de averiguar que estamos tratando incluir algo que no está en la tabla de clases actual se están produciendo. Y entonces realmente obtendríamos un error de Entity Framework Core al ver que no puede encontrar esa propiedad de navegación. Por lo que esta es una buena manera de ver las flechas durante nuestra mecanografía a diferencia de cuando alguien está usando la aplicación. Entonces podemos seguir adelante y eliminar eso, conseguir una línea libre de errores, y luego repetir ese proceso. No oigas. Por lo que en esta ocasión, estoy incluyendo al empleado solicitante sí. El tipo de hoja, sí. Y luego nuestra tercera. Por lo que sólo digo punto incluir una vez más. Y luego en esta expresión lambda donde incluyendo el aprobado por, aprobado por mí, asegúrate, bien. Y ves una vez más estás obteniendo errores cuando no puede averiguar qué estás tratando de hacer, ¿verdad? Causa aprobada no es algo que pueda incluirse, sin embargo, aprobado por NB. Está bien. Para que podamos limpiar nuestro código, deshacernos de algunos de los olores, y conseguir un limpiador que parezca más robusto, frío, correcto. Entonces eso fue el controlador de solicitudes de licencia. Hagámoslo solo voy a correr a través de éste y mostrarte. Entonces lo que hice fue copiar y pegar líneas del otro controlador en el control de asignación de licencias. Y entonces sólo vamos a arreglar esos errores juntos porque ahora podemos estar plenamente conscientes de todas las flechas. Entonces primero o incluir la declaración de uso faltante. Segundo, deshazte de las declaraciones incluyen de que no necesitamos creer en esta, sólo era tipo de licencia. Entonces solo estoy quitando cualquier cosa que no sea necesario. Y luego en el editarlo viendo incluir al empleado requirente. Lo que sé, no necesito el aprobado por cuatro este. Pero solicitando empleado, creo que eso fue sólo empleado. Entonces caso en punto, una vez más, siempre va a estar mirando a qué estás tratando de hacer referencia? ¿ Esa referencia es realmente pareja ahí? De acuerdo, creo que tenemos uno más aquí que es sólo un aparato faltante, 0, tener una grasa extra. De acuerdo, así que eso son dos controladores no en el último, bueno, éste no tenía ninguna dependencia de ninguna inclusión. Entonces déjame seguir adelante y construir el proyecto solo para asegurarme de que no haya otros errores de depuración en ningún lugar del código. Y fue construido con éxito. Y les puedo asegurar que hasta este punto, todo lo que hayan hecho seguirá funcionando. Y una vez más, la importancia de este refactor es que reducirá la probabilidad de que introduzcas algún error como T humano en esta aplicación. 61. Revisión de las características de seguridad de construido en la seguridad: Hey chicos, En esta lección queremos revisar algunas de las características de seguridad incorporadas que es v.net Core le ha brindado. Ahora construir un sitio web seguro es de suma importancia. Hay bastantes maneras en que los tacos de esa persona no pueden. Y mientras que algunos de ellos están más basados en la red, como tal vez ataques de denegación de servicio. Algunos de ellos están en realidad en el control del desarrollador. En realidad son la responsabilidad de asegurarse de que estas protecciones estén en su lugar caigan de lleno en nuestros laboratorios. Como saben los desarrolladores de aplicaciones, Microsoft por supuesto conoce la importancia de la seguridad. Y verías que ya tipo de horneado en ciertas cosas como si revisáramos nuestras cosas de gestión de usuarios, Lucy, que las contraseñas están hashed, la misma contraseña nunca será de la misma manera dos veces. Y muchas consideraciones entraron en ese tipo de cosas. Es fácil para nosotros poner como autorizado para restringir el acceso a ciertas partes de nuestra aplicación en función del rol o simplemente necesitar que alguien esté conectado, ciertas cosas ya están incorporadas. Entonces quise alejarme de eso porque ya hemos explorado esa seguridad y control de acceso, pero luego agrega un nivel de aplicación. ¿ Cuáles son los mecanismos que ya nos han dado? Por lo que un ataque muy popular es la falsificación de referencia cruzada, CSRF para abreviar. Ahora este tipo de ataque permite a un atacante inducir a un usuario víctima a realizar acciones que no pretendía. Tan larga historia corta, alguien probablemente pueda escribir como alguna forma de JavaScript para especie de automatizar una opción. Y vas a ser nuestro usuario habitual, crees que estás haciendo algo. Pero entonces debido a que su guión se está ejecutando en segundo plano, podrían estar manipulando los datos en el sitio web que estás visitando. Entonces como dueño de un sitio web, ¿verdad? Entonces ese fuiste tú como usuario, tu oído, no sabes qué entonces como desarrollador de sitio web, el dueño del sitio web, quieres asegurarte de que el atacante no pueda manipular sesión de ningún usuario para llevar fuera cualquier ataque malicioso. Entonces una forma especial de hacer ese R1 Lupo que la gente normalmente querría explotar sería cualquier cosa que esté aceptando datos como up post. ¿ Está bien? Bueno, cuando haces una edición y luego haces clic en Enviar como hemos pasado antes, ya sabes que sí sube post y luego viene aquí. Pero luego note que todos estos controladores, una vez que generamos estos códigos de controlador y estas opciones, correcto, todos tenían esta bandera por encima del método de post, validan token anti falsificación. Entonces lo que pasa es que cada granja que dotnet core genera la automáticamente puesta en, en la etiqueta de formulario alguna anti falsificación Tolkien para ver que se asegura de que cualquier solicitud que llegue a este endpoint. Tiene el, tiene un Tolkien válido. De acuerdo, entonces el Tolkien se cuece en la forma virtud de que generes esa forma de edición. Una vez que haces esa granja Tang, está automáticamente ahí. No lo estás viendo. Ni siquiera tienes que poner la parte superior ahí. No tienes que hacer nada más. No teníamos que hacer nada más. Pero quiere que el usuario acierte Submit. Token se va a enviar junto con la solicitud. Y entonces esta anotación está viendo, asegúrate de que este token sea válido. Entonces si alguna solicitud viene de algún lugar que donde el Tolkien no era un sistema generado y válido, entonces rechazará esa solicitud. Si no hay Tolkien, rechazarás esa solicitud. Eso es como un nivel automático de protección que se nos da. Saber, cuando estábamos configurando nuestro, creo tipos de hojas. Y yo habría aludido a configurar la eliminación. Recuerda que tenemos el nivel de deber como el get y el delete como el post. Pero luego modificamos la interfaz de usuario para tipo de eludir la necesidad de ir al post y simplemente tratar con el git saber que disolvible en nuestra capacidad. Entonces sí dije que son formas más seguras de lidiar con ello. Y yo sólo lo estoy abordando en este punto, ¿verdad? Esa es una vulnerabilidad de seguridad porque alguien podría automatizar nuestras solicitudes con cualquier ID, esta opción de borrar, y eliminar los datos, pero entonces tenemos una más segura. Entonces por eso nos dieron dos pasos para empezar porque quería asegurarme que el borrado que usted confirmó a que venía de una fuente válida. Por lo que estaremos abordando esa vulnerabilidad de seguridad en este apartado. Otro tipo de protección incorporada que quiero señalar también es la que nos brinda Entity Framework Core. Entonces por cómo Entity Framework Core construye sus declaraciones, inyección sql se vuelve muy difícil para un atacante realizar. Por lo que la inyección SQL es un tipo de ataque donde llenarían un formulario y en el cuadro de texto pondrían en alguna forma de condiciones tal que si no estás formando tu consulta SQL, estamos usando las mejores prácticas, también conocidos como declaraciones preparadas, o simplemente usando un Modelo Relacional de Objetos ORM, nuestro mapeador, lo siento, solo el Entity Framework están en otros idiomas. Ya sabes, cada idioma tiene el suyo propio. Por lo que Entity Framework es nativo de dotnet. Si no estás usando uno de esos están una vez más usando declaraciones preparadas, entonces corres el riesgo de exponer la herramienta, un atacante simplemente comprarlos, poniendo un comando SQL dentro de tu formulario. Entonces usando nuestro Entity Framework, el Access, base de datos, capa de acceso, eso es como un nivel instantáneo de protección, un nivel muy, muy capaz de protección contra atacantes regulares cuando intentaron usar SQL inyección. Y hay momentos en que la gente tal vez quiera escribir sus propias declaraciones SQL. Realmente no escribimos la nuestra. Confiamos completamente en EF Core, nuestra sintaxis de enlace. Bueno, entonces hay momentos en los que la gente puede usar EF Core u otras bibliotecas que dapper y terminan escribiendo sus propias sentencias SQL. Y no hay nada de malo en eso, pero todos te dan el mecanismo para preparar las declaraciones antes de enviarlas a la base de datos. Y declaraciones preparadas significan que se crean parámetros como y luego se enchufa los valores en parámetros en lugar de simplemente concatenar la inflamación proporcionada por el usuario. Entonces la cadena SQL. Por lo que ese es un nivel de incidente, nivel de protección nuevamente contra inyección SQL. No. Seguimos adelante y lo siguiente que vamos a estar haciendo es modificar todo nuestro proceso de eliminación, ¿verdad? Entonces como dije, es una brecha de seguridad en nuestra aplicación. Verían muchos ejemplos haciéndolo de la forma en que lo hice. O sea, lo bastante simple para empezar. Pero entonces a estas alturas ya no estamos empezando. Tenemos una aplicación completa y queremos publicarla en Internet, por lo que necesitamos asegurarnos de que sea hermético. Entonces vamos a atravesar y arreglar algunas de estas brechas a medida que surjan. 62. Método de eliminación de seguridad: Hey chicos, bienvenidos de nuevo. Entonces lo que vamos a estar haciendo en esta lección es asegurar nuestro botón de borrar. Y va a ser tan sencillo, probablemente van a decirlo así ¿por qué no lo hicimos de esta manera desde la primera vez? Y sí, acepto ese libro de comentarios donde aquí no, y eso es sólo tratar con ello. Entonces lo que tenemos que hacer es, y hay bastantes maneras. Entonces una forma en que probablemente verías que la gente lo haga es la confirmación. Y probablemente no solo usen el JavaScript aquí. A veces no solo usan eso. Lo que a veces hacen es El puesto en como bibliotecas de terceros como dulce alerta y cosas para manejar ese cuadro de diálogo que aparece. Podemos hacer eso. No hay problema, pero voy a mantenerlo simple, suficientemente simple como para ser efectivo. Porque lo que realmente queremos es en lugar de una etiqueta de anclaje que simplemente va a pasar por esta ruta con el ID de ítem y simplemente llame al método de eliminación aquí, quería enviar solicitud estándar con una válida y T4a Tolkien al método delete aquí. Por lo que sabe exactamente lo que necesita quitar. Y eso en realidad es un As simple, y simplemente crearé otra línea justo arriba. Podemos envolver un botón dentro de un formulario. Está bien, Entonces esta forma en la que entré, LET es B dash action. Tu acción es borrar. Y luego voy a decir que tú eres la regla para IDS. Todavía es eso, pero entonces tu método es post. Entonces, lo que va a pasar es una vez que se envíe este formulario, llamamos a ese post action, ¿verdad? Entonces en lugar de tener esta etiqueta de anclaje y voy a simplemente reutilizar esto, pero en lugar de usar una etiqueta de anclaje, voy a usar un botón y el tipo de botón, seremos tipo enviar, nuestro tipo es igual a enviar. Entonces sabemos que esto realmente representa un botón de envío donde sigue manteniendo nuestras clases e iconos de Bootstrap en todo. Pero es un botón de envío que avisará, confirmará si realmente quieres hacerlo, y luego adelante y llama a las acciones. Por lo que voy a quitar este ID de ruta. No me refiero a eso dentro del botón mismo. Está bien, entonces tomemos ese para nuestros alumnos. Entonces esto es tipos de licencia. Vamos a probar esto. De acuerdo, así que probemos esto. Y ven aquí que está causando nuestro diseño y dicen, bueno eso es secundario, lo sé, pero quiero mostrarles exactamente lo que está pasando en el código. Entonces voy a ir a Inspect Element y mostrarles eso cuando miremos lo que hay aquí para ese botón. Entonces esta es una forma R. ¿ Todo bien? Y entonces este es nuestro botón. Seguro. Pero luego mira esto. Contamos con una entrada automática. Por lo que nota todo lo que hicimos fue crear el foro sobre el barquero. Se compran se generó esta entrada con el nombre. Creo que eso se trata de dos subrayados. Solicitar token de verificación, tipo es igual a oculto, y el valor es igual a este blob off stream que Hush. Muy bien, así que esa es nuestra ficha anti falsificación. Entonces esta anotación de arriba, y acabo de poner un punto de ruptura aquí para asegurarme de que lo estamos golpeando bien, esta anotación por encima del método está diciendo, solo permitiré nuestra búsqueda una vez que tenga un token anti falsificación que reconozco. Está bien. De esa manera nadie puede secuestrar nuestros bando. Solo estoy enviando nuestra solicitud porque fácilmente pueden descifrar el camino y simplemente mandar nuestra solicitud slash, eliminar slash uno y el primer registro, que es lo que queremos evitar, ¿verdad? Por lo que cuando hago clic en Eliminar, todavía recibimos la confirmación. Si digo cancelar, no pasa nada. Si lo hago de nuevo, hago clic en Ok, entonces golpea nuestros puntos de ruptura. Todavía estaban superando al chico ideal. No hay identificación. Está bien. Y lo siento, sé exactamente por qué no hay identificación. Entonces vayamos y corrijamos eso. Déjame solo detener la ejecución y luego podemos ir y actualizarnos en el botón. No tomé esto, así que DSPS. Entonces lo que pasa es que, tiene su propia subasta de granja y está compitiendo con la acción que se habría generado con esto. Entonces quitemos eso e intentémoslo de nuevo. Entonces solo voy a eliminar, click. De acuerdo, estamos golpeando el punto del pájaro y vemos que ahora viene la identificación. Yo sólo voy a continuar. Y ahí vamos. Por lo que esa es una forma mucho más segura de eliminar. Por lo que no mucho cambió visiblemente una vez más, podrías agitar un poco usando una de esas bibliotecas de terceros para avisar al usuario. ¿ Estás seguro? ¿Seguro que funciona bien. Pero entonces la mecánica detrás de cómo esa solicitud realmente va al servidor no es mucho más a prueba de balas de lo que era antes de esto, esta lección. Entonces todo lo que puedes hacer es pasar por los otros listados y solo asegúrate de que están haciendo lo mismo. Y también te recomendaría que o comentes viejo son solo eliminar esto el método de eliminación porque no lo vamos a estar usando. Simplemente queremos confiar en el método post con el y T4a Tolkien. Y entonces eso se encargará de todo. Y también modifico esto no a, no a una ticulación cualquier parámetro fuera de la ID. Entonces llamarlo ese modelo al que se estaba referenciando en los parámetros y simplemente levantar ese try-catch y acabo de poner un retorno al tema de índice al final de esta operación. Entonces eso tiene menos que ver con la seguridad y más que ver con solo yo modificarla. Entonces creo que mi código se ve un poco más limpio. Otra cosa que hice para limpiar mi pantalla de botones fueron dos en ese televisor que reservamos para los botones, crear un div con una regla. Está bien, y en este papel, y sólo corre como un desvío directo. Ahí, ahí vamos. Entonces en este rol, tengo un botón div PRB y solo te estoy dando un col dash de cualquier tamaño. Por lo que podrían ser dos. Probablemente podría ser uno basado en el tamaño de nuestros botones para que todo esté en línea. Entonces el div, div con una clase llamada dash T2 para el, esa es la edición. Entonces tenemos los detalles y luego lo mismo para el formulario. Y estamos justo para que puedas ver con claridad. Y así nuestros botones se mostrarán en una línea para que puedas seguir adelante y que solo dirijan tu interfaz así. Ahora eso es todo para tres o ninguna revisión de estas operaciones de eliminación para que puedas seguir adelante e implementar estas medidas en tus otras páginas. 63. Envía correos electrónicos con MailKit y SMTP: Oigan chicos, bienvenidos de nuevo. En esta lección vamos a estar echando un vistazo a otra preocupación de seguridad y que es con el registro. Entonces la realidad es que sí, podrías estar configurando un sistema como este para uso interno dentro de tu empresa y bueno, vale, solo se esperaría que los empleados de la empresa accedan a él. No obstante, independientemente de eso, probablemente aún quieras poner ese pollo equilibrado, asegúrate de que la persona que se está registrando confirme quiénes son al menos. Por lo que es muy importante agregar esa función de confirmación de correo electrónico a cualquier aplicación. Y por supuesto, a pesar de que estoy presentando la función de correo electrónico dentro del contexto de la seguridad, también podemos usar esa función de correo electrónico en otras partes como cuando el remitente deja solicitudes, podemos disparar un correo electrónico automático a ellos, cosas como eso. Pero por ahora, sólo nos centraremos en la retroadaptación o en un proceso de distribución para asegurarnos de que se envíe un correo electrónico al registrante y que lo confirmen y luego puedan acceder al sistema. Entonces, solo revisemos cómo se ve nuestra acción on post o qué otro manejador. Y sí hicimos algunos cambios porque modificamos al usuario. Y luego seguimos adelante y los creamos al mismo tiempo. Y entonces acabamos de seguir adelante y añadimos la regla y los mandamos a todos de una vez. Por lo que aquí no hay nada que confirme quién eres una vez que te registres. Por lo que quería tipo de cambio de este flujo todavía tendrá que hacer todo este objeto Creando todavía era necesario proceder si las inscripciones o exitosas. Pero ya teníamos yo remitente de correo electrónico el cual era una especie de construido. Y envio un correo electrónico remitente en el código original estaba haciendo algún trabajo aquí después de iniciar sesión que no se ha creado un usuario. Entonces vamos, reintroduzcamos algo de ese código y luego vamos a seguir adelante y configurar que le envíe por correo electrónico clase 2 lo que necesitamos que haga. Entonces para reintroducir lo que pasó aquí, habríamos tenido que generar un código, ¿verdad? Por lo que hemos tenido estas dos líneas de código. El código Var es igual a nuestro Administrador de usuarios de TI. Los puntos generan token de confirmación de correo electrónico, asíncrono, y estamos pasando de ese usuario. Por lo que algunos Tolkien se van a generar en relación con este usuario. Y luego vamos a codificar ese Tolkien. Y estamos almacenando ese Tolkien como una cadena dentro de esta variable llamada código. Ahora ese código va a darle un toque a la página. Bastante solar van a tener una confirmación Pete. Entonces cuando nos peleamos con ello, sí teníamos una página llamada Confirmar Email. Aquí está. Correcto. Entonces cuando consiguen el correo electrónico para confirmar quiénes son, necesitan hacer clic en ese enlace y necesita cargar esta página en get, se va a conseguir ese código. Ahí vamos. Entonces y una vez más, esto era todo lo que había antes y lo retiré. Probablemente lo comentaste. Entonces si comentaste es OT puede descomentarlo en este punto. Pero lo que vamos a tener es una URL de devolución de llamada igual a URL dot page. La página a la que les vamos a decir que vayan es una vara cónica Confirmar Email. Correcto. Entonces esa fue la que acabamos de mirar. Y estamos pasando en los valores nueva identidad de área, ID de usuario es la ID que se le da a este usuario y el código es el código que se acaba de generar. Y luego la URL de retorno es cualquier URL de retorno que estamos pasando desde aquí. Puede o no estar ahí, Eso es divertido. Pero el punto es que esta es la URL. Vamos a entrar a crearnos. Por lo que lo siguiente que tenemos que hacer es confirmarles o permitirles confirmar el correo electrónico o su dirección de correo electrónico mediante el envío de un correo electrónico a ellos, derecho. Por lo que la siguiente línea estaría despierta y alerta ante y a través de lo que introduce la programación asíncrona. Por lo que espera, anotar correo electrónico remitente punto enviar correo electrónico se hunde. Nuestro envío de un correo electrónico a cualquier dirección de correo electrónico que acabara utilizar con el asunto, confirme su correo electrónico. Entonces si solo pasas el mouse, ves el correo electrónico, el asunto, y el mensaje. Entonces mensaje HTML, lo que significa que podemos poner en nuestras etiquetas. Entonces por favor confirme su cuenta por, y luego tenemos la etiqueta de anclaje con la href, y luego les emitimos codificada esa URL de devolución de llamada que acabamos de construir. Está bien, y haciendo click aquí, para que puedas cambiar ese mensaje a tu antojo. Pero eso es como mínimo lo que sabemos. El código original también entra en erupción si, si las declaraciones, y en realidad tenía estas dos líneas en un comunicado if para ver si recién estamos iniciando, luego envíelas a la página donde solo pueden hacer clic, adelante y confirmar lo demás, enviarlos al inicio de sesión. Por lo que en ninguna parte realmente implementado en el correo electrónico. No necesitamos el ajuste el a prueba de fallos que nos dieron arginina es así que así es como debe verse tu registro en puesto. Entonces solo dejaré eso en la pantalla un rato para que puedas quitártelo si no tienes ya el acorde original. Está bien, pero no, necesitamos realmente configurar el remitente de correo porque si golpea esto, entonces no pasará nada, no se enviará ningún correo ni nada. Por lo que necesitamos configurar o enviar por correo electrónico las sentadas soul en nuestro AP settings.js en archivo, vamos a tener esta nueva estufa para la configuración. Por lo que lo estoy llamando Email Settings. Y vamos a decir que sí, use SSL, el servidor de correo. Por lo que ya puse algunas cosas de muestra basadas en Gmail. Pero entonces la realidad es que en tu propia empresa podrías tener diferentes configuraciones SMTP. Entonces solo te estoy dando una idea de lo que va tenemos razón en relación con tu situación. Pones los valores, pones el nombre del remitente. Por lo que cualquier colon de correo del sistema. Y luego podrías poner tal vez el nombre de la empresa al final para que la gente sepa que no es una farsa. El correo electrónico del remitente sería ¿de qué correo estoy despachando este correo electrónico? Por lo que esto podría ser fácilmente admin en la gestión de licencias no son respuesta, algo así. Deja gestión y la contraseña que se necesitará para acceder a la cuenta asociada a esto, ¿no? Una vez más, todos estos, estos dos tienen que ser configurados en ese servidor de correo para la utilidad realmente se conecte y pueda ejecutar el envío del correo electrónico. Ahora, fuera de eso, voy a introducir una nueva carpeta. Y simplemente estoy llamando a servicios de TI, ¿verdad? Porque solo estoy poniendo en ese servicio de correo electrónico Cinder, lo siento, solo estoy agregando una carpeta nueva y estoy citando servicios de TI. Y luego en lugar de servicios, voy a tener un nuevo archivo de clase al que voy a llamar a configuración de correo electrónico. Ahora esta clase se parece más a una clase modelo y va a tener campos idénticos que coinciden con el archivo JSON de configuración app.js. Por lo que voy a entrar realmente servir el propósito de se ve desde la configuración de la aplicación en un objeto de este tipo, y luego podemos usar esos en consecuencia. Ahora el archivo más importante sería una interfaz que voy a crear. Y lo voy a llamar yo remitentes de correo electrónico. Entonces esto es un, bueno, sólo voy a poner todo en una sola clase para nosotros. Entonces lo estoy llamando le envio correo electrónico remitente. Y ésta es realmente una interfaz. Pero entonces vamos a tener una clase pública. Entonces si quieres separarlos, está bien, pero sólo voy a mantenerlos juntos solo con fines educativos. Por lo que correo electrónico remitente y esa clase está heredando de nuestra interfaz. Por lo que nuestras interfaces van a tener una función simple cual va a realmente espejó la función que vimos aquí. Entonces remitente de correo electrónico que dice retrocedido, incluso remitente aquí está haciendo referencia a remitente de correo electrónico que es culpa B. Está bien, eso, eso viene con el sistema, pero sólo vamos a estar anulándolo con nuestra propia funcionalidad. Pero sí tiene esa función, Send Email, un fregadero. Por lo que solo estoy anulando que enviar correo electrónico se hunda. Muy bien, y así vamos adelante e implementamos esa interfaz aquí. Por lo que tenemos ese método disponible a través de esto. Por lo que voy a primero en esta clase declarar un objeto de tipo Email Settings. Y entonces voy a tener un constructor que va a inicializar esto desde el archivo de opciones, ¿verdad? Entonces solo voy a ver opciones de IA, Configuración de correo electrónico, y luego, y ese es mi diminuto objeto. Simplemente seguiré adelante e incluiré esa extensión. Y luego estoy inicializando. Por lo que es casi como si estuviera inyectando en este objeto de configuración de correo electrónico local desde las opciones Archivo. Y Options aquí me representa. Ver, darse cuenta de esta sección de la configuración de la aplicación JSON en el emparejamiento se siente como si discutiéramos la tarde del alma. Y este debería ser volumen de puntos, lo siento. Muy bien, entonces ahora que tenemos nuestro objeto local llamado molestar a alguien para empezar a configurar lo que sucede dentro de los correos de envío. Entonces voy a hacer una pausa en este punto y voy a incluir una biblioteca. Probablemente debería haber empezado con eso. A lo que necesitamos ir con dos nuevos Git y una biblioteca llamada kit de comida. Por lo que hay bastantes bibliotecas que puedes usar y servicios de terceros. Pero Mailchimp simplemente se desliza justo dentro. Y así el que me siento cómodo usando, por lo que correo kit. Y cuando lo encontremos, podemos seguir adelante e instalarlo. Entonces sólo encuéntralo y sepa que tenemos esa configuración. Podemos volver a nuestra configuración. Entonces lo primero que quería hacer es definir un objeto de tipo mime mensaje. Y entonces esto requerirá que incluya bibliotecas sepan que estoy usando mi kit. De acuerdo, así que solo podemos seguir adelante y agregar esa falta o diferencia y que mi hijo es cortesía de nuestro kit de comida son y a medida que continuemos, vamos a ver mi mensaje. Entonces sólo estamos construyendo el mensaje. Ahora mi soy sólo significa varios tipos de datos. No sabes qué tipo de mensajes. Entonces solo estamos usando un tipo de mensaje genérico para construir este e-mail, ¿verdad? No sabemos si incluye fotos o algo por el estilo. Entonces por eso estamos usando ese objeto mi mensaje. Entonces voy a decir mensaje mimo del DOT. Por lo que mi mensaje punto del DOT. Y en este método, vamos a estar agregando nuestra dirección de buzón proveniente de la configuración de correo electrónico nombre del remitente y configuración de correo electrónico, correo electrónico del remitente. Por lo que estamos agregando la dirección del buzón en base a esos dos valores. Y luego de la misma manera, necesitamos ver a dónde va este correo electrónico. Por lo que voy a decir mi mensaje punto a punto, agregar dirección de buzón dot parse, correo electrónico. Y el correo electrónico es lo que se habría proporcionado en nuestro método SendMessage. Lo siguiente que quiero hacer es asegurarme de que mencioné el tema. Por lo que mi mensaje punto sujeto es igual al sujeto que fue pasado. Y luego voy a poner en marcha una sesión de constructor o un constructor de objetos. Entonces voy a decir constructores var iguales a nuevo culturista. Y estoy viendo HTML. Cuerpo Html es igual al mensaje HTML que vino a través de nuestro método. Y tan agradable y fácil y directo hasta el momento entonces voy a ver mi cuerpo de punto de mensaje es igual al cuerpo del mensaje de la Herramienta Constructora. Por lo que sólo esos son conversión rápida. Sepa que después de haber preparado nuestro mensaje, en realidad necesitamos ejecutar son enviando. Está bien, así que voy a intentarlo y voy a empezar nueva sesión de tipo cliente SMTP. Y pondré el uso aquí porque quería morir, ¿verdad? Ya está terminado, así que solo ten eso ahí. Pero al incluir la biblioteca para cliente SMTP, estamos usando Mailchimp no sistema.En una comida, ¿verdad? Kit de comida. Por lo tanto, presta atención a esa parte. Entonces Mailchimp dotnet, el SMTP, esa es nuestra biblioteca. Y luego vamos a validar el certificado call buck. Por lo que tenemos esta línea, client.write server certificate validation call buck es igual. Y ponemos en estos valores de objeto y en nuestra Lambda es verdad. Entonces solo estamos diciendo que sí, es un certificado válido Bastante. Está bien. Entonces nos vamos a conectar a nuestro servidor SMTP. Entonces vamos a decir, voy a esperar, client.connect es fregadero. Y luego estamos pasando en nuestra configuración y yo estoy recibiendo esto, vale, y déjame solo lidiar con lo que esta línea está viendo. Por lo que client.connect, asíncrono, configuración de lote de correo electrónico, servicio de comidas. Si solo miras lo que requiere, se requieren los agujeros, el puerto. ¿ Estamos usando SSL, derecho. Entonces servidor de correo, puerto de correo y sí, o usando SSL, estamos recibiendo este o y decimos dot configurar cómo cae, ¿verdad? Pero esta línea roja está aquí porque dijimos que no vimos una escena. Está bien, así que sigue adelante. Después de que hayamos hecho eso, entonces si se requiere autenticación para SMTP, que más que probable cualquier SMTP seguro probablemente será, vamos a decir cliente no autenticar un sumidero y estaban pasando en el correo electrónico y la contraseña. Entonces eso es lo que dije. Estos tienen que ser configurados poco reconocidos y el servidor SMTP, me asociaré no configurar nuestras caídas de trigo. Y luego vamos a ver al cliente enviar una sincronización. Soy más o menos todos estos que solo estamos viendo configurar, un peso cae al final. Entonces vamos a decir manda una sincronización mi mensaje. Entonces este es un mensaje que habíamos acumulado, enviarlo, configurar nuestro camino, cae. Está bien. Y luego seguimos adelante y desconectamos asincrónicamente y configuramos una forma en que cae una vez más, por lo que eso es más o menos así. Y luego si golpeamos una excepción, lo que queremos hacer es probablemente simplemente lanzar una nueva excepción de operación inválida, pos mensaje único. Está bien, para que todo el mundo sepa lo que pudo haber pasado. Por supuesto, en una sesión real probablemente no haría esto, pero para fines de prueba podemos dejar eso. Muy bien, entonces nuestro siguiente orden del día es registrar realmente a nuestro remitente de correo electrónico. Por lo que ya sabemos que cuando creamos nuestros propios servicios, tenemos que entrar en nuestra startup. Y luego en nuestra sección de servicios de configuración, voy a agregar un poco solo voy a tallar una sección en algún lugar aquí. Lo pondré justo encima del mapeo. Y yo sólo voy a poner un pequeño comentario, dice ver exactamente lo que está pasando. Entonces services.com figura y estamos agregando ajustes de correo electrónico. Y este es nuestro módulo 4, 4 arriba settings.js EN bien. Entonces configure los ajustes de correo electrónico. Y voy a decir configuración obtiene sección Email Settings, ¿verdad? Entonces eso es lo que voy a llamar a las opciones de IA. Simplemente sabrá que esta es una sección sobre ella debe serializarse en esto y usar en cualquier otro lugar. Entonces también vamos a agregar singleton para remitente de correo electrónico y el remitente de correo electrónico. Entonces una instancia de esto será perviosa lanzar toda la aplicación en más o menos saber, sería bueno para esto para un giro, pero como dije, estos eran realmente sólo valores de demostración. Obtendrás tu configuración SMTP y podrás usarlos. Podrás probar diferentes proveedores como enviar la grilla o jet masculino. Todos cuentan con servidores SMTP que le permitirán usar por costos relativamente gratuitos o muy bajos. Y una vez más, si estás en tu empresa, entonces deberías poder acceder al servidor SMTP y poner esas credenciales según sea necesario. Ten mucho cuidado con esas credenciales. Y puedes seguir adelante y probarlo hasta que sea para registrarte. Pero una vez más, este remitente de correo electrónico se puede utilizar en cualquier lugar. Por lo que otro uso práctico, menos impulsado por la seguridad del mismo, le pondrán un uso práctico sería tal vez en el controlador de solicitudes de licencia. Porque cuando alguien envía una solicitud de licencia, será bueno si después de haber sido creada y puesta en el sistema con éxito, mandas un correo electrónico como rojo aquí. Enviar correo electrónico, herramienta, supervisor son quien conozcamos consigue esos correos electrónicos bien. En caso de cancelación. Podrías enviar un correo electrónico tanto al usuario, por lo que podrías enviar usuario a supervisor y usuario solicitante, ¿verdad? Cuando se cancela, envías un correo una vez que tenga éxito y envía usuario de herramienta de correo electrónico que lo solicite de nuevo. Entonces estos schon, El punto es que de la misma forma que inyectamos cada otro servicio, como nuestras unidades de trabajo, fácilmente podemos simplemente venir aquí. Y ahora esos son esos duplicados una de estas líneas y digo que envio email remitente, email remitente, inicializarlo. Y una vez que tengamos eso, podemos usar este remitente de correo en cualquier lugar para que pueda ver al crear nuestras solicitudes o ¿pones los comentarios? Ahí vamos. Podría decir remitente de correo electrónico. Enviar correo electrónico es sincronización. Y así el correo electrónico esto podría ser los correos electrónicos de los supervisores. Entonces sólo voy a poner un correo electrónico. Creo que estamos usando admin agrega host.com local como nuestro usuario administrador. Eso está bien. El tema podría ser solicitud de licencia. Está bien. Y luego recién solicita, una vez más, sé un hijo tu, tu situación, tomas estas decisiones, ¿verdad? Y luego armaste tu mensaje HTML para que pudieras contextualizar con otros edificios. Entonces hay tantas cosas que podrías hacer, ¿verdad? No quiero necesariamente ponerte demasiadas ideas en tu cabeza, pero solo quiero darte el concepto y confío en que puedas tomar este concepto y aplicarlo en tu propio contexto. Está bien, así que podrías hacer ese correo electrónico aquí mismo. Una vez más, podrías hacerlo tras la cancelación. Tienes tantas aplicaciones, pero no, sabes configurar tu aplicación y configurarla para enviar correos electrónicos donde y cuando las necesites. 64. Descripción de la sección de publicación: Oigan, chicos. Por lo que hemos tenido bastante el viaje en el que hemos construido desde cero creó la cancha. En primer lugar de la base de datos exploramos todo fuera de las tuercas y pernos. Ponlo juntos y tenemos un buen trabajo débil e iniciar sesión IQ y crear un usuario solicitar licencia en todo parece bien. No, esto está todo encendido sobre máquina en el paso final. ¿ En serio? A cualquier aplicación que se haya desarrollado es ponerla en producción y ponerla de una manera que así sea sea accesible dedo del pie de otras personas. Entonces, como dije, abierto a saber que hemos estado en lo correcto en el estudio Cordon Results y luego ejecutarlo en la gente más. Es sólo en nuestra máquina, las bases de datos en sobre máquina en. A menos que dejemos nuestra máquina encendida para siempre, nadie más podrá jamás acceder a ella. No, Para esta mañana, vamos a mirar a casa. Se puede ir a publicar esta aplicación en espacios públicos para otras personas. Ahora, nos vamos a quedar esta vez para mirar unas cuantas opciones en marcha, solo dándote una visión general de las diferentes técnicas de publicación por las que vamos a pasar . Entonces el 1er 1 que vamos a ver es publicar a un servidor local en cuando digo servidor local no necesariamente tiene que significar que está en las instalaciones porque no, ya sabes, sabes, los movimientos de todos de los servidores de código no son necesariamente en el mismo espacio de oficina. Entonces cuando digo servidor local, quiero decir realmente sólo un servidor en algún lugar de lo que necesitábamos en ese servidor es, ah, software especial llamado Internet Information Services, o II S. Así que esto es de Microsoft software de servidor web insignia en DSO. Si va a ser hosting o desde máquina va a estar hospedando una aplicación Web como nuestra, tenemos que asegurarnos de que eso está equipado con II s Andi. Está listo dedo del pie, recibe eso. Entonces vamos a ver la publicación usando IIS o a un servidor que tenga iis encendido. Entonces eso sería más para como una intranet sentada derecha. Entonces, ya sabes, gente sería capaz de asar que siempre está usando el nombre de la máquina en, entonces son nuestra propia configuración personalizada para nuestro Earl on. Entonces serían capaces de acceder a la aplicación en consecuencia para esa para ese escenario también hay que tomar en consideración que hay que estar listo para haber servidor. Entonces si las abejas de datos se sientan en el mismo servidor o está en un servidor remoto, eso va a jugar un papel enorme en nuestra capacidad de publicar Andi. Usa el up después. El otro escenario que vamos a ver su publicación a Microsoft Azure. Entonces si estás publicando toe una máquina virtual en Microsoft como tu que, es más o menos el mismo conjunto de pasos que lo que acabamos de pasar con el I s y un servidor causa ese servicio que serví software considerado, es correcto. Pero entonces, como eres, también nos da instancias administradas llamadas como tus aplicaciones Web. Entonces vamos a mirar,ya sabes, ya sabes, fichar por en una esférica, y ella puede conseguir uno gratis por unos meses. Problemas de derechos, fuera de servicios gratuitos y algunos créditos sobre eso deberían ser suficientes para empezar. Ya tengo a Annabone, por lo que quizá no pueda llevarlo por el proceso del Senado. ¿ Qué? Se trata de un proceso relativamente fácil en, en realidad, cómo podemos ir sobre la implementación de dedo de la aplicación Web como tu y también girando hacia arriba una instancia administrada fuera del servidor de base de datos o les servirá ya que se las arregla. Por lo que en realidad es una escritura para ser servicio ofrecido por Microsoft como tu tan pegan nuestros propios chicos. En el siguiente video, vamos a empezar a configurar un servidor en, después publicar nuestra aplicación para establecer servidor y luego simplemente cosechar los pupilos de eso. 65. La información de la información de Internet (IIS) en un servidor: Oigan, chicos, bienvenidos de nuevo. Tengo aquí en pantalla una máquina. Tengo una máquina virtual y déjanos ver que va a jugar el papel fuera de nuestro servidor de producción que vamos a estar publicando a través de la aplicación Core Net a no, solo tan completa divulgación. Esta máquina virtual está en realidad en el azul. Está en mis conos de ropa, pero una vez más es la misma dinámica. Realmente no importa dónde esté el servidor es solo una cuestión de conseguirlo o equipado con lo que necesitas para hospedar una aplicación dot net core. Entonces lo primero que voy a conseguir es que se instalen IIS. Por lo que tenemos que tener esta aplicación o esta aplicación de servidor Web llamada II s o servicios de información de Internet . Entonces, si estás en un servidor o incluso si estás en una máquina normal, puedes hacerlo en una máquina con Windows 10. Él puede ir y decir Quieres dedo del pie. No elimino características Bueno, realidad está activado las características de Windows en nuestra derecha desactivada, y luego quieres habilitar los servicios de información de Internet. Entonces si estás usando una máquina con Windows 10 A. No tienes un servidor para al menos ejecutar este experimento. Si eso está bien, puedes seguir adelante y mirar en tus ventanas. 10. Acaba de golpear. Empezar a escribir características de windows en. Entonces debería darte la opción de llegar a esto. Se trata de un cuadro de diálogo que permite habilitar los servicios de información de Internet. Pero yo voy a ir allí. Te das cuenta de que hay cajas negras. Entonces en realidad voy a pasar por toda esa instalación, ¿no? No. Pero te quiero el servidor. Pero son las mismas opciones de set off independientemente. Muy bien, Así que si estás en el servidor y tienes el administrador del servidor listo para ti, entonces puedes ir a reglas y características de anuncios. Esto traerá a un mago, que sólo puede seguir adelante y dar click siguiente. Y yo solo estoy pensando a continuación a través de estos porque estos realmente no tienen relación con lo terrible que hacer, ¿ verdad? Entonces no sé de tu configuración, pero ahí no las necesito para mayo. Por lo que en este punto se obtiene la pantalla, agregar surgió y características reglas del servidor, y luego se verá servidor Web. Pregunté esto que ahí ver qué puede seguir adelante y tomar eso y haga clic en agregar características y luego ir a siguiente en. Entonces seremos conducidos al mismo tipo off escuchando que habrías visto si estuvieras usando Windows 10. Entonces a partir de aquí, sus características de combustible que definitivamente quieres habilitar. Y si ya tienes dot net instalado no son ese framework. Instalar algo, tal vez tomar autoridad sobre usted puede no ser capaz de remolcar. Llévalos. Pero más o menos Lo que veas aquí se ha pegado en mi pantalla. Por favor, asegúrate de que también las tienes recogidas en las tuyas si quieres agregar, um sabes dot net desde donde 3.5 características puedes en. Solo estoy mencionando eso porque quiero decir, si esta es la primera vez que estás configurando el servidor de lo que necesitas toe puede estar configurado para diferentes escenarios porque no todas las aplicaciones podrían ser un núcleo dominante aplicaciones. Entonces, ¿quieres asegurarte de que tus ojos tengan tanto más acostumbrados para manejar las aplicaciones más recientes así como las heredadas? Si ya lo tienes, pregunté entonces supongo que no tienes que embarrarte las aguas haciendo nada de este segundo. Adelante y da click en Siguiente en, vuelves a hacer click siguiente en, luego obtenemos el taladro no. Por lo que esto sería más común entre la caja permitida de Windows 10 o cualquier otra máquina de ventanas . Della caja para insultar I s en las instalaciones del servidor. Quieren asegurarse de que tenga marcado el servidor Web. Vamos. Http. Características todas estas necesitan ser marcadas. Puedes agregar más registro si quieres, pero al menos solo asegúrate de que lo que he marcado es también tome de tu lado. Entonces sólo voy a pasar despacio sin entrar en demasiado detalle en cuanto a lo que es cada uno. Cuatro. Y luego bajamos a éste. Ese es su desarrollo de aplicaciones. ¿ Quieres tomar el desarrollo de aplicaciones? Andi, estoy literalmente siempre me vuelvo loco aquí y para pegarle todo bien. Pero definitivamente quieres decir seguro de que estás agregando todas estas características porque una vez más, quieres que la configuración de tus ojos sea lo más inclusiva posible dos versiones diferentes. Está bien, así que me estoy tomando todos estos excepto el protocolo de socket web estático. Si dp server, no necesito eso para no va a asegurarme de que tengo mi consola de administración también marcada. Entonces solo voy a pasar por únicamente una vez más adelante entonces solo puedes conocer, comprobar dos veces y asegurarte Y quiero decir, cuanto más tices es más características tienes. ¿ En serio? Para que lo sepas, puedes escoger, elegir y rechazar una vez más si tienes Asare, el servidor que eres no usaría ya tiene ojos instalados. Probablemente no necesites pasar por todo esto en ese entonces. Esto es viendo ¿Quieres especificar? Bueno, no tienes que preocuparte por eso. reinicios se reinician automáticamente si es necesario. Obviamente, si esta es tu encuesta personal de ese apalancamiento si no, por favor, financie al administrador del sistema soldado para asegurarse de que estás haciendo esta historia un momento en el que nadie está accediendo realmente al servidor. Y luego puedes seguir adelante y hacer clic en instalar para que la instalación del culo pueda tardar un tiempo. O tal vez ya acabas de terminar. Sea lo que sea, mía en realidad sigue yendo. Entonces entienda, seguir con las otras cosas que necesitamos hacer para empezar, eso incluye conseguir el paquete de hosting. Entonces nosotros donde esta es una página familiar para nosotros porque teníamos que desconocer el SDK. Inicialmente en cuando iniciamos nuestro proyecto. Estábamos en donde está el 3.1. Entonces si has frijol haciendo las actualizaciones sobre saber, entonces probablemente estarías en la versión 3.13 o tal vez un ciertamente más alto, Um, incremento de esto. Para cuando estés haciendo esta parte, realidad no importa, sin embargo. Sólo vamos a conseguir los últimos paquetes de hosting en este discurso fueron ajuste para prestar atención al SP que lee el tiempo del Corán encendido. Estamos mirando las ventanas y obteniendo el paquete de hosting así que solo podemos seguir adelante y click en Descargar ese paquete de hosting , está bien, y no está cargado, pero me está diciendo que el hielo necesita estar habilitado. Entonces si todavía estás recibiendo este mensaje después de haber completado la instalación, entonces sabes que tal vez quieras retroceder y asegurarte de que sea correctamente o asegurarte de que realidad se completó para que el mío no esté terminado. Estoy recibiendo este error en. Eso está bien. Sólo lo esperaré y reanudaré una vez. Asistir en Todo bien. Por lo que ningún Isis terminó y pudo haber tardado un tiempo. Eso está bien. Podemos cerrar. Mi servidor no se reinició, así que eso también es bueno y luego podemos validar que está funcionando yendo en tu navegador y simplemente escribiendo en host local. Y luego deberías ver esta página de lanzamiento. No es necesario que aparezca el temblor de la consola de administración. Simplemente ve a empezar y tal vez escribiendo I s. o si estás en el servidor, solo puedes usar el administrador del servidor e ir a herramientas e ir al administrador de Servicios de Información de Internet . Está bien, entonces si estás en un PC normal, entonces quieres ir a empezar por escribir s y debería aparecer en los resultados de búsqueda. Por cierto, estamos aquí. Por lo que tenemos los servidores de nombres de máquina. El nombre es SQL. Por lo que tiene instalado el servidor SQL, y ahí es donde se alojará la base de datos para arriba. Pero cuando lleguemos a ese punto, les mostraré lo que sucede cuando la base de datos no esté en el mismo servidor que la aplicación . No, y yo s vamos a crear un nuevo sitio web. Entonces ya ves, en el servidor tienes lo que llamas sitios, y luego también tenemos el sitio web predeterminado, que es lo que se lanzó cuando escribiste todo local recto. Entonces voy a crear un nuevo conjunto. Entonces hacemos clic derecho ciencia goto agregar página web Y luego le estoy dando un nombre de Scient y solo lo estoy llamando gestión de dejar. También crearía un nuevo pool de aplicaciones, que volveremos atrás y modificaremos después de esto. Um, pero entonces puedes seguir adelante, digamos gestión de licencias. Vamos a elegir un camino físico. Entonces el camino por defecto para cualquier, um I s sitio web es generalmente en la unidad c, entonces yo club nocturno www raíces en Dwell. Todo en las rutas www serían en este momento sitios web por defecto. Simplemente voy a poner en w w route una carpeta nueva, y sólo voy a llamarla gestión de dejar. Correcto. Entonces seguimos adelante y creamos esa nueva carpeta, haga clic en Aceptar, por lo que cualquier cosa que entre en esta carpeta seguirá siendo transmitiendo en nuestro nuevo sitio. Dejaré la gestión. Voy a dejar el vinculante como http en entonces la ley. El nombre del caballo que significa agujero voluntad. ¿ Qué dirección usaré para llegar a este sitio? Yo lo voy a hacer sencillo. Por lo que la cosa es una vez más en un entorno de producción, puede que tenga un administrador del sistema que brinde alguna orientación en cuanto a qué estándares se obtienen con estas direcciones y configurar estas s direcciones y así sucesivamente, pero bien. No, solo estoy poniendo esto aquí. Este es mi servidor a veces mostrándote los pasos de cualquier manera. Entonces estoy llamando a esta gestión de licencias que internet dot com porque realmente y verdaderamente, construimos esta aplicación para que nuestros compañeros de trabajo puedan usar cada uno lo pueda usar para aprobar. Dejar en nuestras Corporaciones puede usarlo, aplicar 40. Entonces es algo que toda la empresa, toda la oficina va a necesitar acceso toe on dso estamos haciendo gestión de licencias, no internet dot com on Solo podemos decir empezar molesto inmediatamente click OK on, Entonces obtenemos nuestro sitio. Entonces si yo bro a ello, entonces se va a tratar de ir a internet dot com. Entonces el punto. Entonces lo que necesitamos saber es modificar el fuego de los hosts porque una vez más, esto es algo que está en el servidor. No queremos que se vaya. El Internet está intentando pasar por Internet, pero eso es lo que está tratando de hacer. Entonces voy a entrar a mi computadora, y fui con bro. Sigue siendo la carpeta en mi sistema C Drive Windows. 32 conductores en entonces e. T. C. Supongo que ese corto para etcétera. Y estaban buscando este archivo llamado hosts. Por lo que este archivo hosts nos permite administrar el mapeo del servidor, Así que estoy viendo varias envolturas. Si lo estás haciendo a nivel local, es lo mismo para que podamos abrir esto divertido bloc de notas plus, y lo mejor es abrirlo en administrador más porque ya sabes, este archivo es muy delicado, pero lo que somos va a hacer es montar un mapeo local de caballos. Entonces se ve la palabra baja pareja. Entonces si no estás tan familiarizado con los servidores, host local es el nombre que da como resultado que este p, que es de 1 a 7.0 punto 0.1. Correcto, Así que cada vez que veas esto, yo p, es sinónimo de hosts locales y host local o esto p realmente me refiero a la máquina en la que estás . Está bien, así que recuerda que cuando estabas ejecutando nuestra aplicación en B, pero más deber local de caballo llama en algún número de puerto. Es lo mismo que se ve en la máquina. Tu de guardia en algún número de puerto. ¿ Verdad? Por lo que nuestro puerto predeterminado es el Puerto 80. Podríamos haber cambiado eso para nuestro nuevo sitio. ¿ Qué? Lo dejé en el puerto 80 encendido. Ese es el defecto. Puerto de difusión Http eso. Lo que voy a hacer es armar otro mapeo local de caballos para decir que el caballo local o este host local I p dirección también se puede asociar con nuestro nuevo sitio web, que es dejar. Gestionar significaba que internet dot com. Está bien, Entonces si estoy en la máquina y me Ambrose, que esto, entonces se resolverá al anfitrión local y buscará el sitio web apropiado. ¿ Verdad? Entonces entiendo dedo del pie guardar que una vez más, tienes que estar en modo admin encendido. Entonces solo voy a copiar esto y luego intentar presumir de nuevo y en ninguna parte viendo un estrecho pero tener un error mucho más reconfortante esta vez. Entonces no, está diciendo que me está dando una era I s, lo que significa que efectivamente está tratando de golpear el sitio web que acabamos de montar. Entonces voy a ir a esa carpeta del sitio web la cual recuerda, se llama por teléfono en Sea Islet pop www route y luego dejar la gestión encendida. Entonces solo voy a venir aquí y voy a crear un nuevo rápido para que puedas estar restringido con algunas de las cosas que puedes hacer aquí. Una vez más, si eres administrador, podrás hacer todo lo que estoy haciendo aquí donde sin problemas de lo contrario, quizá quieras crear el archivo y tal vez mis documentos y luego copiarlos. Pero sólo voy a poner en el archivo html punto índice aquí en sigue siendo un documento de texto. Necesitan asegurarse de que la extensión vea dot html. Entonces solo voy a ir del pie a un archivo. Ambos por fin, um, um, extensiones su respeto al despegar el txt porque definitivamente quería ser un archivo html en la mayoría de los servidores. La mayoría, si no todos los servidores buscan índice. Esa es la primera pieza que lo buscan. Entonces entienda, para modificar esto en la experiencia y solo voy a saludar, estoy bien solo para demostrar que en realidad está funcionando. Entonces cuando refresque esto va a buscar el archivo de índice y luego me va a mostrar Hola, yo Hola, s Así que acabamos de configurar o para un servidor de resbalones, si ya sabes, esta es tu primera vez. Espero que estés disfrutando de este ejercicio. Ahora. Una cosa más voy a hacer o tendremos dos cosas más a cosas más muy importantes que hacer. Vamos a cambiar de dedo nuestro pool de aplicaciones. Entonces voy a volver con el gerente. Yo quiero ir a los pools de aplicaciones y luego veremos el pool de aplicaciones de administración de licencias que acabamos de configurar. Haga clic en Goto configuración avanzada. ¿ Qué ajustes básicos? Perdón. Configuración básica en. Entonces voy a cambiar esto de .net CLR para saber Administrar frío. Está bien, y luego hago clic. OK encendido, entonces. Si lo deseas, puedes restablecer. Creo que se habría detenido y comenzado de inmediato. Pero mostrarás tu hogar en las aplicaciones se están ejecutando en todo lo que Necesitas saber. Si haces clic fuera y vuelves a entrar, entonces deberías ver uno. Significa que tenemos un sitio web o una aplicación web ejecutándose en ese pool. Por lo que las albercas son como contenedores que alertan para separar tus sitios web y es el mar Puedes separar dotnet a las aplicaciones de no cumplidas. 4.5 aplicaciones de usted sabe, el predeterminado arriba, que viene con el sitio web predeterminado en. Después presentamos un nuevo sitio. Entonces conseguimos éste. Pero éste necesita ser ningún tribunal de gestión porque va a estar hospedando nuestra aplicación de punto net core . Entonces esa es la primera de las dos cosas con las que la hemos dejado. Lo siguiente que nos queda por hacer es terminar nuestra instalación apagado para tiempo de ejecución. Entonces entienda, para volver a mi carpeta, encienda mi tiempo de ejecución, luego vemos un mensaje diferente donde dice favor reinicie después de que finalice la instalación . Está bien, eso está bien. Por lo que sólo podemos estar de acuerdo con los términos y seguir adelante e instalar. Está bien, así que esta instalación no pensaría mucho más tiempo o era un aislamiento mucho más corto que el I s one. Pero una vez hecho eso, solo podemos seguir adelante y refrescar nuestro lado solo para asegurarnos de que seguimos tocando el archivo . No tenemos errores. Entonces en el siguiente video, vamos a ver la publicación real fuera de nuestro rápido desde visual studio y trasladarlos al servidor 66. Publica la aplicación a IIS y SQL Server: ustedes chicos bienvenidos de nuevo. Por lo que acabamos de configurar sobre I como servidor en nuestra aplicación de servidor en nuestra máquina real, donde nuestra aplicación estará alojada en DNO. Vamos a estar publicando los archivos desde visual studio al servidor. Entonces este video me va a tener volteando de ida y vuelta entre estudio visual en la máquina real ya que hay algunas configuraciones que necesitan suceder. Necesitamos desplegar la base de datos que se necesita para dar soporte a nuestra aplicación en. Tenemos algunas cositas que tenemos que hacer. Entonces voy a estar voy a hacer todo lo posible para tener claro qué estoy haciendo y por qué lo estoy haciendo para que tengas un aprecio completo como dedo del pie lo que se necesita para que una aplicación esté funcionando. ¿ Sabes qué? Tengo esperanza aquí en estudio visual. Yo llegué a hacerlo. Esto es haciendo clic derecho en el proyecto que voy a publicar. Y luego sacamos este menú. Entonces en la publicación, queremos crear un nuevo perfil en. Entonces vemos que tenemos un par de opciones del servicio up on como su donde el como su máquina virtual y, como dije, una máquina virtual sobre nosotros. Tu es más o menos lo mismo que una máquina virtual en las instalaciones. Es decir, una máquina virtual es una máquina virtual. Entonces es el mismo principio, ¿verdad? Por lo que entonces también se puede configurar. Pregunté directamente o FDP. Me gusta hacer la versión de carpeta en esta llena de versión o la puerta completa. Um, método, por así decirlo es bueno para los ojos en la versión de la máquina virtual, ¿no? Porque al final del día, tiene que ver con mover los archivos físicos publicados de su máquina a la ubicación del servidor . Correcto. Entonces me gusta hacer la versión más completa en publicar localmente porque, ya sabes, puede que tengas problemas de permisos cuando intentas ir a 1/3 máquina de fiesta. Tu usuario versus el usuario que estás ejecutando en el podría no tener el permiso. Podría no estar dirigiendo al administrador de Visual Studio y cosas así, y obtienes áreas genéricas que te pueden frustrar. Entonces solo estoy aconsejando que publicaste Solo puedes dejar este default para su on. Entonces podemos ir de punta avanzada, y luego en el avance, sólo podemos echar un vistazo a algunos de los ajustes avanzados y tener un aprecio por lo que estos están viendo. Por lo que tiene la configuración liberada Stargate Framework. No tienes que cambiar más ese despliegue. No tienen que cambiar ese objetivo ni a tiempo. No tenemos que cambiar eso tanto más o menos. No necesitas cambiar nada aquí a menos que tengas otras ideas. Por supuesto bajamos al fuego opciones publicadas, dice Eliminar incendios adicionales que destino. Ahora, si estás publicando dedo del pie esa dirección local, entonces sabes que casi puedes tomar eso de manera segura. Si estás publicando toe 1/3 party location, te aconsejo que tengas mucho cuidado con tomar esto porque significa que borrará todos los archivos de la ubicación antes de que ponga los nuevos archivos. Entonces si estás lleno de camino es pero y me he metido en problemas con esto en el pasado. Pero si estás lleno de pasado es malo, entonces eso puede llevar dedo del pie, ya sabes, efectos perjudiciales en otras aplicaciones que podrían estar en la misma ubicación, ¿ verdad? Por lo que solo quieres asegurarte de que tu ruta de carpeta sea segura en ¿Puedes llevar eso a algún lugar para boletos. Ya he dado el descargo de responsabilidad en las bases de datos. No, queremos modificar nuestras cadenas de conexión. Voy a tomar uso esta cadena de conexión en tiempo de ejecución y luego voy a hacer algunas modificaciones aquí. Entonces primero del servidor ya no es db local porque, OK, DB es bastante local. Remolque su máquina o cualquier máquina de desarrollo que esté utilizando. Como se podía ver, podríamos simplemente voltear a ella a través de estudio visual en ah, producción sentada. Tu base de datos puede estar en el mismo servidor que la aplicación Web o puede estar en otro servidor, Um, Um, en algún otro lugar de la red. Entonces, ¿quieres poner en los nombres de los servidores? Una manera agradable, rápida de saber el nombre del servidor sería toe puede estar preguntando db a o tu S a T B. A. Ser administrador de base de datos es un ser administrador del sistema. O, um, si tienes el acceso, solo puedes ir al servidor. Entonces en mi situación, mi servidor será o mi servidor de base de datos estará en el mismo servidor que mi servidor Web O bien , así que tiene el servidor Web y el servidor de base de datos. A veces uno es máquina. A uno es máquina Be. A veces ambos son máquina. En mi escenario, ambos son máquina A. Así que estoy acabo de ir al estudio de gestión, traje el Monitor SQL y el Área de Estudiantes, arrancó la conexión en luego mirar aquí, veo nombre del servidor, y este es el nombre que necesito poner. Entonces ese es el nombre fuera de la máquina con una barra inclinada hacia atrás. Entonces el nombre fuera de la instancia. Entonces esto puede muy porque podría no estar usando SQL experimentando podría estar usando tal vez desarrollador o empresa, Y así host local probablemente sería lo suficientemente bueno para usted o ese host local I p dirección que miramos. Cuando estamos sentados, yo s, um en otra situación, podrías tener un incienso llamado. El punto es, si lo sabes, si ya sabes dónde tazón puedes encontrar así. Si no lo haces, entonces es posible que quieras buscar ayuda de tus administradores. Muy bien, alguien para copiar este nombre del servidor porque ese es el servidor en el que voy a estar desplegando la bestia de datos. Está bien, Así que recuerda, este fue un primer escenario de corte el tribunal informará los datos para la base de datos. Entonces ahí es donde se configuraría mi base de datos. Entonces solo voy a copiar este nombre del servidor, luego volver a visual studio y luego dentro de las partes entre el signo igual después del word server y el semi colon, voy a poner SQL SQL Express. Entonces ese es mi servidor. Muy bien, Así servidor es igual a SQL Express en entonces la base de datos en algún lugar para cambiar una base de datos de palabras inicial como i n i t I a l catálogo de espacio ver 80 una elegy. Entonces solo lo estoy gastando todo para asegurarme de que tengamos el aire de ortografía correcto. Entonces no tenemos que cambiar nada más. No. En lo importante a tener en cuenta es que algunas personas, mi asentarse dedicados y muy específicos usuarios relacionados con la base de datos, correcto, Así que ese es un punto de seguridad. Entonces en el En este escenario, el usuario de Windows estará ejecutando la aplicación y como resultado, necesita tener también escrituras ejecutivas en la base de datos. En otro entorno, lo que la gente hace es crear usuarios de base de datos específicamente para la aplicación en Entonces tú, el desarrollador tendría que incluirlos en las cadenas de conexión para ver que cuando estás ejecutando esta aplicación en tiempo, yo, también, conecté una base de datos en la que está tu servidor. Entonces tendrías toe add user space I d igual a entonces sea cual sea el nombre de usuario y simplemente escribimos usando name como marcador de posición en, luego semi colon, y luego password es igual a cualquiera que sea la contraseña. Un incidente. Colon, ¿verdad? Entonces eso es lo que tendría que ser cerca de cadena de conexión para facilitar a un usuario SQL que se ha creado para su aplicación beneficios agregados fuera. Eso sería que, bueno, bueno, es un usuario SQL, por lo que esa persona no tiene acceso de dominio a nada en la red no son usuario. Siria no tiene acceso a dominio nada en la red Onda. Además, tendría acceso toe solo esa base de datos que alguien obtuvo esas credenciales. No pudieron hacer mucho más daño que probablemente contra la única aplicación. Entonces, ya sabes, eso es justo debajo del tidbit de seguridad. Pero en mi escenario, solo estaré usando mi usuario del sistema para ejecutar mi aplicación así como hacer operaciones de base de datos . Entonces, una vez más, desea modificar esta conexión predeterminada y decir, use esta conexión en tiempo de ejecución. Entonces a pesar de que donde el db local para el desarrollo local. Cuando publicamos, así debe ser nuestra cadena de conexión. También voy a ampliar la sección de migración de Entity Framework en Dennis aplicar esta migración publicada en solo voy a seguir adelante y copiar todo fuera de este control dentro la condición String control, ver tick aplicar migración publicada sobre la paz. Muy bien, entonces lo que pasaría es que el cuando lo publiques buscará toda la base de datos en la cadena de conexión y luego intentará actualizarla son rollouts actualizaciones. También generará los scripts para ti por lo que realmente tendremos un poco de trabajo manual donde vamos a generar usar los scripts de migración que se han generado. Es así como conoces la historia de todo lo que hemos hecho a lo largo de la duración fuera este proyecto en. Entonces publicaremos eso el. Entonces veremos qué pasa. Entonces basta de todo eso después de configurar todos los ajustes, podemos hacer clic, guardar, guardar, luego crear el perfil o una vez de perfil creado. Siempre que estemos listos para publicar, solo vamos adelante y pinchamos. Publicar. Está bien, Y luego una vez que eso esté hecho, nos darán un enlace directo al plástico en esto. Espere el control y haga clic en esto y se iniciará el explorador. Sigue con los cuatro archivos publicados. No, um, esto sigue en tu máquina. Por lo que queremos hacer es transportado dedo del pie o destino. La forma más rápida y fácil de asegurarnos de que nos sacamos a todos para mí sería simplemente seleccionar. Muy bien, dar click en el archivo. No, tengo invierno en mi máquina local, pero el destino podría no tener con rocas en las que es un genérico. Esa extensión de zip en. Adelante en archivar todos los archivos en Una vez hecho ese proceso, puedo seguir adelante y agarrar ese archivo. Copia. Ve a mi servidor en ese entonces. Paz. No, ya estoy en la raíz llena de cuatro. Mis sitios web derechos para llamar al archivo índice. Ya estoy ahí. Es posible que no tengas permisos para pegar directamente aquí. Correcto. Entonces déjame ver si lo hago. Andi, Si lo hago, entonces sí encuentro. Pero si no lo hace, entonces yo aconsejaría un probablemente ir a los documentos de luz y luego pegar el archivo ahí en. Después mueves el archivo de los documentos a la raíz para eso, porque una vez más, permisos y así sucesivamente. Si no eres el administrador del sistema, no tengo control sobre esas cosas. Solo te estoy dando el trabajador propiedad para que no tengas que ir con el administrador del sistema cada vez que te tocas con un bloqueo de carretera. Muy bien, así que una vez que moviste con éxito el archivo zip a tu ruta caen o dejan la carpeta de gestión la carpeta del sitio web encendida como puedas. No hay clic derecho en solo extraer todo aquí en. Simplemente voy adelante y extraigo. Eso no debería tardar mucho, Onda. Bueno, se metió en una sub carpeta, Senador. Suavizarlos. No los quiero en el apoyo. Los quiero en la carpeta principal. Yo quiero la ruta de la materia fuera de este deporte. Ahí vamos. Ponnos con ganas de publicar Control A control ex regresando. control V usando atajos de teclado se bajó mucho, así que no, tenemos nuestros archivos por aquí y él puede tomar algún tiempo y simplemente mirar a través. Se ven todas las ofertas, todos los archivos de referencia que se habrían agregado en el camino tenemos un archivo web conflict en este archivo web conflict nos permite configurar en voz alta, así que solo voy a ir a una web config edit con más parte plus plus on. Entonces esto es algo que me gusta hacer porque a veces te dan errores en ellos no cuentan la historia completa. Logs te dirá exactamente lo que pasó, verdad? Entonces cuando hagamos esto así sólo vamos a cambiar esto a verdadero y guardar todo bien? Eso Hay algunas cosas que tenemos que hacer. Uno Necesito asegurarme de tener la base de datos. Entonces déjame volver a la carpeta encendida entonces podemos mirar por dentro esta carpeta E f preguntar a tus scripts y si abro esto en bloc de notas plus plus simplemente rápidamente ves que tiene en SQL tiene los scripts SQL para generar fuera de nuestras tablas. ¿ Verdad? Y si miras de cerca, ves que tienes las ideas migratorias. Por lo que cada archivo de migración que se generó en visual studio se manifiesta en términos off on sentencia SQL para decir que estos son cambios que deberían suceder justo hasta el último. Por lo que estoy mirando por aquí en día hubiera creado inadvertidamente se incluyen el vert . El modelo de vista en mis conjuntos de datos conjuntos de bases de datos, ¿verdad? Entonces, no, tengo algunas tablas de VM, así que no sé si la detectaron. Tengo capacidad de retroalimentación. Probablemente lo detectó encendido, lo arregló ya. Yo no lo hice. Por lo que este sería un buen experimento X. No. Para que yo regrese, los arregle en la corte, actualice la base de datos, obtenga el último archivo de migración y vuelva a publicar. Pero vamos a ver a dónde va a llevar todo esto para que en realidad pueda llevar todo este archivo. Está bien, en adelante entonces puedo ir a mi servidor de base de datos, ¿ verdad? Entonces, una vez más, ¿Toby hizo un servidor? ¿ Qué? Está en la misma máquina están en otra máquina. Solo quieres iniciar sesión. Entonces voy a crear una nueva base de datos on va a llamarla dejar en la gestión de partitura porque esa es la base de datos que nuestra aplicación es la cadena de conexión está buscando, ¿ verdad? Dejar gestión de guiones bajos o clave. Por lo que este trabajo una vez más, su DB podría hacerlo. Es posible que no tengas acceso así, entonces Pero ya sabes, probablemente tendrías que instruirle a él o a ella qué? En cuanto a lo que necesitan hacer. Entonces solo te estoy dando las instrucciones de corte claro. Entonces después de hacer eso, quieres iniciar una nueva consulta con la gestión de las licencias como el contexto fuera de la consulta Basaste las tiras F, ¿ verdad? Y luego puedes seguir adelante y hacer clic en Ejecutar. Ahora, una vez que eso se hace y se hace con éxito, si te pegas, miro por dentro de las mesas, ves toda la mesa. Entonces aquí están algunas de las tablas de VM que inadvertidamente incluí en todo esto, pero lo miras y tiene la misma estructura que lo que habrías visto en la DB local . Um, configurar. Correcto. Por lo que a continuación, necesitamos que nuestra arriba funcione. Está bien, entonces en el de mi hermano, voy a seguir adelante y tendencia bro del dedo del pie la dirección. Deja manejo ese internet dot com y vemos aquí estamos consiguiendo este par http de 500 ¿ verdad? Por lo que una serie de cosas podrían estar mal esta vez vienen en la era. Ahora, lo primero que me gustaría hacer es mirar los troncos. No, como ves ahí, no hay mucho. Entonces déjame solo estoy tirando todo lastimado. Por lo que de vuelta en la configuración Web donde habilitamos el registro, nos mostró que el viejo archivo habría sido dedo del pie barra larga STD haute. Cuando miramos en esa carpeta, aquí no vemos ningún incendio de troncos. No, Lo primero que me va a venir es que hay un tema de permisos, porque si hay un tema de permisos, donde o si hay una situación en la que debería estar escribiendo mucho archivo y no ha escrito él, entonces lo más probable es que lo que los usuarios ejecuten no tuvieran el permiso para modificar esta carpeta. Está bien, alma. Voy a ir por el IIS encendido. Voy a buscar en mis pools de aplicaciones on. Entonces voy a observar que la identidad y creo que mencioné es antes es identidad de pool de aplicaciones. No, posible que el administrador del sistema necesite modificar los permisos de este usuario. Yo estoy a cargo aquí en mi propio sistema, administrando esta situación, así que voy a seguir adelante en Goto ajustes avanzados on. Entonces puedo seleccionar la identidad. Por lo que al hacer clic en identidad y luego las elipses a su lado, puedo ir a construir nuestros conos. Y luego cuando me caí. Eso lo estoy viendo. Tengo algunas otras cuentas, ¿verdad? Algunas cuentas probablemente más poderosas. No, esta es una situación muy delicada cuando se trata de seguridad. Así que asegúrate de que estuviste en esto por tu administrador de seguridad. No obstante, esta es mi máquina. Puedo hacer lo que quiera. Está bien. Entonces voy a decirle que se ejecute como sistema local. Entonces lo hago y hago clic en Aceptar, entonces. Por lo que el sistema local no es un usuario más poderoso que el usuario de identidad predeterminado. Está bien, Y entonces puedo simplemente reciclar solo para asegurarme de, Entonces, si vuelvo a refrescar, entonces Ok, sigo recibiendo ese error 500. Pero, ¿adivina qué? Al menos estoy viendo la carpeta de registros. Está bien. Tan inaudito en. Otro para ir. Entonces por eso ves, es un error completamente diferente. Pero sigo recibiendo lo mismo. Http. 500 era, Y esto es literalmente toda la ayuda que Microsoft te está dando. Y te están diciendo, solo revisa los Louds porque debería contar la historia. No obstante, la primera vez que no hubo cerradura para revisar, ¿ verdad? Entonces solo lo estoy trayendo a través de algunos escenarios para ayudar p más fácil y cuando tienes que solucionar problemas. Entonces solo voy a buscar en este archivo de registro y ver lo que está pasando en él es ver que había una flecha tratando de conectarse a la base de datos en el servidor, ¿ verdad? Entonces vemos que está tratando de conectarse al servidor de corcho está tratando de conectarse a la base de datos correcta para eso. Me está diciendo que no puede abrir base de datos solicitada por iniciar sesión justo en el campo de registro . Entonces eso me está diciendo que cuando veo en ese grupo de trabajo slash SQL, ese es el usuario está tratando de usar el inicio de sesión. Entonces, ¿tienes un poco de capacitación de administrador de sistemas? No, vamos a ver alguna capacitación de administradores de bases de datos. Entonces volviendo a la bestia de datos, Lo que tendría que pasar es que cualquier usuario esté ejecutando la aplicación, es decir, el usuario que acabamos de establecer gobierna el pool de aplicaciones. Cualesquiera que sean las identidades ahí, esa identidad también necesita dedo del pie tener acceso a la base de datos. Entonces sí mencioné antes que a veces configuras un usuario de base de datos para que no tengas que preocuparte un barco qué identidades ejecutándote solo usas el usuario de la base de datos en la cadena de conexión en esa base de datos el usuario debería tener acceso para hacer todo, y estás bien para ir. No obstante, en mi escenario, no estoy usando un usuario de base de datos usando sistemas locales tienen que asegurarme de que el sistema local tenga acceso a la base de datos. Entonces esto estos pasos oh neato sucedería independientemente de las técnicas. Entonces quiero decir, crear un usuario es bastante fácil. Simplemente puedo ir a la seguridad así en el servidor, pero la seguridad haga clic en nuevo inicio de sesión. Si estás creando una base de datos usando solo puedes decir, ya sabes, admin o leave money's leave management use o lo que sea, dale la autenticación de usuario sq para dar la contraseña. Probablemente no quieras hacer valer la experiencia Shin todos los derechos porque no quieres que la postura caduque en ese usuario el. Puedes hacer cumplir una política para asegurarte de que obtienes una contraseña segura. Correcto. Pero las partes comunes después de hacer todo esto la parte común que sabes sea el usuario que tenga es que tienes que ir. Por lo que el taladro de base de datos no va a la seguridad. Tienes razón. Haga click sobre. Siento que perforaste en ir a los usuarios, luego haces clic derecho Nuevo usuario y luego puedes ver a un usuario con sq a login o Usuario de Windows . Muy bien, entonces. Entonces esa es una forma de hacerlo. Otra forma de hacerlo sería simplemente encontrar a los usuarios, en este caso, sistema de backslaps anti autoridad. Ese es el usuario que seleccioné cuando dije sistema local. Está bien, así que voy a dar click derecho a mi usuario para que pudieras tener fácilmente clics justo que me refería a usarla que acabas de crear, derecha , Clic derecho, ve a propiedades y luego vamos para ir dedo del pie, uh, mapeo de usuarios en. Entonces vamos a seleccionar la base de datos A C aquí. Anti sistema no tiene acceso a ninguna fuera de las bases de datos, ¿verdad? ¿ Andi? Es bastante probable que sea el usuario que estés usando por defecto, tampoco tenga acceso a ninguna fuera de estas bases de datos. Alguien dedo del pie pegue la base de datos de gestión de licencias y lo ves dice el usuario, es lo que sea que esté encendido. Entonces me voy a sentar como dueño de DB porque como dueño, podrás leer, escribir en todo. Pero obviamente es muy pobre, totalmente probablemente puede ponerse un poco más granular, pero normalmente el dueño de Billy es lo suficientemente poderoso como para no tener que preocuparse por nada más en. Después haces click. OK? Y luego una vez que sea dueño, debería poder conectarse. Entonces vamos a ir de nuevo algún invierno. Actualiza, entonces. Aquí vamos. Ahora estamos lanzando nuestra aplicación, y se ve bien. Fuera de curso. Puedes usar un poco de arreglar, pero, oye, así puedo seguir adelante e intentar iniciar sesión. Entonces recuerda que vemos que el usuario administrador desde el principio. Entonces eso significa que una vez que se inicia la aplicación, tenemos una base de datos vacía. Es que no tiene nada de o escapada de desarrollo. Por lo que indirectamente pueden los usuarios de maní Goto s. Deberíamos ver sobre el usuario admin predeterminado allí. Está bien, luce bien. Por lo que puedo seguir adelante y decir admin en host local de calma y nuestra contraseña predeterminada como estaba en abajo. Estamos en nuestras aplicaciones. Entonces a partir de aquí, puedo ir a dejar los tipos encendidos. Simplemente voy a seguir adelante y crear un nuevo tipo de hoja, así que no, es primero en el sistema. Tenemos un poco thr y decir, oye, oye, hr o ya sabes, quien por favor siga adelante y comience a apagar el sistema. Muy bien, para que puedan entrar y empezar a crear. Por lo que van a decir que la licencia por enfermedad se pone 10 días por un año en adelante. Entonces creamos el. Ahí vamos. Si editamos esto, sólo voy a hacer con algún cuervo rápido sólo para asegurarnos de que veamos que está funcionando . Duh. Si no estoy satisfecha, siempre puedo eliminar en Estamos de vuelta del dedo del pie Nada. ¿ Verdad? Por lo que aquí acabamos de desplegar nuestra aplicación en Internet directamente. No, vuelta en visual studio, sí dije que quería hacer algunos cambios en la base de datos. Sólo voy a asegurarme de que no tenga los conjuntos de DB ilegales. Está bien, así que no están ahí. ¿ Verdad? Entonces lo que pasó fue que, um hubiera tenido conjuntos de DB dejar tipo V m Justo en ese entonces. Eso se generó la tabla. Deja tipos VM crea o hojea que gm es lo que fuera. Esos son yo no quiero esos. Correcto. Entonces esto es todo. Voy a correr un nuevo mi acuerdo shun. Está bien. Algunos diciendo quitaron las tablas de VM, acuerdo? Y eso se hace. Y acabo de sacar mi vista de base de datos solo para mostrar que, ya sabes, el zar de VM. Ahí está quien tiene a los empleados VM en el tipo de hoja vía Pero voy a hacer una base de datos de actualización . Por lo que al final de esta base de datos de actualización, habría actualizado mis bases de datos locales. Y si nos fijamos en los mis Grayson, um, guiones, ya ves que estamos dejando caer algunas de las mesas y probablemente algunos se sienten. Pero eso es lo que se supone que tienen que hacer los opiáceos. Yo sólo puedo validar. Sólo puedo refrescar, volver atrás y mirar y ver sus tablas sin vm. Está bien, así que luce bien. Ahora voy a publicar de nuevo. Entonces, ya sabes, queremos decir, queremos decir, lo que sea que haya cambiado, ya sabes, se lo das a RRHH. Dijeron, ya sabes, hay que ajustar esto. Es sólo que solo vamos adelante con click derecho o proyectar de nuevo, Ir a publicar en. Ya tenemos nuestro perfil. Por lo que una vez más, esta carpeta publicó técnica. Es decir, con el tiempo podría ponerse tedioso, y sí tienen más automatizados con off haciendo esto. Pero una vez más, esta es la versión más segura para mí. Incluso mi experiencia pasada donde inadvertidamente eliminé algunos archivos importantes. Por lo que solo siempre publiqué localmente en luego muevo a través de la red. Está bien, se publican compañeros, y sólo voy a archivarles una vez más Onda una copia a través de la red. Y luego aquí está la parte complicado. Entonces, ya sabes, um, lo que he hecho en el pasado es lo que esté ahí ya probablemente sólo tomaría una copia de seguridad. Entonces es una carpeta como nueva en entonces tal vez justo en las fechas, ¿ verdad? Y luego poner todos esos viejos archivos dentro de esa sandalia de carpetas fechadas temprano, que en esta fecha, ese fue el último lanzamiento como yo tenía. Por lo que siempre puedo retroceder su ya sabes, son formas más eficientes de hacer esto una vez más. Pero entonces en eso está en un mundo perfecto, tal vez no siempre seas algunos simplemente cerrando algunos hechos que está viendo no se pueden mover porque están abiertos. Entonces, ya sabes, una vez más, en un mundo perfecto, hay formas más eficientes, pero en un en perfecto donde solo hay que saber hacer bien el camino. Entonces te estoy enseñando la de manera perfecta para que cuando obtienes la perfectamente, seas un amargo experto. Por lo que acabo de archivar la última versión. Ah, No, sólo me detengo por la nueva versión encendida. Entonces voy a extraer todo pero sólo voy a cambiar el pasado aquí para que no lo envíe a la sub carpeta on. Entonces adelante y extrae andare. Se extraen archivos. Tenemos nuestros nuevos en diferentes scripts de palabras, así que solo puedo hacer clic derecho editar sin parte. Entonces si miras si miras de cerca los scripts de Saleh, si ya estás familiarizado con SQL, entonces sabes que serías capaz de ver que dice, si no existe. Andi. Entonces es decir que si no hay historia o si esto no existe ya, entonces haz esto. Entonces lo que pasa es que sólo va a hacer las migraciones son los cambios que aún no están en el sistema, ¿ verdad? Entonces, como acabamos de agregar una migración sobre la eliminación de las tablas de VM. Ahí vamos. Entonces cuando tomo todo este script y lo ejecuto contra base de datos existente uno, la única forma en que vamos a perder el it es si hicimos algunos cambios, las columnas y cosas así, como tal vez un cambió el tiempo desde el momento Lo siento D creado a partir de ser tiempo para comer. Entonces sabes que va a haber detalle nosotros y posiblemente corrupción, ¿ verdad? Entonces, cualquiera que sea la corrupción que experimente Yudof durante la etapa de desarrollo, haciendo ese tipo de cambios, espere eso de su peor en la base de datos. Por lo que quieren tener cuidado todo el año rodando todas estas migraciones y los cambios que haces . Entonces, en mi situación, lo que hice se dejaron caer algunas mesas. Entonces si esas tablas tuvieran información pertinente, diría esta migración, las dejó caer. Eso llevaría a la pérdida de datos ya sea donde fui a copiar todo esto. Andi, ve a mi rescate. Bueno, estudio de gestión en ir a Bay City dentro fuera de la ventana de consulta. Asegúrate de tener mis datos seleccionados. Haga clic en Ejecutar en entonces básicamente dijo una regla afectada. De acuerdo, cuando me refresque, entonces verás que hizo los cambios. Está bien, así que ya no están en una tabla de VM para que así puedas desplegar cambios contra la base de datos también. Muy bien, Onda. Bueno, creo que sólo tenía a los usuarios porque borraron el tipo de hoja. Pero, ya ves, todavía tengo mis datos de usuario justo en las cosas, así que siempre es una buena idea del dedo del pie. Ya sabes, asegúrate de que el script se ejecute para asegurarte de que la base de datos esté actualizada con tu con tu nueva publicación. También después de que despliegues nuevos archivos, quería al menos reciclar tu grupo de aplicaciones, por lo que, ya sabes, se refresca. Andi empieza a tirar de los primeros archivos, entonces sólo volveré a bono. aplicación de actualización andare sigue abierta en ejecución. Entonces una vez más, eso es así que habrías desplegado una aplicación a tu red local en una sesión de Internet . Um, pero entonces esto también podría aplicarse a un entorno público porque este servidor podría haber sido como un servidor VPs que estás usando para transmitir los Internets. Los principios, me refiero bastante igual con la conectividad de la base de datos configurando ojos, asegurándose de que tengas instalado el paquete de hosting en asegurarte de que los permisos estén configurados , Um, alguna manera que su aplicación puede ejecutar contra la máquina así como las bases de manera limpia y eficiente. 67. Crea la cuenta de Microsoft Azure: Oye, chicos en este video estarán creando o Microsoft como conos de Europa. Como dije antes, podemos empezar de forma gratuita para llegar a estos sitios web. Nos vamos a como no eres Microsoft dot com on. Entonces supongo que te escribieron de acuerdo a tu razón o a tu idioma. Pero esto es lo que se ve el sitio web. are should look like y se puede leer a través para ver exactamente qué como hay todo un barco, es un proyecto de ley siendo futurista, permitiendo más colaboración en operar de manera más fluida en un espacio de ropa en el que están todo el mundo. Por lo general, solo elegirías la razón que es más cercana a ti. Por lo que en realidad estoy en el auto estaría en razón. Entonces mi región más cercana es al este nosotros, nuestro oriente nos a pero que eso no es para este video. Este video que acabamos de crear sus conos no estaban configurando nada sobre regiones por ahora . Eso para empezar. Podemos simplemente Bueno, si ya tienes una cuenta en vivo, entonces solo puedes seguir adelante y pararte con esa cuenta en vivo. Bueno, puedes simplemente dar click en iniciar gratis aquí. Te dicen que puedes crear un fenómeno en el día de hoy y puedes empezar con 12 meses descuento en servicios gratuitos, así que eso es un buen trato para mí. Y si te desplazas hacia abajo, ves 12 meses de descuento gratis, servicios gratuitos populares más crédito de 200 dólares, que expirará en 30 días. lo que le dan $200 sake y crean las máquinas virtuales que pueden crear recurso está en el código y experimentar hasta que ese dinero esté listo, eso es realmente solo por un mes. Pero luego hay ciertos servicios que solo consigues cuatro gratis para el resto del año no lo son y entonces tendrás algunos otros servicios que siempre son gratuitos para ello. Entonces lo que vamos a hacer es simplemente seguir adelante y hacer click, empezar gratis en. Después nos pedirán que iniciemos sesión con nuestras cuentas en vivo. Si tienes una cuenta en vivo una vez más, puedes seguir adelante y usar eso. Si no tienes suficientes conos, entonces puedes seguir adelante y crear uno en. Esta es una opción muy reciente para iniciar sesión con get Hub. Entonces tengo una llamada en vivo que usé, pero solo te voy a guiar por el create one primero. No, el vivo un maíz no necesariamente tiene que estar en vivo o en absoluto. Mira, tacómetro es que tengo que ser, ah, ah, tradicional cuenta de comida caliente. Puede ser un G. Millikan, así que en realidad puedo usar tal vez la misma dirección de correo que utilicé o junta del gueto por los militarizados que uso cuando me estoy apuntando a las cosas. Puedo usar eso con estos. Sí, huji, comida caliente, lo que sea. Yo soy igual que el siguiente, y aquí ya está. Me está diciendo que ya tengo una cuenta Microsoft. Entonces eso es solo conducir mi punto, sin embargo, que una vez que tengas una cuenta en la dirección de correo electrónico, no tiene que ser, ah, comida caliente o tradicional vivir allí un barco tranquilo. Dis creando una cuenta Microsoft para ti con esas cartas de correo electrónico para que puedas seguir adelante. Andi, inscríbete. Ahora es un proceso bastante sencillo. Su conducta esto ya existía. Eso es a cuenta que estaba usando para apuntarme a la gratis un cono, así que en realidad solo me adelanté y me encanta estar encendido, y porque realmente no me configuré mucho más, creo que tu proceso de inscripción en realidad va a lucir muy parecido a independientemente. Entonces una vez que superes el obstáculo de poner tu dirección de correo electrónico al proceder, entonces probablemente vas a terminar en una pantalla como esta donde te van a pedir tu información demográfica solo para el mantenimiento de registros, Um, mi país y región es Jamaica on. Voy a poner mi número de teléfono del que trato a continuación. Entonces dijeron: ¿Quieres un verificador? Agregado insistió por teléfono. ¿ O quieres por arte de tarjeta? Alguien a elegir me lleva por teléfono y acabo de recibir el texto. No tardó en absoluto, así que me voy de pie. Ponte ese acorde, luego verifica. Ahora aquí hay una parte que podría disuadirte si no estás preparado para ello. Ellos querrán verificar tu identidad mediante tarjeta para que no se te cobrará a menos que te actualices, lo que significa que tienen manera diferente. Llame planes de suscripción así que ¿verdad? No, estás firmando para el plan de suscripción gratuita. Una vez que se haga ese plan de suscripción gratuita, entonces no podrás hacer mucho en la plataforma hasta que te centres en un nuevo plan de suscripción . ¿ Qué Conos tiene esa actualización? Entonces, como dije, antes. Ahí está P como vas y luego hay paga como vas tener prueba de slash, que es en la que estoy, que es como la mitad del precio de la P regular a medida que avanzas. Por lo que en realidad proporcioné la información de mi tarjeta cuando me inscribí en por. Habiendo hecho eso, puedes dar click a continuación y tomar acuerdo si no tienes tarjeta o no te sientes cómodo con proporcionar los detalles de tu auto de lo que quieres decir que puedes parar aquí. Eso está bien. Más adelante, cuando realmente estamos desplegando dedo del pie como jurado todavía puede ver cómo se verá y ver lo beneficioso que es para usted. Um, pero si lo deseas, entonces puedes seguir adelante y proporcionar tu información sobre. Después se adhieren al acuerdo y acepten los términos del acuerdo en. Entonces estarías en la plataforma. Entonces solo voy a iniciar sesión en mi cuenta real, mi cotización unquote icono real, el que uso en mostrarte cómo se ve tu. Bueno, realidad, en realidad, acabo de pisar portal dot como tu punto com, esperando que él le pida que inicie sesión. Pero yo hice eso. Andi acaba de redirigir, reflexionando sobre la misma cuenta que yo solo estaba configurando hacia Williams en gmail dot com toe este panel de control. Entonces este es el como su tablero de instrumentos. En el nivel muy básico. Tienen un panel a un lado aquí orden listando. Bastantes servicios que puedes obtener. Pero entonces porque no completamos una configuración o porque no completé la configuración, al menos entonces cuando vaya a suscripciones, voy a ver que no tengo suscripción, ¿ verdad? Entonces, como yo estaba viendo la suscripción es mantener la re a como cliente con los europeos, Te vas empresa son lo que sea. Por lo que si más adelante decido que quiero proporcionar mi información, solo puedo volver y dar click. Agregar, entonces eso me traerá dedo del pie completar el procedimiento de firma donde realmente tenía la suscripción. Entonces este es un juicio gratuito sobre que estaban sentados. Sólo tienes que saber que tienes paga a medida que vas. Cuenta con soporte para desarrolladores. Sí, ya que tienes bastantes de ellos. Está bien. Por lo que probablemente iría con paga a medida que avanzas, pero que eso es todo esto está en el en los pasos de fuera, apuntarme a como estás. Es decir, si desea proceder con eso. Um pero entonces por este desvío, verdad, solo quería que llegaras hasta el tablero de instrumentos para que puedas ver que así es como se ve un cero. Esto es así tu portal de gestión de multitudes. Puedes configurar tus máquinas virtuales, pero para este curso estará buscando servicios. 68. Publica a Azure App y Servicios SQL: Oigan, chicos, bienvenidos de nuevo. Vamos a seguir aprendiendo sobre Microsoft Azure en la aplicación Web de alojamiento en ella . Por lo que ya habrías configurado tu cuenta el. ¿ Seguramente estás viendo. Probablemente no estés viendo lo que estoy viendo ahora mismo, pero esta es mi cuenta. Entonces este es mi pagó unos conos. Que mi información de tarjeta de crédito. Estoy en la suscripción de pago como vas slash dev test. Muy bien, así que básicamente esa. Andi, acabo de encontrarlo rápidamente. Este, Al Ozio. Se espadece. Podrías haber recortado su Lo siento. Entonces este, um es muy Es mucho más barato que el pago regular conforme avanzas. La premisa detrás es que, ya sabes, solo quieres probar cosas que estás desarrollando. No se quiere pagar el dinero completo por estos servicios. Por lo que como que recortan ciertos precios por ti. Andi, es un poco más flexible que un individuo se arregle con los padres. Siempre pueden simplemente seguir adelante y hacer clic. Activa, y luego te pasas por algunos, ya sabes, papeleo de tío de abrigo. Entonces te activan como los entornos de prueba de slash dev, ¿ verdad? No, vuelta a aquí tenemos todos los servicios. Se pueden conseguir máquinas virtuales, servicios up, bases de datos SQL y la herramienta que estaban muy, muy interesados en serían los servicios up y las bases de datos SQL. Máquinas virtuales. Se puede tener máquinas virtuales. Um, pero entonces, ya sabes, si estás desplegando dedo del pie como tu dependiendo del modelo que tengas o que quieras, quizá quieras implementarlo una máquina virtual que esperma que ya tipo de encerraron en tu VP y y toda la red de su empresa. Y eso probablemente sea con fines de seguro o su despliegue de máquina virtual que será de cara pública. Por lo que tienes tu propio hosting. Montó una máquina virtual que llegó aquí. Ahí no quiere decir y ponerlo al público. Hago pis en la máquina virtual. Andi, eso es transmitir a Internet, y tú estás a cargo de eso, o no quieres la molestia de tener que poner ojos y configurar una máquina virtual. Simplemente quieres acumular, ponerlo en un cero y poder acceder a él a través de Internet. Entonces tal vez el servicio up sea mejor para ti. Servicio de base de datos Onda SQL Así que eso es lo que vamos a estar explorando Andi, así que solo voy a minimizar este ángulo de regreso al estudio visual on. Entonces tengo arriba mi perfil publicado, Así que este perfil publicado es mi perfil de padre. Esto es lo que usé cuando lo estaba haciendo localmente. Pero ahora queremos tener un perfil que nos empuje a los servicios en la nube. Entonces solo voy a seguir adelante y dar clic en Nuevo en. Iban a seleccionar crear nuevo servicio up por lo que arriba servicios seleccionados y crear noticias ya seleccionadas en. Simplemente voy a ir a avanzado porque estoy seguro de que aquí hay cosas que necesito configurar, así que no necesito configurar la versión que tenemos opciones publicadas sobre puedes quitar adición del destino que es bases de datos de archivos sobre contexto de datos que se están descubriendo. Pero no tenemos que cambiar nada aquí, así que solo puedes seguir adelante y hacer clic, crear perfil en. Entonces lo llevará a un punto donde te está pidiendo dedo del pie firme en tu como tu tan unidad que crea uno o inicia sesión. Por lo que realmente tengo un letrero en algún distante un selecto inicio de sesión en entonces este es un fichaje directo . Entonces solo tienes que seguir adelante y ponerte tu como tus conos. Una vez que hayas hecho eso, abren algunas nuevas opciones para ti. Por lo que puede tardar un tiempo porque, ya sabes, se está conectando. Se va a la nube. Es decir, ya sabes, pero, ya sabes, no tengo que escoger la nuestra. Sólo podemos esperar para decirle a temer en el mal emiten un mensaje de error. Pero una vez que estás viendo algo como esto, sabes que estás en el lugar correcto, así que te están pidiendo que le des un nombre. Puedes cambiar eso si quieres. En qué suscripción te gustaría publicar, Um, Um, ¿cuál es el grupo de recursos? Por lo que en base a mi ubicación, elegiría tengo un grupo de recursos. ¿ Qué? Entonces, ¿siempre puedes crear uno nuevo? Creo que te darían uno de cualquier manera para que podamos crear uno nuevo on darlo grupo de recursos en algún lugar para llamarlo dejar gestión en grupos de recursos son como contenedores en la CLO decir, como todos estos recursos están en este grupo de recursos tipo de trabajo en conjunto, ¿verdad? Eso es básicamente lo que es un grupo de recursos. Entonces igual que un nombre de grupo. Entonces lo estoy llamando Dejar a la gerencia el plan de hosting? No, sí tienen un plan de hosting gratuito. Entonces si miras la talla, ves que estos son los diferentes tamaños, pero sí tienen gratis. Por lo que para fines educativos, vamos a seleccionar gratis si lo eres. En realidad, estamos buscando hacerlo público con algo. Probablemente quieras seleccionar uno de estos, um y luego en base a tu tráfico, puedes escalar nuestro no fuera de curso en una empresa sentada, ya sabes, lo harías después de la es con tu yo t manager, Justo cuál. Pero voy a ir con libre la ubicación, siempre tratando de elegir una ubicación que esté de cerca de ti. Entonces basado en mi ubicación al este nosotros, nuestros años este a su mejor para mí, ¿ verdad? Porque siendo el Caribe, esa es la que generalmente se recomienda sobre esto es una ubicación muy estable en el camino en el plan de hosting, no tengo que cambiar nada ahí. Entonces estos nombres aquí, como plan de hosting en el nombre off the up cambias esos de acuerdo a tu estilo, tu convención. No tienes que usar el valor predeterminado, pero no tienes que cambiar el predeterminado a la derecha entonces hago clic en Aceptar, luego servicios adicionales. Por lo que sí necesito servicios adicionales en forma de Base de Datos SQL porque los servicios up de un lado en literalmente todo lo que está haciendo es hospedar la aplicación Web. No hay base de datos que vaya a estar en el servicio up. Necesito un día. Será un servicio. El caballo, mi base de datos. Entonces este cuesta, aunque no creo que haya una versión gratuita para la base de datos, pero luego nombre de la base de datos. Puedes darle el nombre que creo. Bueno, esto es realmente el arte. Dejar en la gestión de la puntuación. Entonces te vamos a dar el mismo nombre. Dejar en la gestión de la puntuación. Necesitamos un servidor. Por lo que el servicio de base de datos es como si crearas un servidor virtual, y luego puedes haber servido bases de datos en el puerto del servidor dis. La realidad es que tu no tienes que entrar y administrarlo de la misma manera que lo haces cuando lo instalas en tu máquina, ¿ verdad? Algunos salieron a crear un nuevo servidor porque no tengo ninguno bajo mi suscripción actual , alguien para crear un nuevo servidor y luego se están preguntando ¿cuál es el nombre del servidor? Muy bien, así que mi nombre de servidor sólo voy a llamarlo, um SQL Server. Dash mi nombre. Correcto. Entonces este es un servidor. El lugar. Lo estoy poniendo del dedo del pie al este una vez más. Onda después de poner en uso contraseña humana El nombre de usuario Onda no puede ser genérico como, admite nuestros administradores. Sólo estoy usando mi nombre de pila Justo en. Entonces solo estoy usando la contraseña predeterminada, que es p en San ssw. Ya ganamos la misma postura que hemos estado usando a lo largo de la aplicación. Pero, ya sabes, quieres usar tu contraseña adecuada. Por lo que ofrece este paso es si no existe ningún servidor, más seguro haciendo con una empresa que ya tiene una como tu cuenta. Probablemente no tengas que pasar por este paso como individuo. Probablemente sí. Entonces este es el servidor, ¿no? Por lo que solo voy a aprovisionar el servidor encendido entonces una vez que el servidor esté aprovisionado, sabiendo cuándo asegurarme de que mi nombre de base de datos es dejar en la gestión de partituras. De acuerdo con el nombre de la base de datos que hemos estado utilizando todo este tiempo, rellenará los detalles que están utilizando en la contraseña en la conexión Nombre de cadena es conexión predeterminada. Entonces es como decir que sé que debería anular la conexión existente llamada antes de la conexión, que en este momento está mirando un BB local, ya que en este punto, empezará a mirar el nuevo servidor con el credenciales necesarias. Derecha, Así que haga clic en Aceptar, aan den. Entonces al fondo, derecha. Te muestra que está instalando el escritorio. UAL el como su base de datos SQL. Deja las administraciones en el servidor que solo estaban aprovisionando usando este plan de hosting con ese servicio up. Está bien, vamos. Realmente no necesitamos nada más. Se puede. Es decir, la aplicación analítica en el interior, lo que le dará sabor de registro en tiempo real. ¿ Qué está pasando? Puedes agregar que creo que podrías costar dinero en algún lugar. Entonces estoy tratando de reducir los costos tanto como sea posible. Pero entonces puedes seguir adelante y hacer clic en crear. Por lo que una vez que haga clic, creado comenzará el aprovisionamiento. Se necesita todo el recurso para que puedan darle un poco de tiempo. Está bien. Y luego una vez que esos ejercicios no lo hagan vamos a conseguir un sitio. ¿ Dónde más? Ah, esto waas la deformación que dejamos para la upf. Ya ves, ese era nombre arriba. No cambié de la predeterminada, así que espero que no te caigas sobre mi trasero. Ejemplo sobre que cambias años. De cualquier manera, cuando hacemos clic en el enlace en un lideres dedo del pie en esta página de aterrizaje por lo que nos está haciendo saber que el observador está abierto corriendo en. Entonces el siguiente paso es desplegar sobre la corte. Correcto, Así que tenemos que seguir adelante y dar clic en publicar. Por lo que al hacer clic en publicar, empaquetará la dependencia es y los empujará a sus hijos arriba de servicio para nosotros. Por lo que después de publicarlo, estamos recibiendo nuestros 500 errores. Entonces eso sólo me dice que hay ciertas cosas mal, No ciertas cosas a notar sería que no tenemos acceso a ningún sistema de bomberos para ir y mirar los registros como lo hicimos la última vez cuando estamos, yo s si me voy por encima de los pies como estás en buscar servicios que voy a ver mi servicio arriba aquí y se está ejecutando. Yo lo puedo llevar. Entonces cuando lo seleccionamos, estamos viendo nuestro servicio de up y todo fuera de los diagnósticos que se ejecutan en él. Podemos echar un vistazo a la configuración que fue muestra que el continente fiqh string. Por lo que sospecho que el show entiende Avanzado en. Sospecho que la flecha está en algún lugar aquí. Entonces esto es lo que parece nuestra conexión predeterminada No, correcto, correcto, Onda, Podemos obtener detalles como toda la semana y conectar el servidor de la tienda. Por lo que está buscando el catálogo inicial. Dejar gestión Trans inicia sesión con ese usuario Andi con esa contraseña. Pero sospecho que esta base de datos simplemente no existe en el servidor que conduce a más 500 tierra. Entonces voy a tratar de llegar a esa base de datos. Justo, a ver si mi sospecha es carro están locos. Entonces lo que voy a hacer es intentar entrar al servidor y voy a usar un servidor escolar Dash. Cierto que ¿Qué? Toda esta dirección como nombre del servidor. Correcto. Sé la fuente en. Entonces voy a usar este usuario. D en esa postura. En breve apenas brotas mi estudio de gestión. Entonces, al punto de publicar, probablemente te vayas de pie. Ya sabes, si lo estás haciendo por tu cuenta, vas a tener que acostumbrarte a conocer todas estas partes móviles y apreciar cómo funcionan juntas. Entonces voy a copiar eso. Y ese es mi nombre de servidor Andi. Te puedo decir fuera el pero que como tu hubiera restringido las direcciones I p que Chan lo divertido a la base de datos. Entonces creo que cuando traté de conectarme o fue a negarme o me hizo saber que puedo tener permiso. Por lo que hago clic en Conectar. Ahí vamos. Su cliente i p dirección no tiene acceso al servidor. Inicie sesión en crear un nuevo firewall reglas para poder iniciar sesión aquí, crear una regla de firewall para este vestido de idea pública que tengo. Pero la realidad es que con base en el I S P que p abordo mi cambio. Entonces lo que voy a hacer en su lugar es volver de pie como tu en ir por encima de mi servidor de base de datos . Entonces podría simplemente volver a todos los servicios en eso. Fui a traer mis bases de datos SQL on Si no estás viendo las cosas del modo en que las estoy viendo, siempre puedes usar las píldoras. Por lo que la izquierda y verás todos los servicios listados ahí. C c bases de datos SQL arriba servicios de la misma manera. Está bien, así que voy a seguir adelante, haga clic en el servidor. Entonces Bueno, esto en realidad son las abejas de datos. Muy bien, entonces la base de datos sí existe. Andi, voy a de la visión general Goto Ah, servidor. Entonces esta es la base de datos en sí. Pero quiero ir al servidor porque quiero liberar algunos de las reglas del firewall, así que voy a estar muy suelto con ellas. Sólo vamos con el dedo del pie. Hola? Todo lo que p tiene razón. Para que pueda bajar de punta los firewalls y las redes virtuales encendido. Entonces lo que voy a hacer es configurar regla. Entonces ya ves, está negando el acceso a la red pública. No, encendido. Entonces se puede ver un bajo servicios para acceder al servidor. Sí o no. Pero luego el i p. voy a decir todo por el nombre de la regla, y luego sólo voy a poner una lectura completa. Por lo que 0.0 así 0.0 punto 0.0 significado de cualquier dirección i p. Sigue siendo la más grande de la más pequeña, es un 255.55 que 255 Así que esto es llegar siempre a cada dirección I P que es concebible, al menos ahora mismo cae entre ceros a cinco cincos. Entonces podemos simplemente seguir adelante y guardar eso. Y una vez que esa regla esté en, debería poder intentar volver a conectarme en realidad obtener acceso. Ahí vamos. Entonces vemos aquí que podemos perforar en la base de datos y estoy viendo que la gerencia de las licencias cree que la gestión no tiene tablas, por lo que se crea la base de datos, pero se estabiliza. Muy bien, entonces vamos a dar un pequeño paso atrás. Hemos hecho buenos avances. Vemos que hemos aprovisionado, o como servicio de Europa que tenemos, o como su base de datos. Pero tenemos un poco fácil con la fecha de las abejas y los contenidos fuera de la base de datos. Entonces voy a dar un paso atrás, y vamos a cambiar algunas configuraciones aquí en nuestro capó o proyectos locales para que la próxima vez que publiquemos, no volvamos a tener ciertas desventajas. Está bien, entonces lo primero que voy a hacer es modificar mi molesto. Es que GS en el archivo y en realidad voy dedo del pie crear otra cadena de conexión. Por lo que esta es la conexión predeterminada. Voy a llamar a éste como su conexión. Muy bien, entonces por aquí, vamos a estar usando la cadena de conexión en la cadena de conexión que va a usar estará en nuestro puerto. También vuelve a la base de datos. Por lo que deja la gestión encendida. veremos cadenas de conexión. Por lo que tomar cadenas de conexión trae hacia arriba el controlador .net ideal. Está bien, para que podamos quedarnos con este texto, ¿ entiendes? Para copiar. Eso es un portapapeles encendido. Entonces volveré a mi molesto. Es que Jason en mi Una cadena de conexión cero va a ser esa cadena. Está bien, así que solo lo estoy reemplazando en la contraseña no eran sus empleados en texto. Entonces hay que poner eso. Muy bien, en el Sí. Sólo asegurándome de que todo esté bien. Está bien. Bien. Está bien. Entonces esa es nuestra conexión String toe azure. Cuándo modificar el inicio de s nazis para hacerlo un poco más selectivo. Entonces en este momento, está diciendo que cuando se inicia la aplicación, debería usar la cadena de conexión D para la conexión, y eso está bien. Por eso somos locales. Pero entonces voy a ir un poco a ambos de esto. Voy a ver a un hijo iba a cortar esto y quiero ver si y tenemos una variable aquí llamada Entorno. Y para usar entorno, hay que incluir entornos seguros del sistema dot get environment variable encendido, luego dentro de fuera que sólo tenemos las comillas y trabajar en la ISS ser net core en el entorno de puntuación. Entonces también te explicaré qué significa todo esto. Entonces me meto en la variable y estamos viendo ¿Tiene el valor en Estamos buscando el valor pro milk son. Está bien, entonces si estamos en el entorno de producción que queremos usar una cosa más, queremos usar otra cosa, y voy a volver a poner la cancha que acabamos de atrapar en la sección l. Entonces si no estamos en producción y estamos usando más antes de configuraciones locas, Pero entonces si estamos en producción que no quiero usar la conexión click predeterminada, quiero usar mi conexión A cero. Entonces ven, um, como su conexión para nuestra producción. Muy bien entonces, después de eso, voy a poner una línea más para decir servicios. Lo sentimos, servicios dot Construir proveedor de servicios en. Entonces quiero decir que ponga el servicio, luego consiga el servicio. Embajada en el contexto de la aplicación db. Está bien, toma viejos espacios tradicionales, luego abre y cierra Comillas, puntos. Y creo que tengo en aire OFI adivinar eso. Y luego vemos base teatral puntos mis calificaciones. Por lo que esta línea fuera de corte debería ejecutar la migración contra los contextos que sean, ya sabes, bases de datos capaces de ser utilizadas. Ahora, centrémonos en esta variable de entorno. Muy bien, Así que cuando hablamos de variables de entorno y ya ves, tengo sobre Explorador lleno aquí para que puedas usar los expertos en código de conectar, um, a ciertos objetos, pero luego todo tipo off llevando de vuelta al puerto de su Entender cerrar esto en. Entonces me voy de pie, um, click derecho en el proyecto. Ir a propiedades el entonces. La primera edad tiene variables de entorno en su entorno de núcleo neto UCSB. Entonces ese era el nombre que escribimos, ¿verdad? SB net core en el entorno de puntuación sobre el valor que buscamos para su producción. No obstante, el valor aquí es desarrollos entender? Pasta de dedo ahí mismo. Entonces me estoy convirtiendo en producción, está bien. Y desde aquí puedes tener otras variables de entorno como me necesites. Pero entonces sólo voy a hacer una prueba aquí, así que sólo voy a correr localmente, acuerdo? Andi Art. Entonces lo que esta prueba va a demostrar es que nuestra migración acaba de suceder contra el como su base de datos SQL. Entonces simplemente miramos como su base de datos SQL vio que estaba vacía. De acuerdo, en lo que hicimos fue estructurar en el medio ambiente. Variable a producción también introducirá unas nuevas conexiones a través de las cuales utilizan como su conexión encendida en la puesta en marcha. Dijimos eso Bueno, una vez que estás iniciando, entonces por favor ejecuta las migraciones contra nuestro contexto db de aplicación, que obviamente estaría en contra de cualquier cadena de conexión que se seleccione. Entonces como mi variable de entorno no está configurada para la producción, la premisa es que una vez que haga clic en iniciar, la aplicación arrancará localmente, pero se conectará a la ropa SQL Server sobre el hecho de que el arte Así pasamos un obstáculo con ella realmente apareciendo en el día. Yo voy a hacerlo. Entonces aquí está nuestro hasta emocionante localmente. Entonces eso es bueno. Por lo pronto, voy a volver a mi estudio de gestión y refrescarme ahí. ¿ Ves? Todo fuera de las mesas que antes no estaban ahí. Entonces este es nuestro como su servidor SQL. Sé que todas las mesas no están ahí. Por lo que esa configuración básicamente está asegurando que una vez que hagamos una publicación en la aplicación esté a punto de ejecutarse, se asegurará de hacer la migración puntera a los datos de destino abejas como. Bueno, no lo estaba haciendo inicialmente, ¿verdad? Entonces sepan que tengo a ese poco su lote fuera del camino. Y no, sé que mi base de datos existe. Sí, podemos conectarnos con el uso de la aplicación. Sí. Yo sólo voy a hacer otra publicación sólo para asegurarme de que todo esté bien. Ahora, una vez que volvamos a publicar, veremos que nuestra pantalla de inicio de sesión viene y en base a la experiencia previa, siempre es bueno ver a través de la pantalla de inicio de sesión para que solo pueda intentar iniciar sesión Andi, asegurarme de que esté hablando a la base de datos de los tribunales y todo en entonces me inscribo. Entonces vemos que funciona nuestro usuario administrador. De acuerdo, así que solo soy pruebas de Internet solo para asegurarme de que estamos hablando con la base de datos correcta, solo, ya sabes, base de mono. Fui a ir a dejar tipos encendidos. Voy a crear un nuevo disco sobre este va a estar enfermo. Deja Onda 10 días. Adelante para crear Muy bien, está creado. Por lo que sólo voy a volver a mi estudio de gestión. Voy a seleccionar estrella del tipo de licencia. Entonces este es el servidor SQL en la ropa. Apenas he estado para seleccionar top 1000 Onda Uh, ahí vamos. El permiso por enfermedad está ahí Creado Todo bien, así que acabamos de desplegar nuestro SP donna core aplicación toe como tu Esto no es como tu entrenamiento . Esto es sólo para hacerte pasar. Um pudo haber tenido su, ya sabes sen giros, pero es solo cuestión de configuraciones y un entendimiento sostienen las pequeñas cosas funcionan juntas para darte el resultado final fuera de aplicación alojada hablando del dedo del pie. Ah base de datos alojada. Todo es fácil, Nazir. Miramos cómo podemos conectarnos a la como su instancia fuera de la base de datos independientemente de usar nuestro estudio de gestión en. También vemos que podemos hacerlo desde nuestro estudio visual usando o Flowed Explorer. Si voy a ver, deberías ver Code Explorer. Ahí vamos y puedes ver tu recurso es que están en el código de la misma manera. Um, también miramos a Toto Auto, cumplir con la siembra de la base de datos no están viendo la migración fuera de la base de datos usando esta línea en nuestro inicio sobre CS, que solo, ya sabes, solo adelante ingenieros la fecha de esto basado en todas las migraciones, ahí es donde hay en También miramos la diversión. Podemos tener múltiples cadenas de conexión y usando una variable de entorno, podemos, ya sabes en tiempo de ejecución determinar cuál queremos usar. Entonces si es que quiero empezar a usar el desarrollo otra vez, solo puedo volver al click derecho de la propiedad, ir a propiedades en entonces A partir de ahí, puedo cambiar la variable de entorno de la producción a desarrollo o sea lo que sea que yo quería estar en ese momento 69. Configura la pieza automatizada con GitHub y Azure DevOps: Hey chicos, Bienvenidos de nuevo en este punto fueron los desarrolladores endurecidos batalla, y nos hemos sumergido los dedos de los pies en la piscina de un poco de administración de servidores y administración de bases de datos de TI . Pero estoy seguro de que hemos hecho lo suficiente para instalarnos o servidor en nuestra máquina local así como en nuestra base de datos. O hemos desplegado en el código y tenemos o cero el servicio funcionando junto con el servicio SQL en ejecución. No, puede que haya aludido dedo del pie en varias ocasiones, todo cuando estábamos hablando de ese despliegue de IIS, que en realidad hay una forma mucho más fluida de hacerlo. Entonces ya sabes, publicarlo y luego tomarlo y copiar en Toto el servidor y así sucesivamente. La realidad es que simplemente podríamos no tener ese tipo de acceso a todas estas máquinas. Si eres desarrollador senior, probablemente realmente no quieras desarrollarnos para tener que pasar por eso cada vez. Pero quieres una forma más fluida de asegurarte de que sea la calidad llamada que se está publicando cada vez. Por lo que habíamos estado usando get home como nuestro proveedor de control de fuentes en Get Hope sí proporciona lo que llaman acciones que ya sabes, poner en algunas acciones de construcción y automatización, alguna cantidad de ella en dot net core ab sport. En mi opinión y experiencia, ghetto está más orientado hacia Lord y por las cosas divertidas no necesariamente documentan las cosas, pero Microsoft tiene como se desarrolla tu, lo que nos da acceso a un número de herramientas fuera que son increíbles. Um, para automatizar la construcción en la publicación de aplicaciones de punto net para que puedas llegar aquí yendo dedo del pie . Zero dot Microsoft dot com On go a productos, servicios y como tus dev ups y puedes ver puedes empezar gratis, empieza por ti con get top para que puedas enviar con tu cuenta de ghetto. Pero si en este punto ya te registraste con Microsoft Azure, entonces puedes seguir adelante y usar la cuenta life toe registrese en este sitio o bien, técnicamente ya tendrías en nuestros teléfonos encendidos. Una vez más, puedes empezar gratis como individuo. Es genial. Es como conseguir un trabajo, pero con un poco más al respecto porque tienen el motor TFS. Si alguna vez has usado Team foundation server. Si no, eso está bien. Es sólo una herramienta realmente poderosa que tuvieron desde hace años. Lo reportaron a la Web on. Te dan a todos esos unas herramientas de planeación laboral. Ver, veo que el Seo está aquí, CIA y ver, eso es integración continua o desarrollo continuo en despliegues lamentables, Correcto. Todas esas herramientas están integradas. Puedes tener tantos descansos libres como quieras. Lo que serán privados se levanta te da como muchos públicos gratuitos. Creo que no, los privados son libres. También, puede desplegar planes de prueba. Si haces artefactos de prueba unitaria en los que se pueden desplegar, pueden automatizar ese todo lo que llamamos canalización de liberación. Entonces eso es lo que vamos a estar haciendo. Vamos a estar explorando haciendo un ducto de liberación en la parte superior, fuera de la aplicación o del sitio web que ya construimos. ¿ Todo bien? No, estoy conmutado al servidor Web. Y así como un recordatorio rápido, tenemos nuestro sitio web desplegado a nuestra con nuestra aplicación desplegada toe sobre I i s sitio web llamado leave Management on. Obtenemos a través de la dirección, dejamos gestión que internet dot com on justo refrescarnos en el como configuración, tenemos el pool de aplicaciones dedicado a la aplicación Web on. También tenemos el sitio web de gestión de licencias. Entonces No, Lo que tenemos que hacer es armar un ducto de liberación. Tales que no son Esto es un servidor. Esto podría ser un servidor en su máquina local. Son una vez más podría ser la ropa, pero es un servidor dedicado en él está hospedando nuestra aplicación. No, vamos a hacer es configurar un lanzamiento por un plan a partir de un cero se desarrolla el cual está en la nube tal que cuando nosotros,ya sabes, construimos ya sabes, algo. A lo mejor tienes ambas arregladas y lo revisamos. Hace una construcción automática. Asegúrate de que no rompimos nada. Entonces hará automáticamente los despliegues. Entonces lo voy a hacer manualmente después vamos a ver cómo podemos automatizar están basados en, como un horario de construcción nocturna o un horario de lanzamiento nocturno para que, ya sabes, hagas el ambos arreglar hoy lo revises el. Entonces para mañana por la mañana está en el sistema sin que tengas que hacer mucho más por lo que una vez más, para empezar, puedes iniciar sesión con tu como tu cuenta viva contraria o simplemente puedes continuar con su cuenta de gueto. Entonces desde que hemos estado usando levántate, voy a seguir adelante con el gueto de nuevo. Voy a estar usando mi como tus conos, pero el mío ya está configurado y ha estado en uso. Yo sólo voy a hacer esto desde lo básico para que estemos juntos en esta lucha en particular . Entonces solo estoy usando mi cuenta de gueto. Adelante y me inicio de sesión. Entonces me va a hacer saber que ya tengo una cuenta. Simplemente continúo hacia abajo. Se va a confirmar sólo que quiero vincular mis credenciales sobre Dennis editándome. Sepa que mis credenciales se han sumado al mercado. Se han agregado las credenciales de get off a mi cuenta Microsoft la próxima vez que firmé y puedo elegir usar el existente de Microsoft co patrocinado o simplemente firmando como estoy enviando para conseguir esperanza. Entonces no digo que lo consiguiera y me moví bien, y solo tuve que dar unos detalles más y dar click siguiente, y ahí estoy. Yo estoy dentro de mi como tu desarrollo. Por lo que ya tenía un estudiante que un verano me hice a su organización por un proyecto que hizo realmente buen proyecto también. Pero por eso estoy viendo eso ahí. Por lo que quizá no lo veas. Lo que quieres hacer es ir y dar click Nueva organización en entonces organización es como crear un T. Right . Entonces, ¿solo quieres hacer eso? Podemos optar por. Ah se canceló consiguiendo promocionales, um, artículos de ellos. Eliges tu que las estás usando. Algunos disidentes con mis bestias. Usa el nombre y me voy a poner mis proyectos para ser alojados en. Bueno, centro nosotros es el único Bueno, ese es el mejor para mí. Entonces salgo del centro nosotros, pero me están haciendo saber que ya está tomado, así que probablemente solo le agregue algo y continúe. Está bien. Y entonces estamos aquí en nuestra organización. Entonces, ¿el nombre de la organización es Trevor Williams uno? No. A partir de aquí, voy a tener que crear un nombre de proyecto. Entonces el nombre del proyecto es gestión de licencias, y lo voy a nombrar. Se llama a lo mismo. Bajar deja Dash Management. Puedo elegir lo que quería ser público o privado, así que quiero dejar esta unidad, Privada andan, seguiré adelante y crea proyecto on. Entonces tenemos un proyecto fresco para que solo puedas tomarte un rato y mirar. Ya ves, tienes algunas cosas más que conseguir UB te muestra al menos al valor facial. Si pasas las tablas ves trabajar. Yo intentos puedes hacer sprints, atrasos todo aquí reportes muestran tus archivos tus comentarios. Al final del día, las palabras son más o menos las mismas porque esto también está usando me pongo motor así que bájate de su basado en get as your desarrolla Su motor primario también es conseguir Así que vas a ver mucho fuera de las palabras en frases en común entre los dos. Conoce lo que quiero hacer es vincular este proyecto de partículas a mi proyecto get top. Correcto, Entonces este es un proyecto vacío. No quiero Oh, tengo que ir, Andi, Andi, empieza a sentirlo de nuevo. Ya ves, aquí está vacío, ¿verdad? Entonces no quiero oh tener los pies proyectos separados. Quiero que este proyecto se vincule al proyecto get up on Lo genial de Microsoft poseer ambos es que hicieron esa muy posible configuración de segundo proyecto Goto on, luego seleccionar conexiones de gueto desde el menú lcz boards, el secreto de conexiones en. Entonces están diciendo conector, ponte arriba oculto, alguien para seguir adelante y conectar mis Collins porque ya estoy apuntado como levántate, se va dedo del pie. Hazme saber que sólo necesito autorizar eso a diez centavos. Yo sólo voy dedo del pie hasta el So Okay, supongo que lo dejaré para otro momento entonces. Por lo que sólo voy adelante y autorizo como sus tableros encendidos. Entonces hará su magia en. Después trae el material enteramente Todos mis repositorios. Entonces algunos fuera de estos nuestras mentes fuera de ellos. Me han invitado dedo del pie. Pero el punto es que tengo acceso a todos mis repositorios. Por lo que me voy a ir con gestión de licencias y luego dar clic a guardar en. Entonces voy a tener que seguir adelante y aprobar e instalar y autorizar de nuevo. Entonces todos estos cheques son Solo asegúrate de saber exactamente los riesgos y lo que estás haciendo , que puedas tomarte tiempo en leer si lo deseas. Pero sólo estoy presionando hacia adelante. Está bien, Así que sepan que hemos configurado esta conexión. Lo que esto nos permite hacer es amable, gestionar nuestras tareas y cuestiones desde se desarrolla a medida que tu se desarrolla relativo hacia superarse positivo. Entonces es una poderosa conexión sobre lo que es nuestro objetivo una vez más es configurar ah, construir ducto y liberar plan de incendio para que cuando nos registremos para conseguir esperanza, no lo haga, ya que tu tonto también lo tome automáticamente. Construirlo, Andi, ya sabes, vetado antes deja que avance. Entonces a partir de aquí, lo que voy a hacer es pasar a ductos que es un cohete, entender hacer clic en él, entonces es Prompting siguen creando o primeros ductos entienden para crear ductos on. Entonces esto me permite seleccionar ¿qué tipo de ducto me gustaría? Entonces si la cancha fuera residentes de lo que haría en un cero descanso get. Pero si miras por dentro como una vez más, no hay nada ahí. Pero los expedientes han terminado en get hope. Por lo que una vez más crear ducto on. Voy a estar seleccionando guitarra así que elijo. Ponte de pie, entonces se va dedo del pie me pide que seleccione el repositorio. Por lo que sólo voy a seleccionar mi repositorio de gestión de licencias, un interesante proporcionado A que tiene los permisos en Entonces me presté para aprobar una vez más. Está bien, sé que me está advirtiendo que estoy usando un repositorio público, pero esto no es un proyecto público. Entonces bájate de este público. Pero esto es privado. Entonces supongo que ahí impulsándome a decir, Hey, Hey, sólo asegúrate de que ambos fuera de ellos tengan el mismo nivel de visibilidad fuera de curso en una organización. Fuera sentado tu código Probablemente no era probablemente tu cable no lo haría y no debería ser público. Muy bien, ¿qué? Yo sólo voy a cambiar este de privado a público sólo para que pueda conseguir que empiece a conseguir una promesa. Acabo de hacer clic en la configuración del proyecto que traía los detalles del proyecto y lo cambié todo de privado a público en voy a ahorrar para poder continuar así solo puedo quitarme eso. Yo sólo hice el cambio. Puedo despegar la advertencia en DSO Voy a seguir adelante y seleccionar SB net dot net core y eso va a crear lo que llamamos archivo y Mellor gmo. Entonces si miras el archivo, es que te das cuenta de que tienes como, un BCE y luego tienes, como, dash um en algunos. Básicamente es un bonito archivo de configuración limpio. Es muy popular. Los usan en médico. Es difícil para mí no poder describir el diseño, pero es un diseño realmente limpio en. Si solo le pones atención, puedes ver que está haciendo ciertas cosas a ciertos pasos. Por lo que quiero agregar en un paso más a esto. Estamos al final de todas estas tareas, y puedes agregar más tareas. Puedes agregar más pasos si quieres, porque si tienes, como pruebas unitarias que hacer antes, puedes aprobar la compilación de lo que quieres agregar en un paso para asegurarte de que eso suceda y así sucesivamente . Pero quiero agregar una tarea donde le diga que publique sobre artefactos. Acabo de decir Dash tarea colon publicar Construir artefactos en el signo uno. Muy bien, así que esto básicamente es decir que después de que hayas hecho una compilación exitosa, quiero que los pies publiquen esto, construya nuestro armar el paquete con ese nuevo constructor y todos los archivos publicados, así que eso sería Ahórrame la molestia. Volviendo a visual studio on, luego haciendo clic derecho y haciendo clic, publicándolo y poniéndolo en algún lugar. Y esto y aquello y el centro. ¿ Verdad? Entonces solo me voy de pie. Adelante, Andi, salva y corre. Esto dijo un slick guardar y correr on. Entonces sólo me va a dar un mensaje de compromiso. Y yo sólo puedo decir, ver, vendedor en, una vez más, va a necesitar un inútil crear el ducto. Y luego una vez que eso está en progreso, ves que puedes seguir adelante y dejar el trabajo. Después ves el símbolo del sistema escolar para que podamos sentarnos a ver el tiempo y ves toda la cancha que viene. Pero mientras tanto, en realidad, voy a cambiar el vapor porque no me gusta que alguien blanco cambie esto al campo oscuro. Está bien, eso es simple. Entonces solo vas al pequeño él estando aquí con el engranaje en que seleccionas tema, y luego puedes cambiar el tema oscuro. Está bien. Entonces podemos darle a eso unos cuantos, ya ves, para que te dé a todos los pasos por los que está pasando. Se va a ejecutar el nuevo comando get, bajar todo. Los binarios son los paquetes que se incluyeron en su proyecto en el camino a una compilación Ejecutar las pruebas unitarias y luego publicar los artefactos, por lo que sólo le daremos unos cuantos para terminar el. Obtendremos un buen indicador una vez que tengamos una compilación exitosa. Entonces si algo se rompió en la cancha que este paso no hubiera pasado, bien, Así estamos todavía no habríamos completado. Entonces lo siguiente Así que esto es lo construido, ya sabes, lo que quiero hacer es armar un lugar de lanzamiento de aguja. Voy a pasar a los lanzamientos. Y luego fui a ver que quiero un nuevo ducto encendido. Entonces desde aquí, me darán unas plantillas para que vean qué tipo de plantilla quieres. ¿ Quieres las implementaciones de servicio up? Entonces eso significa que revisas tu acorde, ellos hacen la compilación, y luego simplemente se implementan como estás automáticamente. ¿ O quieres el sitio web I I s y los despliegues de base de datos SQL en esta situación? Ese es el que nos interesa. Porque recuerda, queremos toe debe cumplir con la publicación desde nuestro repositorio toe nuestra VM real con nuestra base de datos en die, soy alguien para hacer clic en este y luego hacer clic, aplicar, y luego tenemos algunas configuraciones que tenemos que hacer. Entonces solo te están mostrando que, ya sabes, este es el artefacto. Entonces, recuerda que acabamos de poner un dedo del pie, publicamos artefactos, ¿ verdad? Y entonces esta es nuestra Estas son las etapas. Muy bien, Así que voy a dar clic en artefacto primero en, luego puedo elegir agregar un artefacto basado en una compilación, o puedo elegir el anuncio uno basado en el repositorio, o elegir ese gueto de Beeson. Entonces solo elige en el repositorio, consigue medios o cualquier cosa que esté facturada. Sólo llámalo artefacto. Pero realmente no quiero que yo quiera que el build toe suceda con alguna configuración especial . A lo mejor que nos pusimos entonces ese va a ser el artefacto. Sólo cuando tenga éxito se debe liberar. Está bien, así que voy con el dedo del pie para que usando este desplegable, debas ver ese nombre fuera del ducto de la factura. Basado en la que acabamos de crear. Acabamos de crear un ducto con la construcción, y ese es ese nombre ahí en. Entonces podemos seguir adelante en cleat para que puedan ver aquí los artefactos publicados por cada persona estarán disponibles para su despliegue en ductos de lanzamiento. Se publicó la última construcción exitosa, publicó los siguientes artefactos. Está bien, así que sólo puedo seguir adelante en. Entonces al menos tenemos un artefacto. También puedes Stadio decir, Mira, puedes programar un disparador de liberación para decir que solo voy a seguir adelante y habilitarlo que cada vez en estos momentos, quieras toe liberar una nueva compilación o liberar un nuevo artefacto para potencial. Libérala. Entonces no voy a ningún oblicuo? No, lo estamos haciendo manualmente. No, pero solo estoy mostrando cómo puedes ir ambos automatizándolo a continuación. El escenario sería, um ya sabes, te puedes quitar 80. Se puede tener producción masticable, etcétera. Entonces eso es lo que realmente significa etapa. Pueden sumar muchas etapas para decir eso. De acuerdo, Cuando el artefacto se suelte, entonces se pasa a través. Podemos movernos de este entorno. Este ambiente etcétera. Ahora mismo sólo estoy haciendo uno. Entonces sólo nos estamos moviendo de la herramienta de compilación, la implementación en el servidor, y luego tenemos que prestar algo de atención a esto. Por lo que sólo voy a llamar a esta implementación de una VM. Está bien, así que ese es un nombre artístico en ese entonces. Yo sólo voy a guiarte por cada uno de estos campos y explicar por qué podemos o no necesitarlos. No, este ducto permite construir realmente el sitio web de I I s desde cero. Por lo que acabamos de pasar. Todos esos pasos entraron, construimos el sitio web, construiremos nuestro pool de aplicaciones. Configuramos nuestra base de datos y todo. Esto son estos pasos más bien mucho nos dedo del pie automatizar todo fuera que ahora la mayor parte se hace Alguien a realmente no necesitar la mayoría de estos pasos. ¿ Verdad? Entonces el tiempo de configuración que vi al revés que te iban a ver crear nuestro opiáceo, Así que ya lo tengo creado. Entonces solo voy a dar clic en iniciar porque no quiero hacer ningún cambio. Crear están abiertos. Significa que si no existe, créalo , obviamente, obviamente, o voy a poner nuevos ajustes ahí, así que cámbialos. Pero yo sólo quería empezar. No quiero cambiar nada. Eso está ahí. El nombre del sitio web era gestión de licencias. Está bien. Ese era nombre que damos por molestar. I s encendido entonces podemos especificar donde queremos. Nuestras bases de datos son mochila. Entonces tienen esta cosa llamada el parque derecho, Que es, como un despliegue rápido. Especifique la forma en que desea desplegar la base de datos. Podemos usar ese pop nuestro script SQL. Entonces solo voy a seguir adelante y dejarlo como ese parque encendido. Poner en el nombre de la base de datos, que es la gestión de guiones bajos. Está bien. Tan desesperada. Frente a esos, si estás nombrando era una escuela, dice mi y una sin guión bajo uno con sólo tener cuidado de que estás poniendo los nombres correctos que lugares correctos. Entonces para cada sección, vamos a ver si necesitamos dedo del pie, ya sabes, poner más detalles. Entonces si me gusta el despliegue del culo para ver más detalles, se requiere más atención se va a hablar de un grupo de despliegue. Por lo que no tengo ningún grupo de despliegue. Supongo que voy a tener que crear uno para poder ir al año en adelante entonces eso va a sacar esa sección de grupo de despliegue en esa sección muestra es que no tenemos ningún , Así que el grupo de despliegue es básicamente y aquí lo es. Define un grupo lógico fuera de las máquinas de destino para implementaciones. Muy bien, para que pueda implementar en múltiples máquinas con una sola versión. Es solo una cuestión de despegar el grupo de despliegue para que no tengamos una sola máquina. Es entender dedo del pie un grupo de despliegue. Voy a llamar a este fraude en campo de golf sin apretar. Entonces no estoy aquí para enseñarte sobre tu canalización de lanzamientos Y los detalles ahí en solo te estoy mostrando cómo arreglar un ducto básico y luego tus reglas de negocio regirán Qué ambiente lo obtiene primero, verdad? Entonces lo siguiente que sé es que van a ver bien a fin de facilitar la comunicación entre esta aplicación fluida y la máquina en la que va a estar sucediendo el despliegue , que sería nuestro servidor. Tenemos que ejecutar este guión. Entonces es un script powershell. Por si nunca has oído hablar de Porsche, esto es lo que ya es. A lo mejor habías oído hablar de sitio alcanzable antes. Esto es lo que parece. Realmente no tienes que entender esto. Espero realmente intentar explicártelo, pero solo voy a tomar uso de un token de acceso personal en el script para la autenticación. Y luego fui a copiar este guión. Y luego está viendo correr de un administrador. Comando Portia venció. Por lo que una vez más, esta copia descript. Después saltamos a nuestro servidor en luego en el servidor. Voy a tener que traer mis ventanas de power shell. Cada servidor, nuestra máquina Windows siete hacia arriba debería tener Portia en él. El clave es que solo tienes que hacer clic derecho en ¿Ves Ejecutar como administrador. Una vez que estás dentro, te vas con el dedo del pie basado en el guión y presiona enter on. Entonces se va a desplegar un cero agentes emitiendo el directorio c y luego ver a Izzy. Agente Andi, dale algo de tiempo. Después de un tiempo, vas a conseguir este prompt encendido. Creo que presioné enter un par de veces demasiadas, pero entonces es solo, um sí, así que te va a dar estas pocas líneas, y luego está registrando un agente conectándose al servidor y luego viendo inter pláticas de grupo de despliegue para agente. Yo sólo voy a ver por qué por sí, um oh, bueno, tú cantas en ellos, así que realmente no necesito, pero entender, ver un arma db eso está bien. Coma los separan en. Busco al director donde se está creando el agente o se están desplegando todos los hechos de apoyo . Entonces dice, Entrar cono de usuario para el servicio percenter para sistemas anti autoridad. Acuérdate de eso. Ese es un usuario muy poderoso. Yo solo voy a usar ese usuario para que cualquier cosa que tenga que suceder pueda suceder en los permisos se otorguen en No, nuestro agente es sentarse. Ah, así que cuando regrese con el dedo cero, puedo ir a la tina de blancos puesta. Yo lo sabría, Ver esa máquina listada y esos son los remolcadores que preguntaban. Entonces eran realmente opcionales, pero oye,está bien, está bien, así que una vez que veo la máquina, puedo sentirme seguro de que ese paso está hecho. Entonces voy a volver a mi lanzamiento por plan, Y entonces solo puedo refrescar este grupo de despliegue, y ya ves, estoy trabajando con varias pestañas porque no me gusta detenerme y volver y así sucesivamente. Entonces cuando caí, veo prod, Eso es bueno. Entonces, no, tengo mi grupo de despliegue y esa era desaparece. Voy a mirar por dentro esta en esta es peculiar porque realmente no hay nada que cambiar tu todo que se tomó. Antic cualquier ojo. Entonces cualquier sesgo significa si comprueba esto si quieres con estilo en las máquinas. Si fue un muy primer despliegue, no estaba en la máquina. Supongo que lo revisas. No lo necesitamos porque yo hielo ya está ahí. Todo ya está configurado. Después bajamos a la implementación de SQL en. Entonces una vez más seleccionamos Praga porque esa es nuestra máquina objetivo. Entonces aquí hay una situación ahora en la que si la base de datos está en una máquina diferente, tendrían que configurar otra máquina de objetivos o grupo de despliegue. Por lo que esto probablemente sería como orgulloso Web versus derechos BB del producto. Pero entonces ambos están en la misma máquina. Por lo que sólo estoy usando el mismo grupo de despliegue en. Todo se verá de la misma manera Si perforé en el despliegue de db, tendremos a Teoh para proporcionar algunos, um, detalles sobre el servidor. Así que recuerda que nuestro servidor o mi servidor es ese host local, pero su cuadro SQL Express slash lo siento SQL back slash sq express. Correcto, Entonces el mismo tipo fuera de sirviente y ahí pones dentro de la cadena de conexión. Tienes que asegurarte de que estás apuntando a esos mismos datos. Abejas, autenticación. Podemos dejar como windows la autenticación basada en la espera. Lo desplegamos antes en DSO on. Entonces lo que estoy mostrando es una pauta. Realmente no conozco tu situación, pero al menos estoy dando una idea de lo que es posible. Entonces una vez que hemos hecho eso y hemos despejado todas las líneas rojas, al menos en esta sección, entonces podemos hacer click, guardar en morir, Al igual que Ok, No tienes que cambiar eso. De acuerdo, Entonces lo que voy a hacer es activar una liberación manual, ¿ verdad? No. Correcto. Entonces solo puedo hacer eso y solo puedo hacer clic, crear lanzamiento. Entonces me voy de pie, saca una nota mental de todos los archivos que actualmente están en la licencia Management Fuller en estampillas de tiempo para ver si tal vez alguno fuera de ellos. Cambié después del lanzamiento, pero voy a seguir adelante en retroceder y acaba de salir de la máquina virtual, crear lanzamiento encendido, entonces podemos ver eso a un lado. Sólo están confirmando, um, es un despliegue de Veum en. Podemos elegir el artefacto y ni siquiera podemos poner en una descripción de lanzamiento. Ya sabes, sólo para decir esto realmente habla este pantano, etcétera. Seguimos adelante y pinchamos, creamos, y luego ves que el trabajo ha comenzado para que pueda dar click en liberar. Entonces me va a traer pantalla del dedo del pie. Eso me va a mostrar un poco de progreso en Fueron tan amables. Están tratando de mostrarte que hicieron algunas mejoras, pero no necesito ver eso encendido. Entonces me van a mostrar que activé manualmente esta compilación. Este es el artefacto encendido entonces puedo tratar desplegar en. Entonces una vez que haga eso, creo desplegar. Entonces digo que quiero que despliegues dedo del pie la VM para que pueda hacer clic en ese despliegue en, luego haga clic en el jugable, ni en ese semicírculo encendido. Entonces me llevará a una pantalla que me está mostrando el progreso del despliegue en. Entonces eso se hace bien? Por lo que tardó 38 segundos aún puestos en ese lanzamiento. Ahora déjame volver a mi máquina virtual en Mirar atrás en el pliegue sobre los archivos encendidos mientras todo parece estar ahí está bastante bien. No, voy a hacer un CI tangible. Y así me voy de pie, tal vez haga un cambio en la pantalla de inicio de sesión para ver un log in aquí. Algo así. Um, en. Después veremos cómo lo revisamos en el lanzamiento de build y luego buscamos el opiáceo. Muy bien, tan cambio muy menor. Y solo estoy haciendo esto para, ya sabes, mostrar sake. Probablemente no tengas que hacer todo eso, pero yo solo voy de pie, adelante y comprometer esta prueba de cambio para su liberación. Eso es todo lo que estoy haciendo como nota. Entonces voy a comprometer todo Onda hundirse en dso cuando vaya por encima del gueto a medida que se desarrolle su, estoy viendo que está en proceso fuera haciendo una construcción. Está bien, así que acabo de revisar algo, y ya está haciendo una factura porque detectó que algo que pasas no se levantó. Por lo que no es edificio para asegurarse de que cualesquiera cambios que hicieran estaba bien. Puedo ver los dos cambios solo para asegurarme de que se está construyendo justo por lo que habrá prueba para su liberación. Entonces consiguió el cambio Andi. Es sólo hacer su trabajo de forma automática, ¿verdad? Por lo que siempre podemos dar click en el empleo para ver los avances en. Damos eso en algún momento. Una vez que se complete esa construcción, vemos que tenemos un artefacto nuevo. Entonces cuando voy con los lanzamientos, puedo activar una liberación manual. Si quiero a Andi estoy viendo aquí. Eso es algo fallado. Me preguntaba si este fue mi anterior lanzamiento. Ese campo. De acuerdo, así que al entrar, veo que la parte de implementación SQL se siente así Probablemente tendríamos que hacer un poco más trabajo que simplemente desplegar el sq así. O tal vez necesitamos usar no una mochila, sino en script SQL. De cualquier manera, enfoquémonos en la parte web por saber que podemos descifrar el sq apart. Por lo que quiero volver a los lanzamientos. Muy bien, entonces esto es lo que pasa con el ajuste del ducto. Puedes fluir técnico al principio, pero luego una vez que lo consigues automatizado, no es algo que tengas que hacer todos los días. Muy bien, Así que voy a crear un nuevo lanzamiento. No, Una vez más, si edito el ducto, si terminé el gasoducto de liberación sobre Guy vaya y encendido constante. Entonces puedo programar un disparador de liberación en el despliegue. Correcto. Entonces eso significa que puedo hacer un lanzamiento nocturno o un no lanzamiento anticipado, sea lo que sea. Pero ahora mismo lo estoy haciendo manualmente porque no estoy en una producción sentada. No necesito sentarme un horario. Está bien, Así que lo estoy haciendo estoy creando el lanzamiento y luego voy adelante y pego, Create on, entonces se va a iniciar el lanzamiento. Entonces supongo que se va a sentir una vez más en el tramo de base de datos. Pero al menos validemos que el tramo Web se hizo con éxito. Entonces al ir y veo que lo hizo, el juicio I Spire es la primera parte off eyes cambia. Es hacer el despliegue real. No, está bien. Y yo la estoy subiendo aquí, viendo que se siente desplegarse porque no puede modificar el auto de archivo. Dll Está bloqueado por algún proceso. Entonces algo interrumpió esta liberación en el servidor encendido. Probablemente sólo voy a tener que seguir asegurándome de que ahí todo el lanzamiento, todo el recurso es nuestro libre para que suceda el dedo del pie de liberación. Está bien, está bien. Entonces me fui al servidor y acabo de reiniciar la web o los sitios web. Acabo de hacer clic en él y en un reinicio también ajusté un reciclaje en una piscina en. Entonces voy a intentarlo de nuevo, acuerdo? Por lo que a veces los liberados sienten porque fuera de estas cosas. Entonces, sí, todos ustedes para cumplir con su. Pero entonces siempre se puede saber, este fracaso es casi, garantizo, en algunos puntos, alguien que simplemente siga adelante y cree otro lanzamiento. Por lo que tengo que lanzar lanzamientos hasta el momento. Yo sólo voy a seguir adelante, crear otro encendido entonces ya ves, está en progreso. Hacemos click. Simplemente es quieto, vigílalo. Adelante, entonces vamos a ver si se ha liberado el recurso. Está bien, y ahí vamos. Tenemos una liberación exitosa sobre bono. Bueno, esta vez sólo tuvo éxito. No hay ningún error en absoluto. Entonces si vuelvo a lanzamientos, entonces oh, sigue pasando por otra fase. Entonces ahí se campo en las implementaciones SQL que yo, como la escalada era buena en el campo de implementación SQL, ¿sabías que ese podría tener campo, pero volvamos a nuestro servidor en para ver si podemos detectar alguna diferencia importante. Está bien, Y ahí vamos. Entonces todo lo que fue apegarse, ¿recuerdas? Dijeron que cambiaría iniciar sesión en iniciar sesión aquí. Entonces hice ese cambio. Se lo revisaba en traseros del gueto. Tu desarrolla automáticamente hizo una compilación validando una necesaria para ser validada. Una vez más, esos pasos son muy básicos fuera de la caja, pero puedes agregar más validaciones, enseñar compilación, sobre todo si eres desarrollador senior y quieres más control de calidad sobre lo que va en el en el medio ambiente. Pero en el nivel básico no construyó sobre él sostenía el artefacto encendido. Entonces montamos ese lanzamiento. Entonces una vez más, si quisieras automatizar eso porque ese era un proceso muy manual tener que ir a liberar, luego crear release y luego empezar, podemos hacerlo la canalización. Entonces eso va a lanzamientos y dicen, edita. Entonces podemos hacer un horario donde decimos todos los días a tal vez a las 3 de la madrugada Haces eso ves solo liberaciones estables si la fuente o tubería ha cambiado. Entonces eso significa uno. Alguien comprueba en cordón y ha pasado por la construcción sobre ella es exitosa y así sucesivamente. Artefacto, una vez que es diferente de lo que obtiene, entonces automáticamente se libera la puerta. Mi objetivo hoy fue mostrarles cómo se puede iniciar y utilizar para automatizar entre chequear en la corte y liberarlo en su entorno. 70. Revisión de publicación: ustedes chicos. Este es solo un video de visión general para esta sección. Entonces en esta sección, miramos todo el dedo del pie publicar nuestro ausente miramos Bueno, dos, tal vez tres escenarios. En base a cómo percibes el primer escenario donde estamos publicando dedo del pie, yo s Andi pregunté estaría en tu máquina local. Podría estar en una máquina en el servidor o podría ser una máquina virtual en el vestido. Un punto es que es ah, máquina de Windows ejecutando la información, aplicación de servicios de Internet Information o ojos para corto en agujero. Podemos ir sobre la puesta en marcha del entorno para que la aplicación dot net core se aloje allí. Andi, más accesible. Se analizaron los problemas de permisos que pueden surgir tanto para la ejecución de archivos como para la ejecución de aplicaciones así como para la conectividad de bases de datos. Onda, miramos todo para solo configurar un servidor pequeñas cosas para cuidar de Andi,ya sabes, ya sabes, consejos de solución de problemas. También miramos cómo podemos ir embarcaciones desplegando dedo del pie como estás así que vimos el peligro en solo desplegar porque creó la base de datos. El string de conexión estaba bien. Todo estaba bien, pero no se crearon tablas, así que teníamos dos opciones que podríamos tener ya sea tratando de obtener un SQL un script que represente las migraciones y luego la tendencia. Hazlas manualmente en el servidor en la nube o, um, recurrimos, atrayendo algún código personalizado dedo del pie buscando toda la variable de entorno al elegir qué cadena de conexión usar en el momento, así como incluyendo esta línea que reenviaría ingeniero todas las migraciones automáticamente. Muy bien, entonces el resultado final de esta sección es que sabrás tener sobre pasante lo, um, por una fuente. ¿ Versión de su aplicación en usted también tiene una versión alojada en la nube de la aplicación . Yo invierto ambos escenarios porque uno debe ser práctico para tu contexto. Enseguida, def. Ahí hay otro contexto que tienes. Entonces ya sabes, puedes sentirte libre de contactarme y avisarme el día voy a hacer todo lo posible para ayudarte a través de esa