pull origin master on C#/navigation-page

pull/30/head
Antoine PEREDERII 2 years ago
commit c5cafd1316

@ -1,6 +1,6 @@
kind: pipeline kind: pipeline
type: docker type: docker
name: myFirstPipeline name: CI
trigger: trigger:
branch: branch:
@ -12,11 +12,49 @@ trigger:
steps: steps:
- name: build - name: build
image: mcr.microsoft.com/dotnet/sdk:6.0 image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dotnet7-maui:latest
commands: commands:
- cd src/Banquale - cd src/Banquale/
#- dotnet restore Banquale.sln - dotnet restore Banquale.sln
#- dotnet build Banquale.sln -c Debug --no-restore /p:AndroidSdkDirectory=$ANDROID_SDK_ROOT -property:Aapt2ToolPath=$ANDROID_SDK_ROOT/build-tools/33.0.0 - dotnet build Banquale.sln -c Release --no-restore /p:AndroidSdkDirectory=$ANDROID_SDK_ROOT -property:Aapt2ToolPath=$ANDROID_SDK_ROOT/build-tools/33.0.0
#- dotnet publish Banquale/Banquale.csproj -c Release --no-restore -o $CI_PROJECT_DIR/build/release -f:net6.0-android /p:AndroidSdkDirectory=/usr/lib/android-sdk
# this last line can be replaced by the following one, if you have only one project in your solution: - name: tests
#- dotnet publish Banquale.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release -f:net7.0-android /p:AndroidSdkDirectory=/usr/lib/android-sdk image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dotnet7-maui:latest
commands:
- cd src/Banquale/
- dotnet restore Banquale.sln
- dotnet test Banquale.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage"
depends_on: [build]
- name: code-analysis
image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dronesonarplugin-dotnet7-maui
secrets: [ SECRET_SONAR_LOGIN ]
settings:
# accessible en ligne de commande par ${PLUGIN_SONAR_HOST}
sonar_host: https://codefirst.iut.uca.fr/sonar/
# accessible en ligne de commande par ${PLUGIN_SONAR_TOKEN}
sonar_token:
from_secret: SECRET_SONAR_LOGIN
commands:
- cd src/Banquale/
- dotnet restore Banquale.sln
- dotnet sonarscanner begin /k:"Banquale" /d:sonar.host.url=$${PLUGIN_SONAR_HOST} /d:sonar.login=$${PLUGIN_SONAR_TOKEN}
- dotnet build Banquale.sln -c Release --no-restore
# - dotnet test Banquale.sln --logger trx --no-restore /p:CollectCoverage=true /p:CoverletOutputFormat=cobertura --collect "XPlat Code Coverage"
# - reportgenerator -reports:"**/coverage.cobertura.xml" -reporttypes:SonarQube -targetdir:"coveragereport"
# - dotnet publish Banquale/Banquale.csproj -c Release --no-restore -o $CI_PROJECT_DIR/build/release -f:net7.0-android /p:AndroidSdkDirectory=/usr/lib/android-sdk
- dotnet sonarscanner end /d:sonar.login=$${PLUGIN_SONAR_TOKEN}
depends_on: [tests]
- name: generate-and-deploy-docs
image: hub.codefirst.iut.uca.fr/maxime.batista/codefirst-docdeployer
failure: ignore
commands:
- /entrypoint.sh -l Documentation/doxygen -t doxygen
when:
branch:
- master
event:
- push
depends_on: [ build, tests ]

