first commit

This commit is contained in:
Dhananjaya99
2026-09-28 11:44:26 +05:30
parent 721743ae6b
commit bffc9b1686
424 changed files with 46474 additions and 0 deletions
+98
View File
@@ -0,0 +1,98 @@
using Fitness_core_BE.Models;
using Fitness_core_BE.Helpers;
using Fitness_core_BE.Infra.UoW;
using Fitness_core_BE.Interfaces;
using Fitness_core_BE.Interfaces.Services;
namespace Fitness_core_BE.Services.ActivityLog
{
public class ActivityLogService : IActivityLogService
{
private readonly IActivityLogRepository _activityLogRepository;
private readonly UserRoleHelper _userRoleHelper;
private readonly IUnitOfWork _uow;
public ActivityLogService(
IActivityLogRepository activityLogRepository,
UserRoleHelper userRoleHelper,
IUnitOfWork uow)
{
_activityLogRepository = activityLogRepository;
_userRoleHelper = userRoleHelper;
_uow = uow;
}
// To do: add services used, IP addresses, category as Error/ Action
public async Task<object> LogActivity(object payload, HttpContext httpContext)
{
await _uow.BeginAsync();
try
{
var data = DeserializePayload.Deserialize(payload);
string description = data["description"].GetString()!;
// Get userId from HttpContext ( for testing purposes - hardcoded)
Guid userId = Guid.Parse("08de9f89-4681-4a2f-8f37-6c1ce830ee6f");
// Guid userId = Guid.Parse(httpContext.Items["UserId"]?.ToString()!);
Guid? adminId = await _userRoleHelper.GetAdminId(userId);
bool isAdmin = adminId.HasValue;
// Get user details (you might need to add a method to get user by Id)
var userName = await _activityLogRepository.GetUserNameAsync(userId);
var log = new Fitness_core_BE.Models.ActivityLog
{
FKUserId = userId,
UserName = userName,
IsAdmin = isAdmin,
Description = description,
Timestamp = DateTime.UtcNow
};
await _activityLogRepository.AddActivityLogAsync(log);
await _uow.CommitAsync();
return log;
}
catch (Exception ex)
{
await _uow.RollbackAsync();
Console.WriteLine($"Activity log failed: {ex.Message}");
throw;
}
}
public async Task<object> GetActivityLogs(object payload, HttpContext httpContext)
{
try
{
var data = DeserializePayload.Deserialize(payload);
string searchTerm = data.ContainsKey("searchTerm") && !string.IsNullOrEmpty(data["searchTerm"].GetString())
? data["searchTerm"].GetString()
: null;
DateTime? startDate = data.ContainsKey("startDate") && !string.IsNullOrEmpty(data["startDate"].GetString())
? DateTime.Parse(data["startDate"].GetString()!)
: null;
DateTime? endDate = data.ContainsKey("endDate") && !string.IsNullOrEmpty(data["endDate"].GetString())
? DateTime.Parse(data["endDate"].GetString()!)
: null;
var logs = await _activityLogRepository.GetActivityLogsAsync(
searchTerm,
startDate,
endDate);
return logs;
}
catch
{
throw;
}
}
}
}