Пример #1
0
        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));
            }
        }
Пример #4
0
 get => _schedulerFactory ?? new ServerSchedulerFactory(a => ResourceCatalogue.GetResourcePath(GlobalConstants.ServerWorkspaceID, a.ResourceId));
Пример #5
0
        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));
        }