コード例 #1
0
        private void btnSynchronize_Click(object sender, RoutedEventArgs e)
        {
            if (Service != null && LicenseSet != null)
            {
                BackgroundWorker worker = new BackgroundWorker();
                loadingAnimation.Visibility = Visibility.Visible;

                List <string> keysToUpload = new List <string>();

                foreach (string k in _localKeys)
                {
                    if (_serviceKeys.Contains(k) == false)
                    {
                        keysToUpload.Add(k);
                    }
                }

                worker.DoWork += delegate(object s, DoWorkEventArgs args)
                {
                    object[] data = args.Argument as object[];

                    IServicesService   servicesService   = ObjectLocator.GetInstance <IServicesService>();
                    ILicenseSetService licenseSetService = ObjectLocator.GetInstance <ILicenseSetService>();

                    servicesService.AddLicenseKeysToService(licenseSetService.GetLiceseSetById((int)data[2]), (Service)data[1], (List <string>)data[0]);
                    List <string> serviceKeys = servicesService.GetServiceLicenseKeysForSet(licenseSetService.GetLiceseSetById((int)data[2]), (Service)data[1]);

                    args.Result = serviceKeys;
                };

                worker.RunWorkerCompleted += delegate(object s, RunWorkerCompletedEventArgs args)
                {
                    _serviceKeys = (List <string>)args.Result;

                    UpdateData();
                    loadingAnimation.Visibility = Visibility.Collapsed;
                };

                worker.RunWorkerAsync(new object[]
                {
                    keysToUpload,
                    Service,
                    LicenseSet.LicenseSetId
                });
            }
        }