Amoeba.Windows.LinkOptionsWindow._okButton_Click C# (CSharp) Method

_okButton_Click() private method

private _okButton_Click ( object sender, RoutedEventArgs e ) : void
sender object
e System.Windows.RoutedEventArgs
return void
        private void _okButton_Click(object sender, RoutedEventArgs e)
        {
            lock (Settings.Instance.Global_TrustSignatures.ThisLock)
            {
                Settings.Instance.Global_TrustSignatures.Clear();
                Settings.Instance.Global_TrustSignatures.AddRange(_downloadSignatureCollection);
            }

            var uploadLinkItems = new List<LinkItem>();

            {
                var tempLinkItems = new List<LinkItem>();

                foreach (var item in _uploadLinkCollection)
                {
                    var linkItem = new LinkItem();
                    linkItem.Signature = item.Signature;
                    linkItem.TrustSignatures.AddRange(item.TrustSignatures);
                    linkItem.DeleteSignatures.AddRange(item.DeleteSignatures);

                    tempLinkItems.Add(linkItem);
                }

                lock (Settings.Instance.Global_LinkItems.ThisLock)
                {
                    foreach (var item in Settings.Instance.Global_LinkItems.ToArray())
                    {
                        if (!tempLinkItems.Contains(item))
                        {
                            Settings.Instance.Global_LinkItems.Remove(item);
                        }
                    }

                    foreach (var item in tempLinkItems)
                    {
                        if (!Settings.Instance.Global_LinkItems.Contains(item))
                        {
                            Settings.Instance.Global_LinkItems.Add(item);
                            uploadLinkItems.Add(item);
                        }
                    }
                }
            }

            foreach (var item in uploadLinkItems)
            {
                var digitalSignature = Settings.Instance.Global_DigitalSignatures.FirstOrDefault(n => n.ToString() == item.Signature);
                if (digitalSignature == null) return;

                var link = new Link(item.TrustSignatures, item.DeleteSignatures);
                _amoebaManager.Upload(link, digitalSignature);
            }

            this.DialogResult = true;
        }