public ServiceMethodList Methods(string args, Guid workspaceId, Guid dataListId)
{
var result = new ServiceMethodList();
try
{
// BUG 9500 - 2013.05.31 - TWR : changed to use PluginService as args
var service = JsonConvert.DeserializeObject<PluginService>(args);
var pluginSourceFromCatalog = _resourceCatalog.GetResource<PluginSource>(workspaceId, service.Source.ResourceID);
if (pluginSourceFromCatalog == null)
{
try
{
var xmlStr = Resources.ReadXml(workspaceId, ResourceType.PluginSource, service.Source.ResourceID.ToString());
if (!string.IsNullOrEmpty(xmlStr))
{
var xml = XElement.Parse(xmlStr);
pluginSourceFromCatalog = new PluginSource(xml);
}
}
catch(Exception)
{
//ignore this
}
}
if (pluginSourceFromCatalog != null)
{
service.Source = pluginSourceFromCatalog;
}
var broker = new PluginBroker();
var pluginSource = (PluginSource)service.Source;
if(pluginSource != null)
{
result = broker.GetMethods(pluginSource.AssemblyLocation, pluginSource.AssemblyName, service.Namespace);
}
return result;
}
catch(Exception ex)
{
RaiseError(ex);
}
return result;
}