public static void UpdateTaskStatusProcessing(int taskId) { using (var db = new AssessmentDbContext(ConfigHelper.DatabaseConnectionString)) { var task = db.AssessmentTasks .Where(t => t.Id.Equals(taskId)) .FirstOrDefault(); if (task != null) { task.Status = AssessmentTask.TaskStatus.Processing; db.Entry(task).State = EntityState.Modified; db.SaveChanges(); } } }
public static IEnumerable <AssessmentTask> ListAllNotStartedTasks() { using (var db = new AssessmentDbContext(ConfigHelper.DatabaseConnectionString)) { var tasks = db.AssessmentTasks.Where( t => t.DeploymentId.Equals(DeploymentId) && t.Status == AssessmentTask.TaskStatus.NotStarted) .ToList(); if (tasks.Count() < 2) { return(tasks); } var result = new List <AssessmentTask>(); var groups = tasks.GroupBy( t => $"{t.TenantId}|{t.UserObjectId}|{t.SubscriptionId}|{t.TargetRegion}"); foreach (var group in groups) { if (group.Count() == 1) { result.Add(group.First()); continue; } var orderedTasks = group.OrderByDescending(t => t.CreatedTime); result.Add(orderedTasks.First()); foreach (var task in orderedTasks.Skip(1)) { task.Status = AssessmentTask.TaskStatus.Failed; task.CompletedTime = DateTime.UtcNow; task.FailedReason = @"Abandoned."; db.Entry(task).State = EntityState.Modified; } } db.SaveChanges(); return(result.OrderBy(t => t.CreatedTime)); } }
public static void UpdateTaskStatusCompleted( int taskId, string reportId) { using (var db = new AssessmentDbContext(ConfigHelper.DatabaseConnectionString)) { var task = db.AssessmentTasks .Where(t => t.Id.Equals(taskId)) .FirstOrDefault(); if (task != null) { task.Status = AssessmentTask.TaskStatus.Completed; task.CompletedTime = DateTime.UtcNow; task.ReportId = reportId; db.Entry(task).State = EntityState.Modified; db.SaveChanges(); } } }