public IExplorerRepositoryResult MoveItem(IExplorerItem itemToMove, string newPath, Guid workSpaceId) { if (itemToMove.ResourceType == "Folder") { var movePath = itemToMove.DisplayName; if (!string.IsNullOrWhiteSpace(newPath)) { movePath = newPath + "\\" + itemToMove.DisplayName; } var oldPath = itemToMove.ResourcePath; Directory.Move(DirectoryStructureFromPath(oldPath), DirectoryStructureFromPath(movePath)); MoveChildren(itemToMove, newPath); return(new ExplorerRepositoryResult(ExecStatus.Success, "")); } var item = ResourceCatalogue.GetResourceList(workSpaceId).Where(a => a.GetResourcePath(workSpaceId) == newPath); if (item.Any()) { return(new ExplorerRepositoryResult(ExecStatus.Fail, ErrorResource.ItemAlreadyExistInPath)); } return(MoveSingeItem(itemToMove, newPath, workSpaceId)); }
IExplorerRepositoryResult MoveSingeItem(IExplorerItem itemToMove, string newPath, Guid workSpaceId) { var newResourcePath = newPath; if (!string.IsNullOrEmpty(itemToMove.ResourcePath)) { newResourcePath = itemToMove.ResourcePath.Replace(itemToMove.ResourcePath, newPath); } var resource = ResourceCatalogue.GetResource(workSpaceId, itemToMove.ResourceId); var source = $"{DirectoryStructureFromPath(resource.GetResourcePath(GlobalConstants.ServerWorkspaceID))}.xml"; var destination = $"{DirectoryStructureFromPath(newResourcePath)+"\\"+resource.ResourceName+".xml"}"; if (_file.Exists(source)) { _file.Move(source, destination); } ResourceCatalogResult result = ResourceCatalogue.RenameCategory(workSpaceId, resource.GetSavePath(), newResourcePath, new List <IResource> { resource }); itemToMove.ResourcePath = newResourcePath; return(new ExplorerRepositoryResult(result.Status, result.Message)); }
public IExplorerRepositoryResult DeleteFolder(string path, bool deleteContents, Guid workSpaceId) { if (!Directory.Exists(DirectoryStructureFromPath(path))) { return(new ExplorerRepositoryResult(ExecStatus.Fail, string.Format(ErrorResource.RequestedFolderDoesNotExistOnServer, path))); } var resourceList = ResourceCatalogue.GetResourceList(workSpaceId); if (!deleteContents && resourceList.Count(a => a.GetResourcePath(workSpaceId) == path) > 0) { return(new ExplorerRepositoryResult(ExecStatus.Fail, string.Format(ErrorResource.RequestedFolderDoesNotExistOnServer, path))); } if (path.Trim() == "") { return(new ExplorerRepositoryResult(ExecStatus.Fail, ErrorResource.CannotDeleteRootPath)); } try { var testResourceIDsToDelete = resourceList.Where(resource => resource.GetResourcePath(workSpaceId).StartsWith(path)); var guids = testResourceIDsToDelete.Select(resourceToDelete => resourceToDelete.ResourceID); Directory.Delete(DirectoryStructureFromPath(path), true); foreach (var guid in guids) { TestCatalog.DeleteAllTests(guid); } return(new ExplorerRepositoryResult(ExecStatus.Success, "")); } catch (Exception err) { return(new ExplorerRepositoryResult(ExecStatus.Fail, err.Message)); } }
get => _schedulerFactory ?? new ServerSchedulerFactory(a => ResourceCatalogue.GetResourcePath(GlobalConstants.ServerWorkspaceID, a.ResourceId));
public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace) { var msg = new ExecuteMessage(); var serializer = new Dev2JsonSerializer(); try { Dev2Logger.Info("Save Resource Service", GlobalConstants.WarewolfInfo); values.TryGetValue("Webservice", out StringBuilder resourceDefinition); var src = serializer.Deserialize <IWebService>(resourceDefinition); var parameters = src.Inputs?.Select(a => new MethodParameter() { EmptyToNull = a.EmptyIsNull, IsRequired = a.RequiredField, Name = a.Name, Value = a.Value }).ToList() ?? new List <MethodParameter>(); var source = ResourceCatalogue.GetResource <WebSource>(GlobalConstants.ServerWorkspaceID, src.Source.Id); var output = new List <MethodOutput>(src.OutputMappings.Select(a => new MethodOutput(a.MappedFrom, a.MappedTo, "", false, a.RecordSetName, false, "", false, "", false))); var recset = new Recordset(); recset.Fields.AddRange(new List <RecordsetField>(src.OutputMappings.Select(a => new RecordsetField { Name = a.MappedFrom, Alias = a.MappedTo, RecordsetAlias = a.RecordSetName }))); var serviceOutputMapping = src.OutputMappings.FirstOrDefault(mapping => !string.IsNullOrEmpty(mapping.RecordSetName)); if (serviceOutputMapping != null) { recset.Name = serviceOutputMapping.RecordSetName; } var recordsetList = new RecordsetList { recset }; var res = new WebService { Method = new ServiceMethod(), RequestUrl = string.Concat(src.SourceUrl, src.RequestUrl), ResourceName = src.Name, ResourceID = src.Id, RequestBody = src.PostData, Recordsets = recordsetList, Source = source, Headers = src.Headers, FormDataParameters = src.FormDataParameters, IsManualChecked = src.IsManualChecked, IsFormDataChecked = src.IsFormDataChecked, RequestMethod = src.Method, RequestResponse = src.Response }; res.Method.Name = src.Name; res.Method.Parameters = parameters; res.Method.Outputs = output; res.Method.OutputDescription = res.GetOutputDescription(); ResourceCatalogue.SaveResource(GlobalConstants.ServerWorkspaceID, res, src.Path); ServerExplorerRepo.UpdateItem(res); msg.HasError = false; } catch (Exception err) { msg.HasError = true; msg.Message = new StringBuilder(err.Message); Dev2Logger.Error(err, GlobalConstants.WarewolfError); } return(serializer.SerializeToBuilder(msg)); }