-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDatabase.cs
More file actions
187 lines (153 loc) · 4.83 KB
/
Database.cs
File metadata and controls
187 lines (153 loc) · 4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
namespace SE307Project
{
public class Database
{
public List<PetOwner> PetOwnerList = new List<PetOwner>();
public List<PetSitter> PetSitterList = new List<PetSitter>();
public readonly String XmlOwnerFileName = "PetOwners.xml";
public readonly String XmlSitterFileName = "PetSitters.xml";
private readonly string _connectionString;
private Database()
{
}
private static Database Instance;
public static Database GetInstance()
{
if (Instance == null)
{
Instance = new Database();
}
return Instance;
}
public void InsertPetOwner(string name, string surname, string email, string password /*, string location*/)
{
try
{
CheckUserExists(email);
PetOwner po = new PetOwner(name, surname, email, password);
PetOwnerList.Add(po);
XMLHandler xmlHandler = new XMLHandler();
xmlHandler.WritePetOwnerList(XmlOwnerFileName,PetOwnerList);
}
catch (UserAlreadyExistsException e)
{
e.PrintException();
}
}
public void InsertPetSitter(string name, string surname, string email, string password)
{
try
{
CheckUserExists(email);
PetSitter ps = new PetSitter(name, surname, email, password);
PetSitterList.Add(ps);
XMLHandler xmlHandler = new XMLHandler();
xmlHandler.WritePetSitterList(XmlSitterFileName,PetSitterList);
} catch (UserAlreadyExistsException e)
{
e.PrintException();
}
}
public User FindUser(string email, string password)
{
foreach (var user in PetOwnerList)
{
if (user.Email == email)
{
if (user.Password != password)
{
throw new ExceptionWrongPassword();
}
return user;
}
}
foreach (var user in PetSitterList)
{
if (user.Email == email)
{
if (user.Password != password)
{
throw new ExceptionWrongPassword();
}
return user;
}
}
return null;
}
public User FindUser(string email)
{
foreach (var user in PetOwnerList)
{
if (user.Email == email)
{
return user;
}
}
foreach (var user in PetSitterList)
{
if (user.Email == email)
{
return user;
}
}
return null;
}
public PetOwner FindPetOwner(string email)
{
foreach (var user in PetOwnerList)
{
if (user.Email == email)
{
return user;
}
}
return null;
}
private void CheckUserExists(string email)
{
List<string> emailsList = new List<string>();
foreach (var user in PetOwnerList)
{
emailsList.Add(user.Email);
}
foreach (var user in PetSitterList)
{
emailsList.Add(user.Email);
}
foreach (var emails in emailsList)
{
if (emails != email)
{
foreach (var user in PetOwnerList)
{
if (user.Email == email) {
throw new UserAlreadyExistsException();
}
}
foreach (var user in PetSitterList)
{
if (user.Email == email) {
throw new UserAlreadyExistsException();
}
}
}
}
}
public List<PetSitter> ListPetSitters()
{
int index = 1;
List<PetSitter> list = new List<PetSitter>();
foreach (var user in PetSitterList)
{
Console.WriteLine(index + ") ");
user.ShowProfile();
list.Add(user);
index++;
}
return list;
}
}
}