-
Notifications
You must be signed in to change notification settings - Fork 0
/
Contact.cs
129 lines (110 loc) · 3.88 KB
/
Contact.cs
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net.Http.Headers;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace PhonesBook
{
internal class Contact
{
public Contact(string phoneNumber, string name)
{
if (phoneNumber.Length < 9)
{
Console.WriteLine("Phone number is too short");
}
else if (phoneNumber.Length > 9)
{
Console.WriteLine("Phone number is too long");
}
else
{
this.Name = name;
this.PhoneNumber = phoneNumber;
}
}
public string Name { get; set; }
public string PhoneNumber { get; set; }
public static string GetPhoneNumberFromUser()
{
Console.WriteLine("Insert phone number:");
string phoneNumber = Console.ReadLine();
while (!Contact.PhoneNumberIsValid(phoneNumber))
{
Console.WriteLine("Phone number is incorrect, insert phone number again:");
phoneNumber = Console.ReadLine();
}
return phoneNumber;
}
public static string GetNameFromUser()
{
Console.WriteLine("Insert contact name:");
string name = Console.ReadLine();
while (name == "")
{
Console.WriteLine("Name don't be empty, Insert contact name again:");
name = Console.ReadLine();
}
return name;
}
public static Contact GetContactFromUser()
{
string phoneNumber = GetPhoneNumberFromUser();
string name = GetNameFromUser();
return new Contact(phoneNumber, name);
}
public static bool PhoneNumberIsValid(string phoneNumber)
{
Regex regex = new Regex(@"^[0-9]{9}$");
return regex.IsMatch(phoneNumber);
}
public static void DisplayDirectoryContacts(Dictionary<string, Contact> contactsBook)
{
Console.WriteLine("Contact list:");
foreach (Contact contact in contactsBook.Values)
{
Console.WriteLine($"{contact.Name} {contact.PhoneNumber}");
}
Console.WriteLine();
}
public static void DisplayContactByPhoneNumber(Dictionary<string, Contact> contactsBook, string phoneNumber)
{
Contact contact = null;
if (contactsBook.TryGetValue(phoneNumber, out contact))
{
Console.WriteLine("Contact: ");
Console.WriteLine($"{contact.Name} {contact.PhoneNumber}");
}
else
{
Console.WriteLine("This contact not exists");
}
}
public static List<Contact> SearchContactsByName(Dictionary<string, Contact> contactsBook, string name)
{
var searchedContacts = contactsBook.Values.Where((Contact c) => c.Name.Contains(name));
return new List<Contact>(searchedContacts);
}
public static void DisplayListContacts(List<Contact> contactsList)
{
Console.WriteLine("Contact list:");
foreach (Contact contact in contactsList)
{
Console.WriteLine($"{contact.Name} {contact.PhoneNumber}");
}
Console.WriteLine();
}
public static Dictionary<string, Contact> AddPhoneNumberToPhonesBook(Dictionary<string, Contact> contactsBook,
Contact contact)
{
if (!contactsBook.TryAdd(contact.PhoneNumber, contact))
{
Console.WriteLine("This phone number exists in phones book");
}
Console.WriteLine("Contact added");
return contactsBook;
}
}
}