Compare commits
No commits in common. "feature/Romain" and "master" have entirely different histories.
feature/Ro
...
master
26
Database.cs
26
Database.cs
@ -1,26 +0,0 @@
|
|||||||
using HegreHotel.Models;
|
|
||||||
using SQLite;
|
|
||||||
|
|
||||||
namespace HegreHotel;
|
|
||||||
|
|
||||||
public class Database
|
|
||||||
{
|
|
||||||
private static SQLiteAsyncConnection _database;
|
|
||||||
|
|
||||||
public static async Task<SQLiteAsyncConnection> GetConnection()
|
|
||||||
{
|
|
||||||
if (_database == null)
|
|
||||||
{
|
|
||||||
var databasePath = Path.Combine(FileSystem.AppDataDirectory, "HegreHotel.db");
|
|
||||||
_database = new SQLiteAsyncConnection(databasePath);
|
|
||||||
|
|
||||||
// Créer les tables
|
|
||||||
await _database.CreateTableAsync<Client>();
|
|
||||||
await _database.CreateTableAsync<Chambre>();
|
|
||||||
await _database.CreateTableAsync<Reservation>();
|
|
||||||
await _database.CreateTableAsync<Status>();
|
|
||||||
}
|
|
||||||
|
|
||||||
return _database;
|
|
||||||
}
|
|
||||||
}
|
|
@ -57,13 +57,9 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="EntityFramework" Version="6.5.1" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.1" />
|
|
||||||
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="9.0.1" />
|
|
||||||
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)"/>
|
<PackageReference Include="Microsoft.Maui.Controls" Version="$(MauiVersion)"/>
|
||||||
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)"/>
|
<PackageReference Include="Microsoft.Maui.Controls.Compatibility" Version="$(MauiVersion)"/>
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0"/>
|
<PackageReference Include="Microsoft.Extensions.Logging.Debug" Version="8.0.0"/>
|
||||||
<PackageReference Include="sqlite-net-pcl" Version="1.9.172" />
|
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
</Project>
|
</Project>
|
||||||
|
@ -1,18 +0,0 @@
|
|||||||
namespace HegreHotel.Models;
|
|
||||||
|
|
||||||
using SQLite;
|
|
||||||
|
|
||||||
public class Chambre
|
|
||||||
{
|
|
||||||
[PrimaryKey, AutoIncrement]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
[MaxLength(50)]
|
|
||||||
public string? Nom { get; set; }
|
|
||||||
|
|
||||||
public string? Description { get; set; }
|
|
||||||
|
|
||||||
public decimal Tarif { get; set; }
|
|
||||||
|
|
||||||
public int NombrePersonnes { get; set; }
|
|
||||||
}
|
|
@ -1,21 +0,0 @@
|
|||||||
namespace HegreHotel.Models;
|
|
||||||
|
|
||||||
using SQLite;
|
|
||||||
|
|
||||||
public class Client
|
|
||||||
{
|
|
||||||
[PrimaryKey, AutoIncrement]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
[MaxLength(100)]
|
|
||||||
public string? Nom { get; set; }
|
|
||||||
|
|
||||||
[MaxLength(100)]
|
|
||||||
public string? Prenom { get; set; }
|
|
||||||
|
|
||||||
[MaxLength(150), Unique]
|
|
||||||
public string? Email { get; set; }
|
|
||||||
|
|
||||||
[MaxLength(15), Unique]
|
|
||||||
public string? Telephone { get; set; }
|
|
||||||
}
|
|
@ -1,29 +0,0 @@
|
|||||||
namespace HegreHotel.Models;
|
|
||||||
|
|
||||||
using SQLite;
|
|
||||||
|
|
||||||
public class Reservation
|
|
||||||
{
|
|
||||||
[PrimaryKey, AutoIncrement]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
public DateTime DateDebut { get; set; }
|
|
||||||
|
|
||||||
public DateTime DateFin { get; set; }
|
|
||||||
|
|
||||||
public string? Demandes { get; set; }
|
|
||||||
|
|
||||||
// Navigation properties (ignorées dans SQLite)
|
|
||||||
|
|
||||||
[Indexed]
|
|
||||||
public int ClientId { get; set; }
|
|
||||||
|
|
||||||
[Indexed]
|
|
||||||
public int ChambreId { get; set; }
|
|
||||||
|
|
||||||
[Ignore]
|
|
||||||
public Client Client { get; set; }
|
|
||||||
|
|
||||||
[Ignore]
|
|
||||||
public Chambre Chambre { get; set; }
|
|
||||||
}
|
|
@ -1,12 +0,0 @@
|
|||||||
namespace HegreHotel.Models;
|
|
||||||
|
|
||||||
using SQLite;
|
|
||||||
|
|
||||||
public class Status
|
|
||||||
{
|
|
||||||
[PrimaryKey, AutoIncrement]
|
|
||||||
public int Id { get; set; }
|
|
||||||
|
|
||||||
[MaxLength(50), Unique]
|
|
||||||
public string? Libelle { get; set; }
|
|
||||||
}
|
|
@ -1,36 +0,0 @@
|
|||||||
using SQLite;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using HegreHotel;
|
|
||||||
using HegreHotel.Models;
|
|
||||||
|
|
||||||
public class ClientService
|
|
||||||
{
|
|
||||||
// Ajouter un client
|
|
||||||
public static async Task AjouterClient(Client client)
|
|
||||||
{
|
|
||||||
var db = await Database.GetConnection();
|
|
||||||
await db.InsertAsync(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Récupérer tous les clients
|
|
||||||
public static async Task<List<Client>> GetClientsAsync()
|
|
||||||
{
|
|
||||||
var db = await Database.GetConnection();
|
|
||||||
return await db.Table<Client>().ToListAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Modifier un client
|
|
||||||
public static async Task ModifierClient(Client client)
|
|
||||||
{
|
|
||||||
var db = await Database.GetConnection();
|
|
||||||
await db.UpdateAsync(client);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Supprimer un client
|
|
||||||
public static async Task SupprimerClient(Client client)
|
|
||||||
{
|
|
||||||
var db = await Database.GetConnection();
|
|
||||||
await db.DeleteAsync(client);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
<?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="HegreHotel.Views.ClientsPage"
|
|
||||||
Title="Clients">
|
|
||||||
|
|
||||||
<StackLayout>
|
|
||||||
<Button Text="Ajouter un Client" Clicked="OnAjouterClientClicked" />
|
|
||||||
<CollectionView x:Name="ClientsList">
|
|
||||||
<CollectionView.ItemTemplate>
|
|
||||||
<DataTemplate>
|
|
||||||
<Label Text="{Binding Nom}" />
|
|
||||||
</DataTemplate>
|
|
||||||
</CollectionView.ItemTemplate>
|
|
||||||
</CollectionView>
|
|
||||||
</StackLayout>
|
|
||||||
</ContentPage>
|
|
@ -1,37 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Threading.Tasks;
|
|
||||||
using HegreHotel.Models;
|
|
||||||
|
|
||||||
namespace HegreHotel.Views;
|
|
||||||
|
|
||||||
public partial class ClientsPage : ContentPage
|
|
||||||
{
|
|
||||||
public ClientsPage()
|
|
||||||
{
|
|
||||||
InitializeComponent();
|
|
||||||
ChargerClients();
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void ChargerClients()
|
|
||||||
{
|
|
||||||
var clients = await ClientService.GetClientsAsync();
|
|
||||||
ClientsList.ItemsSource = clients;
|
|
||||||
}
|
|
||||||
|
|
||||||
private async void OnAjouterClientClicked(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
var nouveauClient = new Client
|
|
||||||
{
|
|
||||||
Nom = "Dupont",
|
|
||||||
Prenom = "Jean",
|
|
||||||
Email = "jean.dupont@example.com",
|
|
||||||
Telephone = "0123456789"
|
|
||||||
};
|
|
||||||
|
|
||||||
await ClientService.AjouterClient(nouveauClient);
|
|
||||||
ChargerClients();
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue
Block a user