pull origin master on C#/navigation-page

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

@ -1,6 +1,6 @@
kind: pipeline
type: docker
name: myFirstPipeline
name: CI
trigger:
branch:
@ -12,11 +12,49 @@ trigger:
steps:
- name: build
image: mcr.microsoft.com/dotnet/sdk:6.0
image: hub.codefirst.iut.uca.fr/marc.chevaldonne/codefirst-dotnet7-maui:latest
commands:
- cd src/Banquale
#- 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 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:
#- dotnet publish Banquale.sln -c Release --no-restore -o $CI_PROJECT_DIR/build/release -f:net7.0-android /p:AndroidSdkDirectory=/usr/lib/android-sdk
- cd src/Banquale/
- dotnet restore Banquale.sln
- dotnet build Banquale.sln -c Release --no-restore /p:AndroidSdkDirectory=$ANDROID_SDK_ROOT -property:Aapt2ToolPath=$ANDROID_SDK_ROOT/build-tools/33.0.0
- name: tests
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
[![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

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

@ -3,44 +3,45 @@
x:Class="Banquale.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:Banquale.Views"
Shell.FlyoutBehavior="Disabled">
xmlns:local="clr-namespace:Banquale"
xmlns:views="clr-namespace:Banquale.Views"
Shell.FlyoutBehavior="Disabled"
Shell.NavBarIsVisible="False">
<TabBar>
<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>

@ -1,10 +1,18 @@
namespace Banquale;
using Banquale.Views;
namespace Banquale;
public partial class AppShell : Shell
{
public AppShell()
{
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">
<PropertyGroup>
<TargetFrameworks>net6.0-android;net6.0-ios;net6.0-maccatalyst</TargetFrameworks>
<TargetFrameworks Condition="$([MSBuild]::IsOSPlatform('windows'))">$(TargetFrameworks);net6.0-windows10.0.19041.0</TargetFrameworks>
<TargetFrameworks>net7.0-android;$(TargetFrameworks)</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 -->
<!-- <TargetFrameworks>$(TargetFrameworks);net6.0-tizen</TargetFrameworks> -->
<OutputType>Exe</OutputType>
@ -30,18 +32,18 @@
<SupportedOSPlatformVersion Condition="$([MSBuild]::GetTargetPlatformIdentifier('$(TargetFramework)')) == 'tizen'">6.5</SupportedOSPlatformVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net6.0-ios|AnyCPU'">
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Debug|net7.0-ios|AnyCPU'">
<CreatePackage>false</CreatePackage>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net6.0-ios|AnyCPU'">
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net7.0-ios|AnyCPU'">
<CreatePackage>false</CreatePackage>
</PropertyGroup>
<ItemGroup>
<!-- 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 -->
<MauiSplashScreen Include="Resources\Splash\splash.svg" Color="#512BD4" BaseSize="128,128" />
<MauiSplashScreen Include="Resources\Splash\splash.png" Color="#512BD4" BaseSize="128,128" />
<!-- Images -->
<MauiImage Include="Resources\Images\*" />
@ -56,14 +58,25 @@
<ItemGroup>
<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>
<Folder Include="Views\" />
<MauiXaml Remove="Resources\Images\Images.xaml" />
</ItemGroup>
<ItemGroup>
<BundleResource Include="Resources\Images\back_arrow_icon.svg" />
<MauiXaml Remove="Resources\Images\Images.xaml" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Syncfusion.Maui.Inputs" Version="21.2.3" />
<Folder Include="Persistances\" />
<Folder Include="Stub\" />
<Folder Include="DataContractPersistance\" />
</ItemGroup>
</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"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application android:allowBackup="true" android:icon="@mipmap/appicon" android:roundIcon="@mipmap/appicon_round" android:supportsRtl="true"></application>
<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" android:label="Banquale"></application>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-sdk android:targetSdkVersion="33" android:minSdkVersion="25"/>
</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"
x:Class="Banquale.Views.BalancePage"
Title="BalancePage"
NavigationPage.HasBackButton="True"
>
<Grid RowDefinitions="auto, *">
<Grid BackgroundColor="Beige"
HorizontalOptions="Center"
@ -17,6 +19,8 @@
Margin="30"
>
<Button Clicked="OnButtonClicked" />
<Label
Text="Compte Professionnel"
HorizontalOptions="Center"

@ -1,9 +1,19 @@
namespace Banquale.Views;
using Banquale.Model;
namespace Banquale.Views;
public partial class BalancePage : ContentPage
{
public BalancePage()
{
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();
}
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