public GraphQlAfDatabase(AFDatabase aAfDatabase, Field afElementsField) { name = aAfDatabase.Name; path = aAfDatabase.GetPath(); thisAfDatabase = aAfDatabase; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afAttributes"); var returnElementsObject = new ConcurrentBag <GraphQlAfElement>(); var afElementList = aAfDatabase.Elements; Parallel.ForEach(afElementList, aAfChildElement => { if (GraphQlHelpers.JudgeElementOnFilters(aAfChildElement, afElementsNameFilterStrings, afElementsAttributeValueFilterStrings)) { returnElementsObject.Add(new GraphQlAfElement(aAfChildElement, afElementsChildField, afAttributesChildField)); } }); afElements = returnElementsObject.OrderBy(x => x.name).ToList(); } }
public QLAfElementTemplateResolve(AFElementTemplate aAfElementTemplate, Field afElementsField) { name = aAfElementTemplate.Name; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromFieldOrContext(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromFieldOrContext(afElementsField, "afAttributes"); var returnObject = new ConcurrentBag <QLAfElement>(); List <AFElement> afElementList = aAfElementTemplate.FindInstantiatedElements(true, OSIsoft.AF.AFSortField.Name, OSIsoft.AF.AFSortOrder.Ascending, 10000).Select(x => x as AFElement).Where(x => x != null).ToList(); Parallel.ForEach(afElementList, aAfChildElement => { if (GraphQlHelpers.JudgeElementOnFilters(aAfChildElement, afElementsNameFilterStrings, afElementsAttributeValueFilterStrings)) { returnObject.Add(new QLAfElementResolve(aAfChildElement, afElementsChildField, afAttributesChildField)); } }); afElements = returnObject.OrderBy(x => x.name).ToList(); } }
public GraphQlAfElement(AFElement aAfElement, Field afElementsField, Field afAttributesField) { name = aAfElement.Name; template = aAfElement.Template?.Name; path = aAfElement.GetPath(); ThisAfElement = aAfElement; if (afElementsField != null) { var afElementsNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "nameFilter"); var afElementsAttributeValueFilterStrings = GraphQlHelpers.GetArgumentStrings(afElementsField, "attributeValueFilter"); var afElementsChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afElements"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afElementsField, "afAttributes"); var returnElementsObject = new ConcurrentBag <GraphQlAfElement>(); var afElementList = aAfElement.Elements; Parallel.ForEach(afElementList, aAfChildElement => { if (GraphQlHelpers.JudgeElementOnFilters(aAfChildElement, afElementsNameFilterStrings, afElementsAttributeValueFilterStrings)) { returnElementsObject.Add(new GraphQlAfElement(aAfChildElement, afElementsChildField, afAttributesChildField)); } }); afElements = returnElementsObject.OrderBy(x => x.name).ToList(); } if (afAttributesField != null) { var afAttributesNameFilterStrings = GraphQlHelpers.GetArgumentStrings(afAttributesField, "nameFilter"); var afAttributesChildField = GraphQlHelpers.GetFieldFromSelectionSet(afAttributesField, "afAttributes"); var tsValuesField = GraphQlHelpers.GetFieldFromSelectionSet(afAttributesField, "tsPlotValues"); var returnAttributesObject = new ConcurrentBag <GraphQlAfAttribute>(); var afAttributeList = aAfElement.Attributes.ToList <AFAttribute>(); Parallel.ForEach(afAttributeList, aAfAttribute => { if (afAttributesNameFilterStrings.Count == 0 || afAttributesNameFilterStrings.Contains(aAfAttribute.Name)) { returnAttributesObject.Add(new GraphQlAfAttribute(aAfAttribute, afAttributesChildField, tsValuesField)); } }); afAttributes = returnAttributesObject.OrderBy(x => x.name).ToList(); } }