This commit is contained in:
Miskolczi Richárd
2023-03-24 14:09:46 +01:00
parent 99498ed660
commit 01a926d316
9 changed files with 1 additions and 0 deletions

View File

@@ -0,0 +1,20 @@
using System;
namespace Password_Manager
{
public delegate void PasswordStoreChange();
sealed class Profile
{
public string Name { get; } //the name of the password store profile ("personal", "work", or similar)
public string Path { get; } //path of the folder containing the password store
//public event PasswordStoreChange Change; //runs if a new password is added, or if one is removed
public Profile(string name, string path)
{
Name = name;
Path = path;
//Change = change;
}
}
}

View File

@@ -0,0 +1,17 @@
using System;
namespace Password_Manager
{
static class ProfileHandler
{
public static Profile CurrentProfile;
public static ProfileList ListOfProfiles;
public static void ProfileChange(object sender, EventArgs e)
{
Program.mainForm.searchBox.Clear();
Program.mainForm.resultList.ReloadResults();
Program.mainForm.profileSelection.DataSource = ListOfProfiles;
}
}
}

View File

@@ -0,0 +1,63 @@
using System;
namespace Password_Manager
{
sealed class ProfileList : IList<Profile>
{
public ProfileList() : base() { }
public override void Add(Profile p)
{
//grow the list by 1 and copy all existing items
Profile[] tmp = new Profile[this.Length + 1];
for (int i = 0; i < this.Length; i++)
{
tmp[i] = this[i];
}
this.list = tmp;
//--------------------------------------------------------
list[this.Length - 1] = p;
}
public override void Remove(Profile p)
{
Profile[] tmp = new Profile[this.Length - 1];
for (int i = 0; i < tmp.Length; i++)
{
if (this[i] != p)
{
tmp[i] = this[i];
}
}
this.list = tmp;
}
public override Profile SearchByName(string name)
{
Profile result = null;
for (int i = 0; i < this.Length; i++)
{
if (this[i].Name == name)
{
result = this[i];
}
}
if (result == null)
{
throw new ProfileNotFoundException();
}
else
{
return result;
}
}
}
}

View File

@@ -0,0 +1,13 @@
using System;
using System.Runtime.CompilerServices;
namespace Password_Manager
{
sealed class ProfileNotFoundException : Exception
{
public ProfileNotFoundException() : base() { }
public ProfileNotFoundException(string message) : base(message) { }
public ProfileNotFoundException(string message, Exception inner) : base(message, inner) { }
}
}