diff --git a/RMuseum/Models/Ganjoor/GanjoorUserPoemVisit.cs b/RMuseum/Models/Ganjoor/GanjoorUserPoemVisit.cs
index 06513a7f..b72e2b8e 100644
--- a/RMuseum/Models/Ganjoor/GanjoorUserPoemVisit.cs
+++ b/RMuseum/Models/Ganjoor/GanjoorUserPoemVisit.cs
@@ -37,5 +37,10 @@ namespace RMuseum.Models.Ganjoor
/// date/time
///
public DateTime DateTime { get; set; }
+
+ ///
+ /// counter of visits (1 for first and ...)
+ ///
+ public int Counter { get; set; }
}
}
diff --git a/RMuseum/Services/IUserVisitsTrackingService.cs b/RMuseum/Services/IUserVisitsTrackingService.cs
index 6b408da9..7f557feb 100644
--- a/RMuseum/Services/IUserVisitsTrackingService.cs
+++ b/RMuseum/Services/IUserVisitsTrackingService.cs
@@ -16,7 +16,7 @@ namespace RMuseum.Services
///
///
///
- Task> AddAsync(Guid userId, int poemId);
+ Task> AddAsync(Guid userId, int poemId);
///
/// delete record
diff --git a/RMuseum/Services/Implementation/UserVisitsTrackingService.cs b/RMuseum/Services/Implementation/UserVisitsTrackingService.cs
index db94a909..76b5155c 100644
--- a/RMuseum/Services/Implementation/UserVisitsTrackingService.cs
+++ b/RMuseum/Services/Implementation/UserVisitsTrackingService.cs
@@ -22,31 +22,37 @@ namespace RMuseum.Services.Implementation
///
///
///
- ///
- public async Task> AddAsync(Guid userId, int poemId)
+ /// previous visit date/time if any
+ public async Task> AddAsync(Guid userId, int poemId)
{
bool keepHistory = false;
var kRes = await _optionsService.GetValueAsync("KeepHistory", userId, null);
if (!string.IsNullOrEmpty(kRes.Result))
bool.TryParse(kRes.Result, out keepHistory);
if (!keepHistory)
- return new RServiceResult(false);
+ return new RServiceResult(null);
+
var oldTracks = await _context.GanjoorUserPoemVisits.Where(v => v.PoemId == poemId && v.UserId == userId).ToArrayAsync();
+ int count = oldTracks.Any() ? oldTracks.Last().Counter : 0;
+ DateTime? preVisit = oldTracks.Any() ? oldTracks.Last().DateTime : null;
_context.RemoveRange(oldTracks);
await _context.SaveChangesAsync();
+ count++;
+
GanjoorUserPoemVisit visit = new GanjoorUserPoemVisit()
{
UserId = userId,
PoemId = poemId,
- DateTime = DateTime.Now
+ DateTime = DateTime.Now,
+ Counter = count,
};
_context.Add(visit);
await _context.SaveChangesAsync();
- return new RServiceResult(true);
+ return new RServiceResult(preVisit);
}
///