public DistributorDescription GetDestination(UserTransaction transaction) { DistributorDescription ret = null; _lock.EnterReadLock(); if (_model.Count > 0) { ret = _model.FirstOrDefault(x => x.Hash == transaction.DistributorHash); } _lock.ExitReadLock(); return(ret); }
private DistributorDescription GetDestinationServer() { DistributorDescription ret = null; _lock.EnterReadLock(); var list = _model.Where(x => x.IsAvailable); if (list.Any()) { var ll = list.OrderBy((x) => x.Load); ret = ll.First(); if (ret != null) { ret.UpdateLoad(ret.Load + 1); } } _lock.ExitReadLock(); return(ret); }