From ed33d7ec28625f07357911cf503cbf938b39ea03 Mon Sep 17 00:00:00 2001 From: "SECUNDIS\\masantos" Date: Thu, 11 Apr 2024 22:21:24 +0100 Subject: [PATCH] Gerador NIF na APP --- .dockerignore | 26 +------- GeradoresService/CC.cs | 46 ++++++++++++++ GeradoresWS/Program.cs | 7 +++ geradoresfe/.dockerignore | 1 + geradoresfe/Dockerfile | 13 ++++ geradoresfe/geradoresfe.esproj | 14 ++++- geradoresfe/package.json | 1 + geradoresfe/src/Api/GeradorApi.tsx | 33 ++++++++++ geradoresfe/src/App.tsx | 4 +- geradoresfe/src/components/GeradorNIF.tsx | 75 +++++++++++++++++++++++ 10 files changed, 191 insertions(+), 29 deletions(-) create mode 100644 GeradoresService/CC.cs create mode 100644 geradoresfe/.dockerignore create mode 100644 geradoresfe/Dockerfile create mode 100644 geradoresfe/src/Api/GeradorApi.tsx create mode 100644 geradoresfe/src/components/GeradorNIF.tsx diff --git a/.dockerignore b/.dockerignore index 3729ff0..b512c09 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,25 +1 @@ -**/.classpath -**/.dockerignore -**/.env -**/.git -**/.gitignore -**/.project -**/.settings -**/.toolstarget -**/.vs -**/.vscode -**/*.*proj.user -**/*.dbmdl -**/*.jfm -**/azds.yaml -**/bin -**/charts -**/docker-compose* -**/Dockerfile* -**/node_modules -**/npm-debug.log -**/obj -**/secrets.dev.yaml -**/values.dev.yaml -LICENSE -README.md \ No newline at end of file +node_modules \ No newline at end of file diff --git a/GeradoresService/CC.cs b/GeradoresService/CC.cs new file mode 100644 index 0000000..483d9d4 --- /dev/null +++ b/GeradoresService/CC.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GeradoresService +{ + internal class CC + { + + /*static bool Validate(string CardNumber) + { + int sum = 0; + bool alternate = false; + + // Percorre os dígitos do número de trás para frente + for (int i = creditCardNumber.Length - 1; i >= 0; i--) + { + int digit = creditCardNumber[i] - '0'; + + // Se é um dígito + if (digit >= 0 && digit <= 9) + { + if (alternate) + { + digit *= 2; + if (digit > 9) + digit -= 9; + } + + sum += digit; + alternate = !alternate; + } + else + { + // Se não é um dígito, o número é inválido + return false; + } + } + + // O número de cartão de crédito é válido se a soma for divisível por 10 + return sum % 10 == 0; + }*/ + } +} diff --git a/GeradoresWS/Program.cs b/GeradoresWS/Program.cs index 48863a6..022ea55 100644 --- a/GeradoresWS/Program.cs +++ b/GeradoresWS/Program.cs @@ -20,6 +20,13 @@ app.UseHttpsRedirection(); app.UseAuthorization(); +app.UseCors(options => +{ + options.AllowAnyOrigin(); + options.AllowAnyMethod(); + options.AllowAnyHeader(); +}); + app.MapControllers(); app.Run(); diff --git a/geradoresfe/.dockerignore b/geradoresfe/.dockerignore new file mode 100644 index 0000000..b512c09 --- /dev/null +++ b/geradoresfe/.dockerignore @@ -0,0 +1 @@ +node_modules \ No newline at end of file diff --git a/geradoresfe/Dockerfile b/geradoresfe/Dockerfile new file mode 100644 index 0000000..c13f01f --- /dev/null +++ b/geradoresfe/Dockerfile @@ -0,0 +1,13 @@ +FROM node:20-alpine + +WORKDIR /app + +COPY package.json . + +RUN npm install + +COPY . . + +EXPOSE 3000 + +CMD ["npm", "start"] \ No newline at end of file diff --git a/geradoresfe/geradoresfe.esproj b/geradoresfe/geradoresfe.esproj index 170c85f..c071f8c 100644 --- a/geradoresfe/geradoresfe.esproj +++ b/geradoresfe/geradoresfe.esproj @@ -1,13 +1,23 @@ - + set BROWSER=none&&npm start src\ Jest - + + npm run build $(MSBuildProjectDirectory)\build + + + $(DockerDefaultDockerfile) + .dockerignore + + + + + \ No newline at end of file diff --git a/geradoresfe/package.json b/geradoresfe/package.json index 2cfe319..8d67f91 100644 --- a/geradoresfe/package.json +++ b/geradoresfe/package.json @@ -14,6 +14,7 @@ "@types/node": "^16.18.95", "@types/react": "^18.2.74", "@types/react-dom": "^18.2.24", + "axios": "^1.6.8", "react": "^18.2.0", "react-dom": "^18.2.0", "react-helmet": "^6.1.0", diff --git a/geradoresfe/src/Api/GeradorApi.tsx b/geradoresfe/src/Api/GeradorApi.tsx new file mode 100644 index 0000000..9cac19a --- /dev/null +++ b/geradoresfe/src/Api/GeradorApi.tsx @@ -0,0 +1,33 @@ +import axios, { AxiosResponse } from 'axios'; + +const API_URL = 'http://localhost:32769/'; + +class GeradorService { + static async GenerateNIF(type: string | null): Promise { + try { + const response: AxiosResponse = await axios.get(API_URL + 'Generate/GenerateNIF', + { + params: { + type: type + } + }); + return response.data; + } catch (error) { + console.error('Error fetching NIF:', error); + return []; + } + } + + static async GenerateNISS(): Promise { + try { + + const response: AxiosResponse = await axios.get(API_URL + 'Generate/GenerateNISS'); + return response.data; + } catch (error) { + console.error('Error fetching NIF:', error); + return []; + } + } +} + +export default GeradorService; \ No newline at end of file diff --git a/geradoresfe/src/App.tsx b/geradoresfe/src/App.tsx index fd0446f..a4a7b4f 100644 --- a/geradoresfe/src/App.tsx +++ b/geradoresfe/src/App.tsx @@ -19,6 +19,7 @@ import Features from './components/Features'; import Testimonials from './components/Testimonials'; import FAQ from './components/FAQ'; import Footer from './components/Footer'; +import GeradorCC from './components/GeradorNIF'; @@ -86,8 +87,7 @@ function App() { - - + diff --git a/geradoresfe/src/components/GeradorNIF.tsx b/geradoresfe/src/components/GeradorNIF.tsx new file mode 100644 index 0000000..9c9acb5 --- /dev/null +++ b/geradoresfe/src/components/GeradorNIF.tsx @@ -0,0 +1,75 @@ +import * as React from 'react'; +import Box from '@mui/material/Box'; +import Button from '@mui/material/Button'; +import Container from '@mui/material/Container'; +import Stack from '@mui/material/Stack'; +import Typography from '@mui/material/Typography'; + +import Card from '@mui/material/Card'; +import CardContent from '@mui/material/CardContent'; +import CardActions from '@mui/material/CardActions/CardActions'; +import GeradorService from '../Api/GeradorApi'; +import { useEffect, useState } from 'react'; + + + +export default function GeradorNIF() { + const [nif, setNIF] = useState([]); + + const fetchNif = async () => { + const nif = await GeradorService.GenerateNIF(null); + setNIF(nif); + } + + useEffect(() => { + fetchNif(); + }, []); + + + + return ( + ({ + width: '100%', + backgroundImage: + theme.palette.mode === 'light' + ? 'radial-gradient(ellipse 80% 50% at 50% -20%, hsl(210, 100%, 90%), transparent)' + : 'radial-gradient(ellipse 80% 50% at 50% -20%, hsl(210, 100%, 16%), transparent)', + backgroundRepeat: 'no-repeat', + })} + > + + + + + + NIFC + + + {nif} + + + + + + + ); + + + + ); +} \ No newline at end of file