Code
·
175 lines
·
4852 bytes
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
175using MailSharp.MailClient.Models;
namespace MailSharp.MailClient.Controllers.Api;
public class AccountDto
{
public int Id { get; set; }
public string DisplayName { get; set; } = "";
public string EmailAddress { get; set; } = "";
public string Signature { get; set; } = "";
public int MessagesPerPage { get; set; }
public int ContactsPerPage { get; set; }
public int AutoCheckIntervalMinutes { get; set; }
public string TimeZoneId { get; set; } = "";
public bool IsAdmin { get; set; }
public static AccountDto From(Account a) => new()
{
Id = a.Id,
DisplayName = a.DisplayName,
EmailAddress = a.EmailAddress,
Signature = a.Signature,
MessagesPerPage = a.MessagesPerPage,
ContactsPerPage = a.ContactsPerPage,
AutoCheckIntervalMinutes = a.AutoCheckIntervalMinutes,
TimeZoneId = a.TimeZoneId,
IsAdmin = a.IsAdmin
};
}
public class AuthStateDto
{
public bool IsLoggedIn { get; set; }
public AccountDto? Account { get; set; }
public List<AccountDto> Accounts { get; set; } = [];
}
public class LoginDefaultsDto
{
public string ImapHost { get; set; } = string.Empty;
public int ImapPort { get; set; }
public SecurityMode ImapSecurity { get; set; }
public string SmtpHost { get; set; } = string.Empty;
public int SmtpPort { get; set; }
public SecurityMode SmtpSecurity { get; set; }
}
public class LoginRequest
{
public string EmailAddress { get; set; } = "";
public string Username { get; set; } = "";
public string Password { get; set; } = "";
public bool Advanced { get; set; }
public string ImapHost { get; set; } = "";
public int ImapPort { get; set; }
public SecurityMode ImapSecurity { get; set; }
public string SmtpHost { get; set; } = "";
public int SmtpPort { get; set; }
public SecurityMode SmtpSecurity { get; set; }
}
public class SwitchAccountRequest { public int AccountId { get; set; } }
public class RemoveAccountRequest { public int AccountId { get; set; } }
public class MessagesResponse
{
public List<MessageListItem> Messages { get; set; } = [];
public int Page { get; set; }
public int PageSize { get; set; }
public int TotalCount { get; set; }
public int TotalPages { get; set; }
}
public class AllowImagesRequest
{
public string Folder { get; set; } = "";
public uint Uid { get; set; }
public string Sender { get; set; } = "";
}
public class LanguageOptionDto
{
public string Code { get; set; } = "";
public string Name { get; set; } = "";
}
public class LanguageStateDto
{
public string Current { get; set; } = "";
public List<LanguageOptionDto> Languages { get; set; } = [];
public Dictionary<string, string> Strings { get; set; } = [];
}
public class SetLanguageRequest { public string Lang { get; set; } = ""; }
public class UidsRequest
{
public string Folder { get; set; } = "";
public List<uint> Uids { get; set; } = [];
}
public class MoveRequest
{
public string Folder { get; set; } = "";
public List<uint> Uids { get; set; } = [];
public string TargetFolder { get; set; } = "";
}
public class FolderRequest
{
public string Folder { get; set; } = "";
}
public class ContactDto
{
public string Email { get; set; } = "";
public string DisplayName { get; set; } = "";
}
public class UpdateContactRequest
{
public string Email { get; set; } = "";
public string DisplayName { get; set; } = "";
}
public class AccountSettingsDto
{
public string FriendlyName { get; set; } = "";
public string Signature { get; set; } = "";
public int MessagesPerPage { get; set; }
public int ContactsPerPage { get; set; }
public int AutoCheckIntervalMinutes { get; set; }
public string TimeZoneId { get; set; } = "";
public string Language { get; set; } = "";
public static AccountSettingsDto From(Account a) => new()
{
FriendlyName = a.DisplayName,
Signature = a.Signature,
MessagesPerPage = a.MessagesPerPage,
ContactsPerPage = a.ContactsPerPage,
AutoCheckIntervalMinutes = a.AutoCheckIntervalMinutes,
TimeZoneId = a.TimeZoneId,
Language = a.Language
};
}
public class SettingsStateDto
{
public AccountSettingsDto Settings { get; set; } = new();
public List<string> TimeZones { get; set; } = [];
public List<LanguageOptionDto> Languages { get; set; } = [];
}
public class FolderSettingItem
{
public string FullName { get; set; } = "";
public FolderSyncMode SyncMode { get; set; }
public bool Subscribed { get; set; }
}
public class SaveFolderSettingsRequest
{
public List<FolderSettingItem> Folders { get; set; } = [];
}
public class AddFolderRequest { public string Name { get; set; } = ""; }
public class DeleteFoldersRequest { public List<string> FolderNames { get; set; } = []; }
public class MoveFolderRequest { public string Folder { get; set; } = ""; public string? NewParent { get; set; } }
public class RenameFolderRequest { public string Folder { get; set; } = ""; public string NewName { get; set; } = ""; }