@ -0,0 +1,429 @@
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "My Project"
PROJECT_NUMBER = 1.0.0
PROJECT_BRIEF = "A brief description of your project"
PROJECT_LOGO = images/mylogo.png
OUTPUT_DIRECTORY = /docs/doxygen
CREATE_SUBDIRS = NO
ALLOW_UNICODE_NAMES = NO
OUTPUT_LANGUAGE = English
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH =
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
JAVADOC_BANNER = NO
QT_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
PYTHON_DOCSTRING = YES
INHERIT_DOCS = YES
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 4
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
# Well... the one for Java looks so similar to the one for C#...
OPTIMIZE_OUTPUT_JAVA = YES
OPTIMIZE_FOR_FORTRAN = NO
OPTIMIZE_OUTPUT_VHDL = NO
OPTIMIZE_OUTPUT_SLICE = NO
EXTENSION_MAPPING =
MARKDOWN_SUPPORT = YES
TOC_INCLUDE_HEADINGS = 5
AUTOLINK_SUPPORT = YES
BUILTIN_STL_SUPPORT = NO
CPP_CLI_SUPPORT = NO
SIP_SUPPORT = NO
IDL_PROPERTY_SUPPORT = YES
DISTRIBUTE_GROUP_DOC = NO
GROUP_NESTED_COMPOUNDS = NO
SUBGROUPING = YES
INLINE_GROUPED_CLASSES = NO
INLINE_SIMPLE_STRUCTS = NO
TYPEDEF_HIDES_STRUCT = NO
LOOKUP_CACHE_SIZE = 0
NUM_PROC_THREADS = 1
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
# I do not like other members to see my private members... but you can set it to YES if you prefer.
EXTRACT_PRIVATE = NO
EXTRACT_PRIV_VIRTUAL = NO
EXTRACT_PACKAGE = NO
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
EXTRACT_ANON_NSPACES = NO
RESOLVE_UNNAMED_PARAMS = YES
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
HIDE_COMPOUND_REFERENCE= NO
SHOW_HEADERFILE = YES
SHOW_INCLUDE_FILES = YES
SHOW_GROUPED_MEMB_INC = NO
FORCE_LOCAL_INCLUDES = NO
INLINE_INFO = YES
SORT_MEMBER_DOCS = NO
SORT_BRIEF_DOCS = NO
SORT_MEMBERS_CTORS_1ST = NO
SORT_GROUP_NAMES = NO
SORT_BY_SCOPE_NAME = NO
STRICT_PROTO_MATCHING = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES
SHOW_NAMESPACES = YES
FILE_VERSION_FILTER =
LAYOUT_FILE =
CITE_BIB_FILES =
#---------------------------------------------------------------------------
# Configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_IF_INCOMPLETE_DOC = YES
WARN_NO_PARAMDOC = NO
WARN_AS_ERROR = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = ../../Sources
INPUT_ENCODING = UTF-8
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.idl \
*.ddl \
*.odl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.l \
*.cs \
*.d \
*.php \
*.php4 \
*.php5 \
*.phtml \
*.inc \
*.m \
*.markdown \
*.md \
*.mm \
*.dox \
*.py \
*.pyw \
*.f90 \
*.f95 \
*.f03 \
*.f08 \
*.f18 \
*.f \
*.for \
*.vhd \
*.vhdl \
*.ucf \
*.qsf \
*.ice
RECURSIVE = YES
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS = */Tests/*
EXCLUDE_PATTERNS += */bin/*
EXCLUDE_PATTERNS += */obj/*
EXCLUDE_SYMBOLS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
FILTER_SOURCE_PATTERNS =
USE_MDFILE_AS_MAINPAGE =
#---------------------------------------------------------------------------
# Configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
REFERENCES_LINK_SOURCE = YES
SOURCE_TOOLTIPS = YES
USE_HTAGS = NO
VERBATIM_HEADERS = YES
CLANG_ASSISTED_PARSING = NO
CLANG_ADD_INC_PATHS = YES
CLANG_OPTIONS =
CLANG_DATABASE_PATH =
#---------------------------------------------------------------------------
# Configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = YES
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER = footer.html
HTML_STYLESHEET =
HTML_EXTRA_STYLESHEET =
HTML_EXTRA_FILES = images/CodeFirst.png images/clubinfo.png
HTML_COLORSTYLE_HUE = 215
HTML_COLORSTYLE_SAT = 45
HTML_COLORSTYLE_GAMMA = 240
HTML_TIMESTAMP = NO
HTML_DYNAMIC_MENUS = YES
HTML_DYNAMIC_SECTIONS = NO
HTML_INDEX_NUM_ENTRIES = 100
GENERATE_DOCSET = NO
DOCSET_FEEDNAME = "Doxygen generated docs"
DOCSET_FEEDURL =
DOCSET_BUNDLE_ID = org.doxygen.Project
DOCSET_PUBLISHER_ID = org.doxygen.Publisher
DOCSET_PUBLISHER_NAME = Publisher
GENERATE_HTMLHELP = NO
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
CHM_INDEX_ENCODING =
BINARY_TOC = NO
TOC_EXPAND = NO
GENERATE_QHP = NO
QCH_FILE =
QHP_NAMESPACE = org.doxygen.Project
QHP_VIRTUAL_FOLDER = doc
QHP_CUST_FILTER_NAME =
QHP_CUST_FILTER_ATTRS =
QHP_SECT_FILTER_ATTRS =
QHG_LOCATION =
GENERATE_ECLIPSEHELP = NO
ECLIPSE_DOC_ID = org.doxygen.Project
DISABLE_INDEX = NO
GENERATE_TREEVIEW = NO
FULL_SIDEBAR = NO
ENUM_VALUES_PER_LINE = 4
TREEVIEW_WIDTH = 250
EXT_LINKS_IN_WINDOW = NO
OBFUSCATE_EMAILS = YES
HTML_FORMULA_FORMAT = png
FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
FORMULA_MACROFILE =
USE_MATHJAX = NO
MATHJAX_VERSION = MathJax_2
MATHJAX_FORMAT = HTML-CSS
MATHJAX_RELPATH =
MATHJAX_EXTENSIONS =
MATHJAX_CODEFILE =
SEARCHENGINE = YES
SERVER_BASED_SEARCH = NO
EXTERNAL_SEARCH = NO
SEARCHENGINE_URL =
SEARCHDATA_FILE = searchdata.xml
EXTERNAL_SEARCH_ID =
EXTRA_SEARCH_MAPPINGS =
#---------------------------------------------------------------------------
# Configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = NO
LATEX_OUTPUT = latex
LATEX_CMD_NAME =
MAKEINDEX_CMD_NAME = makeindex
LATEX_MAKEINDEX_CMD = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4
EXTRA_PACKAGES =
LATEX_HEADER =
LATEX_FOOTER =
LATEX_EXTRA_STYLESHEET =
LATEX_EXTRA_FILES =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
LATEX_BIB_STYLE = plain
LATEX_TIMESTAMP = NO
LATEX_EMOJI_DIRECTORY =
#---------------------------------------------------------------------------
# Configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# Configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_SUBDIR =
MAN_LINKS = NO
#---------------------------------------------------------------------------
# Configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_PROGRAMLISTING = YES
XML_NS_MEMB_FILE_SCOPE = NO
#---------------------------------------------------------------------------
# Configuration options related to the DOCBOOK output
#---------------------------------------------------------------------------
GENERATE_DOCBOOK = NO
DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# Configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# Configuration options related to Sqlite3 output
#---------------------------------------------------------------------------
#---------------------------------------------------------------------------
# Configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = NO
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED =
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration options related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
EXTERNAL_PAGES = YES
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
DIA_PATH =
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
DOT_NUM_THREADS = 0
DOT_FONTNAME = Helvetica
DOT_FONTSIZE = 10
DOT_FONTPATH =
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
UML_LIMIT_NUM_FIELDS = 10
DOT_UML_DETAILS = NO
DOT_WRAP_THRESHOLD = 17
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
CALLER_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DIR_GRAPH_MAX_DEPTH = 1
DOT_IMAGE_FORMAT = png
INTERACTIVE_SVG = NO
DOT_PATH =
DOTFILE_DIRS =
MSCFILE_DIRS =
DIAFILE_DIRS =
PLANTUML_JAR_PATH =
PLANTUML_CFG_FILE =
PLANTUML_INCLUDE_PATH =
DOT_GRAPH_MAX_NODES = 50
MAX_DOT_GRAPH_DEPTH = 0
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@ -1,3 +1,52 @@
<img src="./Documentation/images/banqualeLogo.jpg" height="130">
# Banquale # Banquale
[![Build Status](https://codefirst.iut.uca.fr/api/badges/antoine.perederii/Banquale/status.svg)](https://codefirst.iut.uca.fr/antoine.perederii/Banquale)
[![Quality Gate Status](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Banquale&metric=alert_status&token=1a49717e4d2f15e2eecaaa971ebd8c83fb9bd5c5)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Banquale)
[![Bugs](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Banquale&metric=bugs&token=1a49717e4d2f15e2eecaaa971ebd8c83fb9bd5c5)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Banquale)
[![Coverage](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Banquale&metric=coverage&token=1a49717e4d2f15e2eecaaa971ebd8c83fb9bd5c5)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Banquale)
[![Vulnerabilities](https://codefirst.iut.uca.fr/sonar/api/project_badges/measure?project=Banquale&metric=vulnerabilities&token=1a49717e4d2f15e2eecaaa971ebd8c83fb9bd5c5)](https://codefirst.iut.uca.fr/sonar/dashboard?id=Banquale)
# Table of Content
[overview--big-picture](#overview--big-picture) | [Features](#features) | [Getting Started](#getting-started) | [Prerequisites](#prerequisites)
## Overview / Big picture
This project is a ....
## Features
## Documentation
Doxygen
Wiki
## Getting Started
### Prerequisites
### Installation
## Running the tests
## How to contribute ?
## What we have now ?
## Usage
## Known issues and limitations
deux blanc en fin de lignes = saut de ligne
sdf
## Authors
## Acknowledgments
## License
```python
print("Bonjour, monde!")
```
SAÉ 2.01 Développement d'une application Le projet est une app mobile de Gestion Bancaire. PEREDERII Antoine, LOUVET Titouan SAÉ 2.01 Développement d'une application Le projet est une app mobile de Gestion Bancaire. PEREDERII Antoine, LOUVET Titouan

@ -1,12 +1,26 @@
namespace Banquale; using Banquale.Model;
using Banquale.Stub;
using Banquale.DataContractPersistance;
namespace Banquale;
public partial class App : Application public partial class App : Application
{ {
public Manager MyManager { get; private set; } = new Manager(new Stub.Stub());
public App() public App()
{ {
//MyManager.ChargeDonnee();
//MyManager.Persistance = new DataContractPersistance.DataContractPers();
//MyManager.SauvegardeDonnee();
InitializeComponent(); InitializeComponent();
MainPage = new AppShell(); MainPage = new AppShell();
} }
} }

@ -3,44 +3,45 @@
x:Class="Banquale.AppShell" x:Class="Banquale.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Banquale.Views" xmlns:local="clr-namespace:Banquale"
Shell.FlyoutBehavior="Disabled"> xmlns:views="clr-namespace:Banquale.Views"
Shell.FlyoutBehavior="Disabled"
<TabBar> Shell.NavBarIsVisible="False">
<Tab Icon="home.png"
Title="Compte">
<ShellContent
Title="Solde"
ContentTemplate="{DataTemplate local:BalancePage}"
Route="Views" />
</Tab>
<Tab Icon="transactions.png"
Title="Transactions">
<!--<ShellContent
Title="Connection"
ContentTemplate="{DataTemplate views:ConnectionPage}"
Route="connection" />-->
</Tab> <ShellContent ContentTemplate="{DataTemplate views:ConnectionPage}"
Route="connection"/>
<Tab Icon="help.png"
Title="Aide">
<ShellContent
Title="Help"
ContentTemplate="{DataTemplate local:HelpPage}"
Route="Views" />
</Tab>
<Tab Icon="accounts.png"
Title="Compte">
<TabBar>
</Tab> <ShellContent
Title="Solde"
ContentTemplate="{DataTemplate views:BalancePage}"
Route="balance"
Icon="home.png"/>
<ShellContent
Title="Transactions"
ContentTemplate="{DataTemplate views:MenuTransferPage}"
Route="menu"
Icon="transactions.png"/>
<ShellContent
Title="Aide"
ContentTemplate="{DataTemplate views:HelpPage}"
Route="help"
Icon="help.png"/>
<ShellContent
Title="Compte"
ContentTemplate="{DataTemplate views:SwitchAccountPage}"
Route="account"
Icon="accounts.png"/>
</TabBar> </TabBar>

@ -1,10 +1,18 @@
namespace Banquale; using Banquale.Views;
namespace Banquale;
public partial class AppShell : Shell public partial class AppShell : Shell
{ {
public AppShell() public AppShell()
{ {
InitializeComponent(); InitializeComponent();
} Routing.RegisterRoute("balance/categorydetails", typeof(CategoryPage));
Routing.RegisterRoute("newpagedetails", typeof(NewPage1));
//Routing.RegisterRoute("menu/requestdetails", typeof(RequestPage));
//Routing.RegisterRoute("menu/ribdetails", typeof(RibPage));
//Routing.RegisterRoute("menu/transferdetails", typeof(TransferPage));
}
} }

@ -1,8 +1,10 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup> <PropertyGroup>
<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks> <TargetFrameworks>net7.0-android;$(TargetFrameworks)</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.19041.0</TargetFrameworks> <TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net7.0-windows10.0.19041.0</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('ios'))">$(TargetFrameworks);net7.0-ios</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('maccatalyst'))">$(TargetFrameworks);net7.0-maccatalyst</TargetFrameworks>
<!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET --> <!-- Uncomment to also build the tizen app. You will need to install tizen by following this: https://github.com/Samsung/Tizen.NET -->
<!-- <TargetFrameworks>$(TargetFrameworks);net6.0-tizen</TargetFrameworks> --> <!-- <TargetFrameworks>$(TargetFrameworks);net6.0-tizen</TargetFrameworks> -->
<OutputType>Exe</OutputType> <OutputType>Exe</OutputType>
@ -30,18 +32,18 @@
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion> <SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0-ios|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net7.0-ios|AnyCPU'">
<CreatePackage>false</CreatePackage> <CreatePackage>false</CreatePackage>
</PropertyGroup> </PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0-ios|AnyCPU'"> <PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net7.0-ios|AnyCPU'">
<CreatePackage>false</CreatePackage> <CreatePackage>false</CreatePackage>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<!-- App Icon --> <!-- App Icon -->
<MauiIcon Include="Resources\AppIcon\appicon.svg" ForegroundFile="Resources\AppIcon\appiconfg.svg" Color="#512BD4" /> <MauiIcon Include="Resources\AppIcon\appicon.png" Color="#512BD4" />
<!-- Splash Screen --> <!-- Splash Screen -->
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" /> <MauiSplashScreen Include="Resources\Splash\splash.png" Color="#512BD4" BaseSize="128,128" />
<!-- Images --> <!-- Images -->
<MauiImage Include="Resources\Images\*" /> <MauiImage Include="Resources\Images\*" />
@ -56,14 +58,25 @@
<ItemGroup> <ItemGroup>
<None Remove="Views\" /> <None Remove="Views\" />
<None Remove="Resources\Images\account_balance_FILL0_wght400_GRAD0_opsz48.svg" />
<None Remove="Resources\Images\home_FILL0_wght400_GRAD0_opsz48.png" />
<None Remove="Resources\Images\accountIcon.svg" />
<None Remove="Resources\Images\backArrowIcon.svg" />
<None Remove="Resources\Images\swipeAccountIcon.svg" />
<None Remove="Resources\Images\helpIcon.svg" />
<None Remove="Stub\" />
<None Remove="DataContractPersistance\" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="Views\" /> <MauiXaml Remove="Resources\Images\Images.xaml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<BundleResource Include="Resources\Images\back_arrow_icon.svg" />
<MauiXaml Remove="Resources\Images\Images.xaml" /> <MauiXaml Remove="Resources\Images\Images.xaml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Syncfusion.Maui.Inputs" Version="21.2.3" /> <Folder Include="Persistances\" />
<Folder Include="Stub\" />
<Folder Include="DataContractPersistance\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

@ -0,0 +1,60 @@
using Banquale.Model;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Runtime.Serialization;
using System.Xml;
namespace Banquale.DataContractPersistance
{
public class DataContractPers : IPersistanceManager
{
//Partie Antoine
public string FilePath { get; set; } = "/Users//Perederii//SAE//Banquale//src//Banquale//Banquale//Persistances";
public string FileName { get; set; } = "ClientAndTransactionsList.xml";
//public string FilePath { get; set; } = Path.Combine(Directory.GetCurrentDirectory(), "..//XML1_folder")/*"/Users/Perederii/SAE/Banquale/src/Banquale/Banquale/XML_folder"*/;
//Partie Titouan
//public string FileName { get; set; } = "nomFichier.xml";
// public string FilePath2 { get; set; } = "..\\Persistances";
// public string FilePath { get; set; } = "C:\\Users\\louve\\depot\\Banquale\\src\\Banquale\\Persistances";
public (List<Client>, List<Transactions>) ChargeDonnee()
{
var serializer = new DataContractSerializer(typeof(List<Client>));
List<Client> ListClients;
using (Stream s = File.OpenRead(Path.Combine(FilePath, FileName)))
{
ListClients = serializer.ReadObject(s) as List<Client>;
}
return (ListClients, new List<Transactions>());
}
public void SauvegardeDonnee(List<Client> c, List<Transactions> t)
{
var serializer = new DataContractSerializer(typeof(List<Client>));
if(!Directory.Exists(FilePath))
{
Debug.WriteLine("Directory crée à l'instant");
Directory.CreateDirectory(FilePath);
}
var settings = new XmlWriterSettings() { Indent = true };
using (TextWriter tw = File.CreateText(Path.Combine(FilePath, FileName)))
{
using (XmlWriter writer = XmlWriter.Create(tw, settings))
{
serializer.WriteObject(writer, c);
}
}
}
}
}

