public StringBuilder Execute(Dictionary <string, StringBuilder> values, IWorkspace theWorkspace) { ExecuteMessage msg = new ExecuteMessage(); Dev2JsonSerializer serializer = new Dev2JsonSerializer(); try { Dev2Logger.Info("Save Plugin Service"); StringBuilder resourceDefinition; values.TryGetValue("PluginService", out resourceDefinition); IPluginService serviceDef = serializer.Deserialize <IPluginService>(resourceDefinition); // ReSharper disable MaximumChainedReferences // ReSharper restore MaximumChainedReferences var source = ResourceCatalogue.GetResource <PluginSource>(GlobalConstants.ServerWorkspaceID, serviceDef.Source.Id); var output = new List <MethodOutput>(serviceDef.OutputMappings.Select(a => new MethodOutput(a.MappedFrom, a.MappedTo, "", false, a.RecordSetName, false, "", false, "", false))); var recset = new RecordsetList(); var rec = new Recordset(); rec.Fields.AddRange(new List <RecordsetField>(serviceDef.OutputMappings.Select(a => new RecordsetField { Name = a.MappedFrom, Alias = a.MappedTo, RecordsetAlias = a.RecordSetName, Path = new DataTablePath(a.RecordSetName, a.MappedFrom) }))); recset.Add(rec); var parameters = serviceDef.Inputs?.Select(a => new MethodParameter { EmptyToNull = a.EmptyIsNull, IsRequired = a.RequiredField, Name = a.Name, Value = a.Value, TypeName = a.TypeName }).ToList() ?? new List <MethodParameter>(); var constructorParams = serviceDef.Constructor.Inputs.Select(input => new ConstructorParameter() { Name = input.Name, Value = input.Value, TypeName = input.TypeName, EmptyToNull = input.EmptyToNull, IsRequired = input.IsRequired, ShortTypeName = Type.GetType(input.TypeName)?.FullName }); var res = new PluginService { Constructor = new ServiceConstructor(serviceDef.Constructor.ConstructorName, constructorParams, null), Method = new ServiceMethod(serviceDef.Name, serviceDef.Name, parameters, null, output, serviceDef.Action.Method), ResourceName = serviceDef.Name, ResourceID = serviceDef.Id, Source = source, Recordsets = recset, Namespace = serviceDef.Action.FullName }; ResourceCatalog.Instance.SaveResource(GlobalConstants.ServerWorkspaceID, res, serviceDef.Path); ServerExplorerRepo.UpdateItem(res); msg.HasError = false; } catch (Exception err) { msg.HasError = true; msg.Message = new StringBuilder(err.Message); Dev2Logger.Error(err); } return(serializer.SerializeToBuilder(msg)); }
public IExplorerRepositoryResult MoveItem(IExplorerItem itemToMove, string newPath, Guid workSpaceId) { IEnumerable <IResource> item = ResourceCatalogue.GetResourceList(workSpaceId) .Where( a => (a.ResourcePath == newPath)); if (item.Any()) { return(new ExplorerRepositoryResult(ExecStatus.Fail, "There is an item that exists with the same name and path")); } MoveVersions(itemToMove, newPath); ResourceCatalogResult result = ResourceCatalogue.RenameCategory(workSpaceId, itemToMove.ResourcePath, newPath, new List <IResource> { ResourceCatalogue.GetResource(workSpaceId, itemToMove.ResourceId) }); _file.Delete(string.Format("{0}.xml", DirectoryStructureFromPath(itemToMove.ResourcePath))); return(new ExplorerRepositoryResult(result.Status, result.Message)); }
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 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)); }