public List<string> GetActivityFields(object activity)
{
List<string> results = new List<string>();
DsfActivity act = activity as DsfActivity;
if (act != null)
{
if (!string.IsNullOrEmpty(act.ServiceName))
{
results.Add(act.ServiceName);
}
if (!string.IsNullOrEmpty(act.InputMapping))
{
XElement inputMappingElement = XElement.Parse(act.InputMapping);
const string InputElement = "Input";
IEnumerable<XElement> inputs = inputMappingElement.DescendantsAndSelf().Where(c => c.Name.ToString().Equals(InputElement, StringComparison.InvariantCultureIgnoreCase));
results.AddRange(inputs.Select(element => element.Attribute("Source").Value).Where(val => !string.IsNullOrEmpty(val)));
}
if (!string.IsNullOrEmpty(act.OutputMapping))
{
XElement outputMappingElement = XElement.Parse(act.OutputMapping);
const string OutputElement = "Output";
IEnumerable<XElement> inputs = outputMappingElement.DescendantsAndSelf().Where(c => c.Name.ToString().Equals(OutputElement, StringComparison.InvariantCultureIgnoreCase));
results.AddRange(inputs.Select(element => element.Attribute("Value").Value).Where(val => !string.IsNullOrEmpty(val)));
}
if(!string.IsNullOrEmpty(act.OnErrorVariable))
{
results.Add(act.OnErrorVariable);
}
if(!string.IsNullOrEmpty(act.OnErrorWorkflow))
{
results.Add(act.OnErrorWorkflow);
}
}
return results;
}