@ -0,0 +1,11 @@
using System;
namespace Banquale.DataContractPersistance
{
public class DataToPersist
{
public DataToPersist()
{
}
}
}

@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Banquale.Model
{
//[DataFrameworks]
public class Client: Personne
{
//[DataMember]
public List<Compte> ListeComptes { get; private set; }
public Client(string nom, string prenom, string mdp) : base(nom, prenom, mdp)
{}
}
}

@ -0,0 +1,20 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Banquale.Model
{
public class Compte
{
public int Solde { get; set; }
public string Nom { get; set;}
public string IBAN { get; set; }
public List<Transactions> CompteList { get; set; }
}
}

@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Banquale.Model
{
public interface IPersistanceManager
{
public (List<Client>, List<Transactions>) ChargeDonnee();
void SauvegardeDonnee(List<Client> c, List<Transactions> t);
}
}

@ -0,0 +1,65 @@
using System;
using System.Runtime.Serialization;
namespace Banquale.Model
{
[DataContract]
public class Manager
{
[DataMember]
public List<Client> ListeClients { get; private set; }
[DataMember]
public List<Transactions> ListeTransactions { get; private set; }
public IPersistanceManager Persistance { get; set; }
public Manager(IPersistanceManager persistance) {
ListeTransactions = new List<Transactions>();
ListeClients = new List<Client>();
Persistance = persistance;
}
public Manager()
{
ListeClients = new List<Client>();
ListeTransactions = new List<Transactions>();
}
public bool AjouterClient(Client MonClient)
{
ListeClients.Add(MonClient);
return true;
}
public Client GetClient(int place) {
return ListeClients[place];
}
public void SauvegardeDonnee()
{
Persistance.SauvegardeDonnee(ListeClients, ListeTransactions);
}
public void ChargeDonnee()
{
var donnees = Persistance.ChargeDonnee();
ListeClients.AddRange(donnees.Item1);
ListeTransactions.AddRange(donnees.Item2);
foreach (var j in donnees.Item1)
{
ListeClients.Add(j);
}
foreach (var i in donnees.Item2)
{
ListeTransactions.Add(i);
}
}
}
}

