public IExplorerRepositoryResult AddItem(IExplorerItem itemToAdd, Guid workSpaceId)
        {
            if (itemToAdd == null)
            {
                Dev2Logger.Info("Invalid Item");
                return(new ExplorerRepositoryResult(ExecStatus.Fail, ErrorResource.ItemToAddIsNull));
            }
            var resourceType = itemToAdd.ResourceType;

            if (resourceType == "Folder")
            {
                try
                {
                    string dir = $"{DirectoryStructureFromPath(itemToAdd.ResourcePath)}\\";

                    if (Directory.Exists(dir))
                    {
                        return(new ExplorerRepositoryResult(ExecStatus.Fail, ErrorResource.RequestedFolderAlreadyExists));
                    }
                    Directory.CreateIfNotExists(dir);
                    if (itemToAdd.ResourcePath.Contains("\\"))
                    {
                        var idx          = itemToAdd.ResourcePath.LastIndexOf("\\", StringComparison.InvariantCultureIgnoreCase);
                        var pathToSearch = itemToAdd.ResourcePath.Substring(0, idx);
                        var parent       = Find(item => item.ResourcePath.ToLowerInvariant().TrimEnd('\\') == pathToSearch.ToLowerInvariant().TrimEnd('\\'));
                        parent?.Children.Add(itemToAdd);
                    }
                    else
                    {
                        _root.Children.Add(itemToAdd);
                    }
                    _sync.AddItemMessage(itemToAdd);
                    return(new ExplorerRepositoryResult(ExecStatus.Success, ""));
                }
                catch (Exception err)
                {
                    Dev2Logger.Error("Add Folder Error", err);
                    return(new ExplorerRepositoryResult(ExecStatus.Fail, err.Message));
                }
            }
            if (resourceType != null && resourceType != "Unknown" && resourceType != "ReservedService")
            {
                try
                {
                    _sync.AddItemMessage(itemToAdd);

                    return(new ExplorerRepositoryResult(ExecStatus.Success, ""));
                }
                catch (Exception err)
                {
                    Dev2Logger.Error("Add Item Error", err);
                    return(new ExplorerRepositoryResult(ExecStatus.Fail, err.Message));
                }
            }
            return(new ExplorerRepositoryResult(ExecStatus.Fail, ErrorResource.OnlyUserResourcesCanBeAdded));
        }
        public IExplorerRepositoryResult AddItem(IExplorerItem itemToAdd, Guid workSpaceId)
        {
            if (itemToAdd == null)
            {
                Dev2Logger.Log.Info("Invalid Item");
                return(new ExplorerRepositoryResult(ExecStatus.Fail, "Item to add was null"));
            }
            switch (itemToAdd.ResourceType)
            {
            case ResourceType.Folder:
            {
                try
                {
                    string dir = string.Format("{0}\\", DirectoryStructureFromPath(itemToAdd.ResourcePath));

                    if (Directory.Exists(dir))
                    {
                        return(new ExplorerRepositoryResult(ExecStatus.Fail, "Requested folder already exists on server."));
                    }
                    Directory.CreateIfNotExists(dir);
                    _sync.AddItemMessage(itemToAdd);
                    return(new ExplorerRepositoryResult(ExecStatus.Success, ""));
                }
                catch (Exception err)
                {
                    Dev2Logger.Log.Error("Add Folder Error", err);
                    return(new ExplorerRepositoryResult(ExecStatus.Fail, err.Message));
                }
            }

            case ResourceType.DbSource:
            case ResourceType.EmailSource:
            case ResourceType.WebSource:
            case ResourceType.ServerSource:
            case ResourceType.PluginService:
            case ResourceType.WebService:
            case ResourceType.DbService:
            case ResourceType.WorkflowService:
            {
                try
                {
                    _sync.AddItemMessage(itemToAdd);
                    return(new ExplorerRepositoryResult(ExecStatus.Success, ""));
                }
                catch (Exception err)
                {
                    Dev2Logger.Log.Error("Add Item Error", err);
                    return(new ExplorerRepositoryResult(ExecStatus.Fail, err.Message));
                }
            }

            default:
                return(new ExplorerRepositoryResult(ExecStatus.Fail, "Only user resources can be added from this repository"));
            }
        }