private void AddToMethodsList(DotNetMethodRegion methodRegion)
        {
            if (MethodsToRunList == null)
            {
                var pluginActions = ModelItem.GetProperty <ICollection <IPluginAction> >("MethodsToRun");
                if (pluginActions == null || pluginActions.Count == 0)
                {
                    var current    = pluginActions;
                    var actions    = current ?? new List <IPluginAction>();
                    var collection = new ObservableCollection <IPluginAction>();
                    collection.CollectionChanged += MethodsToRunListOnCollectionChanged;
                    collection.AddRange(actions);
                    MethodsToRunList = new ObservableCollection <IMethodToolRegion <IPluginAction> >();
                }
                else
                {
                    var actions = new ObservableCollection <IPluginAction>();
                    actions.CollectionChanged += MethodsToRunListOnCollectionChanged;
                    actions.AddRange(pluginActions);
                    var regionCollections = BuildRegionsFromActions(pluginActions);
                    MethodsToRunList = regionCollections;
                }
            }
            var methodRegions = new ObservableCollection <IMethodToolRegion <IPluginAction> >();

            methodRegions.AddRange(MethodsToRunList);
            methodRegions.Add(methodRegion);
            MethodsToRunList = methodRegions;
            NamespaceRegion.Dependants.Add(methodRegion);
        }
Example #2
0
        public DatabaseSourceRegion(IDbServiceModel model, ModelItem modelItem, enSourceType type)
        {
            LabelWidth        = 46;
            ToolRegionName    = "DatabaseSourceRegion";
            Dependants        = new List <IToolRegion>();
            NewSourceCommand  = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => model.CreateNewSource(type));
            EditSourceCommand = new Microsoft.Practices.Prism.Commands.DelegateCommand(() => model.EditSource(SelectedSource, type), CanEditSource);
            var sources = model.RetrieveSources().OrderBy(source => source.Name);

            Sources            = sources.Where(source => source != null && source.Type == type).ToObservableCollection();
            IsEnabled          = true;
            _modelItem         = modelItem;
            SourceId           = modelItem.GetProperty <Guid>("SourceId");
            SourcesHelpText    = Warewolf.Studio.Resources.Languages.HelpText.DatabaseServiceSourceTypesHelp;
            EditSourceHelpText = Warewolf.Studio.Resources.Languages.HelpText.DatabaseServiceEditSourceHelp;
            NewSourceHelpText  = Warewolf.Studio.Resources.Languages.HelpText.DatabaseServiceNewSourceHelp;

            SourcesTooltip    = Warewolf.Studio.Resources.Languages.Tooltips.ManageDbServiceSourcesTooltip;
            EditSourceTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManageDbServiceEditSourceTooltip;
            NewSourceTooltip  = Warewolf.Studio.Resources.Languages.Tooltips.ManageDbServiceNewSourceTooltip;

            if (SourceId != Guid.Empty)
            {
                SelectedSource = Sources.FirstOrDefault(source => source.Id == SourceId);
            }
        }
Example #3
0
        void SetupHeaders(ModelItem modelItem)
        {
            var existing = modelItem.GetProperty <IList <INameValue> >("Headers");
            var headers  = new ObservableCollection <INameValue>();

            if (existing != null)
            {
                foreach (var header in existing)
                {
                    var nameValue = new NameValue(header.Name, header.Value);
                    nameValue.PropertyChanged += ValueOnPropertyChanged;
                    headers.Add(nameValue);
                }
            }
            else
            {
                var nameValue = new NameValue();
                nameValue.PropertyChanged += ValueOnPropertyChanged;
                headers.Add(nameValue);
            }
            headers.CollectionChanged += HeaderCollectionOnCollectionChanged;
            Headers = headers;

            AddHeaders();
        }
Example #4
0
        void SetupHeaders(ModelItem modelItem)
        {
            var existing         = modelItem.GetProperty <IList <INameValue> >("Headers");
            var nameValues       = existing ?? new List <INameValue>();
            var headerCollection = new ObservableCollection <INameValue>();

            headerCollection.CollectionChanged += HeaderCollectionOnCollectionChanged;
            headerCollection.AddRange(nameValues);
            Headers = headerCollection;

            if (Headers.Count == 0)
            {
                Headers.Add(new ObservableAwareNameValue(Headers, s =>
                {
                    _modelItem.SetProperty("Headers",
                                           _headers.Select(a => new NameValue(a.Name, a.Value) as INameValue).ToList());
                }));
            }
            else
            {
                var nameValue = Headers.Last();
                if (!string.IsNullOrWhiteSpace(nameValue.Name) || !string.IsNullOrWhiteSpace(nameValue.Value))
                {
                    Headers.Add(new ObservableAwareNameValue(Headers, s =>
                    {
                        _modelItem.SetProperty("Headers",
                                               _headers.Select(a => new NameValue(a.Name, a.Value) as INameValue).ToList());
                    }));
                }
            }
        }