@ -0,0 +1,27 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Banquale.Model
{
public class Personne
{
public string Nom { get; private set; }
public string Prenom { get; private set; }
public int Id { get; private set; }
public string Mdp { get; private set; }
public Personne(string nom, string prenom, string mdp)
{
Nom = nom;
Prenom = prenom;
Id = 0;
Mdp = mdp;
}
}
}

@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Banquale.Model
{
public class Transactions
{
public int Type { get; private set; }
public int Somme { get; private set; }
public Compte CompteImplique { get; private set; }
public string Categorie { get; private set; }
public Transactions(int type, int somme, Compte compteImplique, string categorie) {
Type = type;
Somme = somme;
CompteImplique = compteImplique;
Categorie = categorie;
}
}
}

@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.companyname.banquale" android:versionCode="1" android:versionName="1.0">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application> <application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true" android:label="Banquale"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:targetSdkVersion="33" android:minSdkVersion="25"/>
</manifest> </manifest>

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@ -1,5 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="456" height="456" viewBox="0 0 456 456" version="1.1" xmlns="http://www.w3.org/2000/svg">
<rect x="0" y="0" width="456" height="456" fill="#512BD4" />
</svg>

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="456" height="456" viewBox="0 0 456 456" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="m 105.50037,281.60863 c -2.70293,0 -5.00091,-0.90042 -6.893127,-2.70209 -1.892214,-1.84778 -2.837901,-4.04181 -2.837901,-6.58209 0,-2.58722 0.945687,-4.80389 2.837901,-6.65167 1.892217,-1.84778 4.190197,-2.77167 6.893127,-2.77167 2.74819,0 5.06798,0.92389 6.96019,2.77167 1.93749,1.84778 2.90581,4.06445 2.90581,6.65167 0,2.54028 -0.96832,4.73431 -2.90581,6.58209 -1.89221,1.80167 -4.212,2.70209 -6.96019,2.70209 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
<path d="M 213.56111,280.08446 H 195.99044 L 149.69953,207.0544 c -1.17121,-1.84778 -2.14037,-3.76515 -2.90581,-5.75126 h -0.40578 c 0.36051,2.12528 0.54076,6.67515 0.54076,13.6496 v 65.13172 h -15.54349 v -99.36009 h 18.71925 l 44.7374,71.29798 c 1.89222,2.95695 3.1087,4.98917 3.64945,6.09751 h 0.26996 c -0.45021,-2.6325 -0.67573,-7.09015 -0.67573,-13.37293 v -64.02256 h 15.47557 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
<path d="m 289.25134,280.08446 h -54.40052 v -99.36009 h 52.23835 v 13.99669 h -36.15411 v 28.13085 h 33.31621 v 13.9271 h -33.31621 v 29.37835 h 38.31628 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
<path d="M 366.56466,194.72106 H 338.7222 v 85.3634 h -16.08423 v -85.3634 h -27.77455 v -13.99669 h 71.70124 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
</svg>

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg width="456" height="456" viewBox="0 0 456 456" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
<path d="m 105.50037,281.60863 c -2.70293,0 -5.00091,-0.90042 -6.893127,-2.70209 -1.892214,-1.84778 -2.837901,-4.04181 -2.837901,-6.58209 0,-2.58722 0.945687,-4.80389 2.837901,-6.65167 1.892217,-1.84778 4.190197,-2.77167 6.893127,-2.77167 2.74819,0 5.06798,0.92389 6.96019,2.77167 1.93749,1.84778 2.90581,4.06445 2.90581,6.65167 0,2.54028 -0.96832,4.73431 -2.90581,6.58209 -1.89221,1.80167 -4.212,2.70209 -6.96019,2.70209 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
<path d="M 213.56111,280.08446 H 195.99044 L 149.69953,207.0544 c -1.17121,-1.84778 -2.14037,-3.76515 -2.90581,-5.75126 h -0.40578 c 0.36051,2.12528 0.54076,6.67515 0.54076,13.6496 v 65.13172 h -15.54349 v -99.36009 h 18.71925 l 44.7374,71.29798 c 1.89222,2.95695 3.1087,4.98917 3.64945,6.09751 h 0.26996 c -0.45021,-2.6325 -0.67573,-7.09015 -0.67573,-13.37293 v -64.02256 h 15.47557 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
<path d="m 289.25134,280.08446 h -54.40052 v -99.36009 h 52.23835 v 13.99669 h -36.15411 v 28.13085 h 33.31621 v 13.9271 h -33.31621 v 29.37835 h 38.31628 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
<path d="M 366.56466,194.72106 H 338.7222 v 85.3634 h -16.08423 v -85.3634 h -27.77455 v -13.99669 h 71.70124 z" style="fill:#ffffff;fill-rule:nonzero;stroke-width:0.838376" />
</svg>

