Пример #1
0
 public void AddToConnections(ConnectionModelProxy connection)
 {
     try
     {
         Execute.OnUIThread(() =>
         {
             Connections.Add(new ResourceContainer(connection.Name, connection, IconsDescription.Connection));
         });
     }
     catch (TaskCanceledException)
     {
         // Silently continue
     }
 }
Пример #2
0
        public ConnectionViewModel(ConnectionModelProxy connection)
        {
            model = connection;

            if (connection != null && String.IsNullOrEmpty(connection.Name))
            {
                UnsavedChanges = true;
            }

            Owner           = connection.Context.Service;
            ConnectionTypes = new ObservableCollection <ConnectionTypeModelProxy>();
            Parameters      = new ObservableCollection <ConnectionViewParameter>();

            Task.Run(() =>
            {
                // We need to read the info from our backend again since we don't
                // get any property values when enumerating all connections
                try
                {
                    if (connection.ConnectionType != null)
                    {
                        connection = connection.Context.Service.GetConnectionDetails(connection);
                    }

                    var result = Owner.GetConnectionTypes();

                    var connectionTypeNameProp = default(PropertyInfo);
                    if (connection.ConnectionType != null)
                    {
                        connectionTypeNameProp = connection.ConnectionType.GetType().GetProperty("Name");
                    }
                    var connectionTypeName = string.Empty;
                    if (connectionTypeNameProp != null)
                    {
                        connectionTypeName = connectionTypeNameProp.GetValue(connection.ConnectionType).ToString();
                    }

                    Execute.OnUIThread(() =>
                    {
                        foreach (var type in result)
                        {
                            ConnectionTypes.Add(type);

                            if (type.Name.Equals(connectionTypeName, StringComparison.InvariantCultureIgnoreCase))
                            {
                                ConnectionType = type;
                            }
                        }

                        if (Owner is AzureService && connection.ConnectionType != null)
                        {
                            var fields = (connection.ConnectionFieldValues as List <Vendor.Azure.ConnectionFieldValue>);
                            if (fields.Count > 0)
                            {
                                Parameters.Clear();

                                foreach (var field in fields)
                                {
                                    var paramName = field.ConnectionFieldName;

                                    if (field.IsEncrypted)
                                    {
                                        paramName = field.ConnectionFieldName + " (encrypted)";
                                    }

                                    if (!field.IsOptional)
                                    {
                                        paramName += "*";
                                    }

                                    Parameters.Add(new ConnectionViewParameter
                                    {
                                        DisplayName = paramName,
                                        Name        = field.ConnectionFieldName,
                                        Value       = field.Value
                                    });
                                }
                            }
                        }
                        else if (Owner is SmaService && connection.ConnectionType != null)
                        {
                            var fields = (connection.ConnectionFieldValues as List <SMA.ConnectionFieldValue>);
                            if (fields.Count > 0)
                            {
                                Parameters.Clear();

                                foreach (var field in fields)
                                {
                                    var paramName = field.ConnectionFieldName;

                                    if (field.IsEncrypted)
                                    {
                                        paramName = field.ConnectionFieldName + " (encrypted)";
                                    }

                                    if (field.IsOptional != null && field.IsOptional.HasValue && !field.IsOptional.Value)
                                    {
                                        paramName += "*";
                                    }

                                    Parameters.Add(new ConnectionViewParameter
                                    {
                                        DisplayName = paramName,
                                        Name        = field.ConnectionFieldName,
                                        Value       = field.Value
                                    });
                                }
                            }
                        }

                        LongRunningOperation.Stop();
                    });
                }
                catch (ApplicationException ex)
                {
                    LongRunningOperation.Stop();
                    GlobalExceptionHandler.Show(ex);
                }
            });
        }