tag:blogger.com,1999:blog-87646806100508736582024-03-20T23:23:31.874-03:00 Welington Fontes<b>Arquiteto de Software, Desenvolvedor Full Stack e Instrutor
| wtecnologia@outlook.com.br</b>
<br>
Especialista em linguagem de programação, banco de dados, consultor e apaixonado por tecnologia.Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.comBlogger133125tag:blogger.com,1999:blog-8764680610050873658.post-48661285302900819002024-03-08T12:06:00.000-03:002024-03-08T12:06:08.434-03:00VERIFICAR SE A STRING CONTÉM APENAS LETRA<h1 style="background-color: white; box-sizing: inherit; color: #161616; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: clamp(1.875rem, 22.1053px + 1.64474vw, 2.5rem); line-height: 1.3; margin: -10px 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px; word-break: break-word;">Regex.<wbr style="box-sizing: inherit; outline-color: inherit;"></wbr>Is<wbr style="box-sizing: inherit; outline-color: inherit;"></wbr>Match Método</h1><div class="display-flex-tablet justify-content-space-between-tablet" style="background-color: white; box-sizing: inherit; color: #161616; display: flex !important; font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 16px; justify-content: space-between !important; outline-color: inherit;"><ul class="metadata page-metadata align-items-center" data-bi-name="page info" style="align-items: center !important; box-sizing: inherit; color: var(--theme-text-subtle); display: flex; flex-wrap: wrap; font-size: 0.875rem; list-style: none; margin: 0px !important; outline-color: inherit; padding: 0.125rem 0px 0px !important;"><li style="align-items: center; box-sizing: inherit; display: flex; flex-basis: auto; list-style: none; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><br /><span style="font-family: inherit; font-size: 0.875rem; font-weight: 600;"><br /><span style="font-size: clamp(1.59375rem, 18.7895px + 1.39803vw, 2.125rem);">Definição</span></span></li></ul></div><div class="metadata" style="background-color: white; box-sizing: inherit; color: var(--theme-text-subtle); font-family: "Segoe UI", SegoeUI, "Helvetica Neue", Helvetica, Arial, sans-serif; font-size: 0.875rem; outline-color: inherit;"><dl class="attributeList" style="box-sizing: inherit; display: flex; margin: 0px; outline-color: inherit; padding: 0px;"><dt style="box-sizing: inherit; margin: 0px; outline-color: inherit; padding: 0px;">Namespace:</dt><dd style="box-sizing: inherit; margin: 0px 0px 0px 8px; outline-color: inherit; padding: 0px;"><span class="break-text" style="box-sizing: inherit; outline-color: inherit;"><a class="xref" data-linktype="relative-path" href="https://learn.microsoft.com/pt-br/dotnet/api/system.text.regularexpressions?view=net-8.0" style="background-color: rgba(0, 0, 0, 0); box-sizing: inherit; cursor: pointer; outline-color: inherit; outline-style: initial; outline-width: 0px; overflow-wrap: break-word; text-decoration-line: none;">System.<wbr style="box-sizing: inherit; outline-color: inherit;"></wbr>Text.<wbr style="box-sizing: inherit; outline-color: inherit;"></wbr>Regular<wbr style="box-sizing: inherit; outline-color: inherit;"></wbr>Expressions</a></span></dd></dl><dl class="attributeList" data-moniker=" dotnet-uwp-10.0 net-5.0 net-6.0 net-7.0 net-8.0 net-9.0 netcore-1.0 netcore-1.1 netcore-2.0 netcore-2.1 netcore-2.2 netcore-3.0 netcore-3.1 netstandard-1.0 netstandard-1.1 netstandard-1.2 netstandard-1.3 netstandard-1.4 netstandard-1.6 " style="box-sizing: inherit; display: flex; margin: 0px; outline-color: inherit; padding: 0px;"><dt style="box-sizing: inherit; margin: 0px; outline-color: inherit; padding: 0px;"><br /></dt></dl></div><p class="MsoNormal"><span style="background: white; font-family: Arial, sans-serif; font-size: 12pt; line-height: 107%;">Indica
se a expressão regular encontra uma correspondência na cadeia de caracteres de
entrada. O termo em inglês abreviado para expressões regulares é regex.</span><span style="font-family: "Arial",sans-serif; font-size: 12.0pt; line-height: 107%;"><o:p></o:p></span></p><p>
</p><p class="MsoNormal"><span style="background: rgb(250, 251, 253); font-family: Arial, sans-serif; font-size: 12pt; line-height: 107%;">Podemos dizer que regex
permite definir uma forma de identificar padrões em cadeias de caracteres e que podemos usá-la para validações de dados.</span><span style="font-family: "Arial",sans-serif; font-size: 12.0pt; line-height: 107%;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(250, 251, 253); font-family: Arial, sans-serif; font-size: 12pt; line-height: 107%;"></span></p><p class="MsoNormal"><span style="background: rgb(250, 251, 253); font-family: Arial, sans-serif; font-size: 12pt; line-height: 107%;">O matemático americano Stephen Cole
Kleene, </span><span style="background-color: #fafbfd; font-family: Arial, sans-serif; font-size: 16px;">desenvolveu os estudos </span><span style="background-color: #fafbfd; font-family: Arial, sans-serif; font-size: 12pt;">que a princípio chamava de álgebra de conjuntos regulares e hoje conhecemos como as</span><span style="background-color: #fafbfd; font-family: Arial, sans-serif; font-size: 16px;"> regex.</span></p><p class="MsoNormal"><span style="color: #a31515; font-family: "Cascadia Mono"; font-size: 9.5pt; line-height: 107%; mso-font-kerning: 0pt;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(250, 251, 253); font-family: Arial, sans-serif; font-size: 12pt; line-height: 107%;">Um exemplo de seu uso é na validação do formato do campo </span><em style="box-sizing: inherit;"><span style="font-family: "Arial",sans-serif;">e-mail:</span></em></p><p class="MsoNormal"> <code style="background-color: rgba(27, 31, 35, 0.05); border-radius: 6px; box-sizing: inherit;"><span style="font-family: "Arial",sans-serif; font-size: 12.0pt; line-height: 107%; mso-fareast-font-family: Aptos; mso-fareast-theme-font: minor-latin;">/^[a-z0-9.]+@[a-z0-9]+\.[a-z]+\.([a-z]+)?$/i;</span></code><span style="background: rgb(250, 251, 253); font-family: Arial, sans-serif; font-size: 12pt; line-height: 107%;">.</span><span style="font-family: "Arial",sans-serif; font-size: 12.0pt; line-height: 107%;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #a31515; font-family: "Cascadia Mono"; font-size: 9.5pt; line-height: 107%; mso-font-kerning: 0pt;"><o:p><br /></o:p></span></p><p class="MsoNormal"><span style="color: #a31515; font-family: "Cascadia Mono"; font-size: 9.5pt; line-height: 107%; mso-font-kerning: 0pt;"><o:p><span style="background-color: #fafbfd; color: black; font-family: Arial, sans-serif; font-size: 16px;">Entretando, para verificar se uma string contém apenas letras e não números, segue o algorítimo abaixo. </span></o:p></span></p><p class="MsoNormal"><span style="color: green; font-family: "Cascadia Mono"; font-size: 9.5pt;"><br /></span></p><p class="MsoNormal"><span style="color: green; font-family: "Cascadia Mono"; font-size: 9.5pt;">// Se for letra</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;"> </span></span><span style="color: blue; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;">if</span><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"> (Regex.IsMatch(txtRegistroCadastro.Text, </span><span style="color: #a31515; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;">".*?[a-zA-Z].*?"</span><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;">))<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;"> </span>{</span><span style="font-family: "Cascadia Mono"; font-size: 9.5pt;"> </span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;"> </span>}<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;"> </span></span><span style="color: green; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;">// Se não for letra<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;"> </span></span><span style="color: blue; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;">else<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><span style="mso-spacerun: yes;"> </span>{<o:p></o:p></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="color: black; font-family: "Cascadia Mono"; font-size: 9.5pt; mso-font-kerning: 0pt;"><o:p> </o:p></span><span style="font-family: "Cascadia Mono"; font-size: 9.5pt;">}</span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="font-family: "Cascadia Mono"; font-size: 9.5pt;"><br /></span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="font-family: "Cascadia Mono"; font-size: 9.5pt;">Mais informações:</span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 0cm; mso-layout-grid-align: none; text-autospace: none;"><span style="font-family: Cascadia Mono;"><span style="font-size: 12.6667px;">https://learn.microsoft.com/pt-br/dotnet/api/system.text.regularexpressions.regex.ismatch?view=net-8.0</span></span></p><p class="MsoNormal"><o:p></o:p></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-20069431745881005602024-01-18T09:37:00.001-03:002024-01-18T09:37:17.691-03:00SQL - Evitar salvar alterações que exijam recriação de tabela<p><span style="font-family: verdana;">1. Abra o SQL Server
Management Studio.</span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 10.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span lang="pt" style="mso-ansi-language: #0016; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-font-kerning: 0pt; mso-hansi-font-family: Calibri;"><span style="font-family: verdana;">2. No menu Ferramentas,
clique em Opções.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 10.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span lang="pt" style="mso-ansi-language: #0016; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-font-kerning: 0pt; mso-hansi-font-family: Calibri;"><span style="font-family: verdana;">3. No painel de navegação da
janela Opções, clique em Designers.<o:p></o:p></span></span></p>
<p class="MsoNormal" style="line-height: normal; margin-bottom: 10.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><span lang="pt" style="mso-ansi-language: #0016; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-font-kerning: 0pt; mso-hansi-font-family: Calibri;"><span style="font-family: verdana;">4. Marque ou desmarque a
caixa de seleção evitar salvar alterações que exijam recriação de tabela e
clique em OK.</span></span></p><p class="MsoNormal" style="line-height: normal; margin-bottom: 10.0pt; mso-layout-grid-align: none; mso-pagination: none; text-autospace: none;"><br /><span lang="pt" style="mso-ansi-language: #0016; mso-ascii-font-family: Calibri; mso-bidi-font-family: Calibri; mso-font-kerning: 0pt; mso-hansi-font-family: Calibri;"></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi18ZVapX64BJl5d-Q23g_82m1tninabDfkQ28bxUmfJ4ENnKg9EBx9m8nLYnA-JD0Amzypv5WZliCXk9q2wlMWkvGmN3CuwhqUHtrfnuSBRrezGmHn_cgwLjFakncM1WixUTCciVsIcQsO3UeU1rib-t9YhCxThc9-UsFcOt8AHer2CS2gG2iHfO4zp72Q/s866/Sem%20t%C3%ADtulo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="497" data-original-width="866" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi18ZVapX64BJl5d-Q23g_82m1tninabDfkQ28bxUmfJ4ENnKg9EBx9m8nLYnA-JD0Amzypv5WZliCXk9q2wlMWkvGmN3CuwhqUHtrfnuSBRrezGmHn_cgwLjFakncM1WixUTCciVsIcQsO3UeU1rib-t9YhCxThc9-UsFcOt8AHer2CS2gG2iHfO4zp72Q/w588-h338/Sem%20t%C3%ADtulo.png" width="588" /></a></div><br /><o:p></o:p><p></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-41310278233923472362023-12-21T09:17:00.000-03:002023-12-21T09:17:54.934-03:00DROP TABLE IF EXISTS - Incorrect syntax near the keyword 'IF'.<p><span style="font-family: verdana;">Se estiver retornado o erro Incorrect syntax near the keyword 'IF', e o comando estiver semelhante a este</span><span style="font-family: verdana;"> DROP TABLE IF EXISTS #tmpExtatisticaExame;</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">Isto, acontece porque este comando somente funciona com versões do SQL SERVER a partir de 2016.</span></p><p><span style="background-color: white; font-family: verdana;"><br /></span></p><p><span style="background-color: white; font-family: verdana;">Para compatibilidade com versões anteriores do SQL-Server, use isto:</span></p><p><span style="font-family: verdana;">IF OBJECT_ID(N'tempdb..#tmpExtatisticaExame', N'U') IS NOT NULL </span></p><p><span style="font-family: verdana;"><span style="white-space: pre;"> </span>DROP TABLE #tmpExtatisticaExame; </span></p><p><span style="font-family: verdana;">GO </span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">Exemplo completo:</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">CREATE TABLE #temptable (col1 INT); </span></p><p><span style="font-family: verdana;">GO </span></p><p><span style="font-family: verdana;">INSERT INTO #temptable </span></p><p><span style="font-family: verdana;">VALUES (10); </span></p><p><span style="font-family: verdana;">GO </span></p><p><span style="font-family: verdana;">SELECT * FROM #temptable; </span></p><p><span style="font-family: verdana;">GO </span></p><p><span style="font-family: verdana;">IF OBJECT_ID(N'tempdb..#temptable', N'U') IS NOT NULL </span></p><p><span style="font-family: verdana;">DROP TABLE #temptable; </span></p><p><span style="font-family: verdana;">GO </span></p><p><span style="font-family: verdana;">--Test the drop. </span></p><p><span style="font-family: verdana;">SELECT * FROM #temptable; </span></p><p><span style="font-family: verdana;"><span style="background-color: white;">O exemplo anterior cria uma tabela temporária, testa sua existência, a descarta e testa novamente sua existência. Este exemplo não usa a sintaxe </span><span _istranslated="1" style="background-color: white; box-sizing: inherit; font-weight: 600; outline-color: inherit;">IF EXISTS</span><span style="background-color: white;">, que está disponível a partir do SQL Server 2016 (13.x).</span></span></p><p><br /></p><p><br /></p><p><br /></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-82192010346908074942023-12-20T18:38:00.001-03:002023-12-20T18:38:06.525-03:00Unable to cast object of type 'System.Data.DataRowView' to type 'System.IConvertible'<p><span style="font-family: verdana;"> No meu caso, solucionei este problema realizando uma simples alteração</span></p><p><span style="font-family: verdana;"><br /></span></p><p style="--_pr-img-mb: 0; --theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #0c0d0e; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="font-family: verdana;"><span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit; vertical-align: inherit;">mova a primeira linha para a última:</span></span></p><p style="--_pr-img-mb: 0; --theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #0c0d0e; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="font-family: verdana;"><br style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit;" /><span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit; vertical-align: inherit;"><b>Antes</b></span></span></p><pre class="lang-cs s-code-block" style="--_cb-line-numbers-bg: var(--black-150); --theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border-radius: var(--br-md); border: 0px; box-sizing: inherit; color: #0c0d0e; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--fs-body1); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: var(--lh-md); margin-bottom: calc(1.5em); margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: var(--su12); vertical-align: baseline; width: auto;"><code class="hljs language-csharp" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span style="font-family: verdana;">comboBox.DataSource = dt; <span class="hljs-comment" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; color: var(--highlight-comment); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">// this line</span>
comboBox.DisplayMember = <span class="hljs-string" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; color: var(--highlight-variable); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">"nome"</span>;<span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit;"></span>
comboBox.ValueMember = <span class="hljs-string" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; color: var(--highlight-variable); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">"id"</span>;
</span></code></pre><p style="--_pr-img-mb: 0; --theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); background-color: white; border: 0px; box-sizing: inherit; clear: both; color: #0c0d0e; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 15px; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit; font-family: verdana; vertical-align: inherit;"><b>Depois</b></span></p><pre class="lang-cs s-code-block" style="--_cb-line-numbers-bg: var(--black-150); --theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border-radius: var(--br-md); border: 0px; box-sizing: inherit; color: #0c0d0e; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--fs-body1); font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variant-position: inherit; font-variation-settings: inherit; line-height: var(--lh-md); margin-bottom: 0px; margin-top: 0px; max-height: 600px; overflow-wrap: normal; overflow: auto; padding: var(--su12); vertical-align: baseline; width: auto;"><code class="hljs language-csharp" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: var(--_pr-code-fs); font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline; white-space: inherit;"><span style="font-family: verdana;">comboBox.DisplayMember = <span class="hljs-string" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; color: var(--highlight-variable); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">"nome"</span>;<span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit;"><span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit;"></span></span>
comboBox.ValueMember = <span class="hljs-string" style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); border: 0px; box-sizing: inherit; color: var(--highlight-variable); font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-size: 13px; font-stretch: inherit; font-style: inherit; font-variant: inherit; font-variation-settings: inherit; font-weight: inherit; line-height: inherit; margin: 0px; padding: 0px; vertical-align: baseline;">"id"</span>;<span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit;"><span style="--theme-background-attachment: auto; --theme-background-color: var(--white); --theme-background-position: top left; --theme-background-repeat: repeat; --theme-background-size: auto; --theme-base-primary-color-h: 27; --theme-base-primary-color-l: 48%; --theme-base-primary-color-s: 89%; --theme-body-font-color: var(--black-600); --theme-body-font-family: var(--ff-sans); --theme-button-active-background-color: initial; --theme-button-color: initial; --theme-button-hover-background-color: initial; --theme-button-hover-color: initial; --theme-button-outlined-border-color: initial; --theme-button-outlined-selected-border-color: initial; --theme-button-primary-active-background-color: initial; --theme-button-primary-active-color: initial; --theme-button-primary-background-color: initial; --theme-button-primary-color: initial; --theme-button-primary-hover-background-color: initial; --theme-button-primary-hover-color: initial; --theme-button-primary-selected-background-color: initial; --theme-button-primary-selected-color: initial; --theme-button-selected-background-color: initial; --theme-button-selected-color: initial; --theme-content-background-color: var(--white); --theme-content-border-color: var(--black-225); --theme-footer-background-border-top: 0; --theme-footer-background-color: hsl(210,8%,5%); --theme-footer-background-position: top left; --theme-footer-background-repeat: no-repeat; --theme-footer-background-size: auto; --theme-footer-divider-color: var(--black-500); --theme-footer-link-color-hover: var(--black-200); --theme-footer-link-color: var(--black-300); --theme-footer-padding-bottom: 0; --theme-footer-padding-top: 0; --theme-footer-text-color: var(--black-300); --theme-footer-title-color: var(--black-250); --theme-header-background-border-bottom: 0; --theme-header-background-color: var(--theme-primary); --theme-header-background-position: center left; --theme-header-background-repeat: repeat; --theme-header-background-size: auto; --theme-header-foreground-color: transparent; --theme-header-foreground-position: bottom right; --theme-header-foreground-repeat: no-repeat; --theme-header-foreground-size: auto; --theme-header-link-color: var(--theme-primary); --theme-header-sponsored-color: hsla(0,0%,100%,0.4); --theme-link-color-hover: initial; --theme-link-color-visited: initial; --theme-link-color: initial; --theme-post-body-font-family: var(--ff-sans); --theme-post-owner-background-color: var(--theme-secondary-100); --theme-post-owner-new-background-color: var(--theme-secondary-200); --theme-post-title-color-hover: var(--theme-link-color-hover); --theme-post-title-color-visited: var(--theme-link-color-visited); --theme-post-title-color: var(--theme-link-color); --theme-post-title-font-family: var(--ff-sans); --theme-primary-custom-100: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .9))); --theme-primary-custom-200: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .75))); --theme-primary-custom-300: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + ((100% - var(--theme-base-primary-color-l)) * .5))); --theme-primary-custom-400: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), var(--theme-base-primary-color-l)); --theme-primary-custom-500: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.3))); --theme-primary-custom-600: hsl(var(--theme-base-primary-color-h), var(--theme-base-primary-color-s), calc(var(--theme-base-primary-color-l) + (var(--theme-base-primary-color-l) * -.6))); --theme-primary-custom: var(--theme-primary-custom-400); --theme-tag-background-color: initial; --theme-tag-border-color: initial; --theme-tag-color: initial; --theme-tag-hover-background-color: initial; --theme-tag-hover-border-color: initial; --theme-tag-hover-color: initial; --theme-tag-required-background-color: var(--theme-secondary-500); --theme-tag-required-border-color: transparent; --theme-tag-required-color: var(--white); --theme-tag-required-hover-background-color: var(--theme-secondary-400); --theme-tag-required-hover-border-color: transparent; --theme-tag-required-hover-color: var(--white); --theme-topbar-bottom-border: 1px solid var(--black-225); box-sizing: inherit;"></span></span>
comboBox.DataSource = dt;</span></code></pre>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-37400445236601081492023-12-16T10:02:00.000-03:002023-12-16T10:02:05.210-03:00instalar o Report Viewer no Visual Studio<p> <span style="background-color: rgba(255, 255, 255, 0.7); color: #111111; font-family: -apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif; font-size: 16px;">Para instalar o Report Viewer no Visual Studio 2019, siga os seguintes passos:</span></p><ol style="background-color: rgba(255, 255, 255, 0.7); color: #111111; display: flex; flex-direction: column; font-family: -apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif; font-size: 16px; gap: 10px; margin: 12px 0px 0px; padding-inline-start: 24px;"><li>Abra o Visual Studio 2019 e crie um projeto simples utilizando a plataforma Windows Forms.</li><li>No menu superior, localize o item “Extensões/Gerenciar Extensões”.</li><li>Clique na Aba “Online” e na caixa de pesquisa digite “rdlc”.</li><li>Clique no primeiro item da pesquisa, que será o “Microsoft RDLC Report Designer”.</li><li>Clique no botão “Download”.</li><li>As alterações serão agendadas e começarão quando o Visual Studio for reiniciado.</li><li>Para conferir se tudo ocorreu bem, clique com o botão direito sobre o projeto escolhendo “Adicionar/Novo Item …”. Na caixa pesquisar procure por “Relatório”, então iremos nos deparar com o item com extensão “.rdlc”.</li><li>Para instalar as referências, acesse o item de menu “Ferramentas/Gerenciador de Pacotes do Nuget/Gerenciar pacotes do Nuget para a Solução…” e na caixa de pesquisa insira “reportviewercontrol”.</li><li>Escolha a segunda opção “Microsoft.ReportingServices.ReportViewerControl.Winforms” e clique no botão “Instalar”.</li><li>Ao término da instalação, será aberta uma tela contendo alguns informativos de como utilizar estas referências.</li></ol><p style="background-color: rgba(255, 255, 255, 0.7); color: #111111; font-family: -apple-system, Roboto, SegoeUI, "Segoe UI", "Helvetica Neue", Helvetica, "Microsoft YaHei", "Meiryo UI", Meiryo, "Arial Unicode MS", sans-serif; font-size: 16px; font-variation-settings: var(--cib-type-body2-font-variation-settings); line-height: var(--cib-type-body2-line-height); margin: 12px 0px 0px; padding: 0px; user-select: text; word-break: break-word;">Espero ter ajudado! 😊</p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-20429102187567465372023-12-15T23:02:00.002-03:002023-12-15T23:02:42.874-03:00ASP.NET Core - Definir cultura para o formato brasileiro<p> using System;</p><p>using System.Collections.Generic;</p><p>using System.Globalization;</p><p>using System.Linq;</p><p>using System.Threading.Tasks;</p><p>using System.Windows.Forms;</p><p><br /></p><p>namespace Reports_Design</p><p>{</p><p> internal static class Program</p><p> {</p><p> /// <summary></p><p> /// Ponto de entrada principal para o aplicativo.</p><p> /// </summary></p><p> [STAThread]</p><p> static void Main()</p><p> {</p><p> // Define a cultura padrão como "pt-BR"</p><p> CultureInfo.DefaultThreadCurrentCulture = new CultureInfo("pt-BR");</p><p><br /></p><p> Application.EnableVisualStyles();</p><p> Application.SetCompatibleTextRenderingDefault(false);</p><p> Application.Run(new Form1());</p><p> }</p><p> }</p><p>}</p><div><br /></div>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-48438812945019257022023-10-17T21:06:00.004-03:002023-10-17T21:06:50.647-03:00 Corrigir o erro: InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.RoleManager`1[Microsoft.AspNetCore.Identity.IdentityRole]' while attempting to activate<p><span style="font-family: verdana;"> builder.Services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)</span></p><p><span style="font-family: verdana;"> .AddRoles<IdentityRole>() // Corrigir o erro: InvalidOperationException: Unable to resolve service for type 'Microsoft.AspNetCore.Identity.RoleManager`1[Microsoft.AspNetCore.Identity.IdentityRole]' while attempting to activate. Adicione esta linha</span></p><p><span style="font-family: verdana;"> .AddEntityFrameworkStores<ApplicationDbContext>();</span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-30652604000445180672023-08-23T20:25:00.001-03:002023-08-23T20:25:09.913-03:00Vírus de smartphones<p><span style="background-color: white; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; text-align: justify;">De acordo com um artigo da TyC Sports, o “malware Trojan” é um dos vírus mais recentes a se disfarçar de aplicativo. Esse malware inclui qualquer código, programa ou vírus incorporado no software de aplicativo para se assemelhar a uma parte segura da plataforma para invadir dispositivos e obter dados pessoais.</span></p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;">A empresa de segurança cibernética Kaspersky explica que o vírus “Fleckpe” é um tipo específico de malware tipo “cavalo de tróia”. Como resultado de sua natureza enganosa, esse golpe comprometeu 620.000 dispositivos móveis por meio de aplicativos. A Kaspersky define esse tipo de vírus como parte dos “Trojans de assinatura” que infectam smartphones agindo como uma assinatura de serviços de aplicativos específicos.</p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;">Assim que um usuário baixa o aplicativo e concede acesso aos seus dados pessoais, esses vírus invadem o dispositivo. O malware verifica as informações do usuário, como galerias de fotos, notificações e detalhes de localização, até detectar informações que permitem pagamentos online. A TyC Sports confirma que este vírus foi descoberto em 6 aplicativos relacionados à edição e design de fotos: Gif Camera Editor Pro, Night Cam Rea Pro, Microclip Video Editor, Photo Editor Toolbox, H4KS Wallpaper e Beauty Camera Plus Photo Editor.</p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;">Com isso em mente, medidas proativas de segurança cibernética são essenciais para proteger os dados pessoais dos usuários. A proteção mais direta contra golpes cibernéticos é baixar antimalware em smartphones. A instalação das atualizações mais recentes do sistema operacional é outro método para fortalecer a segurança dos dados pessoais. Os usuários também devem evitar se conectar a Wi-Fi público, pois a Verizon recomenda o uso de pontos de acesso móveis pessoais. Isso também se aplica a terminais de carregamento públicos que podem ser programados para hackear dispositivos móveis. Como o malware tem como alvo aplicativos específicos, os usuários devem sempre instalar aplicativos de lojas oficiais e revisar todas as políticas de privacidade.</p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;"></p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;"><br /></p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;"></p><p style="background-color: white; box-sizing: border-box; color: #333333; font-family: "Open Sans", Helvetica, Arial; font-size: 14px; line-height: 21px; margin: 0px 0px 10px; overflow-wrap: break-word; text-align: justify;"><br /></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-88136300656618824592023-08-23T08:33:00.000-03:002023-08-23T08:33:01.677-03:00TIPO DE DADOS - FLOAT X DOUBLE<ol style="background-color: white; border: 0px; box-sizing: inherit; list-style-image: initial; list-style-position: initial; margin: revert; outline: 0px; padding: revert; vertical-align: baseline;"><li style="border: 0px; box-sizing: inherit; counter-increment: wprm-advanced-list-counter 1; font-style: inherit; font-weight: inherit; list-style-type: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="font-family: verdana; font-size: large; font-style: inherit; font-weight: inherit; text-align: justify;">Tipos Reais (ou tipos de ponto flutuante) representam valores com um parte fracionária</span></p></li><li style="border: 0px; box-sizing: inherit; counter-increment: wprm-advanced-list-counter 1; font-style: inherit; font-weight: inherit; list-style-type: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><table border="1" cellpadding="5" class="EnumTable" style="-webkit-tap-highlight-color: transparent; border-collapse: collapse; border-spacing: 0px; border: 2px solid rgb(177, 194, 214); max-width: 100%; text-align: justify; width: 1562px;"><thead style="-webkit-tap-highlight-color: transparent;"><tr class="EnumTable" style="-webkit-tap-highlight-color: transparent; text-align: left;"><th class="EnumTable" style="-webkit-tap-highlight-color: transparent; background-color: #dbe9f9; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">Tipo</span></span></p></th><th class="EnumTable" style="-webkit-tap-highlight-color: transparent; background-color: #dbe9f9; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">Tamanho em bytes</span></span></p></th><th class="EnumTable" style="-webkit-tap-highlight-color: transparent; background-color: #dbe9f9; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">Valor Positivo Mínimo</span></span></p></th><th class="EnumTable" style="-webkit-tap-highlight-color: transparent; background-color: #dbe9f9; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">Valor Máximo</span></span></p></th><th class="EnumTable" style="-webkit-tap-highlight-color: transparent; background-color: #dbe9f9; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">C++ Análogo</span></span></p></th></tr></thead><tbody style="-webkit-tap-highlight-color: transparent;"><tr class="EnumTable" style="-webkit-tap-highlight-color: transparent; text-align: left;"><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">float</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">4</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">1.175494351e-38</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">3.402823466e+38</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">float</span></span></p></td></tr><tr class="EnumTable" style="-webkit-tap-highlight-color: transparent; text-align: left;"><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">double</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">8</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">2.2250738585072014e-308</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">1.7976931348623158e+308</span></span></p></td><td class="EnumTable" style="-webkit-tap-highlight-color: transparent; border: thin solid rgb(177, 194, 214); padding: 5px; vertical-align: top;"><p class="p_fortable" style="-webkit-tap-highlight-color: transparent; margin: 0px; padding: 0px; text-align: justify;"><span class="f_fortable" style="-webkit-tap-highlight-color: transparent;"><span style="font-family: verdana; font-size: x-small;">double</span></span></p></td></tr></tbody></table></li><li style="border: 0px; box-sizing: inherit; counter-increment: wprm-advanced-list-counter 1; font-style: inherit; font-weight: inherit; list-style-type: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><span style="font-family: verdana; font-size: medium;"><br /></span></p></li><li style="border: 0px; box-sizing: inherit; counter-increment: wprm-advanced-list-counter 1; list-style-type: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="font-family: verdana; font-size: medium;"><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;">A diferença entre o float e o double é a precisão, ou seja, o quanto varia, o quanto consegue expressar um valor próximo do real, é o número de casas decimais que ele consegue suportar.</p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;">Esses tipos são chamados de ponto flutuante binários.</p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><br /></p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;">1. O float normalmente possui 32 bits para representar o expoente e a mantissa, além do sinal. Dá pra representar muitos números, mas por sua natureza binária não consegue representar todos os números, então ele representa o que está mais próximo do que se deseja. Ele tem 24 dígitos de precisão e por isso é chamado de simples precisão.</p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;">Tipo de número real float ocupa 32 bits (1 bit de sinal, 8 bits de expoente e 23 bits de mantissa).</p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><br /></p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;">2. O double geralmente é representado por 64 bits, então consegue bem mais precisão, mas ainda não a exatidão já que a forma de representação também é binária. Tem 53 dígitos de precisão e é chamado de dupla precisão.</p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;">Tipo de número real double ocupa 64 bits (1 bit de sinal, 11 bits de expoente e 52 bits de mantissa).</p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><br /></p><p style="--_pr-img-mb: 0; border: 0px; box-sizing: inherit; clear: both; font-feature-settings: inherit; font-kerning: inherit; font-optical-sizing: inherit; font-stretch: inherit; font-variant-alternates: inherit; font-variant-east-asian: inherit; font-variant-numeric: inherit; font-variation-settings: inherit; line-height: inherit; margin: 0px 0px 1.1em; padding: 0px; vertical-align: baseline;"><br /></p></span></li></ol><ol style="background-color: white; border: 0px; box-sizing: inherit; list-style-image: initial; list-style-position: initial; margin: revert; outline: 0px; padding: revert; vertical-align: baseline;"><li style="border: 0px; box-sizing: inherit; counter-increment: wprm-advanced-list-counter 1; font-family: roboto, sans-serif; font-style: inherit; font-weight: inherit; list-style-type: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><span style="font-size: medium;"><br /></span></li><li style="border: 0px; box-sizing: inherit; counter-increment: wprm-advanced-list-counter 1; font-family: roboto, sans-serif; font-style: inherit; font-weight: inherit; list-style-type: none; margin: 0px; outline: 0px; padding: 0px; vertical-align: baseline;"><br /></li></ol>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-54262988180826759532023-08-15T19:59:00.003-03:002023-08-15T19:59:54.517-03:00TÓPICOS DA ATA DE REUNIÃO<p> </p><h2 style="background: rgb(255,255,255); margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Tópicos da ata de reunião</span></b><b><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></b></h2><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Abaixo listamos os principais tópicos que toda ata de reunião deve conter, ou seja, </span><b><span class="16" style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">são informações obrigatórias</span></b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;"> em uma ata.</span><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 3,7500pt; margin-left: 15,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: -18,0000pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Arial;">Data e local da reunião</span><span style="font-family: Arial; font-size: 11,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 3,7500pt; margin-left: 15,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: -18,0000pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Arial;">Partes interessadas</span><span style="font-family: Arial; font-size: 11,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 3,7500pt; margin-left: 15,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: -18,0000pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Arial;">Objetivos da reunião</span><span style="font-family: Arial; font-size: 11,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 3,7500pt; margin-left: 15,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: -18,0000pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Arial;">Assuntos discutidos</span><span style="font-family: Arial; font-size: 11,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 3,7500pt; margin-left: 15,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: -18,0000pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #2c2f34; font-family: Arial;">Ações a serem tomadas</span><span style="font-family: Arial; font-size: 11,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Data e local da reunião</span></b></p><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Aqui você deve informar a data e o local onde a reunião foi realizada, se possível é recomendado que seja informada a hora de início e término da reunião.</span><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></p><h3 style="background: rgb(255,255,255); margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Partes interessadas</span></b><b><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></b></h3><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">São todos os participantes da reunião, incluindo aqueles que participam apenas como ouvintes (opcional). Deve ser documentado nome completo e cargo ou função de cada participante.</span><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></p><h3 style="background: rgb(255,255,255); margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Objetivos da reunião</span></b><b><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></b></h3><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Esta sessão da ata é destinada à registrar de forma sucinta e objetiva a pauta geral da reunião. </span></p><h3 style="background: rgb(255,255,255); margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Assuntos discutidos</span></b><b><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></b></h3><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Nesta sessão você deve registrar os tópicos que foram objeto de discussão durante a realização da reunião de forma bem objetiva.</span><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></p><h3 style="background: rgb(255,255,255); margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><b><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Ações a serem tomadas</span></b><b><span style="color: #2c2f34; font-family: Arial;"><o:p></o:p></span></b></h3><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Neste tópico você deve informar quais as ações decididas durante a reunião para cada um dos objetivos anteriores.</span></p><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;"><br /></span></p><p class="p" style="background: rgb(255,255,255); margin-bottom: 18,7500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-line-height-alt: 12pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; color: #2c2f34; font-family: Arial;">Espero ter ajudado.</span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-55859183522788665232023-08-13T21:55:00.001-03:002023-08-13T21:55:34.328-03:00INSERT INTO COM VÁRIOS SELECTsInsert into ... values ( SELECT ... FROM ... )<div style="background-color: #1f1f1f; color: #cccccc; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><br /></div><div style="background-color: #1f1f1f; color: #cccccc; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><span style="color: #569cd6;">INSERT INTO</span> ... <span style="color: #569cd6;">VALUES</span> ( <span style="color: #569cd6;">SELECT</span> ... <span style="color: #569cd6;">FROM</span> ... )</div></div><div style="background-color: #1f1f1f; color: #cccccc; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div><div style="background-color: #1f1f1f; color: #cccccc; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /><div><span style="color: #569cd6;">INSERT INTO</span> <span style="color: #569cd6;">SELECT</span></div><br /><div>A instrução copia dados de uma tabela e insere em outra tabela.</div><br /><div>A declaração exige que os tipos de dados nas tabelas de origem e de destino correspondem</div><br /><br /><div>Sintaxe:</div><br /><div><span style="color: #569cd6;">INSERT INTO</span> table2</div><div><span style="color: #569cd6;">SELECT</span> <span style="color: #d4d4d4;">*</span> <span style="color: #569cd6;">FROM</span> table1</div><div><span style="color: #569cd6;">WHERE</span> condition;</div><br /><br /><div>Copiar algumas colunas</div><br /><div><span style="color: #569cd6;">INSERT INTO</span> table2 (column1, column2, column3, ...)</div><div><span style="color: #569cd6;">SELECT</span> column1, column2, column3, ...</div><div><span style="color: #569cd6;">FROM</span> table1</div><div><span style="color: #569cd6;">WHERE</span> condition;</div><br /><br /><div>Exemplo:</div><br /><div><span style="color: #569cd6;">INSERT INTO</span> Customers (CustomerName, City, Country)</div><div><span style="color: #569cd6;">SELECT</span> SupplierName, City, Country <span style="color: #569cd6;">FROM</span> Suppliers;</div><br /><br /><div>Mas, se desejar você pode usar vários selects:</div><br /><div><span style="color: #569cd6;">SET</span> <span style="color: #569cd6;">DATEFORMAT</span> dmy</div><br /><div><span style="color: #569cd6;">DROP</span> <span style="color: #569cd6;">TABLE</span> <span style="color: #569cd6;">IF</span> <span style="color: #569cd6;">EXISTS</span> #tmpExtatistica;</div><br /><div><span style="color: #569cd6;">CREATE</span> <span style="color: #569cd6;">TABLE</span> #tmpExtatistica</div><div>(</div><br /><div> totalCB22 <span style="color: #569cd6;">smallint</span> <span style="color: #569cd6;">null</span>,</div><div> totalCB21 <span style="color: #569cd6;">smallint</span> <span style="color: #569cd6;">null</span>,</div><div> totalCB58 <span style="color: #569cd6;">smallint</span> <span style="color: #569cd6;">null</span> </div><div>)</div><br /><div><span style="color: #569cd6;">INSERT INTO</span> #tmpExtatistica (totalCB22, totalCB21, totalCB58) <span style="color: #6a9955;">--, totalmes, media)</span></div><div><span style="color: #569cd6;">VALUES</span> (</div><br /><div> (<span style="color: #569cd6;">SELECT</span></div><br /><div> <span style="color: #dcdcaa;">Count</span>(Colpo_DigitacaoLaudo10) <span style="color: #569cd6;">as</span> totalCB22</div><br /><div> <span style="color: #569cd6;">FROM</span> colpo_DigitacaoLaudo</div><br /><div> <span style="color: #569cd6;">WHERE</span> Colpo_DigitacaoLaudoDataCadastro <span style="color: #569cd6;">BETWEEN</span> <span style="color: #ce9178;">'01/01/2023'</span> <span style="color: #569cd6;">and</span> <span style="color: #ce9178;">'30/08/2023'</span></div><br /><div> <span style="color: #569cd6;">AND</span> Colpo_DigitacaoLaudo10 <span style="color: #569cd6;">LIKE</span> <span style="color: #ce9178;">'%CB22%'</span></div><br /><div> )</div><div> ,</div><div> (<span style="color: #569cd6;">SELECT</span></div><br /><div> <span style="color: #dcdcaa;">Count</span>(Colpo_DigitacaoLaudo10) <span style="color: #569cd6;">as</span> totalCB21</div><br /><div> <span style="color: #569cd6;">FROM</span> colpo_DigitacaoLaudo</div><br /><div> <span style="color: #569cd6;">WHERE</span> Colpo_DigitacaoLaudoDataCadastro <span style="color: #569cd6;">BETWEEN</span> <span style="color: #ce9178;">'01/01/2023'</span> <span style="color: #569cd6;">and</span> <span style="color: #ce9178;">'30/08/2023'</span></div><br /><div> <span style="color: #569cd6;">AND</span> Colpo_DigitacaoLaudo10 <span style="color: #569cd6;">LIKE</span> <span style="color: #ce9178;">'%CB21%'</span></div><br /><div> ) </div><div> ,</div><div> (<span style="color: #569cd6;">SELECT</span></div><br /><div> <span style="color: #dcdcaa;">Count</span>(Colpo_DigitacaoLaudo10) <span style="color: #569cd6;">as</span> totalCB58</div><br /><div> <span style="color: #569cd6;">FROM</span> colpo_DigitacaoLaudo</div><br /><div> <span style="color: #569cd6;">WHERE</span> Colpo_DigitacaoLaudoDataCadastro <span style="color: #569cd6;">BETWEEN</span> <span style="color: #ce9178;">'01/01/2023'</span> <span style="color: #569cd6;">and</span> <span style="color: #ce9178;">'30/08/2023'</span></div><br /><div> <span style="color: #569cd6;">AND</span> Colpo_DigitacaoLaudo10 <span style="color: #569cd6;">LIKE</span> <span style="color: #ce9178;">'%CB58%'</span></div><br /><div> ) </div><br /><br /><div>) </div><br /><div><span style="color: #569cd6;">SELECT</span> <span style="color: #d4d4d4;">*</span></div><div><span style="color: #569cd6;">FROM</span> #tmpExtatistica</div><br /><br /><div>Espero ter ajudado e até a próxima</div><br /><br /><br /><br /><br /><br /></div>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-11792939101495775482023-08-03T22:45:00.004-03:002023-08-03T22:45:26.685-03:00O QUE É .NET CORE?<p><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">.NET Core é um framework gratuito e de código aberto para construir muitos tipos diferentes de aplicativos. </span></span></p><p><span style="background-color: rgba(255, 255, 255, 0.7); font-family: verdana;">É uma reimplementação do .NET Framework para ser mais leve, modular e flexível. É desenvolvido principalmente pela Microsoft e lançado com a Licença MIT. </span></p><p><span style="background-color: rgba(255, 255, 255, 0.7); font-family: verdana;">O .NET Core é um framework multiplataforma que roda no Windows, Linux e macOS. </span></p><p><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);"><b><br /></b></span></span></p><p><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);"><b>O .NET Core oferece muitos benefícios, como:</b></span></span></p><p><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);"><br /></span></span></p><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">É multiplataforma e pode ser executado no Windows, Linux e macOS </span></span></li></ul><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">É mais leve e modular em comparação com o .NET Framework </span></span></li></ul><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">Oferece melhor desempenho em comparação com o .NET Framework </span></span></li></ul><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">Suporta vários idiomas de programação </span></span></li></ul><p></p><ul style="text-align: left;"><li><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">É de código aberto e tem uma comunidade ativa </span></span></li></ul><p></p><p><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);"><br /></span></span></p><p style="text-align: left;"><span style="font-family: verdana;"><span style="background-color: rgba(255, 255, 255, 0.7);">Oferece suporte para desenvolvimento de aplicativos em nuvem, aplicativos nativos em nuvem, aplicativos de console, funções sem servidor na nuvem, aplicativos da web, APIs da web e microsserviços, aplicativos de cliente multiplataforma, aplicativos de desktop, jogos, aplicativos móveis, aplicativos do Windows, aplicativos do Windows Desktop, Windows Forms, Windows WPF, Plataforma Universal do Windows (UWP), serviços do Windows e outros tipos de aplicativos </span></span></p><p><span style="background-color: rgba(255, 255, 255, 0.7); font-family: verdana;">Além disso, o .NET Core é uma escolha popular para desenvolvedores que desejam criar aplicativos modernos e escaláveis. Ele oferece uma ampla gama de recursos e ferramentas para ajudar os desenvolvedores a criar aplicativos rapidamente. O .NET Core também é usado por muitas empresas em todo o mundo para criar aplicativos empresariais críticos. Espero que isso ajude!</span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-89174804594194950232023-07-21T18:53:00.001-03:002023-07-21T18:53:14.170-03:00SQL SERVER - TABELA NÃO PODE SER RECRIADA<p> A solução é simples, apenas siga as imagens. Inicie abrindo a janela Opções do menu Ferramenta</p><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KIWx39kaDmGj7shiYmu5dHlrMm32coZwM6v0JydppqfMkcuyXA1ZmPHOYIAn_B8GY633H7y-v1Zqng63pTFUEHj23F1ZQv1XyYICiOy8hR4yea38YUk-CaiPlrGzUPbj9IO8_cC6ukk-ypPWk0ls_BnVZ3QreEwVvCM13gGSX5PRXiWaXzXj_Hn9eSoX/s829/Sem%20t%C3%ADtulo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="281" data-original-width="829" height="184" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7KIWx39kaDmGj7shiYmu5dHlrMm32coZwM6v0JydppqfMkcuyXA1ZmPHOYIAn_B8GY633H7y-v1Zqng63pTFUEHj23F1ZQv1XyYICiOy8hR4yea38YUk-CaiPlrGzUPbj9IO8_cC6ukk-ypPWk0ls_BnVZ3QreEwVvCM13gGSX5PRXiWaXzXj_Hn9eSoX/w547-h184/Sem%20t%C3%ADtulo.png" width="547" /></a></div><br /><p></p><p><br /></p><p>Em seguida, desmarque a caixa de seleção Evitar salvar alterações que exijam recriação de tabela</p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJ4RrggyFr1WpC-KcKT871VJ_3dhy7KCwN32Kle5uDBLeg7ofBCmG4jgRB7IWQg2swHZLPLCcPI07tiCGSSHqy3RLsCNSNmiaWY5j-Tf-7T2-cy44g3jtRtywave0E3v7eZm7MEz1EWZVGDahqcoXagQE0BSzuZeBFfpx0PZ7-jOBPFCuCiaANEtPNUn4/s768/1Sem%20t%C3%ADtulo.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="445" data-original-width="768" height="277" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrJ4RrggyFr1WpC-KcKT871VJ_3dhy7KCwN32Kle5uDBLeg7ofBCmG4jgRB7IWQg2swHZLPLCcPI07tiCGSSHqy3RLsCNSNmiaWY5j-Tf-7T2-cy44g3jtRtywave0E3v7eZm7MEz1EWZVGDahqcoXagQE0BSzuZeBFfpx0PZ7-jOBPFCuCiaANEtPNUn4/w480-h277/1Sem%20t%C3%ADtulo.png" width="480" /></a></div><br /><p>Para finalizar, salve sua tabela. A mensagem, não será mais exibida.</p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZMI1oqeMzYrFEzamtxz3wkffKpjG15VipYZ8qhVpz_jh1hLd0a2y9IpE1em_fWwDF3aHUwYUKOTA2Km81gA0R0fhPAw8SSiuaT62aQs4LKCCQq8kmuHd4f8UNWlOmxc-hLE4h-IgpnWaPRyLh7GHAA5qbNb0b3cfenNR6Gei4XklFK4n33YY4FhwNVhri/s802/Captura%20de%20tela%202023-07-20%20212105.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="623" data-original-width="802" height="357" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgZMI1oqeMzYrFEzamtxz3wkffKpjG15VipYZ8qhVpz_jh1hLd0a2y9IpE1em_fWwDF3aHUwYUKOTA2Km81gA0R0fhPAw8SSiuaT62aQs4LKCCQq8kmuHd4f8UNWlOmxc-hLE4h-IgpnWaPRyLh7GHAA5qbNb0b3cfenNR6Gei4XklFK4n33YY4FhwNVhri/w459-h357/Captura%20de%20tela%202023-07-20%20212105.png" width="459" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: left;"><br /></div><div class="separator" style="clear: both; text-align: left;">Espero ter ajudado e até a próxima.</div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><p></p><p><br /></p><br />Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-2079279842597977302023-04-26T20:09:00.001-03:002023-04-26T20:09:08.451-03:00SQL DATEDIFF<p><span style="font-family: verdana;">Se você deseja retornar o número de dias, anos, meses ou outro valor desejado. Utilize a funçao DATEDIFF. </span></p><p><span style="font-family: verdana;"><span style="background-color: white; color: #161616; font-size: 16px;">Essa função retorna a contagem dos limites </span><span style="background-color: white; color: #161616; font-size: 16px;">especificados</span><span style="background-color: white; color: #161616; font-size: 16px;"> </span><span style="background-color: white; color: #161616; font-size: 16px;">de datepart entre os parâmetros especificados </span><em style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; outline-color: inherit;">startdate</em><span style="background-color: white; color: #161616; font-size: 16px;"> e </span><em style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; outline-color: inherit;">enddate</em><span style="background-color: white; color: #161616; font-size: 16px;">.</span></span></p><p><span style="background-color: white; color: #161616; font-size: 16px;"><b><span style="font-family: verdana;"><br /></span></b></span></p><p><span style="background-color: white; color: #161616;"><b><span style="font-family: verdana; font-size: large;">Sintaxe:</span></b></span></p><p><span style="background-color: white;"><span style="color: #161616; font-family: verdana;">DATEDIFF ( datepart , startdate , enddate )</span></span></p><p><span style="background-color: white;"><span style="color: #161616; font-family: verdana;"><br /></span></span></p><p><span style="background-color: white;"><span style="color: #161616; font-family: verdana;"><b>Nota:</b></span></span></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;">DATEDIFF</span> relata a diferença entre <em style="box-sizing: inherit; outline-color: inherit;">startdate</em> e <em style="box-sizing: inherit; outline-color: inherit;">enddate</em>. Unidades de <em style="box-sizing: inherit; outline-color: inherit;">datepart</em> usadas com frequência incluem <code style="background-color: var(--theme-inline-code); border-radius: 3px; box-sizing: inherit; direction: ltr; font-size: 13.6px; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">month</code> ou <code style="background-color: var(--theme-inline-code); border-radius: 3px; box-sizing: inherit; direction: ltr; font-size: 13.6px; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">second</code>.</span></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;">O valor de <em style="box-sizing: inherit; outline-color: inherit;">datepart</em> não pode ser especificado em uma variável, nem como uma cadeia de caracteres entre aspas, como <code style="background-color: var(--theme-inline-code); border-radius: 3px; box-sizing: inherit; direction: ltr; font-size: 13.6px; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">'month'</code>.</span></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;">O valor de <em style="box-sizing: inherit; outline-color: inherit;">datepart</em> não pode ser especificado em uma variável, nem como uma cadeia de caracteres entre aspas, como <code style="background-color: var(--theme-inline-code); border-radius: 3px; box-sizing: inherit; direction: ltr; font-size: 13.6px; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">'month'</code>.</span></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;">Use anos de quatro dígitos para evitar ambiguidade.</span></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;">O tipo de retorno e um INT.</span></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;"><br /></span></p><p style="background-color: white; box-sizing: inherit; color: #161616; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><b><span style="font-family: verdana; font-size: large;">Tabela com todos os valores válidos de <em style="box-sizing: inherit; outline-color: inherit;">datepart</em>. </span></b></p><div class="has-inner-focus" style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; outline-color: inherit;"><table aria-label="Tabela 1" class="table table-sm" style="border-collapse: collapse; border-spacing: 0px; border: 1px solid var(--theme-table-border-dark); box-sizing: inherit; font-size: 0.875rem; margin-top: 1rem; outline-color: inherit; table-layout: auto; width: 860px;"><thead style="box-sizing: inherit; outline-color: inherit;"><tr style="box-sizing: inherit; outline-color: inherit;"><th style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; text-align: left; vertical-align: top;"><span style="font-family: verdana;">Nome do <em style="box-sizing: inherit; outline-color: inherit;">datepart</em></span></th><th style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; text-align: left; vertical-align: top;"><span style="font-family: verdana;">Abreviação do <em style="box-sizing: inherit; outline-color: inherit;">datepart</em></span></th></tr></thead><tbody style="box-sizing: inherit; outline-color: inherit;"><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">year</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">y, yy, yyyy</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">quarter</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">qq, q</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">month</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">mm, m</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">dayofyear</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">dy</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">day</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">dd, d</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">week</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">wk, ww</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">hour</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">hh</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">minute</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">mi, n</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">second</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">ss, s</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">millisecond</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">ms</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">microsecond</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">mcs</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">nanosecond</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; font-weight: 600; outline-color: inherit;"><span style="font-family: verdana;">ns</span></span></td></tr></tbody></table></div><div class="alert is-info" style="border-radius: 0.375rem; border: 1px solid var(--theme-info-background-glow-high-contrast); box-sizing: inherit; color: #161616; font-size: 16px; margin-top: 1rem; outline-color: var(--theme-text); overflow-wrap: break-word; padding: 1rem; position: relative; transition: height 0.5s ease-in 0s, opacity 0.5s ease-in 0s; word-break: break-word;"><p class="alert-title" style="box-sizing: inherit; color: var(--theme-info-dark); font-weight: 600; margin: 0px; max-width: 100%; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;"><span style="background-color: white;">Uma expressão que pode resolver um dos seguintes valores:</span><span aria-hidden="true" class="docon docon-status-error-outline" style="-webkit-font-smoothing: antialiased; box-sizing: inherit; direction: ltr; display: inline-block; font-size: inherit; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; font-weight: 400; line-height: 16px; outline-color: inherit; speak: none; text-align: center;"></span></span></p></div><ul style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; list-style: none; margin: 16px 0px 16px 38px; outline-color: inherit; padding: 0px;"><li style="box-sizing: inherit; list-style: disc; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">date</span></span></li><li style="box-sizing: inherit; list-style: disc; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">datetime</span></span></li><li style="box-sizing: inherit; list-style: disc; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">datetimeoffset</span></span></li><li style="box-sizing: inherit; list-style: disc; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">datetime2</span></span></li><li style="box-sizing: inherit; list-style: disc; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">smalldatetime</span></span></li><li style="box-sizing: inherit; list-style: disc; margin: 0px; outline-color: inherit; outline-style: initial; outline-width: 0px; padding: 0px;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">time</span></span></li></ul><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"></p><div class="heading-wrapper" data-heading-level="h2" style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit; position: relative;"><h2 class="heading-anchor" id="return-value" style="box-sizing: inherit; line-height: 1.3; margin-inline-start: -1.875rem; margin: 32px 0px 12px; outline-color: inherit; padding-inline-start: 1.875rem; padding: 0px;"><span style="font-family: verdana;"><br /><span style="font-size: large;">Exemplos com <em style="box-sizing: inherit; outline-color: inherit;">datepart</em></span></span></h2></div><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;"><br /></span></p><div class="codeHeader" data-bi-name="code-header" id="code-try-1" style="border-bottom: 0px; box-sizing: content-box; color: #161616; display: flex; flex-direction: row; font-size: 0.8rem; margin-top: 16px; min-height: 30px; outline-color: inherit;"><span class="language" style="box-sizing: inherit; flex-grow: 1; outline-color: inherit; padding: 2px 16px;"><span style="font-family: verdana;"><span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; font-size: 1em; outline-color: inherit;">SELECT</span><span style="font-size: 1em;"> </span><span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; font-size: 1em; outline-color: inherit;">DATEDIFF</span><span style="font-size: 1em;">(</span><span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; font-size: 1em; outline-color: inherit;">year</span><span style="font-size: 1em;">, </span><span class="hljs-string" style="box-sizing: inherit; color: #a31515; font-size: 1em; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span><span style="font-size: 1em;">, </span><span class="hljs-string" style="box-sizing: inherit; color: #a31515; font-size: 1em; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span><span style="font-size: 1em;">);</span></span></span></div><pre class="has-inner-focus" style="-webkit-font-smoothing: auto; border: 0.125rem solid var(--theme-border); box-sizing: inherit; color: #161616; font-size: 0.875rem; hyphens: none; line-height: 1.3571; margin-bottom: 0px; margin-top: 0px; outline-color: inherit; overflow-wrap: normal; overflow: auto; padding: 1rem; tab-size: 4; word-break: normal;"><code class="lang-sql" data-author-content="SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(quarter, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(dayofyear, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(week, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(hour, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(minute, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(second, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
SELECT DATEDIFF(microsecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');
" style="border: 0px; box-sizing: inherit; direction: ltr; display: block; font-size: 1em; line-height: 1.3571; outline-color: inherit; padding: 0px; position: relative;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;"><span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">quarter</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">month</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">dayofyear</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">day</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">week</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">hour</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">minute</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">second</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(millisecond, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">SELECT</span> <span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">DATEDIFF</span>(<span class="hljs-keyword" style="box-sizing: inherit; color: #0101fd; outline-color: inherit;">microsecond</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2005-12-31 23:59:59.9999999'</span>, <span class="hljs-string" style="box-sizing: inherit; color: #a31515; outline-color: inherit;">'2006-01-01 00:00:00.0000000'</span>);
</span></span></code></pre><p style="background-color: white; box-sizing: inherit; color: #161616; font-size: 16px; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;"><br /></span><br /></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com2tag:blogger.com,1999:blog-8764680610050873658.post-33271094560100856952023-04-14T22:27:00.003-03:002023-04-14T22:27:59.062-03:00IdentityUser - Exemplo Prático<p> <span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">É </span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">uma</span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"> biblioteca de gerenciamento de usuários da Microsoft para ASP.NET. Ela é chamada de Identidade (Identity) ASP.NET. Ela contém recursos, incluindo hash de senha, validação de senha, armazenamento de usuários e gerenciamento de reivindicações. Ela normalmente inclui alguns recursos básicos de autenticação, como cookies e autenticação multifator. Ela pode até mesmo introduzir sua própria interface de usuário em alguns casos.</span></p><p class="p" style="background: rgb(255,255,255); line-height: 150%; margin-bottom: 11,2500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">Todas as estruturas, incluindo MVC ASP.NET, Web Forms e Web Pages, podem usar o ASP.NET Identity. As informações do usuário são armazenadas em um banco de dados por padrão no ASP.NET Identity. Também é viável armazenar dados em uma variedade de provedores de armazenamento, dependendo das necessidades do aplicativo. SharePoint, serviços de tabela do Azure e outras fontes de dados (exemplos de provedores de dados).</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="p" style="background: rgb(255,255,255); line-height: 150%; margin-bottom: 11,2500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial;">No ASP.NET Identity, a autorização baseada em função também é muito significativa. Agora podemos definir facilmente funções como "Administrador", "Cliente" e assim por diante, o que nos permite atribuir usuários a essas funções e restringir seu acesso a algumas áreas do programa.</span><span style="font-family: Arial;"><o:p></o:p></span></p><p class="p" style="background: rgb(255,255,255); line-height: 150%; margin-bottom: 11,2500pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; text-indent: 0,0000pt;"><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">O Identificador de ASP.NET é um divisor de águas, pois introduz a Autenticação de Dois Fatores em seu aplicativo Web. </span><span style="background-attachment: initial; background-clip: initial; background-image: initial; background-origin: initial; background-position: initial; background-repeat: initial; background-size: initial; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; mso-para-margin-right: 0,0000gd; padding: 0pt 0pt 0pt 0pt;"><span class="15" style="background: rgb(255, 255, 255); color: #161616; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">Porém, ela possui </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">um conjunto muito limitado de propriedades</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">, mas é possivel extender. </span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">É </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">isso que você irá aprender agora.</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 150%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 0,0000pt; margin-left: 10,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; mso-para-margin-right: 0,0000gd; padding: 0pt 0pt 0pt 0pt;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">class</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: #2b91af; font-family: Arial;">IdentityUser</span><span style="color: #333333; font-family: Arial;"><</span><span style="color: #2b91af; font-family: Arial;">TKey</span><span style="color: #333333; font-family: Arial;">> </span><span style="color: blue; font-family: Arial;">where</span><span style="color: #333333; font-family: Arial;"> TKey : IEquatable<TKey></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;">{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> IdentityUser() { }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> IdentityUser(</span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> userName) : </span><span style="color: blue; font-family: Arial;">this</span><span style="color: #333333; font-family: Arial;">()</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> UserName = userName;</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">PersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> TKey Id { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">ProtectedPersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> UserName { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> NormalizedUserName { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">ProtectedPersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> Email { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> NormalizedEmail { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">PersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">bool</span><span style="color: #333333; font-family: Arial;"> EmailConfirmed { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> PasswordHash { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> SecurityStamp { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> ConcurrencyStamp { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; } = Guid.NewGuid().ToString();</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">ProtectedPersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> PhoneNumber { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">PersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">bool</span><span style="color: #333333; font-family: Arial;"> PhoneNumberConfirmed { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> [</span><span style="color: #3d85c6; font-family: Arial;">PersonalData</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">bool</span><span style="color: #333333; font-family: Arial;"> TwoFactorEnabled { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> DateTimeOffset? LockoutEnd { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">bool</span><span style="color: #333333; font-family: Arial;"> LockoutEnabled { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">virtual</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">int</span><span style="color: #333333; font-family: Arial;"> AccessFailedCount { </span><span style="color: blue; font-family: Arial;">get</span><span style="color: #333333; font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="color: #333333; font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">override</span><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="color: #333333; font-family: Arial;"> ToString()</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> => UserName;</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 0,0000pt; margin-left: 10,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; mso-para-margin-right: 0,0000gd; padding: 0pt 0pt 0pt 0pt;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p> </o:p></span><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal" style="line-height: 125%; margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; mso-para-margin-right: 0,0000gd; padding: 0pt 0pt 0pt 0pt; text-autospace: ideograph-numeric;"><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Estender IdentityUser Class</span></b><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"><o:p></o:p></span></b></p><p class="MsoNormal" style="line-height: 125%; margin-bottom: 0,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; mso-para-margin-right: 0,0000gd; padding: 0pt 0pt 0pt 0pt; text-autospace: ideograph-numeric;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">V</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ocê pode nomear a classe que estende a classe </span><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityUser</span></b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> como quiser, mas é costume nomeá-la como </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">. No exemplo abaixo, </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">a </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ApplicationUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> estende </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">a classe</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">.</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"><o:p></o:p></span></p><p class="MsoNormal" style="margin-bottom: 0,0000pt; margin-left: 10,0000pt; margin-right: 0,0000pt; margin-top: 0,0000pt; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; mso-para-margin-right: 0,0000gd; padding: 0pt 0pt 0pt 0pt;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">class</span><span style="font-family: Arial;"> </span><span style="color: #2b91af; font-family: Arial;">ApplicationUser</span><span style="font-family: Arial;"> : </span><span style="color: #3d85c6; font-family: Arial;">IdentityUser</span></p><p class="MsoNormal"><span style="font-family: Arial;">{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">string</span><span style="font-family: Arial;"> City { </span><span style="color: blue; font-family: Arial;">get</span><span style="font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Para enc</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ontre todas as referências da classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">e substitui-</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">l</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">a por nossa classe personalizada</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ApplicationUser </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">, </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">clique</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> com o botão direito do mouse na classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">e, em seguida, selecionar "</span><i><span style="background: rgb(255, 255, 255); color: #990000; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Localizar todas as referências"</span></i><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> no menu de contexto. Navegue até cada referência na lista e substitua a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">pela classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">.</span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrrObnq8wA_wAMfCL-mPbmfjUiD_VSjhB29MpbgaRypf_WqdaR4vGbX90IJXLGLdaOq3j3UJdPlflUdZm9DCUdrgoEfp-fZE54n6kSn6tYXMcsq2oI3ZXlj4-Mcn5nLCVG4T98cOFcTqWDcLEHvcobNBF1wITGhTboKOzMcdzNm2SwgYhI01TMAI84g/s505/1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="324" data-original-width="505" height="271" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKrrObnq8wA_wAMfCL-mPbmfjUiD_VSjhB29MpbgaRypf_WqdaR4vGbX90IJXLGLdaOq3j3UJdPlflUdZm9DCUdrgoEfp-fZE54n6kSn6tYXMcsq2oI3ZXlj4-Mcn5nLCVG4T98cOFcTqWDcLEHvcobNBF1wITGhTboKOzMcdzNm2SwgYhI01TMAI84g/w423-h271/1.png" width="423" /></a></div><br /><p class="MsoNormal"><br /></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">Especifique a classe ApplicationUser como o argumento genérico para a classe IdentityDbContext</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">.</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> É assim que a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">IdentityDbContext </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">sabe que precisa trabalhar com nossa classe de usuário personalizada (neste caso, a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">) em vez da classe</span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">IdentityUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">interna padrão.</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">class</span><span style="font-family: Arial;"> </span><span style="color: #2b91af; font-family: Arial;">AppDbContext</span><span style="font-family: Arial;"> : </span><span style="color: #3d85c6; font-family: Arial;">IdentityDbContext</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">ApplicationUser</span><span style="font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> AppDbContext(</span><span style="color: #3d85c6; font-family: Arial;">DbContextOptions</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">AppDbContext</span><span style="font-family: Arial;">> options)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> : </span><span style="color: blue; font-family: Arial;">base</span><span style="font-family: Arial;">(options)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> { }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: #3d85c6; font-family: Arial;">DbSet</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">Employee</span><span style="font-family: Arial;">> Employees { </span><span style="color: blue; font-family: Arial;">get</span><span style="font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">protected</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">override</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">void</span><span style="font-family: Arial;"> OnModelCreating(</span><span style="color: #3d85c6; font-family: Arial;">ModelBuilder </span><span style="font-family: Arial;">modelBuilder)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">base</span><span style="font-family: Arial;">.OnModelCreating(modelBuilder);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> modelBuilder.Seed();</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><o:p> </o:p><span style="color: red; font-family: Arial;"> </span></p><p class="MsoNormal" style="line-height: 125%;"><b><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Gerar uma nova migração para adicionar colunas à tabela AspNetUsers</span></b><span style="font-family: Arial; font-size: 16,0000pt; line-height: 125%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 125%; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';">Add-Migration Extend_IdentityUser, este co</span><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">mando gera o código de migração necessário para adicionar a coluna Cidade à tabela AspNetUsers.</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"><o:p> </o:p></span></p><p class="MsoNormal"><span style="color: #2b91af; font-family: Arial;">Extend_IdentityUser</span><span style="color: #333333; font-family: Arial;"> de </span><span style="color: blue; font-family: Arial;">classe</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">parcial</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">pública</span><span style="font-family: Arial;"> : </span><span style="color: #3d85c6; font-family: Arial;">Migração</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;">protected</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">override</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">void</span><span style="font-family: Arial;"> Up(</span><span style="color: #3d85c6; font-family: Arial;">MigrationBuilder </span><span style="font-family: Arial;">migrationBuilder)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">migrationBuilder.AddColumn<</span><span style="color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">string</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">>(</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">nome: </span><span style="color: #a31515; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">"Cidade",</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">tabela: </span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">"</span><span style="color: #a31515; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">AspNetUsers"</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">,</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">anulável: </span><span style="color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">verdadeiro</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">);</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;">protected</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">override</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">void</span><span style="font-family: Arial;"> Down(</span><span style="color: #3d85c6; font-family: Arial;">MigrationBuilder </span><span style="font-family: Arial;">migrationBuilder)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">migrationBuilder.DropColumn(</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">nome: </span><span style="color: #a31515; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">"Cidade",</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">tabela: </span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">"</span><span style="color: #a31515; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">AspNetUsers"</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">);</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">Em seguida, aplique a migração ao banco de dados usando o seguinte comando</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">: </span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';">Update-Database</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-size: 12,0000pt; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal"><span style="background: rgb(192, 192, 192); color: blue; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Estendendo IdentityUser - Add-Migration Não está funcionando</span></b><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"><o:p></o:p></span></b></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Se a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> (a classe que estende a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">) não for especificada como o argumento genérico para a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">IdentityDbContext</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">, o comando </span><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">Add-Migration</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> não funcionará. Ele não gera o código de migração necessário para adicionar as colunas adicionais à tabela </span><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">de identidade AspNetUsers</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">.Para corrigir isso, especifique a classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"> como o argumento genérico para </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">a classe IdentityDbContext</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;">.</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 125%;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">class</span><span style="font-family: Arial;"> </span><span style="color: #2b91af; font-family: Arial;">AppDbContext</span><span style="font-family: Arial;"> : </span><span style="color: #3d85c6; font-family: Arial;">IdentityDbContext</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">ApplicationUser</span><span style="font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> AppDbContext(</span><span style="color: #3d85c6; font-family: Arial;">DbContextOptions</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">AppDbContext</span><span style="font-family: Arial;">> options)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> : </span><span style="color: blue; font-family: Arial;">base</span><span style="font-family: Arial;">(options)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> { }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: #3d85c6; font-family: Arial;">DbSet</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">Employee</span><span style="font-family: Arial;">> Employees { </span><span style="color: blue; font-family: Arial;">get</span><span style="font-family: Arial;">; </span><span style="color: blue; font-family: Arial;">set</span><span style="font-family: Arial;">; }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">protected</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">override</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">void</span><span style="font-family: Arial;"> OnModelCreating(</span><span style="color: #3d85c6; font-family: Arial;">ModelBuilder </span><span style="font-family: Arial;">modelBuilder)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">base</span><span style="font-family: Arial;">.OnModelCreating(modelBuilder);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> modelBuilder.Seed();</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">Se você obtiver a seguinte exceção, a causa mais provável é em algum lugar com em seu aplicativo você ainda está usando</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">IdentityUser </span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">em vez da classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">.</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 125%; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal" style="line-height: 125%;"><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';">No service for type 'Microsoft.AspNetCore.Identity.SignInManager`1[Microsoft.AspNetCore.Identity.IdentityUser]' has been registered.</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(192, 192, 192); color: red; font-family: Arial; line-height: 125%;"><o:p> </o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">No Visual Studio, procure a classe IdentityUser em todo o aplicativo usando </span><i><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; line-height: 125%;">CTRL + SHIFT + F</span></i><i><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; line-height: 125%;"><o:p></o:p></span></i></p><p class="MsoNormal"><i><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial;"><o:p> </o:p></span></i></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiept5NtqHklAL_DKrDV-cAeUL_nl2OpuOeyqQ7Q5BsOBzN_fKfIhEMDgAmImiOHfnmUzSwRgCxQNo7apot_pvr-Si5fhGFEvw2qKdY-8iba1g24aFKBM_9PXLR1WHnSHNgcPUcrtYwxI6JTWgaqp-09MD0Hd39ekJmNsw_kVbGl-i8k2lT_roVR-2TLw/s339/2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="299" data-original-width="339" height="282" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiept5NtqHklAL_DKrDV-cAeUL_nl2OpuOeyqQ7Q5BsOBzN_fKfIhEMDgAmImiOHfnmUzSwRgCxQNo7apot_pvr-Si5fhGFEvw2qKdY-8iba1g24aFKBM_9PXLR1WHnSHNgcPUcrtYwxI6JTWgaqp-09MD0Hd39ekJmNsw_kVbGl-i8k2lT_roVR-2TLw/s320/2.png" width="320" /></a></div><br /><p align="center" class="MsoNormal" style="margin-left: 0,0000pt; mso-pagination: widow-orphan; text-align: center; text-indent: 0,0000pt;"><span style="font-family: Arial; text-align: left;"> </span></p><p class="MsoNormal" style="line-height: 150%;"><span style="background: rgb(255, 255, 255); font-family: Arial; line-height: 150%;">Substitua a classe IdentityUser pela classe ApplicationUser e execute novamente o projeto.</span><span style="background: rgb(255, 255, 255); font-family: Arial; line-height: 150%;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal" style="line-height: 150%;"><span style="background: rgb(255, 255, 255); font-family: Arial; line-height: 150%;">Para poder armazenar dados para a coluna Cidade personalizada na tabela AspNetUsers precisamos alterar</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 150%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; padding: 0pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); font-family: Arial; line-height: 150%;">RegisterViewModel classe</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 150%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; padding: 0pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); font-family: Arial; line-height: 150%;">Registrar Visualização</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 150%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; padding: 0pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); font-family: Symbol; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">Registrar ação no AccountController</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 150%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"> </span></p><p class="MsoNormal" style="line-height: 150%;"><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">Classe </span><b><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">RegisterViewModel </span></b><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">Esta é a classe de modelo para o modo </span><i><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">de exibição Register</span></i><span style="background: rgb(255, 255, 255); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">. Modifique-o para incluir a propriedade City.</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 150%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">public class</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"> </span><span style="color: #3d85c6; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">RegisterViewModel</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">{</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #6aa84f; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"> // Other Properties</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"> </span><span style="color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">public string </span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">City { </span><span style="color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">get</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">; </span><span style="color: blue; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">set</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">; }</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">}</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal" style="line-height: 150%;"><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 150%;">Register View</span></b><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 150%;"><o:p></o:p></span></b></p><p class="MsoNormal" style="line-height: 150%;"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal; line-height: 150%;">inclua um campo para capturar um valor para a Cidade.</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 150%;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 0); font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;">@model</span><span style="font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"> RegisterViewModel</span><span style="color: #333333; font-family: Arial; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-numeric: normal;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 0); font-family: Arial;">@{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> ViewBag.Title = </span><span style="color: #a31515; font-family: Arial;">"User Registration"</span><span style="font-family: Arial;">;</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 0); font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><span style="color: maroon; font-family: Arial;">h1</span><span style="color: blue; font-family: Arial;">></span><span style="font-family: Arial;">User Registration</span><span style="color: blue; font-family: Arial;"></</span><span style="color: maroon; font-family: Arial;">h1</span><span style="color: blue; font-family: Arial;">></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;"><</span><span style="color: maroon; font-family: Arial;">div</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="row"></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><span style="color: maroon; font-family: Arial;">div</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="col-md-12"></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">form</span></b><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">method</span><span style="color: blue; font-family: Arial;">="post"></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">div</span></b><span style="font-family: Arial;"> </span><b><span style="color: purple; font-family: Arial;">asp-validation-summary</span></b><span style="color: blue; font-family: Arial;">="</span><span style="font-family: Arial;">All</span><span style="color: blue; font-family: Arial;">"</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="text-danger"></</span><b><span style="color: purple; font-family: Arial;">div</span></b><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><span style="color: maroon; font-family: Arial;">div</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="form-group"></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">label</span></b><span style="font-family: Arial;"> </span><b><span style="color: purple; font-family: Arial;">asp-for</span></b><span style="color: blue; font-family: Arial;">="</span><span style="font-family: Arial;">Email</span><span style="color: blue; font-family: Arial;">"></</span><b><span style="color: purple; font-family: Arial;">label</span></b><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">input</span></b><span style="font-family: Arial;"> </span><b><span style="color: purple; font-family: Arial;">asp-for</span></b><span style="color: blue; font-family: Arial;">="</span><span style="font-family: Arial;">Email</span><span style="color: blue; font-family: Arial;">"</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="form-control"</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">/></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">span</span></b><span style="font-family: Arial;"> </span><b><span style="color: purple; font-family: Arial;">asp-validation-for</span></b><span style="color: blue; font-family: Arial;">="</span><span style="font-family: Arial;">Email</span><span style="color: blue; font-family: Arial;">"</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="text-danger"></</span><b><span style="color: purple; font-family: Arial;">span</span></b><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"></</span><span style="color: maroon; font-family: Arial;">div</span><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="background: rgb(255, 255, 0); font-family: Arial;">@*</span><span style="color: darkgreen; font-family: Arial;">Other Fields</span><span style="background: rgb(255, 255, 0); font-family: Arial;">*@</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><span style="color: maroon; font-family: Arial;">div</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="form-group"></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">label</span></b><span style="font-family: Arial;"> </span><b><span style="color: purple; font-family: Arial;">asp-for</span></b><span style="color: blue; font-family: Arial;">="</span><span style="font-family: Arial;">City</span><span style="color: blue; font-family: Arial;">"></</span><b><span style="color: purple; font-family: Arial;">label</span></b><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><b><span style="color: purple; font-family: Arial;">input</span></b><span style="font-family: Arial;"> </span><b><span style="color: purple; font-family: Arial;">asp-for</span></b><span style="color: blue; font-family: Arial;">="</span><span style="font-family: Arial;">City</span><span style="color: blue; font-family: Arial;">"</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="form-control"</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">/></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"></</span><span style="color: maroon; font-family: Arial;">div</span><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"><</span><span style="color: maroon; font-family: Arial;">button</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">type</span><span style="color: blue; font-family: Arial;">="submit"</span><span style="font-family: Arial;"> </span><span style="color: red; font-family: Arial;">class</span><span style="color: blue; font-family: Arial;">="btn btn-primary"></span><span style="font-family: Arial;">Register</span><span style="color: blue; font-family: Arial;"></</span><span style="color: maroon; font-family: Arial;">button</span><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"></</span><b><span style="color: purple; font-family: Arial;">form</span></b><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;"></</span><span style="color: maroon; font-family: Arial;">div</span><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;"></</span><span style="color: maroon; font-family: Arial;">div</span><span style="color: blue; font-family: Arial;">></span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></p><p class="MsoNormal" style="line-height: 125%;"><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">AccountController - Ação de registro</span></b><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"><o:p></o:p></span></b></p><p class="MsoNormal" style="line-height: 125%; padding: 0pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: blue; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; line-height: 125%;">Preencha a propriedade City</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> da instância </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> que é passada para o método </span><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; line-height: 125%;">CreateAsync()</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> da classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">UserManager</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">.</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 125%; padding: 0pt;"><!--[if !supportLists]--><span style="background: rgb(255, 255, 255); color: #333333; font-family: Symbol;">· </span><!--[endif]--><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">Os dados na instância </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">ApplicationUser</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> são salvos na tabela </span><span style="background: rgb(255, 255, 255); color: blue; font-family: Arial; line-height: 125%;">AspNetUsers</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;"> pela classe </span><span style="background: rgb(255, 255, 255); color: #3d85c6; font-family: Arial; line-height: 125%;">IdentityDbContext</span><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial; line-height: 125%;">.</span><span style="font-family: Arial; font-size: 12,0000pt; line-height: 125%; mso-fareast-font-family: SimSun; mso-font-kerning: 1,0000pt; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><b><span style="background: rgb(255, 255, 255); color: #333333; font-family: Arial;"><o:p> </o:p></span></b></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;">[</span><span style="color: #3d85c6; font-family: Arial;">HttpPost</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;">[</span><span style="color: #3d85c6; font-family: Arial;">AllowAnonymous</span><span style="color: #333333; font-family: Arial;">]</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: blue; font-family: Arial;">public</span><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">async</span><span style="font-family: Arial;"> </span><span style="color: #3d85c6; font-family: Arial;">Task</span><span style="font-family: Arial;"><</span><span style="color: #3d85c6; font-family: Arial;">IActionResult</span><span style="font-family: Arial;">> Register(</span><span style="color: #3d85c6; font-family: Arial;">RegisterViewModel</span><span style="font-family: Arial;"> model)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">{</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">if</span><span style="font-family: Arial;"> (ModelState.IsValid)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">var</span><span style="font-family: Arial;"> user = </span><span style="color: blue; font-family: Arial;">new</span><span style="font-family: Arial;"> </span><span style="color: #3d85c6; font-family: Arial;">ApplicationUser</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> UserName = model.Email,</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> Email = model.Email,</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> City = model.City</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> };</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">var</span><span style="font-family: Arial;"> result = </span><span style="color: blue; font-family: Arial;">await</span><span style="font-family: Arial;"> userManager.CreateAsync(user, model.Password);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">if</span><span style="font-family: Arial;"> (result.Succeeded)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">await</span><span style="font-family: Arial;"> signInManager.SignInAsync(user, isPersistent: </span><span style="color: blue; font-family: Arial;">false</span><span style="font-family: Arial;">);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">return</span><span style="font-family: Arial;"> RedirectToAction(</span><span style="color: #a31515; font-family: Arial;">"index"</span><span style="font-family: Arial;">, </span><span style="color: #a31515; font-family: Arial;">"home"</span><span style="font-family: Arial;">);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">foreach</span><span style="font-family: Arial;"> (var error </span><span style="color: blue; font-family: Arial;">in</span><span style="font-family: Arial;"> result.Errors)</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> {</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> ModelState.AddModelError(</span><span style="color: blue; font-family: Arial;">string</span><span style="font-family: Arial;">.Empty, error.Description);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;"> }</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="color: #333333; font-family: Arial;"> </span></p><p class="MsoNormal"><span style="font-family: Arial;"> </span><span style="color: blue; font-family: Arial;">return</span><span style="font-family: Arial;"> View(model);</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Arial;">}</span><span style="color: #333333; font-family: Arial;"><o:p></o:p></span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-86967977324078553662023-03-13T15:53:00.001-03:002023-03-13T16:04:01.696-03:00Visual Studio 2020 - Onde Está WEB FORMS?<span style="font-family: verdana;">Se você instalou o Visual Studio Communit 2022, deve estar se perguntando: Onde está o projeto Aplicativo Web ASP.NET.</span><br /><p style="text-align: left;"><span style="font-family: verdana;">Se você gosta de criar aplicativos utilizando Web Forms, não se preocupe. É bem fácil adicionar este recurso no Visual Studio 2022. Siga os passos a seguir:</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">1. Na Janela Criar um Novo Projeto, clique no link Instalar mais ferramentas e funcionalidades</span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjmvCL5A49nMeoiKs3tjokpxqmM5luk3-AyJYp0Z7T2nK9sTdAqjI0FkbJtjwB7qKgLWCAShpKIW7pHXTOuCUOruHkH2KRXwoyo6-PmS7KV0KUCZE4-t0aizuz6pSX9Ek2vX79izKXrOO0YhlHPf61E-ZsTRrODIU5LhVKiEEAK5xJdUU-jM5S8xU-AQ/s257/1.PNG" style="margin-left: 1em; margin-right: 1em;"></a><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhjmvCL5A49nMeoiKs3tjokpxqmM5luk3-AyJYp0Z7T2nK9sTdAqjI0FkbJtjwB7qKgLWCAShpKIW7pHXTOuCUOruHkH2KRXwoyo6-PmS7KV0KUCZE4-t0aizuz6pSX9Ek2vX79izKXrOO0YhlHPf61E-ZsTRrODIU5LhVKiEEAK5xJdUU-jM5S8xU-AQ/s257/1.PNG" style="margin-left: 1em; margin-right: 1em;"></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9-7d9_meF493NHjqXK_fGgqJ8Tktyi49kYPCHt2oNZO7-AH2RU9eTssK_2GTf7IdFvhCGIj87-K-52zJa42-a_sRRsB7X7Mlm3r1t8wTdpjo3ep-J8AgZzNzwvjnkk3K2rjckLgMz7e3B_XfpRoUXaCcoH77Wdm3xq9tTTDTkLDzPUkvXmeGgd4t2g/s1000/1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="563" data-original-width="1000" height="312" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQ9-7d9_meF493NHjqXK_fGgqJ8Tktyi49kYPCHt2oNZO7-AH2RU9eTssK_2GTf7IdFvhCGIj87-K-52zJa42-a_sRRsB7X7Mlm3r1t8wTdpjo3ep-J8AgZzNzwvjnkk3K2rjckLgMz7e3B_XfpRoUXaCcoH77Wdm3xq9tTTDTkLDzPUkvXmeGgd4t2g/w554-h312/1.PNG" width="554" /></a></div><br /><br /></div><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><br /></span></div><span style="font-family: verdana;">2. Na janela seguinte, Modificando - Visual Studio 2022. Clique sobre a guia Componentes Individuais</span><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO07TZq67Fn4oGJ7cf6wV6dyEmYoL8AYOQDC6_YANE1gDktBUYdWA276jN9XfzcjgGMtj0RfWh2VvbQin2yQJxwqhefET6fgsvu_cyispdaGWivGEmNZcDcRFSJ-n5lLjAoOuTdnzTsCKm0qfoTiAn32dAJ1hPen4UTnTjKwQg40Hh05tCIilShBYWtA/s1235/2.PNG" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="618" data-original-width="1235" height="292" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhO07TZq67Fn4oGJ7cf6wV6dyEmYoL8AYOQDC6_YANE1gDktBUYdWA276jN9XfzcjgGMtj0RfWh2VvbQin2yQJxwqhefET6fgsvu_cyispdaGWivGEmNZcDcRFSJ-n5lLjAoOuTdnzTsCKm0qfoTiAn32dAJ1hPen4UTnTjKwQg40Hh05tCIilShBYWtA/w584-h292/2.PNG" width="584" /></span></a></div><div class="separator" style="clear: both; text-align: center;"><span style="font-family: verdana;"><br /></span></div><span style="font-family: verdana;"><br /><span>3. Marque a opção Modelo de projeto e item do .NET Framework</span></span><p></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha_gP8dVCgxVCB3zb9iO78La8kc3hmZGfc8tGLBtMK_RZXeF6Ctww23HTOOJQy5xBBSvHJBgmPvV3TnCyEzCqk_8zCKWPQYSlROgtS4zouNuT0dAy4Cah3Cv2-EZXCZsNpRSJCa2eE484RXVlnq1x8IF0SwOVJTRh65kDMlTOVfd-68_jlexU_sExKHQ/s1238/3.PNG" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: verdana;"><img border="0" data-original-height="624" data-original-width="1238" height="297" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEha_gP8dVCgxVCB3zb9iO78La8kc3hmZGfc8tGLBtMK_RZXeF6Ctww23HTOOJQy5xBBSvHJBgmPvV3TnCyEzCqk_8zCKWPQYSlROgtS4zouNuT0dAy4Cah3Cv2-EZXCZsNpRSJCa2eE484RXVlnq1x8IF0SwOVJTRh65kDMlTOVfd-68_jlexU_sExKHQ/w591-h297/3.PNG" width="591" /></span></a></div><span style="font-family: verdana;"><br /><span><br /></span></span><p></p><p><span><span style="font-family: verdana;">Após isso, você poderá criar seus projetos utilizando o Visual Studio 2022</span></span></p><p><span style="font-family: verdana;">Até a próxima.</span></p><p><span><span style="font-family: verdana;"><br /></span></span></p><p><span style="font-family: verdana;"><span> </span><span> </span><br /><br /></span></p><p><span style="font-family: verdana;"> </span></p><p><span style="font-family: verdana;"> </span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-81830429966296412172023-02-09T17:20:00.008-03:002023-03-16T22:40:35.016-03:00SQL - Retornar Valores de Datas em Anos<h2 style="text-align: left;"><span style="font-family: verdana;">DATEDIFF</span></h2><p style="text-align: left;"><span style="font-family: verdana;"><span style="background-color: #e7e9eb;">Retorna a diferença entre valores de data, em anos. O retorno é do tipo int.</span></span></p><p><span style="background-color: #e7e9eb;"><span style="font-family: verdana;"><br /></span></span></p><p><span style="background-color: #e7e9eb;"><span style="font-family: verdana;"><b>Sintaxe</b>: </span></span><span class="hljs-keyword" style="background-color: #f2f2f2; box-sizing: inherit; font-family: verdana; outline-color: inherit; white-space: pre;">D</span><span class="hljs-keyword" style="background-color: #f2f2f2; box-sizing: inherit; font-family: verdana; outline-color: inherit; white-space: pre;">ATEDIFF</span><span style="background-color: #f2f2f2; font-family: verdana; white-space: pre;"> ( datepart , startdate , enddate ) </span><span style="background-color: #f2f2f2; color: #161616; font-family: verdana; white-space: pre;"> </span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;">Nota: <span style="box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span class="" style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> </span><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">Unidades </span></span><em style="box-sizing: inherit; color: #161616; outline-color: inherit;">datepart</em><span style="box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> comumente usadas </span><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">incluem </span></span><code style="border-radius: 3px; box-sizing: inherit; color: #161616; direction: ltr; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">month</code><span style="box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;">ou</span><code style="border-radius: 3px; box-sizing: inherit; color: #161616; direction: ltr; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">second.</code></span><span style="background-color: white; box-sizing: inherit; color: #161616; font-family: verdana; outline-color: inherit; vertical-align: inherit;">O valor </span><em style="background-color: white; box-sizing: inherit; color: #161616; font-family: verdana; outline-color: inherit;">datepart</em><span style="background-color: white; box-sizing: inherit; color: #161616; font-family: verdana; outline-color: inherit; vertical-align: inherit;"> não pode ser especificado em uma variável, nem como uma string entre aspas como </span><code style="border-radius: 3px; box-sizing: inherit; color: #161616; direction: ltr; outline-color: inherit; overflow-wrap: break-word; padding: 0.1em 0.2em;">'month'</code><span style="background-color: white; box-sizing: inherit; color: #161616; font-family: verdana; outline-color: inherit; vertical-align: inherit;">.</span></p><p><span style="font-family: verdana;"><br /></span></p><p style="background-color: white; box-sizing: inherit; color: #161616; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="font-family: verdana;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">A tabela a seguir lista todos os valores </span><em style="box-sizing: inherit; outline-color: inherit;">datepart</em><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> válidos. </span><span style="box-sizing: inherit; outline-color: inherit;">DATEDIFF</span><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> aceita o nome completo do </span><em style="box-sizing: inherit; outline-color: inherit;">datepart</em><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> ou qualquer abreviação listada do nome completo.</span></span></p><div class="has-inner-focus" style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit;"><table aria-label="tabela 1" class="table table-sm" style="border-collapse: collapse; border-spacing: 0px; border: 1px solid var(--theme-table-border-dark); box-sizing: inherit; margin-top: 1rem; outline-color: inherit; table-layout: auto; width: 615.5px;"><thead style="box-sizing: inherit; outline-color: inherit;"><tr style="box-sizing: inherit; outline-color: inherit;"><th style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; text-align: left; vertical-align: top;"><span style="font-family: verdana;"><em style="box-sizing: inherit; outline-color: inherit;">nome da</em><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> data</span></span></th><th style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; text-align: left; vertical-align: top;"><span style="font-family: verdana;"><em style="box-sizing: inherit; outline-color: inherit;">abreviação de data e</em><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> parte</span></span></th></tr></thead><tbody style="box-sizing: inherit; outline-color: inherit;"><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">ano</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">y, yy, yyyy</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">trimestre</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">qq, qq</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">mês</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">mm, m</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">dia do ano</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">você</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">dia</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">dd, d</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">semana</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">wk, ww</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">hora</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">hh</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">minuto</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">mi, n</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">segundo</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">ss, s</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">milissegundo</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">EM</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">microssegundo</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">mcs</span></span></td></tr><tr style="box-sizing: inherit; outline-color: inherit;"><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">nanossegundo</span></span></td><td style="border-top: 1px solid var(--theme-table-border-dark); box-sizing: inherit; line-height: 1.5; outline-color: inherit; overflow-wrap: break-word; padding: 0.5rem; vertical-align: top;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="font-family: verdana;">ns</span></span></td></tr></tbody></table></div><p><span style="font-family: verdana;"><span style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span class="" style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">A diferença </span></span><span style="background-color: white; box-sizing: inherit; color: #161616; font-weight: 600; outline-color: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">int</span></span><span style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span class="" style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> entre </span></span><em style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">startdate</span></em><span style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span class="" style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> e </span></span><em style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">enddate</span></em><span style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span class="" style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"> , expressa no limite definido por </span></span><em style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">datepart</span></em><span style="background-color: white; box-sizing: inherit; color: #161616; outline-color: inherit; vertical-align: inherit;"><span class="" style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">.</span></span></span></p><h2 class="heading-anchor" id="datepart-boundaries" style="background-color: white; box-sizing: inherit; color: #161616; line-height: 1.3; margin-inline-start: -1.875rem; margin: 32px 0px 12px; outline-color: inherit; padding-inline-start: 1.875rem; padding: 0px;"><span style="box-sizing: inherit; font-family: verdana; font-size: small; outline-color: inherit; vertical-align: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">limites </span><em style="box-sizing: inherit; outline-color: inherit;"><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;">do datepart</span></em></span></h2><div><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="box-sizing: inherit; font-family: verdana; outline-color: inherit; vertical-align: inherit;"><div>SELECT DATEDIFF(year, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(quarter, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(month, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(dayofyear, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(day, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(week, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(hour, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(minute, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(second, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(millisecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div>SELECT DATEDIFF(microsecond, '2005-12-31 23:59:59.9999999', '2006-01-01 00:00:00.0000000');</div><div style="font-style: italic;"><br /></div><div style="font-style: italic;"><br /></div><div style="font-style: italic;"><br /></div></span></span></span></div><h2 style="text-align: left;"><span style="font-family: verdana;">FLOOR</span></h2><p style="text-align: left;"><span style="font-family: verdana; font-weight: normal;"><span style="background-color: white;">R</span><span style="background-color: white; color: #161616;">etorna o maior inteiro menor ou igual à expressão numérica especificada.</span></span></p><div><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"><em style="box-sizing: inherit; outline-color: inherit;"><span style="box-sizing: inherit; font-family: verdana; outline-color: inherit; vertical-align: inherit;"><br /></span></em></span></div><div><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"><em style="box-sizing: inherit; outline-color: inherit;"><span style="box-sizing: inherit; font-family: verdana; outline-color: inherit; vertical-align: inherit;"><br /></span></em></span></div><div><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="box-sizing: inherit; font-family: verdana; outline-color: inherit; vertical-align: inherit;"><b>Sintaxe</b>: </span></span></span><span style="font-family: verdana;">FLOOR ( numeric_expression )</span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><br /></span></div><div><span style="font-family: verdana;"><b>Argumentos</b>, </span><em style="box-sizing: inherit; color: #161616; font-family: verdana; outline-color: inherit;">numeric_expression</em><span style="background-color: white; color: #161616; font-family: verdana;">, é uma expression da categoria de tipo de dados numéricos exatos ou aproximados, com exceção do tipo de dados </span><span style="box-sizing: inherit; color: #161616; font-family: verdana; font-weight: 600; outline-color: inherit;">bit</span><span style="background-color: white; color: #161616; font-family: verdana;">.</span></div><div><span style="background-color: white; color: #161616; font-family: verdana;"><br /></span></div><div><span style="background-color: white; color: #161616; font-family: verdana;"><br /></span></div><div><span style="background-color: white; color: #161616; font-family: verdana;"><b>Tipo de retorno</b>, r</span><span style="background-color: white; color: #161616; font-family: verdana;">etorna o mesmo tipo que </span><em style="box-sizing: inherit; color: #161616; font-family: verdana; outline-color: inherit;">numeric_expression</em><span style="background-color: white; color: #161616; font-family: verdana;">.</span></div><div><span style="box-sizing: inherit; outline-color: inherit; vertical-align: inherit;"><span style="box-sizing: inherit; outline-color: inherit;"><span style="box-sizing: inherit; font-family: verdana; outline-color: inherit; vertical-align: inherit;"><p style="background-color: white; box-sizing: inherit; color: #161616; font-style: normal; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><br /></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-style: normal; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><br /></p><h2 style="background-color: white; box-sizing: inherit; color: #161616; font-style: normal; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px; text-align: left;">Exemplos</h2><p style="background-color: white; box-sizing: inherit; color: #161616; font-style: normal; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><br /></p><p style="background-color: white; box-sizing: inherit; color: #161616; font-style: normal; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;">-- <span style="background-color: transparent;">O resultado é a parte inteira do valor calculado no mesmo tipo de dados que </span><em style="background-color: transparent; box-sizing: inherit; outline-color: inherit;">numeric_expression</em><span style="background-color: transparent;">.</span></p><p style="background-color: white; box-sizing: inherit; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><span style="color: #161616;">SELECT FLOOR(123.45), FLOOR(-123.45), FLOOR($123.45);</span></p><p style="background-color: white; box-sizing: inherit; margin: 1rem 0px 0px; outline-color: inherit; overflow-wrap: break-word; padding: 0px;"><br /></p></span></span></span></div><p><span style="font-family: verdana;">-- Exibe ano e Mês</span></p><p><span style="font-family: verdana;"> SELECT DATEDIFF(DAY,'1980-10-01', GETDATE()) / 365.25</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"> -- Exibe apenas anos</span></p><p><span style="font-family: verdana;"> SELECT FLOOR(DATEDIFF(DAY,'1980-10-01', GETDATE()) / 365.25)</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"> -- Exibe a data atual</span></p><p><span style="font-family: verdana;"> SELECT GETDATE()</span></p><p><span style="font-family: verdana;"><br /></span></p><p><span style="font-family: verdana;"> -- Soma dez dias a data atual</span></p><p><span style="font-family: verdana;"> SELECT GETDATE() + 10</span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-88432237213685160482023-02-07T11:54:00.005-03:002023-03-16T22:42:23.582-03:00Criptomoedas e Blockchain <p> <b><span style="font-family: Calibri;">CRIPTOMOEDAS</span></b></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Criptoativos representam todas as transações realizadas com valores criados digitalmente e independentes de instituições financeiras, como as criptomoedas. Exemplos de moedas.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Bitcoin, Ether, Polygon e Chainlink.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">A moeda foi criada em 2008 por Satoshi Nakamoto. Registrada com o domínio bitcoin.org, ela entrou em circulação em 2009. Inicialmente, não teve tanto protagonismo no mercado regular, mas isso não demorou para mudar.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal"><b><span style="font-family: Calibri;">O que são criptomoedas?</span></b><b><span style="font-family: Calibri;"><o:p></o:p></span></b></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Banco XP: Criptomoedas são moedas digitais que utilizam a tecnologia blockchain. A Criptografia da blockchain permitiu o surgimento não só de Criptomoedas, mas de Utility Tokens, Secutity Tokens e NFTs.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Banco Modal: Criptomoedas são criptoativos utilizados para pagamentos e demais transações financeiras realizadas, exclusivamente, de forma virtual, que podem ser utilizadas em qualquer parte do mundo. Em resumo: elas não “existem” fisicamente.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Por não deixar nenhum tipo de “rastro”, já que são criadas e monitoradas por inúmeras pessoas, utilizando blockchain, as criptomoedas têm sido a principal forma de pagamento de hackers ao invadirem sistemas corporativos de empresas privadas ou públicas.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Portanto, uma das principais diferenças entre esse tipo de moeda e as fiduciárias (como o dólar, o real etc.) é que elas são totalmente digitais. Dessa forma, todas as transações que as envolvem precisam ser realizadas pela Internet. Por ser uma moeda virtual e, dessa forma, não existir fisicamente, as criptomoedas são utilizadas somente para pagamentos e demais transações financeiras realizadas, exclusivamente, em ambiente virtual, em qualquer parte do mundo.</span><span style="font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-43914373159500208722022-06-23T23:16:00.005-03:002023-03-16T22:43:27.819-03:00Docker. O que é? Porque Utilizar?<p> <b><span style="font-family: "Segoe UI";">O que</span></b><b><span style="font-family: "Segoe UI";"> é o Docker?</span></b></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Docker é uma plataforma open source que facilita a criação e administração de ambientes isolados. Ele possibilita o empacotamento de uma aplicação ou ambiente dentro de um container, se tornando portátil para qualquer outro host que contenha o Docker instalado. </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Ele permite</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">, criar, implantar, copiar e migrar de um ambiente para outro com m</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">uita</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> flexibilidade. </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">A ideia do Docker é subir apenas uma máquina, ao invés de várias. E, nessa única máquina, você pode rodar várias aplicações sem que haja conflitos entre elas.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">O Docker é algo parecido com uma máquina virtual extremamente leve, mas não se trata de uma máquina virtual. O Docker u</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">sa</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> containers que possuem uma arquitetura diferente, permitindo maior portabilidade e eficiência. O container exclui a virtualização e muda o processo para o Docker. </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><b><span style="font-family: "Segoe UI";">Nota</span></b><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">: </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Docker é uma empresa especializada no provisionamento de um conjunto de tecnologias e ferramentas para a criação e gestão de containers. O trabalho da </span><a href="https://www.treinaweb.com.br/blog/no-final-das-contas-o-que-e-o-docker-e-como-ele-funciona/" title="Docker"><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Docker</span></a><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> foi tão bem sucedido que a tecnologia criada por ela acabou se tornando o mecanismo padrão no mercado para containers.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><b><span style="font-family: "Segoe UI";">O que são esses containers?</span></b><b><span style="font-family: "Segoe UI";"><o:p></o:p></span></b></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Um container é um ambiente isolado utilizado para empacotar aplicações</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">. Um container contém um conjunto de processos que são executados a partir de uma imagem, que fornece todos os arquivos necessários. </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Os containers compartilham o mesmo kernel e isolam os processos da aplicação do restante do sistema.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Sua aplicabilidade serve como base para o modelo DevOps e auxilia as áreas de Operações e Desenvolvimento. N</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">o</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> desenvolvimento, os containers empacotam aplicações com suas dependências, </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">permitindo</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> serem acessíveis e compartilhadas. Já em operações, são processos de aplicações rodando em um kernel compartilhado, mais simples que máquinas virtuais.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Como o container possui uma imagem que contém todas as dependências de um aplicativo, ele é portátil e consistente em todas as etapas de desenvolvimento. Essa imagem é um modelo de somente leitura que é utilizada para subir um container. </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Vale lembrar que, apesar do Docker ter sido desenvolvido inicialmente com base na tecnologia LXC (Linux Containers), hoje essa tecnologia tornou-se independente de sistema operacional: podemos utilizar o Docker em ambientes Linux, Windows e até mesmo MacOS.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><b><span style="font-family: "Segoe UI";">Por que utilizar o Docker?</span></b><b><span style="font-family: "Segoe UI";"><o:p></o:p></span></b></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Pelas vantagens que ele oferece</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> como</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">:</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 63,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; text-autospace: ideograph-numeric; text-indent: -21,0000pt;"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Economia de recursos</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">;</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 63,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; text-autospace: ideograph-numeric; text-indent: -21,0000pt;"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Melhor disponibilidade do sistema (compartilhamento do SO e de outros componentes)</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">;</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 63,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; text-autospace: ideograph-numeric; text-indent: -21,0000pt;"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Possibilidades de compartilhamento, simplicidade de criação e alteração da infraestrutura</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">;</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 63,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-list: l0 level1 lfo1; mso-pagination: widow-orphan; mso-para-margin-left: 0,0000gd; text-autospace: ideograph-numeric; text-indent: -21,0000pt;"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Manutenção simplificada (reduzindo o esforço e o risco de problemas com as dependências do aplicativo</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-autospace: ideograph-numeric;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-35490975730878537962022-06-23T18:51:00.000-03:002022-06-23T18:51:26.373-03:00Testando serviços Web API com Postman<p><span style="font-family: "Segoe UI";">Tem se tornado muito comum no universo do desenvolvimento de sistemas a criação de </span><span style="font-family: "Segoe UI";">serviços</span><span style="font-family: "Segoe UI";"> sendo construída sob o modelo REST, </span><span style="font-family: "Segoe UI";"> </span><span style="font-family: "Segoe UI";">realizando </span><span style="font-family: "Segoe UI";">a troca de mensagens através de requisições HTTP.</span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Neste cenário, os serviços HTTP não possuem interface gráfica com o usuário</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">. Então, para </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">testar esse tipo de aplicação </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">você poderá utilizar o Postman, Imagine, você não precisa usar seu tempo e recursos criar uma interface gráfica para testar um serviço.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">O Postman, </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">permite realizar requisições HTTP a partir de uma interface simples e intuitiva, facilitando o teste e depuração de serviços REST.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Veja como é fácil testar um</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> serviço ASP.NET Web API, enviando e recebendo dados no formato JSON.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal"><b><span style="font-family: "Segoe UI";">Instalando o Postman</span></b><b><span style="font-family: "Segoe UI";"><o:p></o:p></span></b></p><p class="MsoNormal"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><!--[endif]--><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Ele pode ser </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">instalado a partir da Chrome Web Store. </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Aqui ele será usado como um </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">aplicativo externo ao Chrome, diferente das versões anteriores em que era aberto em uma aba como extensão. Se você desejar poderá criar uma conta e armazenar suas informações em um servidor do Postman, compartilhando assim seus testes e variáveis entre vários dispositivos onde você fizer login</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">;</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><!--[endif]--><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Ser usado na Web;</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><!--[if !supportLists]--><span style="font-family: Wingdings; font-size: 12,0000pt; mso-bidi-font-family: 'Segoe UI'; mso-fareast-font-family: SimSun;">l </span><!--[endif]--><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Ser baixado para o Windows.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><b>Nota</b>: O </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Postman pode ser usado para testar qualquer serviço HTTP RESTful.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Se você estiver usando o Microsoft Visual Studio, você poderá criar </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">um novo projeto </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">utilizando o template </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">API </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Web </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">do ASP.NET Core </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: "Segoe UI";">Execute a aplicação e abra o Postman. Faremos uso dos verbos http para testar nossa API Web.</span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><b>Apenas um lembrete:</b></span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">GET</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> - listar dados</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">POST</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> - adiciona novos dados</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">PUT </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> - substitui dados existentes</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">DELETE</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> - exclui dados existentes</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">PATCH - atualizar alguns campos de dados existentes</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><br /></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Para fazermos o teste, devemos adicionar o endereço de nossa aplicação</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">, seguido de /api/</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> e o nome da entidade (exemplo: /api/Book)</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: "Segoe UI";">O Postman, nos permite ver o</span><span style="font-family: "Segoe UI";"> status da operação (200</span><span style="font-family: "Segoe UI";">, 204, ...</span><span style="font-family: "Segoe UI";">)</span></p><p class="MsoNormal"><span style="font-family: "Segoe UI";">No caso do </span><span style="font-family: "Segoe UI";"><b>POST</b></span><span style="font-family: "Segoe UI";">, precisaremos fazer algumas configurações antes. Definir como Body, selecionar </span><span style="font-family: "Segoe UI";">a opção “raw” </span><span style="font-family: "Segoe UI";">(pois</span><span style="font-family: "Segoe UI";"> informaremos o conteúdo da mensagem</span><span style="font-family: "Segoe UI";">) e o formato que poderá ser </span><span style="font-family: "Segoe UI";">“JSON (application/json)”</span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">Se você tentar </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">inserir um </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">novo registro com um </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">ID que já </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">existente, um </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">status 409 – Conflict </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">será retornado</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span><span style="font-family: "Segoe UI";">Para usar o </span><span style="font-family: "Segoe UI";"> <b>PUT </b></span><span style="font-family: "Segoe UI";">o formato é bem semelhante as configurações anteriores. Porém se você usar </span><span style="font-family: "Segoe UI";">um ID inexistente, </span><span style="font-family: "Segoe UI";">um status </span><span style="font-family: "Segoe UI";">404 – Not Found</span><span style="font-family: "Segoe UI";">, será retornado</span></p><p class="MsoNormal"><span style="font-family: "Segoe UI";">O </span><span style="font-family: "Segoe UI";"><b>DELETE</b>, </span><span style="font-family: "Segoe UI";">é o mais simples adicione o id no final </span><span style="font-family: "Segoe UI";">da URL </span><span style="font-family: "Segoe UI";">e </span><span style="font-family: "Segoe UI";">o ID </span><span style="font-family: "Segoe UI";">que deseja excluir</span></p><p class="MsoNormal"><span style="font-family: "Segoe UI";">Outra particularidade do Postman, é podermos trabalhar em equipes, </span><span style="font-family: "Segoe UI";">customizar ambientes de teste, importar arquivos com requisições pré-definidas, entre outras.</span></p><p class="MsoNormal"><span style="font-family: "Segoe UI";">O</span><span style="font-family: "Segoe UI";"> Postman</span><span style="font-family: "Segoe UI";"> ajuda a </span><span style="font-family: "Segoe UI";">simplifica</span><span style="font-family: "Segoe UI";">r os testes, </span><span style="font-family: "Segoe UI";"> pois </span><span style="font-family: "Segoe UI";">ele nos </span><span style="font-family: "Segoe UI";">podemos facilmente enviar requests HTTP para serviços RESTful, enviando parâmetros e recebendo as devidas respostas, além de analisar o tempo gasto em cada requisição, o que também pode auxiliar na localização de problemas de desempenho.</span></p><p class="MsoNormal"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">A ferramenta possui ampla documentação</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">. Ele ainda conta com uma versão paga </span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';">com recursos adicionais</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> que irão ajudar aos desenvolvedores mais avançados.</span><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"><o:p></o:p></span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-49568689328908689802022-06-15T05:44:00.001-03:002022-06-15T05:44:30.947-03:00Task - namespace System.Threading.Tasks<p> <span> </span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Uma</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> tarefa (task) representa uma unidade de trabalho que deverá ser realizada. Esta unidade de trabalho pode rodar em uma </span><i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">thread</span></i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> separada e é também possível iniciar uma </span><i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">task</span></i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> de forma sincronizada a qual resulta em uma espera pela </span><i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">thread</span></i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> chamada. Com </span><i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">tasks</span></i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">, você tem uma camada de abstração mas também um bom controle sobre as </span><i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">threads</span></i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> relacionadas.</span></p><p class="p" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 0,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: "Segoe UI";"><span> </span>As</span><span style="font-family: "Segoe UI";"> </span><span style="font-family: "Segoe UI";">tasks permitem muito mais flexibilidade na organização do trabalho. Por exemplo, você pode definir continuar o trabalho, que deve ser feito depois que uma tarefa esteja completa.</span><span style="font-family: "Segoe UI";"> </span><span style="font-family: "Segoe UI";">Isso pode diferenciar se um tarefa foi executada com sucesso ou não. Você também pode organizar as tarefas em uma hierarquia onde uma tarefa pai pode criar novas tarefas filhas que pode criar dependências e assim o cancelamento da tarefa pai também cancela suas tarefas filhas.</span><span style="font-family: "Segoe UI";"><o:p></o:p></span></p><p class="p" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 0,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: "Segoe UI";"><span> </span>Para iniciar uma tarefa, você pode usar a classe TaskFactory ou o construtor da classe Task e o método Start().</span><span style="font-family: "Segoe UI";"><o:p></o:p></span></p><p class="p" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 0,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-autospace: ideograph-numeric; text-indent: 35,4000pt;"><span style="font-family: "Segoe UI";"><span> </span>O construtor Task lhe dá mais flexibilidade na criação da tarefa. Ao iniciar uma tarefa, uma instância da classe </span><i><span style="font-family: "Segoe UI";">Task</span></i><span style="font-family: "Segoe UI";"> pode ser criada e o código que deve ser executado pode ser atribuído com uma </span><i><span style="font-family: "Segoe UI";">Action</span></i><span style="font-family: "Segoe UI";"> ou delegate </span><i><span style="font-family: "Segoe UI";">Action<object></span></i><span style="font-family: "Segoe UI";"> tanto sem parâmetro como com um parâmetro </span><i><span style="font-family: "Segoe UI";">object</span></i><span style="font-family: "Segoe UI";">. </span><span style="font-family: "Segoe UI";"><o:p></o:p></span></p><p class="p" style="line-height: 150%; margin-bottom: 4,0000pt; margin-right: 0,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-autospace: ideograph-numeric; text-indent: 35,4000pt; vertical-align: baseline;"><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><span> </span>A classe Task também fornece construtores que inicializam a tarefa, mas que não a agendam para execução. Por razões de desempenho, o método</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> StartNew da classe TaskFactory deve ser o mecanismo preferido para criação e programação de tarefas, mas, para situações em que a criação e programação devem ser separadas, os construtores podem ser usados, e o método Start() da tarefa pode então ser utilizado para programar a tarefa para execução em um momento posterior.</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><o:p></o:p></span></p><p class="p" style="line-height: 150%; margin-bottom: 4,0000pt; margin-right: 0,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-autospace: ideograph-numeric; text-indent: 35,4000pt; vertical-align: baseline;"><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><span> </span>O método</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> Task.WhenAll aguarda assincronamente múltiplas operações assíncronas que são representadas através de uma coleção de tarefas. Usamos o método Task.WhenAll em um conjunto de tarefas. A aplicação de WhenAll retorna uma única tarefa que não está completa até que cada tarefa na coleção seja concluída. As tarefas parecem ser executadas em paralelo, mas não são criados novas </span><i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">threads</span></i><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">.</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI"; line-height: 150%;"><o:p></o:p></span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-42015325874052582372022-06-13T10:12:00.000-03:002022-06-13T10:12:47.567-03:00IEntityTypeConfiguration <p><span style="background: rgb(255, 255, 255); font-family: "Segoe UI"; text-align: justify;">Namespace:</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI"; text-align: justify;">: </span><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Microsoft.EntityFrameworkCore</span></p><p align="justify" class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-align: justify; text-autospace: ideograph-numeric; text-justify: inter-ideograph;"><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Assembly:</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">: </span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Microsoft.EntityFrameworkCore.dll</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><o:p></o:p></span></p><p align="justify" class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-left: 0,0000pt; margin-right: 0,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; padding: 0pt 0pt 0pt 0pt; text-align: justify; text-autospace: ideograph-numeric; text-justify: inter-ideograph;"><span style="background: rgb(248, 249, 250); font-family: "Segoe UI";">Ele se aplica as versões: </span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">2.0, 2.1, 2.2, 3.0, 3.1, 5.0, 6.0</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><o:p></o:p></span></p><p align="justify" class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-pagination: widow-orphan; text-align: justify; text-autospace: ideograph-numeric; text-justify: inter-ideograph;"><span style="font-family: 'Segoe UI'; font-size: 12,0000pt; mso-fareast-font-family: SimSun; mso-spacerun: 'yes';"> </span></p><p align="justify" class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-align: justify; text-autospace: ideograph-numeric; text-indent: 35,4000pt; text-justify: inter-ideograph;"><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Permite que a configuração de um tipo de entidade seja fatorada em uma classe separada, e não em linha</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> </span><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";">OnModelCreating(ModelBuilder)</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><o:p></o:p></span></p><p align="justify" class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-align: justify; text-autospace: ideograph-numeric; text-indent: 35,4000pt; text-justify: inter-ideograph;"><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Implemente essa interface, aplicando a configuração para a entidade no método </span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> </span><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";">Configure(EntityTypeBuilder<TEntity>)</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> </span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">e, em seguida, aplique a configuração ao modelo usando </span><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";">ApplyConfiguration<TEntity></span><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";"> </span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">em: </span><span class="15" style="background: rgb(255, 255, 255); font-family: "Segoe UI";">OnModelCreating(ModelBuilder)</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">.</span><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";"><o:p></o:p></span></p><p align="justify" class="MsoNormal" style="line-height: 150%; margin-bottom: 4,0000pt; margin-top: 4,0000pt; mso-char-indent-count: 0,0000; mso-pagination: widow-orphan; text-align: justify; text-autospace: ideograph-numeric; text-indent: 35,4000pt; text-justify: inter-ideograph;"><span style="background: rgb(255, 255, 255); font-family: "Segoe UI";">O parâmetro é do tipo: </span><span style="background: rgb(248, 249, 250); font-family: "Segoe UI";">TEti</span><span style="background: rgb(248, 249, 250); font-family: "Segoe UI";">ty (</span><span style="background: rgb(248, 249, 250); font-family: "Segoe UI";">O tipo de entidade a ser configurado</span><span style="background: rgb(248, 249, 250); font-family: "Segoe UI";">)</span><span style="background: rgb(248, 249, 250); font-family: "Segoe UI";"><o:p></o:p></span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-86829661914092183532022-06-13T09:46:00.002-03:002022-06-13T09:54:14.364-03:00Default Column Type<p><span style="font-family: helvetica;"> <span style="background-color: white; color: #292929; font-size: 20px; letter-spacing: -0.06px;">Permite definir o padrão do tipo de dados da coluna no banco de dados.</span></span></p><p><span style="background-color: white; font-family: helvetica;"><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"><br /></span></span></p><p><span style="background-color: white; font-family: helvetica;"><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;">protected override void OnModelCreating(ModelBuilder modelBuilder)</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;">{</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> foreach (var property in modelBuilder</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> .Model</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> .GetEntityTypes()</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> .SelectMany(</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> e => e.GetProperties()</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> .Where(p => p.ClrType == typeof(string))))</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> {</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> </span><span class="lk ix" style="box-sizing: inherit; color: #292929; font-size: 16px; font-weight: 700; letter-spacing: -0.352px; white-space: pre-wrap;">property.Relational().ColumnType = "varchar(100)";</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"> }</span><br style="box-sizing: inherit; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;" /><span style="color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;">}</span></span></p><p><span style="background-color: white; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"><span style="font-family: helvetica;"><br /></span></span></p><p><span style="background-color: white; color: #292929; font-size: 20px; letter-spacing: -0.06px;"><span style="font-family: helvetica;">Para definir o tipo de dados da coluna no banco de dados necessitamos utilizar o seguinte código:</span></span></p><p><span style="background-color: white; color: #292929; font-size: 16px; letter-spacing: -0.352px; white-space: pre-wrap;"><b><span style="font-family: helvetica;">property.Relational().ColumnType = "varchar(100)";</span></b></span></p><p><br /></p><p><span style="background-color: white; color: #292929; font-family: charter, Georgia, Cambria, "Times New Roman", Times, serif; font-size: 20px; letter-spacing: -0.06px;"><br /></span></p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-15442127577974942802022-04-11T08:16:00.003-03:002022-04-11T08:16:47.779-03:00SQL - VEIRFICAR SE EXISTE REGISTROS DUPLICADOS<p>Veja como é simples verificar se existe algum registro duplicado um tabela</p><p><br /></p><p>SELECT [NomeArquivo], Count(*) FROM [colpo_RegistroItens]</p><p>GROUP BY [NomeArquivo]</p><p>HAVING Count(*) > 1</p>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0tag:blogger.com,1999:blog-8764680610050873658.post-54405594016637015512022-04-08T12:32:00.001-03:002023-03-16T22:44:12.522-03:00NODE JS<p><span style="font-family: Arial; font-size: 11pt; text-align: justify; white-space: pre-wrap;">O Node.js é um ambiente de runtime JavaScript do lado do servidor, de software livre e multiplataforma baseado no mecanismo JavaScript V8 do Chrome, originalmente criado por Ryan Dahl e lançado em 2009. Sim, ele é uma tecnologia usada para executar código JavaScript fora do navegador.</span></p><span id="docs-internal-guid-0952af93-7fff-52b5-b6b8-6c2758b02a75"><p dir="ltr" style="line-height: 1.8; margin-bottom: 4pt; margin-top: 4pt; text-align: justify;"><span style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Com ele podemos construir aplicações web em geral, desde web sites até APIs e microsserviços. Isso é possível graças a união do ambiente de execução de JavaScript fornecido pelo próprio Node.js e o motor de interpretação e execução de JavaScript presente no Google Chrome, chamado de V8.</span></p><p dir="ltr" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-top: 0pt; text-align: justify;"> </p><h2 dir="ltr" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-left: -1pt; margin-right: -1pt; margin-top: 4pt; margin: 4pt -1pt; text-align: justify;"><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">O Node.js funciona no Windows?</span></h2><p dir="ltr" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-top: 4pt; text-align: justify;"><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Sim. O Windows dá suporte a dois ambientes diferentes para o desenvolvimento de aplicativos com o Node.js:</span></p><ul style="margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 4pt; padding: 0pt 0pt 4pt; text-align: justify;"><a href="https://docs.microsoft.com/pt-br/windows/dev-environment/javascript/nodejs-on-windows" style="text-decoration-line: none;"><span style="background-color: transparent; color: black; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Instalar um ambiente de desenvolvimento do Node.js no Windows</span></a></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-top: 0pt; text-align: justify;"><a href="https://docs.microsoft.com/pt-br/windows/dev-environment/javascript/nodejs-on-wsl" style="text-decoration-line: none;"><span style="background-color: transparent; color: black; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Instalar um ambiente de desenvolvimento do Node.js no Subsistema do Windows para Linux</span></a></p></li></ul><p dir="ltr" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-left: 36pt; margin-top: 4pt; text-align: justify;"> </p><h2 dir="ltr" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-left: -1pt; margin-right: -1pt; margin-top: 4pt; margin: 4pt -1pt; text-align: justify;"><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">O que você pode fazer com o NodeJS?</span></h2><p dir="ltr" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-top: 4pt; text-align: justify;"><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">O Node.js é usado principalmente para criar aplicativos Web rápidos e escalonáveis. Ele usa um modelo de E/S controlado por evento e sem bloqueio, tornando-o leve e eficiente. É uma ótima estrutura para aplicativos em tempo real que usam muitos dados e que são executados em dispositivos distribuídos. Aqui estão alguns exemplos do que você pode criar com o Node.js.</span></p><ul style="margin-bottom: 0px; margin-top: 0px; padding-inline-start: 48px;"><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 4pt; padding: 0pt 0pt 4pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">SPAs (aplicativos de página única) : são aplicativos Web que funcionam dentro de um navegador e não precisam recarregar uma página sempre que você usá-la para obter novos dados. Alguns exemplos de SPAs incluem aplicativos de rede social, aplicativos de mapa ou email, texto online ou ferramentas de desenho etc.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 4pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">RTAs (aplicativos em tempo real) : são aplicativos Web que permitem aos usuários receber as informações assim que publicadas por um autor, em vez de exigir que o usuário (ou software) verifique uma fonte periodicamente em busca de atualizações. Alguns exemplos de RTAs incluem aplicativos de mensagens instantâneas ou salas de chat, jogos com vários jogadores online que podem ser reproduzidos no navegador, documentos de colaboração online, armazenamento da Comunidade, aplicativos de videoconferência etc.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 4pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Aplicativos de streaming de dados: são aplicativos (ou serviços) que enviam dados/conteúdo à medida que chegam (ou são criados) e ao mesmo tempo mantêm a conexão aberta para continuar baixando dados, conteúdo ou componentes adicionais, conforme necessário. Alguns exemplos incluem aplicativos de streaming de vídeo e áudio.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 4pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">APIs REST: são as interfaces que fornecem dados para interação com o aplicativo Web de outra pessoa. Por exemplo, um serviço de API de Calendário pode fornecer datas e horas para um local de show que poderia ser usado pelo site de eventos locais de outra pessoa.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 4pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Aplicativos SSR (renderizados do lado do servidor): esses aplicativos Web podem ser executados no cliente (no navegador/front-end) e no servidor (o back-end), permitindo que as páginas dinâmicas exibam (gerem HTML para) qualquer conteúdo conhecido e extraiam rapidamente conteúdo não conhecido quando disponível. Eles são frequentemente chamados de aplicativos "isomórficos" ou "universais". Os SSRs utilizam métodos SPA, de modo que não precisam ser recarregados toda vez que forem usados. No entanto, os SSRs oferecem alguns benefícios que podem ou não ser importantes para você, como fazer com que o conteúdo do seu site apareça nos resultados da pesquisa do Google e fornecer uma imagem de visualização quando os links para seu aplicativo são compartilhados em mídias sociais, como o Twitter ou o Facebook. A possível desvantagem é que ele exige um servidor Node.js em constante execução. A título de exemplo, um aplicativo de rede social com suporte a eventos que os usuários desejam que apareçam nos resultados da pesquisa e em mídias sociais pode se beneficiar de SSR, mas aplicativos de email podem se beneficiar mais de SPA. Você também pode executar aplicativos não SPA renderizados pelo servidor, como um blog do WordPress. Como podemos ver, conforme as coisas vão ficando complicadas, você precisa decidir o que é importante.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; padding: 0pt 0pt 4pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Ferramentas da linha de comando: permitem automatizar tarefas repetitivas e, em seguida, distribuir sua ferramenta pelo vasto ecossistema Node.js. Um exemplo de ferramenta de linha de comando é cURL, que representa a URL do cliente e é usada para baixar conteúdo de uma URL da internet. A cURL geralmente é usada para instalar itens como Node.js ou, em nosso caso, um gerenciador de versão do Node.js.</span></p></li><li aria-level="1" dir="ltr" style="font-family: Arial; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; list-style-type: disc; margin-left: 29pt; vertical-align: baseline; white-space: pre;"><p dir="ltr" role="presentation" style="background-color: white; line-height: 1.8; margin-bottom: 4pt; margin-top: 0pt; text-align: justify;"><span style="background-color: transparent; font-size: 11pt; font-variant-east-asian: normal; font-variant-numeric: normal; vertical-align: baseline; white-space: pre-wrap;">Programação de hardware: embora não seja tão conhecido quanto os aplicativos Web, o Node.js vem crescendo em popularidade para usos de IoT, como coletar dados de sensores, sinalizadores, transmissores, motores ou qualquer item que gere grandes quantidades de dados. O Node.js pode habilitar a coleta e análise de dados, a comunicação entre um dispositivo e um servidor e a execução de ações com base na análise. O NPM contém mais de 80 pacotes para controladores Arduino, Raspberry Pi, Intel IoT Edison, vários sensores e dispositivos Bluetooth.</span></p></li></ul></span>Arquiteto de sistemas e Desenvolvedor Full Stackhttp://www.blogger.com/profile/04675302383241738319noreply@blogger.com0