@ -0,0 +1,31 @@
using System;
using Banquale.Model;
namespace Banquale.Stub
{
public class Stub : IPersistanceManager
{
public (List<Client>, List<Transactions>) ChargeDonnee()
{
Client Client1 = new Client("Jacques", "Morice", "J'aimeLesFrites");
Client Client2 = new Client("Francis", "Begore", "J'aimeLes");
Client Client3 = new Client("Michel", "Boudout", "MonMdP");
Console.WriteLine(Client1);
List<Client> ListeClients = new List<Client>();
List<Transactions> ListeTransactions = new List<Transactions>();
ListeClients.Add(Client1);
ListeClients.Add(Client2);
ListeClients.Add(Client3);
return (ListeClients, ListeTransactions);
}
public void SauvegardeDonnee(List<Client> c, List<Transactions> t)
{
throw new NotImplementedException();
}
}
}

@ -4,7 +4,9 @@
xmlns:local="clr-namespace:Banquale.Views" xmlns:local="clr-namespace:Banquale.Views"
x:Class="Banquale.Views.BalancePage" x:Class="Banquale.Views.BalancePage"
Title="BalancePage" Title="BalancePage"
NavigationPage.HasBackButton="True"
> >
<Grid RowDefinitions="auto, *"> <Grid RowDefinitions="auto, *">
<Grid BackgroundColor="Beige" <Grid BackgroundColor="Beige"
HorizontalOptions="Center" HorizontalOptions="Center"
@ -17,6 +19,8 @@
Margin="30" Margin="30"
> >
<Button Clicked="OnButtonClicked" />
<Label <Label
Text="Compte Professionnel" Text="Compte Professionnel"
HorizontalOptions="Center" HorizontalOptions="Center"

