diff options
Diffstat (limited to 'ShareGuard.Web/DbModels/Link.cs')
| -rw-r--r-- | ShareGuard.Web/DbModels/Link.cs | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/ShareGuard.Web/DbModels/Link.cs b/ShareGuard.Web/DbModels/Link.cs new file mode 100644 index 0000000..0cd66ac --- /dev/null +++ b/ShareGuard.Web/DbModels/Link.cs @@ -0,0 +1,24 @@ +namespace ShareGuard.Web.DbModels; + +public class Link +{ + private static readonly string _tokenChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; + private static readonly Random _random = new(); + public int Id { get; set; } + public string Token { get; set; } + public string Name { get; set; } + public string IpAddress { get; set; } + public string? PeerPublicKey { get; set; } + + public static string GenerateToken(Database database) + { + var token = ""; + while (token == "" || database.Links.Any(link => link.Token == token)) + { + token = ""; + for (var i = 0; i < 10; i++) token += _tokenChars[_random.Next(_tokenChars.Length)]; + } + + return token; + } +}
\ No newline at end of file |
