Fala galera beleza aqui quem fala é cristec no vídeo de hoje eu vou estar ensinando vocês a como estar criando e desenvolvendo do zero uma API Perfeito nós vamos estar criando essa tapinha utilizando do altinete 6 perfeito Então a gente vai criar essa pi utilizando tô criando todos os endpoints necessários Vamos criar um Crush completo com essa api perfeito Então a gente vai poder criar um usuário nós vamos utilizar a ideia de funcionários nessa piça é então a gente vai criar um funcionário editar um funcionário deletar ler toda lista de funcionários como também inativar um
funcionário perfeito eu vou mostrar para vocês como vai ficar visualmente ao final desse projeto é basicamente isso daqui todos os indicou antes Aqui criados nós vamos estar utilizando o Swagger para estar fazendo todas as requisições isso porque quando Nós criamos uma web ali pelo visual estúdio utilizando o dotinete nós conseguimos já incluir o swag ali junto do projeto e facilita ali no momento de estarmos testando todos os nossos endpoints perfeito então ok Esses são os métodos que nós vou demonstrar eles aqui para vocês o get aonde nós conseguimos pegar todos os usuários que estão cadastrados
no banco então percebam aqui em vários cadastros de usuários fictícios que eu coloquei aqui então por isso que eles estão testes string assim por diante foi quando eu tava desenvolvendo o projeto pela primeira vez criei daí já coloquei todos esses dados fictícios para estar demonstrando aqui para vocês então esse get que faz essa requisição de todos os usuários temos o post aonde conseguimos criar um usuário né então damos um Execute aqui mandando mãos os dados os usuários e ao final nós temos aqui a criação do nosso usuário perfeito e a data que foi criada então
vejam que esse daqui foi realmente criado agora dia 22/07 que a data que eu tô realizando a gravação desse vídeo nós podemos editar um usuário Então pegamos o usuário deixa ver qual que é o último número de usuário que nós temos aqui o último dia aí de 22 nós conseguimos estar editando o usuário 22 então podemos colocar 22 aqui deixar teste no sobrenome também dá um executar e pronto a gente vai no usuário 22 ele tá aqui editado com sucesso Perfeito nós conseguimos também vamos seguir aqui com os nossos Indy pães tem onde pode se
eu coloco o 22 e executo percebam que na listagem de usuários o 22 não existe mais perfeito foi deletado corretamente da mesma forma que nós tentarmos buscar o 22 aqui nesse sentido que pega um único registro a partir do id ele não vai aparecer vai mandar apenas uma mensagem falando que o usuário não foi encontrado por isso nós colocarmos o 20 que é um usuário que existe vem nos dados desse usuário e um sucesso true aqui para nós perfeito e temos também esse outro método que eu criei que é o método de inativa funcionário percebam
que o usuário 20 aqui na Flag ativo ele tá com uma verdadeira então ele realmente tá ativa na nossa empresa fictício porém se eu coloco ele aqui dentro do nosso inativa funcionário o ID dele que seria o 20 então Execute ele se transforma em um usuário Inativo por que que eu criei assim de point em vez de deixar apenas os usuários que seriam ou de coletar usuários editar criar um novo e deletar porque basicamente porque quando você numa empresa formal é dificilmente você vai utilizar um método de Elite completamente de algum de algum registro que
seja dentro do banco então dificilmente você vai excluir completamente um funcionário completamente um produto ou um histórico de algo alguma coisa ou de alguém dentro da sua base de dados isso porque uma empresa ela precisa manter uma rastreabilidade de todos os dados daquela empresa não necessariamente usar atuais mas todos os dados que ela já teve algum dia ou funcionários que já teve algum dia ou produtos que já vendeu ou e assim por diante certo porque porque não se sabe quando a gente vai precisar daquelas informações seja para apresentar para algum órgão público ou às vezes
criar um relatório para tentar ter um entendimento maior de como nossa empresa estava um ano atrás há três meses atrás de como está agora perfeito então isso aqui de um deletar completamente um usuário que perceba a partir do momento que ele tem um usuário 22 eu não tenho mais nada dele eu não sei mais Qual era o nome dele o sobrenome depa que ele trabalhava o turno é quando que ele tinha sido criado se ele teve alguma alteração ou não eu não sei absolutamente nada dele não consigo mais recuperar essa informação porque literalmente ele foi
excluído do banco de dados tá E isso não é usual e não é uma boa prática para as empresas então dificilmente você vai ver isso acontecendo o que geralmente acontece é como criamos aqui dentro do banco de dados um funcionário um usuário um produto além de ter todas as informações sobre ele ter uma coluna onde basicamente vai ser utilizado uma coluna que vai ser basicamente utilizada como uma Flag para dizer se aquele usuário tá ativo e nativo ou se está sendo utilizado ou não geralmente é ativo e Inativo então basicamente Quando um usuário ou um
funcionário é demitido ou desligado de uma empresa a gente muda aquela Flag para inativo Então dessa forma a gente resolve todos os problemas a gente consegue criar uma regra para que aquele funcionário que está inativo não consiga mais ter acesso não consigo meter acesso a sistemas de operações da empresa ele não apareça mais junto das listagens do funcionários ativos e assim por diante dá para criar todas essas regras para que aquele dado não acabe infiltrando dentro dos dados dos funcionários ativos só que de mesma forma nós conseguimos ainda assim conseguir resgatar aquele dado caso algum
momento a gente precise por exemplo como nós realizamos a inativação do usuário é 20 agora ele tá como falso Isso não é um problema porque ele tá como falso diferente dos que estão tru Ok consigo ter entendimento de que ele foi inativado ele não está mais junto conosco na empresa porém eu consigo ter todos os dados dele ainda consigo saber qual era o nome dele o sobrenome em qual departamento ele trabalhava em qual turno e que dia ele foi criado que foi no dia 17 perfeito então eu consigo ter uma rastreabilidade daqueles daquelas informações e
é basicamente isso a usabilidade desse método aqui perfeito então é por isso que é de boa prática em vez de deletar completamente um dado no banco você inativá-lo apenas então eu vou estar criando esse método aqui para demonstrar para vocês perfeito então é basicamente nós vamos estar desenvolvendo essa pi Então vamos lá primeiramente Vamos abrir aqui o nosso visual Studio tá vamos criar o nosso webpid apito zero mostrando a passo para vocês como tudo funciona e vamos lá Primeiro vamos dar um Creation como nos meus templates já está a web porque o ano desenvolvendo bastante
um app ele já vai aparecer aqui do lado esquerdo no topo parente para você não aparecer é só vir aqui em buscar colocar uma web api perfeito vai ser o primeiro aqui para você executar e rodar e criar aí o seu projeto só cuidado para não confundir porque tem um aqui muito parecido que é web app Não é esse que nós vamos criar mas sim web perfeito clicamos aqui vou colocar aqui o nome de web vídeo perfeito esse nome que eu criei que você coloca a localização onde você quer salvar o seu projeto nada muito
diferente e temos um next Nesta parte aqui você pode deixar configurado a gente vai utilizar Como eu disse anteriormente o datenete 6 pode deixar configurado https tá sem problema nenhum e deixar enable Open suporte porque é isso daqui que nós vamos estar precisando para utilizar o Swagger como eu falei para vocês ou tá utilizando o swag para testar os and points porque basicamente ao criar o projeto a gente já consegue habilitar ele aqui tá então a gente não precisa de estar abrindo Postman ou qualquer outra questão que iria dificultar um pouco mais aqui a vídeo
aula para os alunos que não tem muito conhecimento com relação a isso tá bom então aqui como já tá acoplado a gente consegue estar utilizando de forma mais rápida então deixa aqui esse e-mail Então vamos dar um create já fizemos as configurações iniciais aqui na criação do nosso projeto perfeito Lembrando que esse projeto ele tá dentro do banco tá então dentro do banco de dados nós temos todos os dados que estão sendo mostrados aqui dentro desse desse projeto aqui então basicamente no decorrer do desenvolvimento dessa web pi a gente vai tá criando a conexão com
o banco de dados vamos estar utilizando o SQL server para isso percebam que aqui os dados Eles estão no banco em tempo real então todos esses dados aqui que tá nessa api funcionários são os dados que basicamente foram criados aqui na nossa api Então se por exemplo eu pego aqui ó a gente já tem um exemplo aí de 20 que a gente inativou ele já tá falso aqui então percebam aqui que ele já foi inativado como também a data de alteração já foi mudada então agora a data de alteração tá no dia 22 perfeito então
basicamente isso para todos os dados aqui no banco percebam que então estamos persistindo essas informações mesmo se eu fechar esse projeto e abrir novamente os dados ainda vão permanecer ali A não ser que eu excluo a base de dados o que não seria o usual ok nosso projeto é que já foi aberto perceba que já criaram os arquivos padrões aqui do nosso web pi que é basicamente uma pastinha de controles já temos aqui o Edward for Cash que basicamente o próprio Dote NET já cria para nós e já temos o weather forcast Model também criados
vamos rodar aqui a aplicação só para mostrar para vocês como funciona como nós acoplamos o swagga a gente consegue simplesmente rodar ela aqui e a gente já vai abrir com o Swagger Então beleza já abriu aqui o nosso daqui o projeto que vai ficar no final né que a gente vai desenvolver esse daqui o que nós temos até o momento então basicamente que a gente já tem um end Point esse indie Point nada mais é do que esse controle aqui do Éder firecast que até o momento ele tem só uma http get com o name
de Gatti weather for Cash que é basicamente que nós estamos aqui o get o Éder for Cash clicando nele a gente consegue basicamente extrair áudio aqui do lado um Execute e ele retorna esses dados aqui para nós esses dados aqui sendo dados fixos que ele basicamente gera aqui tá então é basicamente para nós conseguirmos dar aquela testadinha no nosso projeto ou dot net já deixa aqui para nós para termos uma ideia de como tudo funciona parece não vamos estar utilizando isso daqui é basicamente para uma visualização de vocês mesmo então vamos dar um beliche eu
vou já fechar aqui o projeto não vou deixar ele rodando porque vai ter bastante modificação que a gente vai fazer e dependendo da modificação que nós fizemos vai ficar toda hora pedindo para nós restarmos o projeto então para não ter esse problema a gente vai startar o projeto só quando a gente tiver já algumas coisas em andamento vamos excluir também essa moda ou do Éder forcast perfeito não são Dados que serão necessários para nós agora de restante de arquivos que nós temos aqui nós temos o nosso web 7 que a gente vai colocar aqui nossas
conexões com banco de dados normal e no programa CS também temos aqui algumas configurações vamos estar utilizando bastante com relação a injeção de dependência que nós vamos estar utilizando bastante no decorrer do nosso projeto Lembrando que essa webpa e a gente vai estar desenvolvendo ela utilizando boas práticas Então não vamos estar colocando todo o nosso raciocínio e toda nossa lógica dentro do controle que não é o que habitualmente é feito isso porque é uma prática a gente ter fé de controles que seriam basicamente controles gordos por assim dizer controle é cheio de coisa com toda
a nossa lógica o que a gente cria são serviços a gente queria um serviço dentro desse serviço ele vai ser responsável por se comunicar com o banco pegar os dados do banco e o controle é basicamente consulta ao serviço e daí mostra ali para o usuário tá então a gente vai criar essa esse padrão que seria o repositório Peter perfeito no decorrer que eu for explicando nós somos desenvolvendo vocês vão entender um pouquinho melhor como que funciona perfeito então primeira coisa que nós vamos fazer a gente vai estar utilizando o método de Cold first Ou
seja a partir do nosso código que nós vamos criar a nossa base de dados tá é Diferentemente do data bem forte que seria basicamente o contrário a partir do nosso banco de dados criamos o nosso código Tá então vamos iniciar com o nosso código no caso desse vídeo aqui Então beleza vamos como vamos deixar tudo separadinho aqui vamos criar aqui um New Folder para criar as nossas Model certo e o Folder S perfeito agora a gente vai estar criando e aqui dentro nós vamos ter duas models Tá então vamos criar aqui duas classes a primeira
classe nós vamos denominar de funcionar o ódio que vai basicamente conter todos os dados dos nossos funcionário todos os dados do nosso funcionário nós vamos criar também um Beleza beleza por que que a gente criou duas Modas vamos entender o olhando o nosso projeto base é vamos pegar aqui um funcionário que vai ficar mais fácil de ver vamos dar um Execute perceba que ele resolve ele retorna os dados e em volta na realidade ele torna um objeto e retorna um objeto dentro desse objeto nós temos os dados uma mensagem e um sucesso ou não no
caso aqui deu um sucesso e dentro dos dados nós temos todas as informações do usuário então entendam que deceder até a data de alteração é a nossa Model de funcionário Model ou seja são os dados de um funcionário específico Então vai de nome sobrenome departamento e assim por diante agora voltando um passinho para trás onde nós temos os dados a mensagem o sucesso isso daqui é o nosso service responde por que que nós utilizamos isso bastante interessante utilizar porque quando o nosso front-end vamos utilizar aqui como exemplo que o nosso frontinho a gente fosse feito
em ângulo né quando nosso ângulo ele recebe esse esses dados a gente consegue tá trabalhando tanto com as mensagens como com sucesso que veio ou não da requisição a gente consegue estar utilizando esses dados para mostrar em tela informação para o usuário como por exemplo mas não temos um registro de 50 então perceba a gente não tem usuário 50 se a gente coloca um Execute ele vai retornar basicamente o nosso service responde os dados vão estar nulo Porque nós não localizamos em um usuário Então não teve dados para preencher ali o nosso funcionário móvel tá
então ele vem nula aqui sem problemas nenhum a mensal e daí vem uma mensagem formando o que que aconteceu o porquê que os dados vieram o mundo ah o usuário não encontrado e o sucesso que antes veio o true porque nós tínhamos conseguido realizar a operação da melhor forma possível veio como falso com esses dados aqui o nosso from a gente consegue trabalhar de uma forma muito melhor e não consegue já mandar essa mensagem para o usuário sem precisar criar no front uma mensagem estilizada já consegue filtrar de alguma forma o sucesso veio falso então
quando o sucesso vem falso a requisição não funciona de toda da melhor forma possível vamos já lançar tal exceção mostrar tal mensagem aqui para o usuário entendeu a gente consegue tá trabalhando de uma forma melhor ali no nosso fronte por isso que a gente utilizou esse service responde e vamos estar utilizando aqui no nosso desenvolvimento Tá bom então a gente vai criar essas duas Modas Depois eu mostro para vocês como que a gente desenvolve elas e começa a colocar elas em ação a nossa funcionário mode ou nada mais é do que os dados do nosso
funcionário Então vamos seguir criar o nosso ID uma forma de agilizar o processo é só colocar prop da Tab Tab ele já cria aí você só muda string da tarde de novo e daí coloca o nome da propriedade aqui que você está desenvolvendo então Aqui nós temos o nome string sobrenome nós temos aqui o departamento eu vou deixar o departamento como string mas daqui a pouco a gente já vai mudar tá bom porque o departamento o turno o departamento e o turno Eles serão e número a bolsa então eles vão ter opções específicas que podem
ser escolhidas Tá bom então vamos colocar aqui próprio para o nosso de ativo que pode ser zero ou um dependendo se o funcionário está ativo inativo uma própria string que eu vou colocar aqui de turno mas já vamos estar modificando uma própria de date time que vai ser o nosso data de criação esse data de criação Nós já vamos estãnciá-lo tá como sendo date time now ou seja o horário de agora né o dia a data de agora o tio louco ou time para ficar bem no formato correto e o próprio dente time também data
de alteração beleza aqui nós também já vamos deixar para louco ao time Então a partir do momento que a gente cria um usuário tanta data de criação como de alteração serão a mesma que vai ser basicamente a data atual do da criação a data atual horário atual agora a partir do momento que nós fomos criando alterações dentro do nosso funcionário essa data de alteração vai sendo atualizada de acordo com Quando essas alterações foram feitas tá bom Então beleza vamos salvar aqui a nossa móvel Ok a única coisa que nós precisamos conferir nela é o departamento
e o turno que serão inúmeras Então vamos criar aqui mais uma pastinha no nosso projeto não é ali O folder e o nome dela vai ser enuncia enumeradores Vamos criar o primeiro vamos dar um edicless daí a gente muda tá vamos criar primeiro o departamento então o nome que nós vamos colocar aqui é basicamente departamento criando a gente só muda essa classe aqui cara e não lembro de mudar essa classe para nenhum se não vai dar possíveis problemas Na continuidade e aqui a gente coloca os setores que nós vamos ter aqui no nosso projeto a
gente tem o RH tem o financeiro o compras atendimentos e zeladoria então o menu nada mais é do que uma lista de opções Então a gente tem uma lista de opções sistemas passa uma Mouse aqui em cima você percebe que ele já enumera automaticamente então o departamento é num ponto RH é como se fosse um index zero o financeiro index1 o 2 compras atendimento 3 ela adoria quatro tá lá no nosso front a gente pode estar utilizando isso daqui para criando opções tá é um box de opções ali basicamente onde a pessoa escolhe especificamente um
setor um departamento específico isso para a gente não ter nem chance de ter informação errada dentro do banco de escrever financeira errado ou compras errado ou criar um outro departamento totalmente fora do contexto da empresa então aqui a gente fixa que são esses os dados que podem entrar Tá bom então vamos dar um salvar aqui e daí aqui em vez de string a gente já sabe que o tipo vai ser um guepardo temos que fazer o usem aqui em cima perfeito departamento de um criado perfeitamente e agora vamos fazer exatamente o mesmo processo dentro de
anúncios criar uma nova classe só que dessa vez em vez de departamento será turno dentro do turno nós vamos ter basicamente amanhã tarde e noite tá então esses aqui que nós vamos ter perceba que o erro já aconteceu então se esse erro que aconteceu com vocês já sabe o que que é se basicamente esqueceu de colocar e num aqui em cima colocando em um erro já desaparece e o código já entende amanhã zero tarde um Noite 2 perfeito só passar de novo você se deu para ver aqui o zero e daí por diante que vai
aparecendo cada um dos index né Você pode tratar tanto pelo nome como pelo índice perfeito vamos salvar aqui nosso turno funcionar o models e daí aqui turno enorme perfeito então nosso funcionário mora ou tá criado perfeitamente é basicamente isso que nós temos aqui no funcionário Model e vamos criar o nosso service responde então é claro assim se já tá criada serve esse responde Lembrando que aqui no serviço responde além de colocar o público serve se responde a gente vai colocar aqui também esse tezinho falando que vai receber dado genéricos ou seja como assim dados genéricos
nesse projeto estou fazendo aqui agora a gente tem apenas o tipo funcionar o modo a gente só tem funcionários mas Se nós formos estendermos esse projeto aumentarmos em criarmos novas funções funcionalidades e por exemplo tivemos o tipo é produto móvel ou algo do gênero produto Model setores Model e assim por diante com dados diferentes a gente pode estar utilizando o mesmo service responde e também não teria muita lógica a gente criar um service exposto por funcionário um service responde pro produto para o serviço enfim o que mais a gente fosse criar se basicamente é a
mesma coisa sempre mas sempre os dados sejam eles quais forem uma mensagem de sucesso ou não e o sucesso falando que teve se teve sucesso ou não Tá então colocando dados genérico é basicamente estou falando que nessa classe ela pode receber qualquer tipo de objeto qualquer tipo de objeto ela pode estar recebendo Então ela pode receber um funcionário módulo da mesma forma que ela pode receber um futuro produtos Model se a gente vier a criar tá bom então é basicamente isso esse dado genérico aqui vamos criar Então a nossa própria um Public do tipo t
ou seja um dado genérico que pode ser nulo Porque a gente já viu que teve situações que foi nulo quando a gente buscou aqui um funcionário aleatório que não tinha no nosso banco usados veio o nome então a gente tem que informar para o service responde que isso daqui pode ser nulo também qualquer dado pode ser funcionário modo produtos modos e assim e afins como também ele pode ser nulo Então a gente vai basicamente de dados para esse cara que é embaixo vamos criar uma própria string que vai ser a mensagem essa mensagem Nós vamos
distanciar ela já começa com string você já começa sendo uma string vazia tá sem problema nenhum e nós temos um próprio que seria o nosso sucesso que ele já começa sendo verdadeiro ele já começa como uma requisição Ok deu tudo certo a gente espera já desde o início do Service responde que o funcionamento de tudo ok dê tudo certo de sucesso e daí a gente vai criar todas as nossas regras dentro do código para que caso dê algum erro ele se transforma em falso Tá bom então é basicamente isso nossas modas criadas modus e numeradores
criados OK agora a gente vai criar tudo isso daqui dentro do banco de dados ou seja o que que a gente vai criar dentro do banco de dados simplesmente a nossa funcionário móvel porque dentro do banco a gente não precisa ter o nosso server responde e o departamento já estão dentro do funcionário móvel então a gente basicamente precisa de uma tabela dentro do nosso banco que tem a todos esses dados aqui ou aí de o nome sobrenome departamento e afins perfeito Vamos colocar aqui em cima do nosso dia apenas a palavra que porque a gente
vai dizer que o nosso ID é Nossa primer aqui tá só reforçar isso daqui para o código para a gente saber que não o qual a coluna que vai identificar unicamente um usuário será o nosso ID pois temos que dar um erro só você passar o mouse por cima e vim aqui em show potente ao pixels ou dar uma Alt enter ou um contra o ponto eu vou dar aqui um out enter ele já mostra que as possíveis soluções a solução que nós queremos no momento é eu fazer esse uso desse data notation para a
gente conseguir colocar essa aqui Aqui tá bom perfeito vamos salvar agora como a gente vai estar utilizando o ente de Framework para tá realizando a criação do nosso banco através de migrações e assim por diante para fazer todo o processo do Coach nós precisamos instalar algumas alguns New Gates alguns espectros aqui você pode vir todos e o get New get Pet força vamos clicar aqui a gente vem browser e já pesquisa aqui a gente vai aparecer todos muitas partes né doente Framework a gente vai precisar desse primeiro aqui a gente fez a gente instala aqui
no nosso projeto sem problemas nenhum Vamos dar um install ok accept prefeita instalado nós vamos instalar também o SQL server que é o que a gente vai estar utilizando para estar realizando a conexão do banco porque o nosso banco é o SQL server o tools vai estar nos auxiliando para estar criando todos os as migrations e assim por diante e vamos colocar o design também então vamos esperar aqui instalar o touch e daí os design os homens perfeito creio que demais sejam esses pacotes que nós viemos a precisar caso mais para frente a gente precisa
de algum outro nosso código vai nos informar e a gente instala no decorrer do projeto tá sem problemas nenhum então instalado esses nuggets a gente vai começar agora com a conexão com o banco exatamente então para se conectar com o banco provavelmente Vocês já viram isso e assistiram outros projetos que foram realizados aqui no canal caso contrário vamos realizar do zero aqui para que vocês entendam como que esse projeto funciona como que esse processo funciona dentro da webpa vamos criar uma nova pasta Pera que eu fui em menos clique errado ali beleza dentro do nosso
projeto a gente vai clicar em ET em New Folder esse folder vai chamar data context e dentro do data contact nós vamos criar uma nova classe e essa classe vai chamar application livecountes perfeito então basicamente aqui que nós vamos colocar Vamos criar um Construtor para instanciar esse aplicativo de colocar todas as opções nele a gente conseguir distanciar ele na realidade lá dentro do nosso programa CS como também aqui que a gente vai colocar por exemplo a gente criou duas móveis foi o funcionário mode e o service responde só que eu não quero criar no banco
service responde então vai ser aqui na playlist que eu vou falar Ah não eu quero criar na minha no meu banco de dados uma tabela que se referencia a Tais models então específico quais modos que eu quero criar para não criar todas que muitas vezes vão ser desnecessárias vão ser só para aplicação em si tá então basicamente isso vamos iniciar aqui primeira coisa que a gente precisa é fazer uma herança né desse aplicativo que a gente baixou tá então é só dar um Alt enter aqui em cima que a gente já usa o nosso Framework
utilizando ele já tá tudo certinho aqui a gente só cria o nosso Construtor colocando setor e dando setor e dano da Tab Tab Você já criou o Construtor automaticamente o corpo desse Construtor ele vai ser vazio aqui dentro do corpo continua foi utilizada mas aqui no que esse consultor recebe a gente precisa colocar algumas informações primeira coisa que a gente precisa colocar é o libcom take options dentro desse espaço aqui a gente vai colocar o nome do nosso libcom que é o application vive com ele vai se chamar options e do lado de fora aqui
do parentes a gente coloca dois pontos bem de options esse processo aqui você vai decorar basicamente porque você usa Sempre quando você vai fazer uma conexão com o banco se você tá fazendo code first você vai utilizar essa essa configuração aqui tá parece algo que você vai decorar é algo que necessita doente de Framework tá para passar as informações aqui do nosso application de conta que tinha assim por diante Tá bom então isso daqui você vai acabar decorando e logo aqui embaixo a gente cria um público de bisset dentro desse tipo 7 a gente vai
colocar Qual é a moda que nós queremos transformar em uma tabela no nosso caso é a funcionário móvel out entra em cima do erro a gente já vê aqui o uso em que a gente precisa funcionário módulo vamos colocar aqui o nome de funcionários Sem problema nenhum e um get 7 perfeito criamos aqui então basicamente quando a gente rodar esse Debi context ele vai entender Ok Tem que criar uma tabela lá dentro do banco com nome de funcionários e ela vai vai ter a estrutura de um funcionário móvel Ok o que que seria a estrutura
de um funcionário móvel vai ter uma colônia daí de nome sobrenome departamento e assim por diante sendo que a coluna de vai ser a minha primer aqui basicamente isso que o código vai entender e vai fazer mas isso daqui não é o suficiente porque o nosso sistema ainda não sabe que tem que chamar esse aplicativo como também ele não sabe como se conectar no nosso banco não sabe qual que é o nosso banco Quais são as credenciais dele e assim por diante Então é isso que a gente vai adicionar agora vamos colocar as nossas credenciais
do banco que vão ser acessadas a gente vem aqui em ipsets basicamente aqui onde a gente deixa bastante dos nossos códigos sejam Chaves às vezes algumas questões nesse sentido quando a gente vai fazer conexão para envio de e-mail aqui a gente coloca as credenciais como também conexões Strings para o nosso banco tá a gente deixa geralmente aqui no F7 e o nosso código daí dentro do nosso código a gente vai acessando que tem né através das chaves tá bom é basicamente isso que a gente vai fazer vamos criar aqui no meio percebam que eu criei
mais mais uma vírgula aqui para criar um meio aqui você pode colocar em cima para colocar embaixo hoje eu coloco Eu geralmente coloco aqui entre o log e o lol hostis Então beleza vamos colocar aqui o nosso conexão então entre duas aspas abre um novo um novo objeto dentro desse novo objeto a gente vai criar um default Connection vamos chamar de The Falcon Action você pode chamar do que você quiser tá mas tem que lembrar este nome aqui porque a gente vai utilizar mais para frente e aqui a gente vai abrir a nossa conexão tá
então a gente basicamente vai colocar o datasurce que a gente vai usar data certa nada mais é do que o banco então você vai abrir que o SQL não sabe que banco é vem aqui em Connect ele vai aparecer o cybernem esse daqui é na nossa data certa copia tudo isso daqui coloca dentro aqui do nosso conecting então data Surf igual e daí o valor sem aspas nem nada tá então daí só coloca um ponto e vírgula e vamos para o restante colocar uma data base que é basicamente o nome do data Beijo que a
gente vai estar criando lá dentro do banco então eu vou colocar o nome de funcionários web aqui Então esse é o nome do nosso banco lá dentro que vai ser criado colocamos um ponto e vírgula Vamos colocar um transtorno Connection isso vai fazer com que a gente não precise colocar login e senha porque percebam que eu entro no meu banco com Windows authentication Eu não coloco uma senha e um usuário tá se você não for utilizar o Windows authentication daí você precisa colocar um login senha para acessar essa conexão aqui esse data acesse tá no
nosso caso um teste Connection já vai resolver Vamos colocar um script igual cálcio dois pontos e um Trash server certifique igual trouxa serve certinho porque eu coloquei esses dois porque pode ser que vocês estejam com algum problema de certificado aqui na aplicação de vocês então se vocês não colocarem vai dar um erro então para evitar que esse erro dentro a gente já coloca aqui desde o início então se você tem ou não algum projeto problema de certificado quando você baixou ali o visor estúdio o problema não vai acontecer com vocês Tá bom então é mais
fácil para a gente estar prevenindo Então coloca em cript falso e saber se certifiquei tipo se certifica de que tá tudo escrito corretamente porque se não estiver vai dar problema também na conexão Tá bom então vamos salvar e perfeito nossa conexão tá aqui outra coisa se você tem dificuldade em criar conexões com o banco essa Connection string aqui se você me viu SQL serve Object Explorer ele vai abrir aqui do lado no meu já tava até aberto aqui mas só que deixou carregar beleza aqui serve o objeto que Explorer e você conectar o seu banco
aqui você vai abrir o SQL server e o seu banco já vai estar aqui com o seu banco já aqui você só precisa clicar o botão direito e proprietes e daí aqui do lado já tem a conexão string se você copiar essa conexão string você vai ver que aqui tem várias coisas além do que a gente criou deixa eu mostrar aqui para vocês além do que a gente criou perceba tem muitas coisas aqui mas grande parte é o que a gente colocou ali então o nosso data certa a gente não colocou daria para tirar o
conect time out o tempo que vai tentar realizar a conexão aqui o incrível te falso já tá aqui certo nesse caso aqui já tá falso pode manter ou não tirei o erro para vocês vocês colocam aplication e assim por diante Então já tem bastante coisa aqui já para vocês a única coisa que você tem que adicionar seriam coisas relacionadas ao que você precisa dizer mesmo Qual é o data mês que precisa ser criado ou seja ele qual que vai ser o nome e o três conect Conection que vai ser uma conexão direta ali utilizando o
Windows authentication ou login e senha tá mas é uma forma de facilitar aí para vocês a criação da conexão streaming mas tem mais enrolação Conection criado corretamente agora a gente pode vir direto aqui no programa e fazer a instanciação ali do nosso application de becontic basicamente falar para o nosso aplication de becomtex O que que a gente tá falar para o nosso application de conta que basicamente Qual é a nossa Connection string e mandar ele já criar o nosso banco a partir das migrações Tá então vamos aqui no programa CS aqui em cima de variap
pode ser embaixo desse último builder service a gente coloca Builder aqui dentro a gente coloca o nome do nosso gibcom têxt basicamente é aplication aqui a gente coloca abre e fecha parênteses e aqui dentro um Option a setinha e abre o objeto mas a gente colocou options aqui percebeu que tá tudo se referenciando ao options que tem aqui tá bom então tá tudo se referenciando então utilizam os mesmos nomes para não dar erro ali para vocês daí dentro desse option a gente coloca um SQL server essa que ele serve porque a nossa conexão é com
banco de SQL server Alt enter a gente já dá um Usina no nosso frameworkcore perfeito um builder ponto configuration não precisa nem service vai ser builder ponto configuration perfeito é ponto get Connection string get Connection string e aqui dentro a gente coloca o nome da conexão string que é the fall Connection coloca aqui dentro para que não ter nenhum erro depois fecha aqui os parentes que estavam faltando e ponto e vírgula vamos ver o que que pode estar acontecendo aí era só tempo de carregar perfeito deu tudo certo então que a gente tá fazendo aqui
a gente tá basicamente falando para o nosso óbvio que a gente vai usar o e os SQL server a gente basicamente falando sobre é porque a gente me contas a gente falou quem que é o nosso aplicativo que é esse daqui Quem que é o nosso de contas né que é o aplicativo falou que as opções que é basicamente o que tá lá dentro do nosso application essas opções aqui elas vão estar utilizando SQL server e tá qual esse que ele serve como que a gente conecta esses dados a gente tem que pegar no nosso
Apps para isso a gente vem do builder que é builder ele faz esse web aplication então aqui ele já vai ter essa opção de configuration essa opção de configuration nada mais é do que o nosso ep7 então utilizando esse configuration a gente consegue acessar tudo que tem dentro do nosso ipset no nosso caso a gente quer pegar conexão string que já é padrão se Conection Strings essa parte aqui então colocando Connection string a gente já precisa falar com a que o elemento que está dentro se por exemplo aqui tivesse string e aqui tivesse asd é
basicamente falaria abre o arquivo de conexão que é o Web 7 dentro do arquivo conexão quer pegar o Connection Strings e dentro do conecting eu quero a SD eu colocaria a SD aqui é basicamente esse processo que tá fazendo Tá bom mas é óbvio sempre bom deixar nomes intuitivos perfeito então nas conexão com o banco já tá pronta no sentido de código a gente só tem que fazer ela rodar a gente vem aqui nesse pact Manager com som se não tiver aparecendo aqui para vocês esse pact Manager com som não tem problema é só vir
aqui New jetpacker e perto de manager com som basicamente isso vai abrir essa parte aqui que é onde a gente vai colocar as nossas igrejas e tudo relacionado aqui ao banco nessa questão agora né nesse momento Então a gente vai colocar basicamente um Edge do lado a gente coloca o nome da migração Vamos colocar um first Down Enter o build vai começar vai você aguarda aí nesse momento aqui que ele vai basicamente Está transformando o nosso funcionário model em uma tabela e vai abrir essa imagem aqui para nós e aqui você vai conferir se tá
tudo certo então basicamente que a gente tá fazendo Tá criando uma tabela com o nome de funcionários esse nome ele pegou daqui perfeito e as colunas são essas então o Edinho que ele vai servir como nosso aidêntica ou seja ali Nossa primer aqui É ele que vai identificar um usuário único o nome que ainda vai achar o sobrenome ele vai achar ele colocou do apartamento como índio o turno como índio porque percebam que quando a gente abre tanto o nosso turno departamento é num cada um pode ser o representado por um número por uma por
uma letra por uma palavra né para uma escrita por uma string que seria o RH nesse caso ou por um índice que é um número e é isso que o nosso igreja não tá entendendo tá o ativo que é um bit ou seja ou zero é no lobo é um bit um ou zero que é um bom no caso né pode ser verdadeiro ou falso que essa pessoa tá ativo ou não um date time basicamente aqui perfeito é isso que a gente queria e daí basicamente criou uma pecar aqui que basicamente vai ser o nosso
o nosso ID tá então basicamente isso e se a gente voltar na igreja a única coisa que ela vai fazer é basicamente dropar essa table como se nada tivesse acontecido Ok o é de imigration Tá ok você sempre faz essa verificaçãozinha para isso não tem nada errado verificou que tá certo só dá um update dessa vez é agora que vai dizer se a nossa conexion que tá certo ou não porque agora que ele vai lá no banco e vai tentar criar isso daí até agora que ele vai criar nossa vai utilizar efetivamente a nossa conexão
string vamos esperar dar um dano se der um dano deu tudo certo finalizou já é para a gente vir aqui no banco Vamos conectar aqui nele certinho Vamos dar um refresh data base para ver se criou tudo certinho nossa vez Lembrando que a data mês que tem que ter sido criada aqui que a gente colocou no Website é o funcionário funcionário web funcionário webpiar e criada com sucesso e é para ter uma tabela aqui dentro chamado funcionários vamos dar uma visualizada para ver se a gente localiza é para ser a única tabela aqui dentro na
realidade esse daqui é de outra tabela tá deixa eu fechar para não confundir essa tables para carregar aqui e aqui funcionário se a gente Clica com o botão direito aqui e dá um clicar aqui tá bem devagar aqui o nosso SQL server só dá um botão direito e Edite 200 linhas e tops 200 linhas vai aparecer todos que tem aqui no caso a gente não tem nenhum mas já percebe que a tabela tá criada perfeitamente aí de 9 sobre o nome do apartamento e assim por diante tudo que a gente criou na nossa moda perfeito
conexão do banco tá feita tranquilamente OK agora que a conexão do banco tá feita a gente vai começar a trabalhar efetivamente com as nossas controles as nossas interfaces e a nossa service perfeito então o que que eu vou fazer é para ficar mais fácil a explicação a gente já vai criar todas as pastas que a gente precisa para criar essa essa parte então eu já minimizei todo o restante que a gente não vai usar agora tá percebam que criou aqui uma pasta de migrações que é basicamente para você ter os dados que foram migrados tá
bom basicamente isso para você conseguir ver e analisar depois se você quiser igreja não tá ali todas as pastas criadas agora a gente vai criar as pastas do nosso service a pasta controles também que a gente acabou excluindo porque já tinha lá Weder fercast né então a gente queria a pasta do nosso controle e a pasta do nosso service Então beleza vamos iniciar já criando a nossa pasta de controle eles aqui vão usar um Folder controles Escreva um controles assim no plural bem certinho controles perfeito e uma nova pasta também só que dessa vez chamada
Service perfeito Isso aqui vai ser o nosso serviço Isso aqui vai ser o nosso controle Tá bom então beleza dentro da pastas controles e vamos criar efetivamente o nosso controle né que basicamente a classe que nós vamos estar utilizando como controlador Vamos criar aqui um controle dá para você usar aqui essa essa facilidade aqui de cima né em vez de criar um novo item e escolher um controle eu coloco aqui controle Não esquece de mudar aqui tá em mvc controle provavelmente de você já abra automaticamente nesse mvc controle é o que a gente quer uma
app e controle a gente clica aqui em API controle do zero aqui essa aplicação tá a gente coloca aqui o nome tem que ter o controle no nome tá então no velho onde aparece aqui automaticamente é onde você vai colocar o nome da controle e logo depois ela tem que ser seguida de controle aí então no nosso caso vai ser funcionário controle essa funcionário controle criado então basicamente aqui que a gente vai criar os nossos requisições então por exemplo se a gente cria aqui um http get e aqui embaixo um Public Action de get What
turn Oi então é uma coisa bem simples aqui tem que ser uma Action resort no retorno então coloca um OK Oi colocar entre aspas duplas Oi perfeito e dá um salvar aqui a gente consegue tá rodando nosso projeto nós vamos ver se que agora a gente tem de point get que basicamente não se torna Oi vamos dar uma observado para ver se funcionou aqui ó api funcionário get um trair out dá um Execute retorne nosso Oi é basicamente o controle que vai criar os nossos Tá bom então aqui ele cria os nossos só que a
lógica habitualmente o mais correto é não deixar aqui tá a lógica de conectar-se no banco pegar dentro do banco os dados trazer para cá mostrar ali no nosso Point essa Lógica tem que ser feita dentro do nosso service então por isso que a gente criou um service para isso tá então já vou deixar aqui já vou deixar esse daqui vamos deixar o nosso funcionário aberto e nada aqui na como primeira para ele não sair daqui de cima e vamos criar os nossos Services dentro do Service como a gente pode ter vários a gente vai criar
uma nova pasta nós vamos chamar de e dentro desse funcionário serve se a gente vai ter uma classe chamada funcionário Service como também dentro dela mesma nós vamos ter uma nova classe chamada ai funcionário interface e nem só muda aqui lembre de mudar nesse ai funcionário interface na verdade ela não é uma classe ela vai ser uma interface da gente só muda aqui na classe como interface e perfeito essa daqui é basicamente uma interface deixa eu fechar o projeto porque senão ele vai ficar dando esse errinho porque a gente modificou as coisas perfeito projeto fechado
então a gente tem essa interface a gente tem o funcionário service perfeito que vai os dois vão deixar pinados aqui então a gente vai trabalhar muito agora entre um e outro então a gente vai para o funcionário o controle para o funcionário service para interface no momento que a gente está criando uma nova a gente basicamente primeiro coloca no funcionário interface depois do funcionário service depois o funcionário controle Esse é basicamente o fluxo que nós vamos estar respeitando durante esse processo perfeito Então vamos lá primeira coisa o funcionário serve ele respeita ele respeita o que
tá no nosso aí o funcionário interface então basicamente uma interface nada mais é do que um contrato dentro desse contrato a gente vai ter todos os métodos que precisam ser implementados então toda classe que implementar essa interface vai ter que ter desenvolvido implementado todos aqueles métodos então é basicamente isso vamos então começar aqui com o nosso Interface para vocês entenderem um pouco mais como que isso funciona tá então aqui na nossa interface primeiro método olhando o projeto final a gente tem um get um get que esse get ele pega todos os funcionários que tem no
banco então vamos dar um Execute ele pega todos os dados os funcionários do banco perfeito Então a gente vai falar aqui que ele é uma teste a gente vai colocar teste porque a gente vai estar usando métodos assíncronos que seria uma boa prática também tá para que eles esperem realizar uma requisição no banco antes de prosseguir com o restante do código para não dar possíveis erros caso o banco demore responder e assim por diante essa tesc então é basicamente isso essa tese dentro dela o que que ela vai retornar tá ela vai retornar um servo
e se responde já vamos colocar aqui no nosso código serve esses pontos que que é lembrando né já criamos é uma Model onde vai basicamente é mostrar os dados da requisição Então ela mostra aqui que a gente recebeu os dados seja e qual for vai mandar ali uma mensagem se foi sucesso ou não e vai mostrar se for sucesso ou não tá E esses dados nos casos atualmente vão ser apenas de funcionário móvel Ok então é basicamente isso a gente tá falando que o retorno desse método vai ser uma testa Então a gente vai poder
usar métodos método assim cru né a nossa função vai ser assim Corona ele vai retornar um service responde e dentro desse service responde percebam que ele tem um dado genérico o que que vai ser esse dado genérico o que que nós temos aqui ele tá retornando basicamente o quê um service responde ok E dentro dele a gente vai retornando uma lista basicamente uma lista de funcionários módulo então o serviço exposto ele vai retornar uma lista do que de funcionários modo perfeito basicamente O Retorno Então a primeira coisa que você coloca o retorno daquela propriedade que
você tá criando daquele método depois a gente coloca o nome do método que você quer de funcionários abre e fecha os parentes e Ponte vírgula Prontinho criamos o primeiro método da nossa interface a gente já sabe que ela vai retornar isso daqui e esse vai ser o nome dela agora se você for no nosso funcionário serve você perceba que tem um erro porque porque no nosso contrato tá falando que a gente tem um método para ser implementado mas a nossa funcionário serve-se que assinou o contrato não tá implementando tá quebrando as regras Então beleza dando
um Alt enter aqui no interface a gente consegue implementar a interface e daí que basicamente aparece os métodos que a gente precisa os métodos que a gente precisa tá desenvolvendo que são os que nós temos no nosso contrato que seria a nossa interface perfeito então para ficar uma forma mais fácil nós trabalharmos e não precisava ficar vindo toda hora aqui na interface já vamos criar todos os métodos que a gente vai utilizar então o primeiro deles é o Gatti funcionários que a gente percebe aqui no nosso projeto base que a gente tem o Gatti funcionários
Total a gente tem um post também que é o de cliente um novo funcionário que basicamente ele vai re percebam aqui quando a gente faz um post a gente tenta fazer um post dá um Execute ele entrar exatamente a mesma coisa uma lista de response service com uma lista de funcionários models dentro um response com uma lista de funcionário Model dentro então vai ser basicamente a mesma coisa aqui tá porém o nome dele vai ser Create funcionário e diferente do método de cima ele recebe um parâmetro ele vai receber nada mais nada menos do que
um funcionário molho um funcionário modo que a gente vai chamar daqui mil funcionário Vamos colocar novo funcionário novo funcionário tá perfeito Então percebam por que que ele recebe um parâmetro veja aqui em cima quando a gente dá um trair out a gente precisa preencher os dados de um funcionário módulo antes de dar um Execute e mandar para o servidor que há então é isso que a gente está recebendo um funcionário Model e tá mandando daí para ser criado no banco outro método que nós temos é o get por aí De que é basicamente esse daqui
esse daqui quando a gente tenta pegar um a gente tem coloca aí de dar um Execute ele retorna apenas um usuário modo um funcionário móvel Ele não retorna uma lista então Diferentemente desses aqui de cima que retorna uma lista a gente vai colocar um teste para ser um método assim Bruno ainda assim ele vai retornar dentro de um Service só que em vez de ser uma lista ele vai retornar apenas um funcionário Model e aqui a gente vai chamar de get funcionário byed Então vamos retornar o usuário através de um id e o único parâmetro
que a gente precisa passar é o ID perfeita agora a gente tem um update funcionário nós temos então o editar um update funcionar o modem aqui a gente coloca um aí dica a gente quer editar o teste Então a gente tem que preencher aqui o funcionário Model inteiro certo e daí Execute ao executar ele vai retornar da mesma forma uma lista com todos os funcionários módulos incluindo o que foi é editado Então vai ser igual aqui de cima uma lista de funcionário modo a gente coloca update [Música] update funcionar e aqui da mesma forma a
gente recebe um funcionário móvel editado o funcionário vamos estar aqui o nome perfeito então basicamente isso nós temos também o método de Elite o deletar ele basicamente vai retornar a gente coloca aqui por exemplo 18 Vamos deletar o 18 ele vai retornar também uma lista de todos os funcionários módulos sem o usuário que foi deletado e ele recebe como parâmetro apenas um inteiro que é o ID do usuário então ele vai retornar uma lista de usuários conforme aqui em cima do Elite funcionário e ele recebe apenas o ID daquele que precisa ser deletado e por
último nós temos o inativa funcionário o inativo funcionário ele também ele vai retornar deixa eu colocar aqui o dois acho que tem um elemento 2 Vamos ver Aí tem sim tenho dois ele vai basicamente retornar uma lista de todos os funcionários modos e vai inativar o funcionário que foi repassado aqui no parâmetro do id Então como ele retornar uma lista vai retornar igual todos os outros a gente coloca inativa funcionário perfeito usuário é inativado criado com sucesso então esses vão todos os métodos que a gente vai ter no nosso controle aí então a gente já
colocou no nosso contrato dentro do ai funcionário interface já deu erro aqui então já vamos criar aqui a implementação da interface então percebam que agora todos os métodos estão criados aqui mas sem nenhuma lógica deixa eu diminuir aqui para vocês verem melhor todos os métodos estão criados aqui mas nenhuma lógica tá basicamente é jogando né enviando uma uma exceção falando que não tá implementado então perfeito a gente vai implementar daqui a pouco Porém Aqui no service como eu falei para vocês fica toda a lógica então é observa-se que vai se comunicar com o banco de
dados por exemplo mas para que nós consigamos nos comunicar com o banco de dados é necessário que a gente coloque o nosso application de becontic que é ele que tem o contato com o banco de dados aqui dentro dessa [Música] dessa classe perfeito então aqui em cima a gente cria o Construtora perfeita a gente vai fazer uma injeção de dependência que nada mais é do que a gente receber dentro do Construtor o que a gente quer utilizar ou seja qual outra Classe A gente tá querendo utilizar que tem outros métodos no nosso caso é o
context aplication de contas demos o nosso usem tá basicamente pegando aqui do data context perfeito a gente vai chamar ele de context mesmo foi feito e daí aqui em cima a gente cria uma nova um novo elemento privado apenas para leitura que é do tipo application de becontix só que esse daqui a gente vai chamar de Underline contest então basicamente quando a gente pega no nosso Construtor o nosso context a gente transforma esse elemento que a gente criou dentro da classe A gente fala que ele recebe o que vem desse context basicamente isso então quando
a gente for usar dentro do nosso código esse underline contest a gente vai estar usando nada mais nada menos do que o nosso application de contas Então a gente vai ter acesso a todos os bancos que nós temos criados no nosso caso apenas esse daqui o funcionários perfeito e como a gente já fez toda a migração ele já tá basicamente conversando com o nosso real data mês com o nosso SQL certo então vamos fazer aqui o processo aí beleza voltamos aqui ok então nosso context tá aqui vamos criar Primeiro vamos deixar diminuir isso daqui vamos
Minimizar só para ficar um pouco melhor para o nosso entendimento Nossa leitura como que tá travando aqui beleza aqui vamos Minimizar todos menos o get funcionários que é ele que a gente vai fazer primeiro que é o retorna a lista de todos os funcionários que nós temos tá Então beleza vamos no Gatti funcionários o gate funcionários vamos tirar esse troll perfeito lembrando como a gente colocou teste aqui a gente precisa que o método seja assim Senão ele vai dar um erro no decorrer do desenvolvimento então a gente coloca o assim que aqui perfeito e daí
aqui embaixo a gente começa o desenvolvimento percebam que a gente tem que retornar desse método um service responde uma lista de funcionários módulo dentro de um service responde perfeito então a gente precisa criar um elemento desse tipo aqui dentro do nosso método Então vamos criar um elemento desse tipo vamos copiar aqui colar serve-se responde um funcionário modo uma lista de funcionário do modo dentro do Service responde isso que a gente vai retornar Então vamos dar um nome de service responde e esse elemento nada mais é do que um service responde uma lista de funcionários modo
dentro de um service responde então a gente já criou é esse elemento que a gente vai retornar porém ele por enquanto está vazio que a gente tem que colocar os dados dentro dele para isso a gente vai criar um Track traquete por quê Porque caso tenha qualquer tipo de erro seja na conexão ou qualquer tipo de erro que pode acontecer na usabilidade do nosso projeto a gente consegue tá filtrando esse erro no decorrer aquele acontece Em vez dele já jogar uma exceção para o usuário que muitas vezes pode acabar não entendendo o que que elas
são quer dizer ele basicamente vai cair nesse Cat e aqui a gente consegue estar tratando para quando enviar para o usuário enviar de uma forma um pouco mais Serena por assim dizer perfeito Então OK agora a gente precisa colocar os dados dentro do nosso service responde basicamente eu tô falando Tô chamando esse cara aqui como ele é um New service responde ele vai ter algumas propriedades ele vai ter o dados vai ter a mensagem e vai ter o sucesso no nosso caso a gente quer os dados O que que a gente vai falar os dados
dentro desse servo esse response a gente vai pegar de dentro do conta que é o nosso banco que a gente colocou aqui dentro do nosso da nossa injeção de dependência ponto a gente vai buscar o nosso banco de funcionários e lá dentro do funcionários a gente vai dar um ponto turístico perfeito então basicamente a gente vai colocando dentro do nosso serversidades uma lista de todos os dados que tem dentro da tabela funcionários basicamente isso que a gente está falando então se basicamente a gente der um retânia aqui embaixo de Service a gente já vai estar
enviando caso ele caia no try e aqui dentro do try deu tudo certo ele vai enviar basicamente um server esse responde aonde a mensagem vai ser um texto em branco que a gente já deixou o como vocês verem que string já começa com texto em branco a mensagem o sucesso ele já vai ser tu porque deu tudo certo passou e os dados vão ter todos os dados que tem no banco tá então é basicamente isso aqui na parte do get funcionários e a gente pode colocar um Cat caso de algum tipo de erro a gente
coloca um service responde o mesmo serve esse responsa que a gente tá usando aqui em cima por isso que a gente cria ele fora do Poder reutilizar a gente coloca um ponto mensagem ele vai ser este x.messas que é basicamente a mensagem e exceção que veio ou o erro que aconteceu e também a gente já troca Então se cair no CAT a gente já manda mensagem de erro dentro do response como também uma mensagem o sucesso como falso perfeito então o funcionário service já tá implementando aqui um dos métodos completos do que tá no nosso
contrato e agora o nosso controle precisa pegar ele então beleza vamos dar o mesmo nome lá no controle ele vai ser um método get ainda só que o nome dele vai ser esse cara aqui porém percebam da mesma forma que no funcionário serve se eu precisei fazer uma injeção de dependência para acessar o application de Beco context dentro do funcionário controle eu preciso também de uma injeção de dependência para conseguir acessar o meu aí o funcionário Interface para conseguir daí então pegar todos esses métodos e utilizar todos eles perfeito Então é isso que a gente
vai fazer aqui no início a gente queria da mesma forma um controlador um controle que a gente recebe um ai funcionário interface um out entra que a gente coloca o nosso usem nosso chamar ele funcionário interface mesmo e aqui a gente queria propriedade onde ele vai ficar dentro então vai ser uma aqui é melhor não utilizar próprio que é bem mais diferente né é um primer funcionário service só que aqui ele está buscando um o nosso funcionário service classe o que a gente quer é o ai funcionário interface beleza buscou então basicamente esse alimento que
a gente criou dentro da classe vai receber o que vem do contra o Construtor Ok já tá utilizando aqui porém outra questão o nosso código Diferentemente do aplication de Beco contest que o nosso programa CS ele já entende com o aplication de Beco context tá pegando os dados lá da nossa Connection string assim por diante então ele já sabe que quando eu faço uma injeção de independência do aplication de becomtect eu tô querendo os dados que estão dentro do meu banco que foi criado numa conexão numa Connection string específica o aí funcionário não porque porque
não tem nada no nosso programa CS que fala que a interface aí o funcionário interface se referencia a classe funcionário service não tem nada dizendo isso então vai dar um erro tá como que a gente faz para solucionar esse erro a gente vem no programa CS e a gente vai basicamente falar para ele ó quando eu fizer uma injeção de independência da interface aí funcionário service aí é funcionário interface eu quero que seja utilizado os métodos que estão na funcionário service para isso é só colocar um builder pronto serve é de school e daí dentro
desse é desculpe a gente coloca que aí funcionário interface se comunica com o service com funcionário Service a gente faz toda as nossas os nossos usens e perfeito então aquilo tá entendendo Ok quando fizer uma injeção de dependência do funcionário interface eu tô querendo utilizar os métodos que estão dentro do funcionário service fechou é basicamente isso e daí aqui dentro do controle basicamente o que a gente precisa fazer é utilizar o método que está dentro do a e funcionário interface Então a gente vai permanecer dando um return um ok no return só que aqui dentro
a gente vai colocar primeiramente esse aqui vai ser um método a sincro tá para a gente ter aquele poder ter o leite conforme eu falei para tá esperando a requisição ser feita tudo certinho para depois mostrar para o usuário tem que dar um ok Away underline funcionário service ou seja Estamos pegando esse cara aqui ponto e já até mudar o nome porque nós usuário service né é entre Face que aqui a gente tá pegando a interface daí a interface vai usar os métodos da service perfeito funcionário sério interface underline funcionário interface perfeito e ponto você
percebe que a gente tem acesso a todos os métodos só que o único método que a gente desenvolveu foi o gate funcionários e daí dentro do GAP funcionários a gente não recebe nada né como a gente vê quando a gente quando a gente criou aqui o método a gente não recebe nada então é um vazio mas perceba que o erro ainda continua aqui porque porque aqui até o momento a gente tá falando que vai retornar um Action só que a gente vai retornar um Action Ok mas ele tem um tipo o tipo dele é o
quê é uma lista de funcionários Model dentro de um service responde e uma tese que além de tudo porque é o método assim krono então basicamente a gente vai colocar que é uma pesca é igual o que a gente fez lá antes só que a única diferença é que a gente tem aqui Um Action result Por que que seria esse Action Resort é basicamente o resultado da ação quando a gente dá ok ele vai mandar o status code 200 se a gente colocar por exemplo um Bad request ele vai aparecer lá no nosso nosso indicoint
no nosso Swagger o status code de 400 e assim por diante é uma forma melhor de estar mostrando para o usuário é qual foi o resultado da operação se deu certo se não deu e assim por diante tava diferença de colocar um Action aqui é só tem que colocar basicamente qual foi o resultado da operação deu Ok deu Bad request deu not falls e assim por diante Tá bom então dentro do Action result a gente coloca exatamente o que a gente colocou lá dentro do nosso funcionário service que é basicamente isso aqui serve esse responde
lista funcionário móvel tá bom é basicamente esse cara aqui que a gente vai colocar lá dentro a gente coloca aqui o s vamos fazer a nossa os nossos usos Talvez os nossos feche abre aqui esse chapeuzinho aqui também estejam um pouco mais um pouco menos Beleza então usem as modos perfeitos Acredito que esteja certinho tá abrindo e fechando todos eles Então abre e fecha abre e fecha abre e fecha beleza tudo certinho então a gente vai basicamente retornar todos os registros E é isso que eu falo quando eu digo sobre boas práticas percebam que o
nosso controle ele ficou extremamente enxuto Ele só tá dando um retorne nada mais que isso perfeito Então se a gente rodar o nosso projeto então perceba que aqui já aparece todos os nossos esquemas os departamentos tendo um funcionário móvel o funcionário modo lixo e serve esse turno e assim por diante e aqui em cima temos o nosso método get Agora se a gente deu um trair out e um Execute então basicamente como eu não tenho nenhum dado no nosso banco ele retornou basicamente uma lista vazia só que ele não retornou nenhuma mensagem foi sucesso foi
sucesso eu não conseguia até o banco a única coisa que o banco tá vazio não tem nada lá dentro que realmente é verdade e isso não tem nenhuma mensagem o que a gente pode fazer aqui nesse caso é basicamente aqui dentro do nosso funcionário service dentro do nosso funcionários a gente pode colocar um WiFi no nosso service responde ponto dados foram igual a zero ou seja não ter nada né zero registros a gente pode colocar no nosso service mensagem a mensagem de sem dados sem dados encontrados nenhum dado encontrado nenhum dado encontrado o sucesso permanece
sucesso porque operação foi feita corretamente a única questão é que não trouxe nada colocando essa mensagem a gente consegue já tá tratando dentro do nosso front nenhum dado encontrado perfeito sucesso dados vazio Ok então esse método aqui já tá criado fechou Vamos criar agora o nosso que daí no Create a gente consegue estar testando mais né Porque daí a gente consegue colocar dados dentro do banco e ver tudo acontecendo mas aqui a gente já consegue ver que tá entrando dentro do banco de dados porque ele realmente entrou lá e viu que não tem nada lá
dentro não deu nenhum tipo de erro simplesmente não achou nenhum registro O que é realmente é verdade né OK então agora vamos fazer o método de Create Então dentro do Service a gente vai tá desenvolvendo esse carinho aqui vamos tirar esse troll esse Action Vamos colocar um assim que aqui da mesma forma tá porque tem que ter assim que você não vai dar um erro mais para frente então sempre lembrem dessa questão dentro do Create perceba que a gente vai receber um funcionário novo que vai ser preenchido lá pelo usuário e é com esse funcionário
novo que a gente vai trabalhar tá a gente permanece tendo que retornar uma lista de funcionários então a gente vai precisar também criar esse elemento aqui que a gente vai encher ele de acordo com a nossa lógica aqui embaixo tá então a gente vai criar basicamente um funcionar uma lista de funcionário modo dentro de um service responde que é o que a gente vai retornar Vamos abrir o nosso track da mesma forma o traquete vai ser a mesma coisa vai ser um servers Responda onde a mensagem vai ser a mensagem de erro e o sucesso
vai ser falso e logo aqui embaixo a gente dá um retorne serve-se o esboço perfeito então é basicamente isso vamos só fazer o a nossa lógica do dentro do trying O que que a gente vai fazer basicamente a gente vai dentro do nosso banco e vai dar um Edge um édio que é um Edge meu funcionário novo funcionário que é basicamente o elemento que a gente está recebendo aqui na nossa moda a gente coloca novo funcionário e dá um ao leite por quê que pensa a gente está adicionando no banco só que a gente ainda
não salvou então aqui a gente adicionou mas não salvou ainda para salvar o dado a gente dá um alite vai no banco da mesma forma e um save Changes sendo que você colocou um alway aqui ele vai dar um erro tem que ser assim Bruno Ele vai esperar basicamente esse processo de salvar acontecer e depois que esse processo salvar daí a gente continua o fluxo tá então é interessante deixar isso daqui porque às vezes tem muita gente utilizando do nada no nosso servidor para ou algo do gênero ele vai não vai continuar todo o processo
e acabar dando vários outros erros ele já dá o erro ali não a gente tentou fazer isso daqui tentou até o final não conseguiu deu o time out ou seja o que for e daí manda mensagem tá bom perfeito agora é que a gente salvou esses dados a gente lembra que a gente tem que retornar uma lista de funcionários modos dentro de um service responde ok então a gente vai pegar o nosso Service serve ponto dados e ele vai ser igual ao que ao que tá dentro do nosso banco ponto funcionários ponto chlist então depois
que eu adicionei o meu elemento lá dentro depois que eu solvendo banco eu vou fazer uma consulta geral no banco novamente e é essa consulta geral no banco novamente que eu vou estar retornando então basicamente isso sem problemas nenhum outra coisa que eu posso estar fazendo aqui no IF aqui em cima é um if o novo Funcionário é igual a um porque se for igual a nu a gente já sabe que alguma coisa deu errado a gente pode retornar o nosso service Vamos colocar aqui em cima primeiro que o server sponso mensagem é informar dados
ponto sucesso colocam falso que realmente não vai ter dado certo fazer por conta de tudo e o servers pontos ponto dados a gente coloca como num que daí a gente não tem então a gente só dá aqui um eterno serve seu esposo ele nem continua todo o processo ele já vai direto lá para o controle ele manda essa mensagem aqui para o usuário perfeito então serve aqui no funcionário service tá certo aqui no Crate funcionário a gente só volta daí então no controle só para utilizar esse método lá no controle então perceba que dessa forma
toda a nossa lógica Fica num lugar só e o controle é basicamente pega essa lógica e utiliza como nós somos utilizando um cliente o http o método de requisição que a gente vai estar utilizando é o post então a gente cria o post que você basicamente um Public vai ser igual que tá aqui em cima basicamente porque ele é assim Carol e ele vai ter retornando também uma lista de funcionários modo dentro de um service responde a única diferença é que o nome vai mudar Vai ser Create funcionários onde estão o mesmo nome não precisa
necessariamente estar o mesmo nome tá nesse caso mas seria uma boa prática deixar assim sabe certinho o que que tá chamando o quê e perfeito aqui no cliente então beleza aqui dentro do Service do que que funcionário a gente tem que receber então o nosso funcionário modem novo funcionário que é o que a gente vai estar enviando lá para o nosso para o nosso service só que a gente pode dar um etern ok coloca o wait porque a gente criou como a síncrona aqui em cima e daí funcionário serve o nosso intelec Cold já já
completa aqui para nós funcionar interface lá dentro a gente vai pegar o Create funcionar e vai mandar o nosso novo funcionário perfeito e daí vai retornar obviamente do como a gente já viu dentro do nosso service uma lista de todos os funcionários que tem até o momento Então vamos dar um salvar percebam que o post foi criado ou usar um troyout não vou preencher nada vou deixar zero mesmo vamos ver se vai fazer a criação automática daí de um então Execute perceba a de um criou agora já tá no banco percebam que se agora eu
fizer o nosso GAT todos os funcionários ele vai vir certinho os dados porque como podemos ver aqui no nosso banco aqui a gente dá um Execute SQL agora a informação tá aqui então tá funcionando corretamente tá se comunicando com o banco e esse aquisições estão acontecendo Então perfeita agora basicamente fazer o restante das requisições que vai aparecer bastante repetitivo Em alguns momentos porque basicamente a gente tá realizando mais ou menos a mesma questão Então como a gente já fez o get funcionários no geral e já fez o cliente Vamos criar o get um funcionário específico
antes para a gente conseguir testar melhor vamos já criar aqui uns vários funcionários criamos aqui alguns um dois três aqui cinco funcionários criados perfeito a gente vai conseguir daí fazer uns testes melhor das outras operações então a gente vem aqui no funcionário service Beleza o cliente funcionário já foi desenvolvido Vamos criar agora o Gatti funcionário byed então eu recebo aí dia específico e daí retorno basicamente só aquele funcionário percebo que agora é diferente eu não tô retornando uma lista de funcionários mas um funcionário específico perfeito vamos apagar esse troço Action vamos deixar aqui Como assim
por ser uma testa Ali vai ficar modo a síncrono e basicamente aqui a gente vai criar também um Service só que em vez de ser o tipo de uma lista de funcionário módulo ele vai ser basicamente um service responde de funcionário Model único vou chamar de service de funcionário Model perfeito aqui ele tá vazio mas a gente já vai encher ele com informações mesmo processo do nosso troycat Exception e x o nosso Cat é a mesma coisa é a mensagem a uma mensagem vai ser a mensagem de erro e sucesso vai se transformar em falso
aqui na parte de baixo a gente só dá um retâneo no nosso Service beleza e aqui no train a gente queria toda a nossa lógica do nosso caso a gente vai querer colocar o nosso funcionário móvel Então a gente vai criar um tipo de funcionário móvel uma variável do tipo funcionário móvel e essa variável vai receber nada mais nada menos do que a gente a gente vai fazer um select no banco é isso que a gente está fazendo aqui a gente vai pegar o nosso context vai acessar o nosso banco de funcionários E dentro dele
eu quero pegar o primeiro ou de folder seja respeitada qual regra eu só tenho o ID eu sei que o Eid é de único para cada funcionário então se eu fizesse um select no banco aonde o ID fosse igual a um que Digamos que eu recebo é de um aqui e daí eu quero corrigir do banco seja igual a um eu vou receber aquele funcionário específico e é o que eu vou dizer aqui então aqui a gente coloca só um x tracinho x ponto aí de é igual o ID que eu tô recebendo o que
que eu falei aqui quando eu falo underline conta que funcionário foi achou de fogo e coloca esse x esse x nada mais é do que um funcionário móvel perceba ele vai ser um funcionário móvel que tem dentro do banco só que eu ainda não sei qual o funcionário modo mas ele vai ter basicamente todas as propriedades com funcionário Model tem então basicamente quando eu coloco x ponto xponto ele vai ter todas as propriedades que um funcionário Model tem só que eu quero o ID que é o único e daí eu falo que basicamente esse funcionário
morde que eu selecionei dentro do Banco esse aí dele ele tem que ser igual ao ID que eu recebi por ser único vai retornar apenas uma pessoa tá em um funcionário e ele vai ser armazenado dentro dessa variável aqui tá então é basicamente isso que a gente fez então basicamente se o funcionário tá ali eu posso colocar um server os pontos dados vai ser igual ao meu funcionário ao meu funcionário ali perfeito já coloquei dentro dos dados já vai retornar perfeitamente porém a gente tem que pensar também na possibilidade de esse funcionário não existir então
a gente pode colocar um if aqui aonde o funcionário é igual a não se o funcionário for igual a não é basicamente o seguinte a gente pega o nosso server os pontos dados vai ser igual a nu não tem serve mensagem usuário não localizado não localizado e serve os pontos sucesso Vamos colocar um falso porque o sucesso dessa operação é retornar um dado é retornar um usuário específico se eu não retornei não teve o sucesso esperado então um falso vamos dar um esse erro deu porque o nosso processo um projeto tá aberto tá então vamos
fechar aqui o projeto e daí fica mais fácil não fica dando aquele erro ali é OK funcionário service feito aqui o nosso get funcionário baid dentro do controle basicamente a gente pode vamos copiar só um nome vamos copiar daqui que daí fica mais fácil e aqui a gente faz na prática também fica melhor para vocês entenderem eu vou fazer o get aqui em cima para ficar perto do get geral então perceba se eu coloco http e aqui embaixo coloca o público Vamos criar o método né Assim que desce ele vai receber basicamente um Action result
que é aquele ok que eu falei para vocês OK assim por diante dentro vai ser um tipo de server os pontos e dentro do serviço pontos não vai ter uma lista vai ter apenas um funcionário móvel um único funcionário módulo e aqui Gate funcionário acredito que seja esse nome apenas com o get funcionário baid beleza e a gente recebe o nosso ID tá perfeito então é basicamente isso só que percebo que esse get ele tá igual ao get de baixo no nosso projeto base não é assim que funciona a gente tem dois Gets mais um
é api funcionar apenas e o outro é para ir funcionar e daí recebe um parâmetro ID para fazer isso a gente coloca basicamente aqui dentro do nosso pivete um entre parênteses entre aspas e dentro das aspas entre Chaves que é o elemento que a gente vai receber tá então a gente já diferencia as rotas é necessário fazer essa diferenciação se não é como se o mesmo endereço levasse dois lugares diferentes fossem acessados por o mesmo endereço é isso poderia dar problema com certeza daria problema na realidade tá então basicamente se atentar a essa questão ok
daí agora se a gente basicamente pegar que o usuário a gente vai basicamente pegar um usuário módulo do tipo Service do tipo funcionário Model a gente pode colocar aqui como seu nome que a resposta ali do nosso serviço e daí a gente coloca aqui um ao eixo funcionar interface .guete funcionariodi pensando aí de que a gente criou que a gente colocou ali no nosso parâmetro então é basicamente vai ser desse tipo aqui porque é o que o service está retornando é aquele tipo serve-se funcionario a gente criou aqui no nosso controle ele vai estar recebendo
que o nosso server se vai estar buscando lá dentro do banco e daí depois vai estar dando um etern Ok service Ok fechar certinho então daí agora se a gente roda o nosso projeto a gente vai estar conseguindo buscar Lembrando que a gente criou cinco elementos fictícios aqui no banco né quando a gente tava ali pelo nossa própria api o 5 já estão aqui dentro perfeito então ao rodar o projeto que esse projeto aqui ele tá carregando aqui beleza aqui a gente tem o Api funcionar três dá um Execute e beleza três é retornado aqui
para nós tá bom então perfeito então três métodos aqui já desenvolvidos Lembrando que a gente tem aqui ainda um pouquinho mais para fazer vamos criar aqui então a gente já fez os gats Vamos criar o inativar Vamos criar o inativar agora a ordem que você queria não muda muito só que interessante é você primeiro eu consegui listar os usuários para você conseguir testando melhor que só criou de Nativa mas eu não tenho nenhum usuário para inativar eu não consigo testar o inativa até que eu tenho um usuário e para eu criar um usuário eu preciso
ter criado o método de Create e assim por diante vai mais por essa lógica Então beleza tirar da mesma forma que o troll colocar o assunto da mesma forma aqui embaixo negativa funcionário a gente vai retornar uma lista de funcionário móvel então a gente precisa criar esse método aqui mesmo criar uma lista de funcionário móvel cria o nosso try e o nosso Cat coloca aqui um Exception x perfeito o retorno vai ser a mesma coisa que no caso do cat então é x Messias então a mensagem de erro falso Vamos dar um server a gente
vai colocar o nosso toda nossa lógica dentro do inativar ok então beleza para inativar um usuário primeiro eu preciso saber que o usuário é esse Então a gente vai pegar no banco esse usuário funcionário modo é igual ao context ponto dentro da tabela de funcionários um first ou the fall e aquilo existir significa um funcionário Model tem todas as propriedades x ponto a ID ele tem que ser igual aí de que eu tô passando fazendo dessa forma eu basicamente tenho o meu usuário que eu tô querendo inativar mesmo processo se esse funcionário for igual no
ou seja ele nem existir no Banco por alguma razão coloquei ali aí de errado Ele é igual a um tá errado então eu já consigo pegar o nosso service mesma coisa que tá aqui serve esse ponto dados assim quando a mensagem vai ser o usuário não localizado e o sucesso vai ser falso a gente já coloca aqui perfeito e aqui embaixo se a gente achou basicamente a gente pega esse funcionário o ponto ativo dele a gente muda para falso porque porque eu tenho que estar inativando então um funcionário que tá ativo a gente tá inativando
ele e daí logo depois a gente coloca um funcionário o ponto da tua alteração igual a dente terminal ponto time assim porque a gente tem a data de alteração se eu inativei eu tenho que colocar na data de adoração a data de hoje que foi a data que eu fiz alguma alteração naquele registro é basicamente isso mas beleza eu alterei o funcionário tá tudo certo só que no banco ainda não alterei eu basicamente eu tirei do banco funcionário alterei ele aqui no código mas não mandei ele atualizado para o banco e é isso que a
gente vai fazendo a gente faz um contact ponto funcionários com update Então a gente vai dentro da tabela de funcionários vai fazer um update lá dentro e quem que a gente vai dar o update no funcionário ele te manda um funcionário com os dados atualizados porque esse funcionário que eu tô mandando aqui ele tá com o ativo falso agora e a data da alteração atualizada e daí basicamente a gente coloca aqui o nosso alway conta que os pontos save Changes assim para salvar essa operação que a gente realizou tá bom E como a gente tá
retornando uma lista de funcionário móvel depois que eu fiz toda essa verificação busquei no banco não tá nulo coloquei falso alterei data de alteração coloquei no banco dado novo e salvei o dado lá eu vou agora sim pegar o nosso service pontos dados que vai ser uma lista como a gente viu aqui uma lista de funcionário móvel dentro de um service responde e vou fazer basicamente um select no banco novamente funcionários que ele vai pegar os dados atualizados Don save aqui no funcionário controle a gente vai fazer a mesma criação como ele está retornando uma
lista copiar esse daqui de cima aqui a gente está colocando o inativo funcionários Nativa funcionário O que que a gente está recebendo para inativar um funcionário apenas o inchade a gente só recebe o ID para estar realizando essa inativação aqui em cima a gente vai tratar ele como httput que seria o Jump date e perfeito e daí aqui basicamente dentro do controle de inativo funcionário a gente vai estar recebendo o nosso Service do tipo list e dentro dela temos o nosso funcionário módulo esse é o nosso cérebro os pontos aqui e ele vai ser igual
ao nosso funcionário interface ponto inativa funcionar e dentro dele a gente passa o nosso tá então a gente tem que colocar aqui aí beleza porque é um método a 5 minutos de forma sincro né a gente vai estar buscando ele lá ao Eight perfeita e daí a gente retorna um OK Service perfeito uns review Day aplicar as modificações percebam que todos os nossos usuários aqui dentro do banco estão ativos a gente vai usar como teste aqui o usuário número 3 Vamos abrir aqui ó api uma coisa que eu esqueci ali a gente vai ter um
de editar funcionário vai ter um pote de edital funcionário para inativar o funcionário no nosso caso a gente não mudou na nomenclatura mesmo a questão coloca aqui entre parênteses entre aspas inativa funcionário como aqui não é um parâmetro que a gente tá pegando aqui nesse caso aqui específico a gente pode colocar Só O negativo vai funcionar assim já vai mudar o Nossa o nosso URL por assim dizer tá por isso que eu não coloquei entre Chaves vamos salvar aqui vamos ver agora beleza é isso que a gente criou Vamos dar um Troy out três perceba
que nosso funcionário tá ativo ainda dou um Execute carregou o nosso três agora tá falso como vocês viram aqui se eu dou uma atualizar aqui no banco ele tá falso tá inativando corretamente perfeito método de Nativa funcionário funcionando da forma que tem que ser OK agora o próximo método que a gente vai estar modificando e atualizando aqui vai ser o método de inativo até feito update Create Vamos fazer um update ainda a gente não criou aqui o update tira o Exception da mesma forma coloca um assim e vamos lá então aqui dentro basicamente a gente
vai estar retornando no do update a gente vai estar retornando uma lista de funcionário módulo que a gente está fazendo aqui na parte de cima uma lista de funcionário móvel a gente cria o nosso trike Lembrando que a exceção permanece a mesma aqui então o server mensagem Fica mensagem de erro sucesso falso aqui isso daqui basicamente é o que a gente já tá fazendo aqui nas últimas né então beleza então para update a gente basicamente precisa pegar o funcionário que a gente tá fazendo update para gente porque a gente não vai atualizar todos os funcionários
de uma vez Então a gente pega o funcionário que a gente vai realizar o update são basicamente a gente faz aquele select no banco a gente vem um funcionários ponto first aí de tem que ser igual ao nosso editado o funcionário ponto ID que dentro desse ditado funcionário ele tem todos os dados do funcionário incluindo o ID dele então é a mesma coisa é o ifo funcionário seja igual a no mesmo processo funcionário não localizado não tá ali então vamos seguindo a gente pega esse funcionário e ponto data de alteração a gente coloca o dente
terminar Outlook a gente tá alterando esse funcionário agora e daí a gente faz um ponto funcionários ponto update e daí a gente manda o editado funcionário aqui para dentro Tá e agora só é necessário dar o eixo para a gente salvar todos os dados então assim que porque a gente está colocando um ao ente ali e basicamente a gente pega os dados novamente do banco para a gente fazer todo aquele select então underline contem funcionários ponto chulish nos stoparem o nosso projeto ponto e vírgula aqui certinho daí no nosso controle mesmo a questão a gente
vai estar retornando uma lista Então a gente vai usar o mesmo o mesmo processo Vou colocar aqui em cima eu update funcionário e recebe o funcionário inteiro editado o funcionário Vamos abrir aqui o nosso corpo e aqui a gente coloca httput pode colocar Só httput porque aqui vai ser alternativa funcionário esse daqui vai ser o geral que a gente atualiza o funcionário ensina todos os dados dele não apenas o dia desativar tá então é basicamente isso que a gente tá fazendo aqui dentro do controle Então dentro da operação já tá aqui que a gente vai
retornar uma lista de funcionário no modo dentro de um service responde então basicamente você que serve os pontos [Música] funcionário móvel update colocar service aqui como nome que a gente está usando como padrão ele aqui um Telecine já pegou então a gente tá indo dentro do interface tá pegando update funcionário e colocando o nosso funcionário editado e aqui a gente só dá um ok perfeito editado foi criado Então se a gente abrir ali o nosso projeto vamos rodar ali só para a gente ver se tá tudo funcionando perfeitamente daí agora vai ficar faltando a gente
é executar apenas o método de delite pelo que eu entendo por aqui beleza só falta o de deletar mas vamos ver se update está funcionando corretamente então aqui temos o update Vamos ver que dado vamos pegar aqui um select em tudo beleza a gente tem aqui Um vamos editar o dois vamos editar o dois tá curte esse daqui trair out a gente vai editar o dois vai colocar teste teste departamento a gente pode colocar o um que é para ser a gente já veio e coloca que vai ser e um noturno também a gente vem
no nosso numerador departamento de turno a gente percebe que o 1 é tarde e o um do departamento financeiro Beleza então vamos dar um ó ele deu um erro aqui esse erro no caso do update a gente consegue ter resolvendo da seguinte forma a gente vem aqui no nosso service e quando a gente tá fazendo a busca lá no banco por esse update a gente tem que fazer uma inserção de uma parte de código aqui dentro do Forte de fogo Antes de a gente fazer a verificação Pois é então no erro que deu ali a
gente tem basicamente criar um novo colocar uma nova menção aqui quando a gente tá fazendo a operação para buscar o ID aqui dentro do banco no caso do update tá porque senão ele pode dar erro ali no banco mesmo ele se desconversa no momento que tá fazendo ali a edição então a única coisa que a gente tem que adicionar aqui é um s antes do funcionários no Track abre e fecha aspas parênteses e aqui dá um Alt ponto e daí usem microsofting Premiere beleza colocando esse es no track vamos salvar aqui vamos tentar revisar o
nosso código vamos restarrtar ele aqui vamos esperar ele Restart Beleza ressaltou agora se a gente coloca o dois o teste teste um e dá um Execute perfeito a gente conseguiu fazer daí toda alteração aqui no dois teste um um esse daqui percebam que o departamento ele tá aparecendo como número departamento zero turno 0 departamento zero turno zero Diferentemente de como aparece aqui no nosso projeto real nosso projeto final que daí ele fica realmente com nome do numerador que é mais uma melhor forma para o usuário entender porque isso a gente não colocou uma operação lá
dentro do nosso anu tá que a gente transforma porque como eu disse tem duas formas um texto em número tá para que ele a gente transforme a utilização do número um texto Dentro da nossa pi a gente só precisa fazer uma inclusão aqui em cima do nosso numerador então em cima do numerador a gente abre e fecha Chaves e dentro daqui a gente coloca Jason cover converter Jason string e num converter perceba que a gente vai precisar importar algumas coisas aqui então um out enter os Intex de Jason Ok colocado aqui vamos salvar dentro do
nosso turno mesma questão coloca aqui em cima vamos também fazer o nosso use perfeito salvar vamos atualizar aqui o nosso projeto vamos ver se atualizou percebam agora que nosso esquema departamento é num se a gente vai mostrar tá em texto nosso turno se a gente vai mostrar tá amanhã à tarde de noite se tiver o nosso get aqui agora tá certinho o RH amanhã se eu vim aqui até o nosso e dar um trairaut ele já começa né com o zero que é RH amanhã só que eu consigo muito bem colocar financeiro no três por
exemplo quero que ele seja financeiro Dom Execute no três ele vai se transformar em financeiro tá bom Da mesma forma que daí aqui no banco um Execute ele vai permanecer com os departamentos em numerais porque aqui recebe int mas percebam que aqui esses dois que foram modificados eles estão com departamento 1 que é o do financeiro Tá bom então é basicamente isso e tem um que tá tarde por isso que tá um aqui tá tarde restante tá tudo manhã perfeito então é basicamente isso agora vamos criar o último método que a gente precisa que é
basicamente o delete são 6 metros que a gente criou o Direct nada mais é vai ser bem simples de fazer também igual o restante foi vamos aqui subir já deixa aqui o nosso assim que para não dar problemas futuros e aqui dentro do nosso dele tá basicamente a gente vai receber então o nosso intestino do elemento que a gente quer deletar a gente vai retornar uma lista então a gente pode pegar esse cara aqui só que aqui ele tá retornando só um funcionário módulo vamos colocar o que que ele retorna uma lista de funcionário móvel
beleza vamos criar aqui dos dois lados Ok então é esse serve esse responsa que a gente vai retornar Vamos colocar um trem enquete dentro do cat mesmo a questão e o retorno do nosso server os pontos aqui dentro do para fazer o delite a gente vai precisar só buscar esse funcionário para tentar entender Quem que é o funcionário que a gente quer deletar então funcionário Model funcionário então esse funcionário a gente busca ali dentro do contexto de funcionários foi show de folga mesmo a questão a gente pega aqui tem que ser igual a gente está
recebendo e com textos ponto funcionários ponto relevo com textos assim e como a gente tá retornando uma lista mesmo processo nosso serviço dados ele vai ser nada mais nada menos do que um select de toda a base outra questão que pode fazer aqui é ser o funcionário for no então aqui o novo funcionário for nulo no caso funcionário fornu ele vai retornar no informar dados nome nos casos aqui é o usuário não encontrado Não localizava beleza e falso vai retornar beleza vamos continuar editando aqui beleza agora é só chamar ele lá dentro do controle Vamos
colocar aqui ele vai retornar uma lista então é basicamente o que tá nesse daqui vamos colocar aqui funcionar beleza e aqui no nosso método no controle conforme vamos já estamos fazendo durante um tempo a gente vai basicamente criar esse service de lista nos colocar aqui ele vai ser basicamente nosso Service igual a um certo ponto de vista e daí aqui na verdade aqui a gente faz o select né então aqui um funcionário interface ponto delete funcionário aí de que a gente recebeu daí sim a gente coloca um ao leite aqui porque é um método assim
OK e dá um retorne ok Service Beleza então revie na play Vamos abrir aqui vamos para recarregar beleza vamos fazer um delite vamos deletar ali o número 3 pro 3 já não existe mais antes existia como vocês podem ver aqui no banco antes ele tinha ao atualizar aqui perfeito já não existe mais então Prefeito aqui a gente criou a nossa completamente fizemos tudo toda a conexão com o banco de dados criamos todos os métodos de get post de Elite é até um extra aqui de nativo funcionários então agora que o nosso utilizamos boas práticas né
utilizamos o funcionário interface o funcionário interface nosso controle ele ficou bem enxuto percebam aqui ele só faz a requisição ali para o service os dados e a lógica fica toda dentro do Service que é o que a gente espera que seja perfeito então é basicamente isso fizemos nossos enumeradores conseguimos utilizá-los e daí no próximo vídeo a gente realiza daí o processo da nossa do nosso Fronte a gente vai utilizar um processo em ângulo para criar daí o contato né a comunicação aqui com a nossa pi e criar um Fronte para a gente estar realizando todas
essas operações aqui dessa pi perfeito é isso até o próximo vídeo falou