@ -1,9 +1,19 @@
namespace Banquale.Views; using Banquale.Model;
namespace Banquale.Views;
public partial class BalancePage : ContentPage public partial class BalancePage : ContentPage
{ {
public BalancePage() public BalancePage()
{ {
InitializeComponent(); InitializeComponent();
} }
public async void OnButtonClicked(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new NewPage1());
}
} }

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.CategoryPage"
xmlns:local="clr-namespace:Banquale.Views"
Title="CategoryPage"
BackgroundColor="White">
<Grid RowDefinitions="*,*,*,*,*,*,*,*,*,*,*,*,2*">
<ImageButton Source="back_arrow_icon.svg" Grid.Row="0" HorizontalOptions="Start"/>
<local:CategoryView Grid.Row="2"/>
<local:CategoryView Grid.Row="3"/>
<local:CategoryView Grid.Row="4"/>
<local:CategoryView Grid.Row="5"/>
<local:CategoryView Grid.Row="6"/>
<local:CategoryView Grid.Row="7"/>
<local:CategoryView Grid.Row="8"/>
<local:CategoryView Grid.Row="9"/>
<local:CategoryView Grid.Row="10"/>
<local:CategoryView Grid.Row="11"/>
<VerticalStackLayout Grid.Row="12">
<BoxView HorizontalOptions="FillAndExpand"
HeightRequest="1.3"/>
</VerticalStackLayout>
</Grid>
</ContentPage>

@ -0,0 +1,9 @@
namespace Banquale.Views;
public partial class CategoryPage : ContentPage
{
public CategoryPage()
{
InitializeComponent();
}
}

@ -0,0 +1,21 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.CategoryView">
<VerticalStackLayout>
<BoxView HorizontalOptions="FillAndExpand"
HeightRequest="1.3"/>
<Grid Margin="20, 5, 20, 5"
HorizontalOptions="Fill">
<Label
Text="Catégorie"
TextColor="Black"
HorizontalOptions="Center"
VerticalOptions="Center"/>
</Grid>
</VerticalStackLayout>
</ContentView>

@ -0,0 +1,9 @@
namespace Banquale.Views;
public partial class CategoryView : ContentView
{
public CategoryView()
{
InitializeComponent();
}
}

@ -0,0 +1,114 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.ConnectionPage"
Title="ConnectionPage"
BackgroundColor="White">
<StackLayout>
<Frame BackgroundColor="#C8C8C8" CornerRadius="20" Margin="20, 250, 20, 0">
<Entry Placeholder="Identifiant"
PlaceholderColor="#6E6E6E"
TextColor="#212121"
MaxLength="20"
MinimumWidthRequest="275"
HorizontalOptions="CenterAndExpand"
HorizontalTextAlignment="Center"
FontSize="Large"/>
</Frame>
<Frame BackgroundColor="#C8C8C8" CornerRadius="10" Margin="20, 75, 20, 0">
<Entry Placeholder="Mot de passe"
PlaceholderColor="#6E6E6E"
TextColor="#212121"
IsPassword="True"
MinimumWidthRequest="275"
MaxLength="20"
HorizontalOptions="Center"
HorizontalTextAlignment="Center"
FontSize="Large"/>
</Frame>
<Button Text="Se connecter"
BorderWidth="2"
BorderColor="Black"
HorizontalOptions="Fill"
BackgroundColor="Gray"
TextColor="Black"
MinimumHeightRequest="75"
Margin="10,75,10,0"
FontSize="Large"
Clicked="Connection_Clicked"/>
</StackLayout>
<!-- Version avec Grid (moins efficace quand on écrit dans les Entry-->
<!--<Grid RowDefinitions="5*, 2*, *, 2*, 2*, 2*, 2*">
--><!--<Grid.RowDefinitions>
<RowDefinition Height="5*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
<RowDefinition Height="2*"/>
</Grid.RowDefinitions>--><!--
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Frame Grid.Column="1" BackgroundColor="#C8C8C8" CornerRadius="20">
<Entry Placeholder="Identifiant"
PlaceholderColor="#6E6E6E"
TextColor="#212121"
MaxLength="20"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Center"
FontSize="Large"/>
</Frame>
</Grid>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="9*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Frame Grid.Column="1" BackgroundColor="#C8C8C8" CornerRadius="20">
<Entry Placeholder="Mot de passe"
PlaceholderColor="#6E6E6E"
TextColor="#212121"
IsPassword="True"
MinimumWidthRequest="275"
MaxLength="20"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Center"
FontSize="Large"/>
</Frame>
</Grid>
<Grid Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="20*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="1" Text="Se connecter"
BorderWidth="2"
BorderColor="Black"
HorizontalOptions="Fill"
BackgroundColor="Gray"
TextColor="Black"
FontSize="Large"/>
</Grid>
</Grid>-->
</ContentPage>

@ -0,0 +1,15 @@
namespace Banquale.Views;
public partial class ConnectionPage : ContentPage
{
public ConnectionPage()
{
InitializeComponent();
}
public async void Connection_Clicked(Object sender, EventArgs e)
{
await Shell.Current.GoToAsync("///balance");
}
}

@ -7,10 +7,9 @@ public partial class HelpPage : ContentPage
InitializeComponent(); InitializeComponent();
} }
public async void Send_Clicked(object sender, EventArgs e) public async void Send_Clicked(Object sender, EventArgs e)
{ {
await Shell.Current.Navigation.PushAsync(new BalancePage()); await Shell.Current.GoToAsync("//balance");
} }
} }

