Dev2.Studio.Views.Workflow.DragDropHelpers.PreventDrop C# (CSharp) Méthode

PreventDrop() public méthode

public PreventDrop ( IDataObject dataObject ) : bool
dataObject IDataObject
Résultat bool
        public bool PreventDrop(IDataObject dataObject)
        {
            if(dataObject == null)
            {
                return false;
            }
            var formats = dataObject.GetFormats();
            //If we didnt attach any data for the format - dont allow
            if(!formats.Any())
            {
                return false;
            }

            //if it is a ReourceTreeViewModel, get the data for this string
            var modelItemString = formats.FirstOrDefault(s => s.IndexOf("ExplorerItemModel", StringComparison.Ordinal) >= 0);
            if(String.IsNullOrEmpty(modelItemString))
            {
                //else if it is a workflowItemType, get data for this
                modelItemString = formats.FirstOrDefault(s => s.IndexOf("WorkflowItemTypeNameFormat", StringComparison.Ordinal) >= 0);

                //else just bounce out, we didnt set it.
                if(!String.IsNullOrEmpty(modelItemString))
                {
                    return false;
                }
            }

            if(string.IsNullOrEmpty(modelItemString))
            {
                return false;
            }
            //now get data for whichever was set above
            var objectData = dataObject.GetData(modelItemString);

            if(objectData == null)
            {
                return false;
            }

            IWorkflowDesignerViewModel workflowDesignerViewModel = _workflowDesignerView.DataContext as IWorkflowDesignerViewModel;
            if(workflowDesignerViewModel != null)
            {
                ExplorerItemModel explorerItemModel = objectData as ExplorerItemModel;
                if(explorerItemModel != null)
                {
                    if(workflowDesignerViewModel.EnvironmentModel.ID != explorerItemModel.EnvironmentId && explorerItemModel.ResourceType >= ResourceType.DbService)
                    {
                        return true;
                    }
                    if (workflowDesignerViewModel.EnvironmentModel.ID != explorerItemModel.EnvironmentId && !workflowDesignerViewModel.EnvironmentModel.IsLocalHostCheck() && explorerItemModel.ResourceType == ResourceType.WorkflowService)
                    {
                        CustomContainer.Get<IPopupController>().Show(StringResources.DragRemoteNotSupported, StringResources.DragRemoteNotSupportedHeader, MessageBoxButton.OK, MessageBoxImage.Error, null);
                        return true;
                    }
                    if(explorerItemModel.Permissions >= Permissions.Execute && explorerItemModel.ResourceType <= ResourceType.WebService)
                    {
                        return false;
                    }
                }
            }
            return true;
        }
    }

Usage Example

 public void DragDropHelpers_PreventDrop_GetDataReturnsNull_ReturnsFalse()
 {
     //------------Setup for test--------------------------
     var dragDropHelpers = new DragDropHelpers(GetMockWorkflowDesignerView());
     //------------Execute Test---------------------------
     bool canDoDrop = dragDropHelpers.PreventDrop(GetMockDataObjectWithFormatNoData(new[] { "ExplorerItemModel", "SomeText" }));
     //------------Assert Results-------------------------
     Assert.IsFalse(canDoDrop);
 }
All Usage Examples Of Dev2.Studio.Views.Workflow.DragDropHelpers::PreventDrop