public async Task <ActionResult <Tecnico> > AtualizarTecnico([FromServices] LambadaContext context, [FromBody] Tecnico model, int id)
        {
            if (model.Id != id)
            {
                BadRequest(new { message = "Id informado invalido" });
            }
            else if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Objeto informado inválido" }));
            }
            else if (model.Sexo != Sexo.Ferminino && model.Sexo != Sexo.Masculino)
            {
                return(BadRequest(new { message = "Sexo informado inválido" }));
            }
            try
            {
                context.Entry <Tecnico>(model).State = EntityState.Modified;
                await context.SaveChangesAsync();

                return(Ok(new { message = "Dados alterados com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel alterar o Tecnico" }));
            }
        }
        public async Task <ActionResult <Usuarios> > CadastraUsuario([FromServices] LambadaContext context, [FromBody] Usuarios model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Objecto inaválido" }));
            }
            try
            {
                context.Add(model);
                await context.SaveChangesAsync();

                return(Ok(new { message = "usuário cadastrado com sucesso" }));
            }
            catch (Exception e)
            {
                return(BadRequest(new { message = "Não foi possivel cadastrar usuario" }));
            }
        }
        public async Task <ActionResult <Lambada> > CadastroLambada([FromServices] LambadaContext context, [FromBody] Lambada model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Objecto inválido" }));
            }
            try
            {
                context.Add(model);
                await context.SaveChangesAsync();

                return(Ok(new { message = "Lambada registrada com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel regsitrar lambada " }));
            }
        }
        public async Task <ActionResult <String> > DeletaUsuario(int id, [FromServices] LambadaContext context)
        {
            try
            {
                var usuario = await context.Usuarios.Where(x => x.Id == id).FirstOrDefaultAsync();

                if (usuario == null)
                {
                    return(Ok(new { message = "Não existe nenhum usuario cadastrado com este id" }));
                }
                context.Remove(usuario);
                await context.SaveChangesAsync();

                return(Ok(new { message = "Usuario excluído com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel deletar o usuario" }));
            }
        }
        public async Task <ActionResult <Lambada> > DeletaLambada(int id, [FromServices] LambadaContext context)
        {
            try
            {
                var lambada = await context.Lambada.Where(x => x.Id == id).FirstOrDefaultAsync();

                if (lambada == null)
                {
                    return(Ok(new { message = "Lambada não encontrada" }));
                }
                context.Remove(lambada);
                await context.SaveChangesAsync();

                return(Ok(new { message = "Lambada excluída com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel excluir a lambada" }));
            }
        }
        public async Task <ActionResult <Tecnico> > DeletarTecncio(int id, [FromServices] LambadaContext context)
        {
            var tecnico = await context.Tecnico.FirstOrDefaultAsync(x => x.Id == id);

            if (tecnico == null)
            {
                return(BadRequest(new { message = "Tecnico não encontrado" }));
            }
            try
            {
                context.Remove(tecnico);
                await context.SaveChangesAsync();

                return(Ok(new { message = "Tecnico excluído com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel excluir o tecnico" }));
            }
        }
        public async Task <ActionResult <Usuarios> > AtualizarUsuario(int id, [FromServices] LambadaContext context, [FromBody] Usuarios model)
        {
            if (model.Id != id)
            {
                return(BadRequest(new { message = "id informado incorretamnet" }));
            }
            else if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Objecto inaválido" }));
            }
            try
            {
                context.Entry <Usuarios>(model).State = EntityState.Modified;
                await context.SaveChangesAsync();

                return(Ok(new { message = "Usuario modificado com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel atualziar o usuario" }));
            }
        }
        public async Task <ActionResult <Lambada> > AlterarLambada(int id, [FromServices] LambadaContext context, [FromBody] Lambada model)
        {
            if (model.Id != id)
            {
                return(BadRequest(new { message = "Lambada digitada incorretamente" }));
            }
            else if (!ModelState.IsValid)
            {
                return(BadRequest(new { message = "Objecto inaválido" }));
            }
            try
            {
                context.Entry <Lambada>(model).State = EntityState.Modified;
                await context.SaveChangesAsync();

                return(Ok(new { message = "Lambada atualizada com sucesso" }));
            }
            catch (Exception e)
            {
                return(BadRequest(new { message = "Não fooi possivel atualizar a lambada " }));
            }
        }
        public async Task <ActionResult <Tecnico> > CadastraTecnico([FromBody] Tecnico model, [FromServices] LambadaContext context)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(new { Message = "Dados do tecnico inavalido" }));
            }
            else if (model.Sexo != Sexo.Ferminino && model.Sexo != Sexo.Masculino)
            {
                return(BadRequest(new { message = "Sexo invalido" }));
            }
            try
            {
                context.Add(model);
                await context.SaveChangesAsync();

                return(Ok(new { message = "Tecnico cadastrado com sucesso" }));
            }
            catch (Exception)
            {
                return(BadRequest(new { message = "Não foi possivel cadastrar o tecnico " }));
            }
        }