public IResourceModel LoadResourceFromWorkspace(Guid resourceId, Guid?workspaceId) { if (!_server.Connection.IsConnected) { _server.Connection.Connect(_server.EnvironmentID); if (!_server.Connection.IsConnected) { ShowServerDisconnectedPopup(); return(null); } } var con = _server.Connection; var comsController = new CommunicationController { ServiceName = "FindResourcesByID" }; comsController.AddPayloadArgument("GuidCsv", resourceId.ToString()); comsController.AddPayloadArgument("ResourceType", Enum.GetName(typeof(ResourceType), ResourceType.WorkflowService)); var workspaceIdToUse = workspaceId ?? con.WorkspaceID; var toReloadResources = comsController.ExecuteCompressedCommand <List <SerializableResource> >(con, workspaceIdToUse); if (toReloadResources == null && !_server.Connection.IsConnected) { if (!_server.Connection.IsConnected) { _server.Connection.Connect(_server.EnvironmentID); if (!_server.Connection.IsConnected) { ShowServerDisconnectedPopup(); return(null); } } else { toReloadResources = comsController.ExecuteCompressedCommand <List <SerializableResource> >(con, workspaceIdToUse); } } if (toReloadResources != null) { foreach (var serializableResource in toReloadResources) { var resource = HydrateResourceModel(serializableResource, _server.Connection.ServerID, true); var resourceToUpdate = _resourceModels.FirstOrDefault(r => ResourceModelEqualityComparer.Current.Equals(r, resource)); if (resourceToUpdate != null) { resourceToUpdate.Update(resource); } else { _resourceModels.Add(resource); } return(resource); } } return(null); }
public List <IResourceModel> FindResourcesByID(IServer targetEnvironment, IEnumerable <string> guids, ResourceType resourceType) { if (targetEnvironment == null || guids == null) { return(new List <IResourceModel>()); } var comController = new CommunicationController { ServiceName = "FindResourcesByID" }; comController.AddPayloadArgument("GuidCsv", string.Join(",", guids)); comController.AddPayloadArgument("Type", Enum.GetName(typeof(ResourceType), resourceType)); var models = comController.ExecuteCompressedCommand <List <SerializableResource> >(targetEnvironment.Connection, GlobalConstants.ServerWorkspaceID); var serverId = targetEnvironment.Connection.ServerID; var result = new List <IResourceModel>(); if (models != null) { result.AddRange(models.Select(model => HydrateResourceModel(model, serverId))); } return(result); }
public IContextualResourceModel LoadContextualResourceModel(Guid resourceId) { if (!_server.Connection.IsConnected) { _server.Connection.Connect(_server.EnvironmentID); if (!_server.Connection.IsConnected) { ShowServerDisconnectedPopup(); return(null); } } var con = _server.Connection; var comsController = new CommunicationController { ServiceName = "FindResourcesByID" }; comsController.AddPayloadArgument("GuidCsv", resourceId.ToString()); var toReloadResources = comsController.ExecuteCompressedCommand <List <SerializableResource> >(con, GlobalConstants.ServerWorkspaceID); return(GetContextualResourceModel(resourceId, toReloadResources)); }