From dd239ef7aa93cd52f1c7448e8b98a779267c2f7d Mon Sep 17 00:00:00 2001 From: Talha Sakaoglu Date: Sat, 7 Oct 2023 09:47:05 +0300 Subject: [PATCH] US-35 IsdDeleted methods were added --- src/URLShortener.Services/Implementations/LinkService.cs | 5 +++++ src/URLShortener.Services/Implementations/VisitService.cs | 6 ++++++ src/URLShortener.Shared/Models/Link/IsDeletedModel.cs | 7 +++++++ src/URLShortener.Shared/Models/Visit/IsDeletedModel.cs | 7 +++++++ .../Services/Interfaces/ILinkService.cs | 2 ++ .../Services/Interfaces/IVisitService.cs | 4 +++- 6 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 src/URLShortener.Shared/Models/Link/IsDeletedModel.cs create mode 100644 src/URLShortener.Shared/Models/Visit/IsDeletedModel.cs diff --git a/src/URLShortener.Services/Implementations/LinkService.cs b/src/URLShortener.Services/Implementations/LinkService.cs index 39e08c2..907a20d 100644 --- a/src/URLShortener.Services/Implementations/LinkService.cs +++ b/src/URLShortener.Services/Implementations/LinkService.cs @@ -86,4 +86,9 @@ public async Task DeleteAsync(DeleteModel model) link.IsDeleted = true; await _context.SaveChangesAsync(); } + public async Task IsDeletedAsync(IsDeletedModel model) + { + var link= await _context.Links.AsNoTracking().Where(l => l.UserId == model.UserId).SingleAsync(l => l.Id == model.Id); + return link.IsDeleted; + } } \ No newline at end of file diff --git a/src/URLShortener.Services/Implementations/VisitService.cs b/src/URLShortener.Services/Implementations/VisitService.cs index 87f7af4..34666d0 100644 --- a/src/URLShortener.Services/Implementations/VisitService.cs +++ b/src/URLShortener.Services/Implementations/VisitService.cs @@ -61,4 +61,10 @@ public async Task UpdateGeoDataAsync(UpdateGeoDataModel model) await _context.SaveChangesAsync(); } + + public async Task IsDeletedAsync(IsDeletedModel model) + { + var visit= await _context.Visits.AsNoTracking().Where(v => v.LinkId == model.LinkId).SingleAsync(v => v.Id == model.Id); + return visit.IsDeleted; + } } \ No newline at end of file diff --git a/src/URLShortener.Shared/Models/Link/IsDeletedModel.cs b/src/URLShortener.Shared/Models/Link/IsDeletedModel.cs new file mode 100644 index 0000000..acefece --- /dev/null +++ b/src/URLShortener.Shared/Models/Link/IsDeletedModel.cs @@ -0,0 +1,7 @@ +namespace URLShortener.Shared.Models.Link; + +public class IsDeletedModel +{ + public Guid UserId { get; set; } + public long Id { get; set; } +} \ No newline at end of file diff --git a/src/URLShortener.Shared/Models/Visit/IsDeletedModel.cs b/src/URLShortener.Shared/Models/Visit/IsDeletedModel.cs new file mode 100644 index 0000000..405c180 --- /dev/null +++ b/src/URLShortener.Shared/Models/Visit/IsDeletedModel.cs @@ -0,0 +1,7 @@ +namespace URLShortener.Shared.Models.Visit; + +public class IsDeletedModel +{ + public long LinkId { get; set; } + public long Id { get; set; } +} \ No newline at end of file diff --git a/src/URLShortener.Shared/Services/Interfaces/ILinkService.cs b/src/URLShortener.Shared/Services/Interfaces/ILinkService.cs index d2e2a09..b349dc1 100644 --- a/src/URLShortener.Shared/Services/Interfaces/ILinkService.cs +++ b/src/URLShortener.Shared/Services/Interfaces/ILinkService.cs @@ -13,4 +13,6 @@ public interface ILinkService Task GetByIdAsync(GetByIdModel model, bool includeVisits = false, bool asNoTracking = false); Task GetByShortAddressAsync(GetByShortAddressModel model); Task DeleteAsync(DeleteModel model); + public Task IsDeletedAsync(IsDeletedModel model); + } \ No newline at end of file diff --git a/src/URLShortener.Shared/Services/Interfaces/IVisitService.cs b/src/URLShortener.Shared/Services/Interfaces/IVisitService.cs index 772601f..24a8899 100644 --- a/src/URLShortener.Shared/Services/Interfaces/IVisitService.cs +++ b/src/URLShortener.Shared/Services/Interfaces/IVisitService.cs @@ -10,6 +10,8 @@ public interface IVisitService public Task CreateAsync(CreateVisitModel model); public Task UpdateGeoDataAsync(UpdateGeoDataModel model); - + + public Task IsDeletedAsync(IsDeletedModel model); + }