Ejemplo n.º 1
0
        public IHosting FromCredentials(Node <OAuthCredentials> root)
        {
            var serviceName = root.Value.Service;

            if (root.Value?.Service == null)
            {
                throw new NullReferenceException("Unexpected service name");
            }
            if (root.IsLeaf)
            {
                if (!collection.IsContainsManager(serviceName))
                {
                    throw new InvalidOperationException($"Unexpected service '{serviceName}'");
                }
                var service = collection.GetManager(serviceName);
                return(service.GetFileHostingFor(root.Value));
            }
            else
            {
                if (!collection.IsContainsMultiHostingManager(serviceName))
                {
                    throw new InvalidOperationException($"Unexpected multihosting manager '{serviceName}'");
                }
                var service = collection.GetMultiHostingManager(serviceName);
                return(service.GetFileHostingFor(root.Nested.Select(FromCredentials).ToArray()));
            }
        }
Ejemplo n.º 2
0
        private async void EditHosting()
        {
            if (tree.SelectedNode == null)
            {
                return;
            }

            var current = (Node <OAuthCredentials>)tree.SelectedNode.Tag;

            if (current.Value.Service == null || services.IsContainsManager(current.Value.Service))
            {
                var credentials = await OAuthCredentialsEditor.ShowNew(current.Value, services.Managers.ToArray());

                if (credentials.HasBeenCanceled)
                {
                    return;
                }
                current.Value = credentials;
                UpdateNode(tree.SelectedNode);
            }
        }
Ejemplo n.º 3
0
        public static bool IsValid(this Node <OAuthCredentials> credentials, ServicesCollection services)
        {
            var serviceName = credentials.Value.Service;

            if (serviceName == null)
            {
                return(false);
            }
            if (!services.IsContains(serviceName))
            {
                return(false);
            }
            if (services.IsContainsManager(serviceName))
            {
                return(credentials.IsLeaf && credentials.Value.Token != null);
            }
            else
            {
                return(credentials.IsNode && credentials.Nested.All(n => n.IsValid(services)));
            }
        }