From a23c25962b63b5381b4e142a07f1c7ba1a83699a Mon Sep 17 00:00:00 2001 From: Stefan Humpelstetter Date: Mon, 30 Oct 2023 08:01:08 +0000 Subject: [PATCH 1/6] push --- Models/Team.cs | 56 ++++++++++++++++++++++++++++++++++ Models/TeamMember.cs | 42 +++++++++++++++++++++++++ Services/ITeamMemberService.cs | 17 +++++++++++ 3 files changed, 115 insertions(+) create mode 100644 Models/Team.cs create mode 100644 Models/TeamMember.cs create mode 100644 Services/ITeamMemberService.cs diff --git a/Models/Team.cs b/Models/Team.cs new file mode 100644 index 0000000..211f750 --- /dev/null +++ b/Models/Team.cs @@ -0,0 +1,56 @@ +using SQLite; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace MauiApp1.Models +{ + internal class Team : INotifyPropertyChanged + { + [PrimaryKey, AutoIncrement] + public int id { get; set; } + private int maxSize; + public int MaxSize + { + get => maxSize; + set => SetField(ref maxSize, value); + } + + private string skillsRequired; + public string SkillsRequired + { + get => skillsRequired; + set => SetField(ref skillsRequired, value); + } + + private DateTime startDate; + public DateTime StartDate + { + get => startDate; + set => SetField(ref startDate, value); + } + + private DateTime endDate; + public DateTime EndDate + { + get => endDate; + set => SetField(ref endDate, value); + } + + public event PropertyChangedEventHandler PropertyChanged; + protected void OnPropertyChanged(string propertyName) => + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + + protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = "") + { + if (EqualityComparer.Default.Equals(field, value)) return false; + field = value; + OnPropertyChanged(propertyName); + return true; + } + } +} diff --git a/Models/TeamMember.cs b/Models/TeamMember.cs new file mode 100644 index 0000000..d8d2ae2 --- /dev/null +++ b/Models/TeamMember.cs @@ -0,0 +1,42 @@ +using SQLite; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using System.Text; +using System.Threading.Tasks; + +namespace MauiApp1.Models +{ + public class TeamMember : INotifyPropertyChanged + { + [PrimaryKey, AutoIncrement] + public int id { get; set; } + private string firstname; + public string Firstname + { + get => firstname; + set => SetField(ref firstname, value); + } + + private string lastname; + public string Lastname + { + get => lastname; + set => SetField(ref lastname, value); + } + + public event PropertyChangedEventHandler PropertyChanged; + protected void OnPropertyChanged(string propertyName) => + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + + protected bool SetField(ref T field, T value, [CallerMemberName] string propertyName = "") + { + if (EqualityComparer.Default.Equals(field, value)) return false; + field = value; + OnPropertyChanged(propertyName); + return true; + } + } +} diff --git a/Services/ITeamMemberService.cs b/Services/ITeamMemberService.cs new file mode 100644 index 0000000..1fc4b55 --- /dev/null +++ b/Services/ITeamMemberService.cs @@ -0,0 +1,17 @@ +using MauiApp1.Models; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MauiApp1.Services +{ + public interface ITeamMemberService + { + Task> GetTeamMemberList(); + Task AddTeamMember(TeamMember teamMember); + Task DeleteTeamMember(TeamMember teamMember); + Task UpdateTeamMember(TeamMember teamMember); + } +} \ No newline at end of file From 42ef38c253f69a1fbdb4cdccd93a7d1a8fefe835 Mon Sep 17 00:00:00 2001 From: Stefan Humpelstetter Date: Mon, 30 Oct 2023 08:05:53 +0000 Subject: [PATCH 2/6] yes --- Models/TeamMember.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Models/TeamMember.cs b/Models/TeamMember.cs index d8d2ae2..e957439 100644 --- a/Models/TeamMember.cs +++ b/Models/TeamMember.cs @@ -27,6 +27,13 @@ public string Lastname set => SetField(ref lastname, value); } + private string email; + public string Email + { + get => email; + set => SetField(ref email, value); + } + public event PropertyChangedEventHandler PropertyChanged; protected void OnPropertyChanged(string propertyName) => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); From f9c814f203b299e3bac7b7a22356560f736aec14 Mon Sep 17 00:00:00 2001 From: Stefan Humpelstetter Date: Mon, 30 Oct 2023 08:24:14 +0000 Subject: [PATCH 3/6] push --- Services/TeamMemberService.cs | 52 +++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 Services/TeamMemberService.cs diff --git a/Services/TeamMemberService.cs b/Services/TeamMemberService.cs new file mode 100644 index 0000000..3999c96 --- /dev/null +++ b/Services/TeamMemberService.cs @@ -0,0 +1,52 @@ +using MauiApp1.Data; +using MauiApp1.Models; +using SQLite; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace MauiApp1.Services +{ + public class TeamMemberService : ITeamMemberService + { + private SQLiteAsyncConnection _dbConn; + /*! + Method that initiates connection to database. Will create the OrderStatus table if connected. + */ + private async Task SetUpDb() + { + if (_dbConn != null) + return; + + + _dbConn = new SQLiteAsyncConnection(DatabaseSettings.DBPath, DatabaseSettings.Flags); + await _dbConn.CreateTableAsync(); + } + + public async Task AddTeamMember(TeamMember teamMember) + { + await SetUpDb(); + return await _dbConn.InsertAsync(teamMember); + } + + public async Task DeleteTeamMember(TeamMember teamMember) + { + await SetUpDb(); + return await _dbConn.DeleteAsync(teamMember); + } + + public async Task> GetTeamMemberList() + { + await SetUpDb(); + return await _dbConn.Table().ToListAsync(); + } + + public async Task UpdateTeamMember(TeamMember teamMember) + { + await SetUpDb(); + return await _dbConn.UpdateAsync(teamMember); + } + } +} From 5785040c1fb139b55b52371bb51f8a8a91b90f63 Mon Sep 17 00:00:00 2001 From: herrone Date: Mon, 30 Oct 2023 08:33:14 +0000 Subject: [PATCH 4/6] Added xaml for TeamMembers --- Views/TeamMember.xaml | 28 ++++++++++ Views/TeamMember.xaml.cs | 100 ++++++++++++++++++++++++++++++++++++ Views/VolunteerPage.xaml | 28 ++++++++++ Views/VolunteerPage.xaml.cs | 80 +++++++++++++++++++++++++++++ 4 files changed, 236 insertions(+) create mode 100644 Views/TeamMember.xaml create mode 100644 Views/TeamMember.xaml.cs create mode 100644 Views/VolunteerPage.xaml create mode 100644 Views/VolunteerPage.xaml.cs diff --git a/Views/TeamMember.xaml b/Views/TeamMember.xaml new file mode 100644 index 0000000..6395056 --- /dev/null +++ b/Views/TeamMember.xaml @@ -0,0 +1,28 @@ + + + + + + +