Example #5
0
        public DotNetSourceRegion(IPluginServiceModel model, ModelItem modelItem)
        {
            LabelWidth     = 74;
            ToolRegionName = "DotNetSourceRegion";
            SetInitialValues();
            Dependants        = new List <IToolRegion>();
            NewSourceCommand  = new DelegateCommand(model.CreateNewSource);
            EditSourceCommand = new DelegateCommand(() => model.EditSource(SelectedSource), CanEditSource);
            var sources = model.RetrieveSources().OrderBy(source => source.Name);

            Sources            = sources.ToObservableCollection();
            IsEnabled          = true;
            _modelItem         = modelItem;
            SourceId           = modelItem.GetProperty <Guid>("SourceId");
            SourcesHelpText    = Warewolf.Studio.Resources.Languages.HelpText.PluginServiceSourcesHelp;
            EditSourceHelpText = Warewolf.Studio.Resources.Languages.HelpText.PluginServiceEditSourceHelp;
            NewSourceHelpText  = Warewolf.Studio.Resources.Languages.HelpText.PluginServiceNewSourceHelp;

            SourcesTooltip    = Warewolf.Studio.Resources.Languages.Tooltips.ManagePluginServiceSourcesTooltip;
            EditSourceTooltip = Warewolf.Studio.Resources.Languages.Tooltips.ManagePluginServiceEditSourceTooltip;
            NewSourceTooltip  = Warewolf.Studio.Resources.Languages.Tooltips.ManagePluginServiceNewSourceTooltip;

            if (SourceId != Guid.Empty)
            {
                SelectedSource = Sources.FirstOrDefault(source => source.Id == SourceId);
            }
        }
Example #6
0
        public ExchangeInputRegion(ModelItem modelItem)
        {
            ToolRegionName = "ExchangeInputRegion";
            _modelItem     = modelItem;

            var inputsFromModel = _modelItem.GetProperty <List <IServiceInput> >("Inputs");

            Inputs = new List <IServiceInput>(inputsFromModel ?? new List <IServiceInput>());
        }
Example #7
0
        public OutputsRegion(ModelItem modelItem, bool isObjectOutputUsed, IFieldAndPropertyMapper mapper)
            : this(mapper)
        {
            Dependants = new List <IToolRegion>();
            _modelItem = modelItem;
            var serviceOutputMappings = _modelItem.GetProperty <ICollection <IServiceOutputMapping> >("Outputs");
            var outputs = new ObservableCollection <IServiceOutputMapping>();
            IsEnabled = serviceOutputMappings != null;
            if (serviceOutputMappings != null)
            {
                outputs.AddRange(serviceOutputMappings);
            }
            outputs.CollectionChanged += OutputsCollectionChanged;
            Outputs = outputs;

            IsObject           = _modelItem.GetProperty <bool>("IsObject");
            ObjectResult       = _modelItem.GetProperty <string>("ObjectResult");
            ObjectName         = _modelItem.GetProperty <string>("ObjectName");
            IsObjectOutputUsed = isObjectOutputUsed;
            IsOutputsEmptyRows = !IsObject ? Outputs.Count == 0 : !string.IsNullOrWhiteSpace(ObjectResult);
        }
Example #8
0
        public DbActionRegionOdbc(IDbServiceModel model, ModelItem modelItem, ISourceToolRegion <IDbSource> source)
        {
            Errors = new List <string>();

            LabelWidth                = 46;
            ToolRegionName            = "DbActionRegionODBC";
            _modelItem                = modelItem;
            _model                    = model;
            _source                   = source;
            _source.SomethingChanged += SourceOnSomethingChanged;
            Dependants                = new List <IToolRegion>();

            IsEnabled       = true;
            _modelItem      = modelItem;
            CommandText     = _modelItem.GetProperty <string>("CommandText") ?? "";
            IsActionEnabled = _source?.SelectedSource != null;
        }
