public void LoadManagers(Form form) { if (this.managers.Count == 0) { ThreadStack.Run(delegate(object[] param) { if (Constants.LinuxMode) { ClientExecutor.Instance.Start(); } foreach (string file in Directory.GetFiles(Constants.ContractsDirectory, "*.ct")) { using (StreamReader reader = new StreamReader(file)) { ManagerContract manager = new ManagerContract(reader); this.managers.Add(manager); if (Constants.LinuxMode) { Owner owner = ClientExecutor.Instance.GetOwner(manager.Address); if (owner != null) { manager.Update(owner); manager.LoadContracts(); } } else { MessengerContract contract = new MessengerContract("Александр Гордиенко", MessagerType.Private); contract.Update("0", null, null, ContractState.Online); contract.Members.Add(new Member("Вася", "1", ContractState.Online, MessagerType.Private)); contract.Members.Add(new Member("Петя", "2", ContractState.Offline, MessagerType.Private)); manager.Contracts.Add(contract); contract = new MessengerContract("Вася", MessagerType.Public); contract.Update("1", null, null, ContractState.Online); contract.Members.Add(new Member("Андрей", "3", ContractState.Online, MessagerType.Public)); contract.Members.Add(new Member("Сергей", "4", ContractState.Offline, MessagerType.Private)); manager.Contracts.Add(contract); contract = new MessengerContract("Андрей", MessagerType.Public); contract.Update("3", null, null, ContractState.Online); contract.Members.Add(new Member("Алексей", "5", ContractState.Offline, MessagerType.Public)); contract.Members.Add(new Member("Михаил", "6", ContractState.Online, MessagerType.Public)); manager.Contracts.Add(contract); } } } Utils.Invoke(form, this.StartLoaded); }); } }