@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.MenuTransferPage">
<Grid RowDefinitions="auto, auto"
ColumnDefinitions="auto, auto"
HorizontalOptions="Center"
VerticalOptions="Center">
<Button
Text="Faire un virement"
Grid.Column="0"
Grid.Row="0"
Margin="20"
MinimumWidthRequest="160"
MinimumHeightRequest="160"
Clicked="Transfer_Clicked"/>
<Button
Text="Demander de l'argent"
Grid.Column="1"
Grid.Row="0"
Margin="20"
MinimumWidthRequest="160"
MinimumHeightRequest="160"
Clicked="Request_Clicked"/>
<Button
Text="Afficher mon RIB"
Grid.ColumnSpan="2"
Grid.Row="1"
Margin="20"
MinimumHeightRequest="160"
MinimumWidthRequest="360"
Clicked="RIB_Clicked"/>
</Grid>
</ContentPage>

@ -0,0 +1,25 @@
namespace Banquale.Views;
public partial class MenuTransferPage : ContentPage
{
public MenuTransferPage()
{
InitializeComponent();
}
public async void RIB_Clicked(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new RibPage());
}
public async void Request_Clicked(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new RequestPage());
}
public async void Transfer_Clicked(object sender, EventArgs e)
{
await Shell.Current.Navigation.PushAsync(new TransferPage());
}
}

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:model="clr-namespace:Banquale.Model"
x:Class="Banquale.Views.NewPage1">
<ContentPage.BindingContext>
<model:Manager/>
</ContentPage.BindingContext>
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
<Button
Text="Click me"
Clicked="Button_Clicked"/>
<Button
Clicked="ArrowBack" />
<ListView ItemsSource="{Binding ListeClients}" x:Name="ListViewID">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Nom}" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</VerticalStackLayout>
</ContentPage>

@ -0,0 +1,32 @@
using Banquale.Model;
namespace Banquale.Views;
public partial class NewPage1 : ContentPage
{
public Manager myManager => (App.Current as App).MyManager;
public NewPage1()
{
InitializeComponent();
ListViewID.BindingContext = myManager;
}
int cpt = 0;
void Button_Clicked(System.Object sender, System.EventArgs e)
{
Client client1 = new Client("Monsieur", "Bonjour", "HelloThisIsMyPassword");
myManager.AjouterClient(client1);
cpt++;
Console.WriteLine(cpt);
Console.WriteLine(client1.Nom);
}
public async void ArrowBack(object sender, EventArgs e)
{
await Navigation.PopAsync();
}
}

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.RequestPage">
<VerticalStackLayout VerticalOptions="Center">
<Frame CornerRadius="10"
HeightRequest="40"
WidthRequest="300"
Margin="0, 5, 0, 5"
Padding="3">
<Entry Placeholder="Destinataire"
HorizontalOptions="Center"
WidthRequest="280"/>
</Frame>
<Frame CornerRadius="10"
HeightRequest="40"
WidthRequest="300"
Margin="0, 5, 0, 5"
Padding="3">
<Entry Placeholder="IBAN"
HorizontalOptions="Center"
WidthRequest="280"/>
</Frame>
<Frame CornerRadius="10"
HeightRequest="40"
WidthRequest="300"
Margin="0, 5, 0, 5"
Padding="3">
<Entry Placeholder="Montant"
HorizontalOptions="Center"
WidthRequest="280"/>
</Frame>
<Button
Text="Envoyer la demande"
Margin="0, 75, 0, 0"
MinimumHeightRequest="80"
WidthRequest="300"
MaximumWidthRequest="400"
/>
</VerticalStackLayout>
</ContentPage>

@ -0,0 +1,15 @@
namespace Banquale.Views;
public partial class RequestPage : ContentPage
{
public RequestPage()
{
InitializeComponent();
}
//public async void Send_Clicked(Object sender, EventArgs e)
//{
// await Shell.Current.GoToAsync("//balance");
//}
}

