public async Task <IWriterResult> AdminUpdateWorkerPool(AdminUpdateWorkerPoolModel model) { try { using (var context = PoolDataContextFactory.CreateContext()) { var pool = await context.Pool .Where( c => c.Id == model.PoolId && (c.Status == Enums.PoolStatus.Maintenance || c.Status == Enums.PoolStatus.Offline)) .FirstOrDefaultNoLockAsync().ConfigureAwait(false); if (pool == null) { return(new WriterResult(false, "Pool not found or is offline")); } var workers = await context.Worker.Where(x => x.AlgoType == pool.AlgoType).ToListNoLockAsync().ConfigureAwait(false); foreach (var worker in workers) { worker.TargetPool = pool.Symbol; } await context.SaveChangesAsync().ConfigureAwait(false); return(new WriterResult(true, $"Successfully moved all {pool.AlgoType} to the {pool.Symbol} pool.")); } } catch (Exception) { return(null); } }
public async Task <ActionResult> UpdateWorkerPool(AdminUpdateWorkerPoolModel model) { if (!ModelState.IsValid) { return(View("UpdateWorkerPoolModal", model)); } var result = await PoolWorkerWriter.AdminUpdateWorkerPool(model); if (!ModelState.IsWriterResultValid(result)) { return(View("UpdateWorkerPoolModal", model)); } return(CloseModal(result)); }