Example #9
0
        public ExchangeSourceRegion(IExchangeServiceModel model, ModelItem modelItem, string type)
        {
            LabelWidth        = 70;
            ToolRegionName    = "ExchangeSourceRegion";
            Dependants        = new List <IToolRegion>();
            NewSourceCommand  = new DelegateCommand(o => model.CreateNewSource());
            EditSourceCommand = new DelegateCommand(o => model.EditSource(SelectedSource), o => CanEditSource());
            var sources = model.RetrieveSources().OrderBy(source => source.ResourceName);

            Sources    = sources.Where(source => source != null && source.ResourceType == type).ToObservableCollection();
            IsEnabled  = true;
            _modelItem = modelItem;
            SourceId   = modelItem.GetProperty <Guid>("SourceId");

            if (SavedSource != null)
            {
                SelectedSource = Sources.FirstOrDefault(source => source.ResourceID == SavedSource.ResourceID);
            }
        }
Example #10
0
        public DatabaseInputRegion(ModelItem modelItem, IActionToolRegion <IDbAction> action)
            : this(new ActionInputDatatalistMapper())
        {
            ToolRegionName            = "DatabaseInputRegion";
            _modelItem                = modelItem;
            _action                   = action;
            _action.SomethingChanged += SourceOnSomethingChanged;
            var inputsFromModel = _modelItem.GetProperty <List <IServiceInput> >("Inputs");
            var serviceInputs   = inputsFromModel ?? new List <IServiceInput>();
            var inputs          = new ObservableCollection <IServiceInput>();

            inputs.CollectionChanged += InputsCollectionChanged;
            inputs.AddRange(serviceInputs);
            Inputs = inputs;
            if (inputsFromModel == null)
            {
                UpdateOnActionSelection();
            }
            IsEnabled = _action?.SelectedAction != null;
        }
Example #11
0
        public DotNetConstructorInputRegion(ModelItem modelItem, IConstructorRegion <IPluginConstructor> action)
            : this(new ActionInputDatatalistMapper())
        {
            ToolRegionName            = "DotNetConstructorInputRegion";
            _modelItem                = modelItem;
            _action                   = action;
            _action.SomethingChanged += SourceOnSomethingChanged;
            var inputsFromModel = _modelItem.GetProperty <List <IServiceInput> >("ConstructorInputs");
            var serviceInputs   = inputsFromModel ?? new List <IServiceInput>();

            Inputs = new ObservableCollection <IServiceInput>();
            var inputs = new ObservableCollection <IServiceInput>();

            inputs.CollectionChanged += InputsCollectionChanged;
            inputs.AddRange(serviceInputs);
            Inputs            = inputs;
            IsInputsEmptyRows = Inputs.Count == 0;
            if (inputsFromModel == null)
            {
                UpdateOnActionSelection();
            }
            IsEnabled = action?.SelectedConstructor != null;
        }
