C#C
C#3y ago
46 replies
Whiteboy

✅ EF with MySQL getting double/triple time values ?!

So i assign task to user and set the assignTime to DateTime.Now so i should be able to get remaining time right?
var userTaskAssignment = dbContext.UserTaskAssignments.FirstOrDefault(assignment => assignment.TaskId == taskId && assignment.UserId == UserId);
                if (userTaskAssignment != null)
                {
                    RemainingTime = userTaskAssignment.TimeToCompleteTask - DateTime.Now;
                    RemainingHours = RemainingTime.TotalHours;
                    RemainingMinutes = RemainingTime.TotalMinutes;
                    RemainingSeconds = RemainingTime.TotalSeconds;
                }


    private async Task<Task?> AssignTaskToUserIds(List<int> userIds, int taskId, TimeSpan taskLifespan)
    {
        DateTime assignmentTime = DateTime.Now;

        foreach (int userId in userIds)
        {
            UserTaskAssignment userTaskAssignment = new UserTaskAssignment
            {
                UserId = userId,
                TaskId = taskId,
                AssignmentTime = assignmentTime,
            };

            dbContext.UserTaskAssignments.Add(userTaskAssignment);
        }
        
        await dbContext.SaveChangesAsync();
        
        var assignedTasks = dbContext.UserTaskAssignments
            .Where(uta => userIds.Contains(uta.UserId) && uta.TaskId == taskId)
            .ToList();
        
        foreach (var assignment in assignedTasks)
        {
            assignment.TimeToCompleteTask = assignment.AssignmentTime.Add(taskLifespan);
        }
        
        await dbContext.SaveChangesAsync();

        PageHelper.SetTempDataSuccessMessage("Task assigned successfully", TempData);
        return null;
    }


For some reason when i set TimeToCompleteTask = 1h and i go to user i get 3h to complete task orr 1h 59min?
Was this page helpful?