public OperationResult <ProviderFullInformation[]> GetProviders(long clientId) { return(InvokeOperations.InvokeOperation(() => { Logger.Trace("Get providers, client id - {0}", clientId); var providers = signalServiceRepository.GetProvider(clientId); var accsInfo = accService.GetAccountsInfo(providers.Select(information => information.AccountId).ToArray()); if (!accsInfo.IsSuccess) { throw new OperationException(accsInfo.Error, accsInfo.Code); } foreach (var info in accsInfo.Result) { var acc = providers.First(information => information.AccountId == info.AccountId); acc.Balance = (decimal)info.Balance; acc.Equity = (decimal)info.Equity; acc.Leverage = info.Leverage; acc.Profit = (decimal)info.Equity - (decimal)info.Balance; acc.WorkingDays = info.WorkingDays; } return providers; })); }