@ -0,0 +1,125 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.RibPage">
<VerticalStackLayout>
<Grid RowDefinitions="auto, auto"
ColumnDefinitions="*, *">
<Label Text="Code Banque" />
<Label Text="Code agence"
Grid.Column="1" />
<Label Text="102 330"
Grid.Row="1" />
<Label Text="01 009"
Grid.Column="1"
Grid.Row="1" />
</Grid>
<Grid RowDefinitions="auto, auto, auto"
ColumnDefinitions="*, *, auto" >
<Label Text="N° de Compte" />
<Label Text="0000545090"
Grid.Row="1" />
<Label Text="Clé RIB"
Grid.Column="1" />
<Label Text="55"
Grid.Column="1"
Grid.Row="1" />
<Image Source="dotnet_bot.png"
Grid.Column="2"
Grid.RowSpan="2"
MaximumHeightRequest="45"/>
<BoxView Color="Gray"
Grid.ColumnSpan="3"
Grid.Row="2"
WidthRequest="400"
HeightRequest="1.5"/>
</Grid>
<Grid RowDefinitions="auto, auto, auto"
ColumnDefinitions="*, auto" >
<Label Text="RIB" />
<Label Text="FR56 9989 9900 7723 7732 7324 048"
Grid.Row="1" />
<Image Source="dotnet_bot.png"
Grid.Column="1"
Grid.RowSpan="2"
MaximumHeightRequest="50" />
<BoxView Color="Gray"
Grid.ColumnSpan="2"
Grid.Row="2"
WidthRequest="400"
HeightRequest="1.5" />
</Grid>
<Grid RowDefinitions="auto, auto, auto"
ColumnDefinitions="*, auto" >
<Label Text="RIB" />
<Label Text="FR56 9989 9900 7723 7732 7324 048"
Grid.Row="1" />
<Image Source="dotnet_bot.png"
Grid.Column="1"
Grid.RowSpan="2"
MaximumHeightRequest="50" />
<BoxView Color="Gray"
Grid.ColumnSpan="2"
Grid.Row="2"
WidthRequest="400"
HeightRequest="1.5" />
</Grid>
<Grid RowDefinitions="auto, auto, auto"
ColumnDefinitions="*, auto" >
<Label Text="RIB" />
<Label Text="FR56 9989 9900 7723 7732 7324 048"
Grid.Row="1" />
<Image Source="dotnet_bot.png"
Grid.Column="1"
Grid.RowSpan="2"
MaximumHeightRequest="50" />
<BoxView Color="Gray"
Grid.ColumnSpan="2"
Grid.Row="2"
WidthRequest="400"
HeightRequest="1.5" />
</Grid>
<Label
Text="Titulaire du compte" />
<Label Text="M BOURAUD DESCHAMPS" />
<Button Text="Télécharger le RIB"
HeightRequest="150"
WidthRequest="300" />
</VerticalStackLayout>
</ContentPage>

@ -0,0 +1,9 @@
namespace Banquale.Views;
public partial class RibPage : ContentPage
{
public RibPage()
{
InitializeComponent();
}
}

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Banquale.Views"
x:Class="Banquale.Views.SwitchAccountPage"
Title="SwitchAccountPage"
BackgroundColor="White">
<!-- Version StackLayout, moins efficace pour la responsivity -->
<!--<StackLayout VerticalOptions="Center" HorizontalOptions="Center">
<local:SwitchAccountView/>
<local:SwitchAccountView/>
<Button Text="Déconnexion"
BorderWidth="2"
BorderColor="Black"
HorizontalOptions="Fill"
BackgroundColor="Gray"
TextColor="Black"
MinimumHeightRequest="75"
MinimumWidthRequest="375"
Margin="10,65,0,0"
FontSize="Large"/>
</StackLayout>-->
<Grid RowDefinitions="3*, 2*, *, 2*, *, 2*, 3*">
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="15*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:SwitchAccountView Grid.Column="1"/>
</Grid>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="15*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<local:SwitchAccountView Grid.Column="1"/>
</Grid>
<Grid Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="15*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Button Grid.Column="1" Text="Déconnexion"
BorderWidth="2"
BorderColor="Black"
HorizontalOptions="Fill"
BackgroundColor="Gray"
TextColor="Black"
MinimumHeightRequest="75"
MinimumWidthRequest="375"
FontSize="Large"/>
</Grid>
</Grid>
</ContentPage>

@ -0,0 +1,9 @@
namespace Banquale.Views;
public partial class SwitchAccountPage : ContentPage
{
public SwitchAccountPage()
{
InitializeComponent();
}
}

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentView xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.SwitchAccountView">
<ContentView.Resources>
<Style TargetType="Button">
<Setter Property="BorderColor" Value="Black" />
<Setter Property="BorderWidth" Value="2" />
<Setter Property="BackgroundColor" Value="Gray" />
<Setter Property="TextColor" Value="Black" />
<Setter Property="FontSize" Value="Large" />
<Setter Property="MinimumHeightRequest" Value="75" />
<Setter Property="HorizontalOptions" Value="Fill" />
<Setter Property="VerticalOptions" Value="Center"/>
<Setter Property="LineBreakMode" Value="WordWrap" />
</Style>
</ContentView.Resources>
<Button Text=" Compte Personnel &#x0a; Mme Tatouille "
Clicked="Transfer_Clicked"/>
<!-- &#x0a; sert à faire un retour à la ligne-->
</ContentView>

@ -0,0 +1,15 @@
namespace Banquale.Views;
public partial class SwitchAccountView : ContentView
{
public SwitchAccountView()
{
InitializeComponent();
}
public async void Transfer_Clicked(object sender, EventArgs e)
{
await Shell.Current.GoToAsync("///connection");
}
}

@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Banquale.Views.TransferPage">
<VerticalStackLayout VerticalOptions="Center">
<Frame CornerRadius="10"
HeightRequest="40"
WidthRequest="300"
Margin="0, 5, 0, 5"
Padding="3">
<Entry Placeholder="Destinataire"
HorizontalOptions="Center"
WidthRequest="280"/>
</Frame>
<Frame CornerRadius="10"
HeightRequest="40"
WidthRequest="300"
Margin="0, 5, 0, 5"
Padding="3">
<Entry Placeholder="IBAN"
HorizontalOptions="Center"
WidthRequest="280"/>
</Frame>
<Frame CornerRadius="10"
HeightRequest="40"
WidthRequest="300"
Margin="0, 5, 0, 5"
Padding="3">
<Entry Placeholder="Montant"
HorizontalOptions="Center"
WidthRequest="280"/>
</Frame>
<Button
Text="Effectuer le virement"
Margin="0, 75, 0, 0"
MinimumHeightRequest="80"
WidthRequest="300"
MaximumWidthRequest="400"
Clicked="Send_Clicked"/>
</VerticalStackLayout>
</ContentPage>

@ -0,0 +1,15 @@
namespace Banquale.Views;
public partial class TransferPage : ContentPage
{
public TransferPage()
{
InitializeComponent();
}
public async void Send_Clicked(Object sender, EventArgs e)
{
await Shell.Current.GoToAsync("//balance");
}
}
Loading…
Cancel
Save