Example #12
0
        public OutputsRegion(ModelItem modelItem, bool isObjectOutputUsed = false)
        {
            ToolRegionName = "OutputsRegion";
            Dependants     = new List <IToolRegion>();
            _modelItem     = modelItem;
            var serviceOutputMappings = _modelItem.GetProperty <ICollection <IServiceOutputMapping> >("Outputs");

            if (_modelItem.GetProperty("Outputs") == null || _modelItem.GetProperty <IList <IServiceOutputMapping> >("Outputs").Count == 0)
            {
                var current = serviceOutputMappings;
                if (current == null)
                {
                    IsEnabled = false;
                }
                var outputMappings = current ?? new List <IServiceOutputMapping>();
                var outputs        = new ObservableCollection <IServiceOutputMapping>();
                outputs.CollectionChanged += OutputsCollectionChanged;
                outputs.AddRange(outputMappings);
                Outputs = outputs;
            }
            else
            {
                IsEnabled = true;
                var outputs = new ObservableCollection <IServiceOutputMapping>();
                outputs.CollectionChanged += OutputsCollectionChanged;
                outputs.AddRange(serviceOutputMappings);
                Outputs = outputs;
            }

            IsObject           = _modelItem.GetProperty <bool>("IsObject");
            ObjectResult       = _modelItem.GetProperty <string>("ObjectResult");
            ObjectName         = _modelItem.GetProperty <string>("ObjectName");
            IsObjectOutputUsed = isObjectOutputUsed;
            if (!IsObject)
            {
                IsOutputsEmptyRows = Outputs.Count == 0;
            }
            else
            {
                IsOutputsEmptyRows = !string.IsNullOrWhiteSpace(ObjectResult);
            }
            _shellViewModel = CustomContainer.Get <IShellViewModel>();
        }
 void Verify_IsFocused(ModelItem modelItem, Action doError, string isFocusedPropertyName)
 {
     Assert.IsFalse(modelItem.GetProperty <bool>(isFocusedPropertyName));
     doError.Invoke();
     Assert.IsTrue(modelItem.GetProperty <bool>(isFocusedPropertyName));
 }
        public override IList <IToolRegion> BuildRegions()
        {
            IList <IToolRegion> regions = new List <IToolRegion>();

            if (SourceRegion == null)
            {
                SourceRegion = new DotNetSourceRegion(Model, ModelItem)
                {
                    SourceChangedAction = () =>
                    {
                        if (OutputsRegion != null)
                        {
                            OutputsRegion.IsEnabled          = false;
                            OutputsRegion.IsObject           = true;
                            OutputsRegion.IsOutputsEmptyRows = true;
                        }
                        ClearToolRegionErrors();
                    }
                };
                regions.Add(SourceRegion);
                NamespaceRegion = new DotNetNamespaceRegion(Model, ModelItem, SourceRegion)
                {
                    SourceChangedNamespace = () =>
                    {
                        if (OutputsRegion != null)
                        {
                            OutputsRegion.IsEnabled          = true;
                            OutputsRegion.IsObject           = true;
                            OutputsRegion.IsOutputsEmptyRows = true;
                        }
                        ClearToolRegionErrors();
                    },
                    IsNewPluginNamespace = true
                };
                NamespaceRegion.SomethingChanged += (sender, args) =>
                {
                    if (args.Errors != null)
                    {
                        Errors = args.Errors.Select(e => new ActionableErrorInfo
                        {
                            ErrorType = ErrorType.Critical,
                            Message   = e
                        } as IActionableErrorInfo).ToList();
                    }
                    var dotNetNamespaceRegion = sender as DotNetNamespaceRegion;
                    var outputsRegion         = dotNetNamespaceRegion?.Dependants.Single(region => region is OutputsRegion) as OutputsRegion;
                    if (outputsRegion != null)
                    {
                        if (dotNetNamespaceRegion.SelectedNamespace != null)
                        {
                            outputsRegion.ObjectResult = dotNetNamespaceRegion.SelectedNamespace.JsonObject;
                        }
                    }
                    OnPropertyChanged("IsActionsVisible");
                };
                regions.Add(NamespaceRegion);
                ConstructorRegion = new DotNetConstructorRegion(Model, ModelItem, SourceRegion, NamespaceRegion)
                {
                    SourceChangedAction = () =>
                    {
                        if (OutputsRegion != null)
                        {
                            OutputsRegion.IsEnabled          = true;
                            OutputsRegion.IsObject           = true;
                            OutputsRegion.IsOutputsEmptyRows = !string.IsNullOrWhiteSpace(OutputsRegion.ObjectResult);
                        }

                        //ClearToolRegionErrors();
                    }
                };
                ConstructorRegion.SomethingChanged += (sender, args) =>
                {
                    OnPropertyChanged("IsConstructorVisible");
                };


                ConstructorRegion.ErrorsHandler += (sender, list) =>
                {
                    List <ActionableErrorInfo> errorInfos = list.Select(error => new ActionableErrorInfo(new ErrorInfo {
                        ErrorType = ErrorType.Critical, Message = error
                    }, () => { })).ToList();
                    UpdateDesignValidationErrors(errorInfos);
                    Errors = new List <IActionableErrorInfo>(errorInfos);
                };
                regions.Add(ConstructorRegion);

                InputArea = new DotNetConstructorInputRegion(ModelItem, ConstructorRegion);
                regions.Add(InputArea);
                OutputsRegion = new OutputsRegion(ModelItem, true)
                {
                    IsObject  = true,
                    IsEnabled = false
                };
                regions.Add(OutputsRegion);

                var pluginActions     = ModelItem.GetProperty <List <IPluginAction> >("MethodsToRun");
                var regionCollections = BuildRegionsFromActions(pluginActions);
                if (regionCollections.Any())
                {
                    MethodsToRunList = regionCollections;
                    CreateMethodRegion();
                }
                else
                {
                    CreateMethodRegion();
                }

                ErrorRegion = new ErrorRegion();
                regions.Add(ErrorRegion);
                SourceRegion.Dependants.Add(NamespaceRegion);
                NamespaceRegion.Dependants.Add(ConstructorRegion);
                NamespaceRegion.Dependants.Add(OutputsRegion);
                ConstructorRegion.Dependants.Add(InputArea);
                ConstructorRegion.Dependants.Add(OutputsRegion);
                OutputsRegion.Dependants.Add(ConstructorRegion);
            }
            Regions = regions;

            return(regions);
        }
Example #15
0
 /// <summary>
 /// <remarks><strong>DO NOT</strong> bind to properties that use this - use <see cref="ModelItem"/>.PropertyName instead!</remarks>
 /// </summary>
 protected T GetProperty <T>([CallerMemberName] string propertyName = null)
 {
     return(_modelItem.GetProperty <T>(propertyName));
 }