public static async Task <ScrappingServiceGroup> Create(ScrappingAccountsConfig config)
        {
            var ScrappingServices = new Dictionary <int, ScrappingService>();

            foreach (var accountInfo in config.Accounts)
            {
                ScrappingServices.Add(accountInfo.AccountId, await ScrappingService.Create(accountInfo));
            }

            // Create a master service
            ScrappingServices.Add(0, await ScrappingService.CreateMaster());

            return(new ScrappingServiceGroup(ScrappingServices, config));
        }
        public static async Task <ScrappingServiceGroup> Create(StorageUowProvider storageUowProvider, ScrappingAccountsConfig config)
        {
            var ScrappingServices = new Dictionary <int, ScrappingService>();
            List <AccountModel> allAccounts;

            using (var uow = storageUowProvider.CreateUow())
            {
                allAccounts = await uow.AccountService.GetProxyAccounts();// get all account with proxy
            }
            foreach (var accountModel in allAccounts)
            {
                var accountInfo = GetAccountInfoFromAccountModel(accountModel);
                ScrappingServices.Add(accountInfo.AccountId, await ScrappingService.Create(accountInfo));//open web browser and login by users
            }

            // Create a master service with the credentials from the config file
            ScrappingServices.Add(0, await ScrappingService.CreateMaster());//create empty ScrappingService

            return(new ScrappingServiceGroup(ScrappingServices, config));
        }