public async Task <IWriterResult> UpdateWorkerPool(string userId, PoolWorkerUpdatePoolModel model) { var currentUserId = new Guid(userId); using (var context = PoolDataContextFactory.CreateContext()) { var worker = await context.Worker.Where(w => w.Id == model.Id && w.UserId == currentUserId) .FirstOrDefaultNoLockAsync() .ConfigureAwait(false); if (worker == null) { return(new WriterResult(false, "Worker '{0}' not found.", model.Name)); } worker.TargetPool = model.TargetPool; worker.IsAutoSwitch = false; await context.SaveChangesAsync().ConfigureAwait(false); await CacheService.InvalidateAsync(CacheKey.PoolWorkers(userId)).ConfigureAwait(false); return(new WriterResult(true, $"Successfully changed pool for worker '{worker.Name}'")); } }
public async Task <ActionResult> UpdateWorkerPool(PoolWorkerUpdatePoolModel model) { if (!ModelState.IsValid) { var pools = await PoolReader.GetPools(); model.Pools = pools.Where(x => x.AlgoType == model.AlgoType && (x.Status == PoolStatus.OK || x.Status == PoolStatus.Expiring)).OrderBy(x => x.Symbol).ToList(); return(View("UpdateWorkerPoolModal", model)); } var result = await PoolWorkerWriter.UpdateWorkerPool(User.Identity.GetUserId(), model); if (!ModelState.IsWriterResultValid(result)) { return(View("UpdateWorkerPoolModal", model)); } return(CloseModal(result)); }