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")); } }