Add peer expiration

This commit is contained in:
Tech Garage 2023-06-23 17:00:49 +03:30
parent 2d67540e13
commit 2ecb92eef6
94 changed files with 43258 additions and 49 deletions

View file

@ -38,7 +38,9 @@ namespace MTWireGuard.Application.Mapper
.ForMember(dest => dest.UploadBytes,
opt => opt.MapFrom(src => Convert.ToInt64(src.TX)))
.ForMember(dest => dest.DownloadBytes,
opt => opt.MapFrom(src => Convert.ToInt64(src.RX)));
opt => opt.MapFrom(src => Convert.ToInt64(src.RX)))
.ForMember(dest => dest.Expire,
opt => opt.MapFrom(src => ExpireDateToString(src)));
// WGPeer
CreateMap<UserCreateModel, WGPeerCreateModel>();
@ -48,7 +50,9 @@ namespace MTWireGuard.Application.Mapper
opt => opt.MapFrom(src => $"*{src.Id:X}"));
// DBUser
CreateMap<WGPeerViewModel, WGPeerDBModel>();
CreateMap<WGPeerViewModel, WGPeerDBModel>()
.ForMember(dest => dest.Expire,
opt => opt.MapFrom(src => ExpireStringToDate(src.Expire)));
CreateMap<UserSyncModel, WGPeerDBModel>();
CreateMap<UserSyncModel, WGPeerUpdateModel>()
.ForMember(dest => dest.Id,
@ -68,6 +72,23 @@ namespace MTWireGuard.Application.Mapper
return (db.Users.ToList().Find(u => u.Id == Convert.ToInt32(source.Id[1..], 16)) != null) ? db.Users.ToList().Find(u => u.Id == Convert.ToInt32(source.Id[1..], 16)).PrivateKey : "";
}
private DateTime GetPeerExpire(WGPeer source)
{
var db = Provider.GetService<DBContext>();
return (db.Users.ToList().Find(u => u.Id == Convert.ToInt32(source.Id[1..], 16)) != null) ? db.Users.ToList().Find(u => u.Id == Convert.ToInt32(source.Id[1..], 16)).Expire ?? new() : new();
}
private string ExpireDateToString(WGPeer source)
{
var expireDate = GetPeerExpire(source);
return expireDate != new DateTime() ? expireDate.ToString() : "Unlimited";
}
private DateTime ExpireStringToDate(string expire)
{
return expire == "Unlimited" ? new() : Convert.ToDateTime(expire);
}
private bool HasDifferences(WGPeer source)
{
var db = Provider.GetService<DBContext>();