From 91c6f339baa6ccee38145d21a6dc5d9208469549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miskolczi=20Rich=C3=A1rd?= Date: Fri, 24 Mar 2023 12:01:08 +0100 Subject: [PATCH] I don't even know anymore --- .../DesignTimeBuild/.dtbcache.v2 | Bin 96529 -> 96557 bytes .vs/Password Manager/v17/.suo | Bin 26112 -> 26112 bytes Password Manager/Fields.cs | 10 ++++ Password Manager/Form1.Designer.cs | 6 +-- Password Manager/Form1.cs | 5 +- Password Manager/IList.cs | 38 +++++++++++++ Password Manager/PasswordList.cs | 14 +++++ Password Manager/Profile.cs | 8 +++ Password Manager/ProfileList.cs | 50 +++++++++--------- Password Manager/ProfileNotFoundException.cs | 13 +++++ 10 files changed, 116 insertions(+), 28 deletions(-) create mode 100644 Password Manager/Fields.cs create mode 100644 Password Manager/IList.cs create mode 100644 Password Manager/PasswordList.cs create mode 100644 Password Manager/ProfileNotFoundException.cs diff --git a/.vs/Password Manager/DesignTimeBuild/.dtbcache.v2 b/.vs/Password Manager/DesignTimeBuild/.dtbcache.v2 index e392b5a4d414ae0d3ffeaba962203c70ba93b6b6..cea98f0909ab8c5c1a6db168b33969213ca9c552 100644 GIT binary patch delta 9598 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 delta 9509 zcmZwN37nNx9ma9ac|}nYAqf}+L6Ci$8D?SFLH2zUL`9Za06~yV5QGb2nhG)u0-6Xy znkGRKCb^KNVVb0Anx<(IhGClXFlm^iJ^wrNsPivAzW4sP^PMx}Mdm$=drs8cc%o+5 zwK0tDo71f%cScT0c6MRG^vuGN=~=E^NRDbigNR(m*nQ<7v`4a z78YdYcoT{YPhJ z98b+lYSfs|>uO&7r^W(4EabI_SK#j#^EvW)37@a2dTlA6Pv>jP_f32JK4zeig42uhqQP@Z#s5UgLVk+O5})4d;!tF>c{?E3b9D?E6~J>o#5+c-h#c zyf*UUKQ+quU}h7qI{f|Ze75g@~L^{(**>jXu-!*kE3N6Qc>Q3^umBv9HMpL=T-gU z2P+G0Qetfb+IiMSti4o+fR0|Zm+B@K)T`7Iv1MY{1}yh%nbZoY>jGAKwL)r@R4QP#SF5DfP^Hp8qplBF>)9Hy8#LH= z18(%{2C18*z87$_S2s!BB6VxPI#a2tkJ!&c+#FZ;Q*w%nMJlmqd?v(m|z+GP5DYZ@N?ttxHZIjwzDrL8bdjfWPwnJ=}2Kzz4 zyhWN!oy-e3wXq{hc(y%sheT_M$D|$)c*3j4qzEB3tDZvtNMgFP>GSn9U{FM4%Y>Lsb) z1-$IlOT7P7zWuL={XXDT&tB1BuSxwO;B~KFlX^qyj{$Fb^@h}2m5TTOKLxz)*;``o zXs|yAyzA9FQb(lz5^&V3BU0~4{WaiNmHO)a$9rP$i~TL&xF76&sSl+79`K=8A4q*9 z^^bs$z50kM{q<2UhJX{Em20pHsecB1;#Gyzr&9k4IO)}=QlC|+6#gCXxo4k=ozh_c z3HZXRQ&L|_)rbhu%_zT=im__0l|-B-rS~5(R{bQXDRz3q8Df0A05RyMRfM8qXz3Dl^K!cRTrsjsjd+@US&(=O68>@@;%EH>n2tZ(cPmPB^*DU@1qo33OseuuLyc!@iSZYYbP_G78 zD*pT(CN?}`glEGv*hr~S5u?2tDK$oFY{WRP#z>8qnh;aC*t79s6U8P)T;kP4smW58 zMqK9AWU0%grbJxv4V8ZXakjh}*ncC$&MUG-Bib{9A4iD-+ukal0R^Olq^#mWZuhZI-%2>duJo zS5x-$_YSeU#I{A;U5!!QCAD2@N5nl|ZI{|9wJYKWUhR~+Hzjso#1B2YSL}YN2O@st z)%{WrO6`vLu~!dD?UC9W@ssHHzxIedB(^W&r+%=9r1nca9Pu-+_Dek?bs*yB)fK<~ zBVvz=Jr?nJbyk5#rJj&F81W0Qo{)M{>ZyoddiA8#(^30h&qVynv!}%lX|QJ_e(lvE zspq7gkNAyO&q=)?bvWX;(eHn~AoilzOA){GgS{yAveYXPzxV28saK_5i}-_6DZDE7 zy4V{Le{>A5OT8)eR>YsYdQ<9csdpm&?A6;+??&x^9f|mhXYYy~)nM;M{MDS>LArIK_{;|NOhL#k|5Ko&PmnRN0wN2 zg07xrX|Nor+yr@En_$ygY{0($E#jaeWm&(=)6O z#WNtD@GyAHgDDm~$-y)W9@e1HqL5KyQNoyQ!9x|ywcxP{=3DS&1Pd*A_<!98~Du-L)aWxk@&!ZdyV+Wg4>DQNMvxs z5ET~O6U3($-1fs~7TnmwDGTo1;Y&t}j}_c}<4ch@%9<868MQ2GF=|`XX4J8$!>DIb zk5S*EKBJ*ULq=nZ#*C&GO&QHCnloBjv}CllXw7J6k!r{4Xw{L?#e#b|$hOF4h!FmA3v^ZN+6P)>?37iW@Ds_QcH=TwY?G1y_*RV8Jya$}G4H#AXYw^tg;;a4pA` z8iUIV-!6_Nevf!)>XIpS$g}N4X8RuGXc7z5NoB$!i zf^!@+vEVEQ%`7-kK?@7cMbOHEvkkOO?B@?>6zE_tangX!7M&Sc7QFK#$AUL^CRY_Tm($%Z~3o%Gh2mk;8 diff --git a/.vs/Password Manager/v17/.suo b/.vs/Password Manager/v17/.suo index 65fd6d039bc92a4932dda1bfad3a79ff9487f3df..7cf3bb723addfbdc735305234b4f78ed323042a2 100644 GIT binary patch delta 3940 zcmdUyc~sQb702&ym{F9)aRU)tK*U{!ea58$B~j5Ba3e-skU_%02aQ1}XaTIi0+ekS+yJx(fuIqH0O6o5hyvY#vTX-<0l}aRhyiMh zXgEYfFEux|bfw(Nv)_DF3%+u@@s?lIx?A4faJS5Jw_ZE#v7@T7a@HTH0esG?a$RT5 z)T;^joNZ0{hn!XY`kZZwt0@7C(6Z)ZrCOE33&EmVc?tYFSPGVb z;YFR47O&$f2cZ0N$Qoy8>a=+s$I zYec(f%L0V24Wop|Mk(mj;qV#NTa55)O`l`!s>Lg-dUU1PMGubcUT-CJ$wu8%eyO1o zm3^(ZWtbjU-s-KL0&;q9Qbpwe>;GeOgZGAIN^U<#NDrh(~T2ABzo!7E@EC;_j6*@;+_lEyTKQu7K^%A@W%W$&VpiDD}AD!>#k>D0ym zNemlj7&_298PLYi@vw4BIj7`gzBX)=kdv^tQ=d-{&(dE$P83UjYNpV>(CE86JLf@*ByzjG!|eQ%b^w^7Y_zult-zMa@}bUHT+QCshO&!AJ3Vv8*^3jNWoXN#EG=F z^K~%46!hcyRkmuAoapnZQCsIQbSVvuW)tWp+4CqgT?^7W;+qYqIjDHni^GQbC)H6{ zUP3tTsfp|7uc!7Z*He?+u@j6<%qQuqbt?VT8F#b8pX>|g*Z2E=x^rHe$mB!L7KvH? z_q30^vaMlXQHeCzWLzmKJNt&RsI=>^*L3?T@>J-unI}x1qP4?2yLSv(S~%|Djwu5# zjaz&*w(*0o&imS^F2eQ9#Aw}SGV7_a<#~3tG=(Km8?H`T3X^miOQ{Zl_iWm!iDwbi zG8f=zvGifNU#)f9K6A_O;v+1RL&x8$82Ne6!2#24w>}PB*}DB0$DSsO?6VEGiC%T_ zs85-mmNZwd&JT|D_2!-a(yaww)Q<@;ePmhoeeuP^vzGsMT$i^`tuFa&;>fni+m{Yd z{e|VAq5Ut@t-&yd1a>oB0hqillspX)LgF zb77y>Q^a8smo!Kfc^<{iej*z&e0cyJAO{Q*`G5x3;U4Jo2a6=ae|$lt6Wk+9DtS`1Ej*eeee(a136SE%F_F=tW)*w7WM_~AgduH5h?B6pEj@M_SK^a@9)Zp|+A zxcj)Z10DNndf%SzAkB(F-DnAJio$mmum5;98Ad>;ber>|DK>}j`JWQJi-tc_hR4~b z6MQleoxnGbD9$B;K+9O%Ycv3BZPtjfCb+0xILH92iHFWah4ta1olRPlW!1 zn#*N}%c{oq-)}lPY|Vq+!J8%h!jLNS&Kog}woF~4-aStwcD3m$!@mp8v9XK65wxx2SI);-2w0a4%gvx)K`005%|vs`QL!{ zA%{hFVgD~0m!My9#2c5xj}k-ZoyYjU1m1p}m{azxD|o$9XjjRzii#0csv};N@!S*s z+Ilj!tBcC}-b~%{%=RmBYyBgS-xye#q*u*2zx$nKea+Tgi^BrfO*G|9GBQ59@>HJA z?7kv$uWYJ*Zt2^>dz`)f5_{zZ6il+kTnS3pl)CY+cjj6uEvoVV`xUjT_W`Cq!%hU>l8JD!%VQ#>wH$ES# zO~~@~IG9K*=252}cTD)zf#f%?%Wc{?XxGgi}zqgP@#$iM^!3MT~T+{fd9EN17C1e>WFF{a}~sdwV4QK zV`a1L8Ybb2#S$V(iMfoPN%MXkritqTBoZ`|2>%3cli&Pj9b$o_B~|!c##l81Ka`|R z(ldtRD~2;hk~D|3^e&Wy^H>Vd-Oz)fr>;mxhNC*=veBbDN_L*l zoMqGf-`ov*qla(*d^gT5-is^`{yfpQ^LQ&Bu3j2__VUf0*S}uDisDUJV-R`@mkzeL zFIjSs#t5_YtdB(7c**J0a(m{>t?#G5e4TnYa+TyCEJ3ZTaxxHvczWaiG0}&QhjYX7 z@kq&e5woX@sp#%qA*~e%OOdSM)0TjimdK`Za>TNV$+p)>xS{KEYAA&>JuFGZS+eit zid;Ip!VFH)=yA?;_hKZsj@9B!sQxc&AxUxo diff --git a/Password Manager/Fields.cs b/Password Manager/Fields.cs new file mode 100644 index 0000000..e9d82c3 --- /dev/null +++ b/Password Manager/Fields.cs @@ -0,0 +1,10 @@ +using System; + +namespace Password_Manager +{ + static class Fields + { + public static Profile CurrentProfile; + public static ProfileList ListOfProfiles; + } +} diff --git a/Password Manager/Form1.Designer.cs b/Password Manager/Form1.Designer.cs index 4cd56c2..75fd00a 100644 --- a/Password Manager/Form1.Designer.cs +++ b/Password Manager/Form1.Designer.cs @@ -76,8 +76,8 @@ #endregion - private TextBox searchBox; - private ListBox resultList; - private ComboBox profileSelection; + public TextBox searchBox; + public ListBox resultList; + public ComboBox profileSelection; } } \ No newline at end of file diff --git a/Password Manager/Form1.cs b/Password Manager/Form1.cs index 8a55f13..1d6c11f 100644 --- a/Password Manager/Form1.cs +++ b/Password Manager/Form1.cs @@ -9,12 +9,15 @@ namespace Password_Manager private void ChangeProfile(object sender, EventArgs e) { + ComboBox cb = (ComboBox)sender; + Fields.CurrentProfile = Fields.ListOfProfiles.SearchByName(cb.Text); + } private void UpdateResultList(object sender, EventArgs args) { - + //TODO: } } } \ No newline at end of file diff --git a/Password Manager/IList.cs b/Password Manager/IList.cs new file mode 100644 index 0000000..34fa6d4 --- /dev/null +++ b/Password Manager/IList.cs @@ -0,0 +1,38 @@ +using System; + +namespace Password_Manager +{ + abstract class IList + { + protected T[] list; + + public int Length + { + get + { + return list.Length; + } + } + + public T this[int index] + { + get + { + return list[index]; + } + } + + public IList() + { + this.list = new T[0]; + } + + public abstract void Add(T item); + public abstract void Remove(T item); + public abstract T SearchByName(string name); + public void Clear() + { + list = new T[0]; + } + } +} diff --git a/Password Manager/PasswordList.cs b/Password Manager/PasswordList.cs new file mode 100644 index 0000000..22747b1 --- /dev/null +++ b/Password Manager/PasswordList.cs @@ -0,0 +1,14 @@ +using System; + +namespace Password_Manager +{ + sealed class PasswordListBox : ListBox + { + public PasswordListBox() : base() { } + + public void ReadFromPath() + { + //read all files from + } + } +} diff --git a/Password Manager/Profile.cs b/Password Manager/Profile.cs index 43a591e..74ce88a 100644 --- a/Password Manager/Profile.cs +++ b/Password Manager/Profile.cs @@ -8,6 +8,14 @@ namespace Password_Manager { 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 + private Password[] Passwords; public event PasswordStoreChange Change; //runs if a new password is added, or if one is removed + + public Profile(string name, string path, PasswordStoreChange change) + { + Name = name; + Path = path; + Change = change; + } } } diff --git a/Password Manager/ProfileList.cs b/Password Manager/ProfileList.cs index 597c120..025f102 100644 --- a/Password Manager/ProfileList.cs +++ b/Password Manager/ProfileList.cs @@ -2,32 +2,12 @@ namespace Password_Manager { - sealed class ProfileList + sealed class ProfileList : IList { - private Profile[] list; - public int Length - { - get - { - return this.list.Length; - } - } + public ProfileList() : base() { } - public Profile this[int index] - { - get - { - return this.list[index]; - } - } - - public ProfileList() - { - this.list = new Profile[0]; - } - - public void Add(Profile p) + public override void Add(Profile p) { //grow the list by 1 and copy all existing items Profile[] tmp = new Profile[this.Length + 1]; @@ -44,7 +24,7 @@ namespace Password_Manager list[this.Length - 1] = p; } - public void Remove(Profile p) + public override void Remove(Profile p) { Profile[] tmp = new Profile[this.Length - 1]; @@ -58,5 +38,27 @@ namespace Password_Manager 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; + } + } } } diff --git a/Password Manager/ProfileNotFoundException.cs b/Password Manager/ProfileNotFoundException.cs new file mode 100644 index 0000000..bda9248 --- /dev/null +++ b/Password Manager/ProfileNotFoundException.cs @@ -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) { } + + } +}