public async Task<int> SetCompleteCdaAnalysisAsync(IOperationsGroup operationGroup, ICollection<int> idCisList, OperationType opType, OperationStatus completeStatus) { //TODO [ActivityLog] [ErrorsLog] [FailureCounter] var tbl = new DynamicModel(DbConnectionName, tableName: CdaManagerOperationsTableName); return await tbl.UpdateAsync(new { Status = completeStatus.Id, operationGroup.LastStatusChangedTime, operationGroup.CompleteTime, ErrorsLog = operationGroup.ErrorLog.Root }, $"Id = {operationGroup.SourceOperationGroupId}"); }
public async Task<int> SetInProgressCdaAnalysisAsync(IOperationsGroup operationGroup, ICollection<int> idCisList, OperationType opType, OperationStatus inProgressStatus) { //TODO [ActivityLog] [ErrorsLog] [FailureCounter] return await WithConnectionPool(async connection => { int groupId = operationGroup.SourceOperationGroupId; var sb = new StringBuilder(); if (CheckConcurrencyCdaAnalysis) { sb.AppendFormat(@"UPDATE [dbo].[{0}] SET CdaAnalysisStatus = @inProgress WHERE IdCis IN @idCisList", opType.ReferenceTable).AppendLine(); } sb.AppendFormat(@"UPDATE [dbo].[{0}] SET Status = @inProgress, LastStatusChangedTime = @changedTime WHERE Id = @operationGroupId", CdaManagerOperationsTableName); var updateCommand = sb.ToString(); var response = await connection.ExecuteAsync(updateCommand, new { inProgress = inProgressStatus.Id, idCisList = idCisList.ToArray(), operationGroupId = groupId, changedTime = operationGroup.LastStatusChangedTime }); ObjectPoolPutConnection(connection); return response; }); }