internal void ToNative(PinCollection pinCollection, ref NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER publicFilter) { publicFilter.HealthStateFilter = (UInt32)this.HealthStateFilter; publicFilter.ApplicationNameFilter = pinCollection.AddObject(this.ApplicationNameFilter); publicFilter.ServiceFilters = ServiceHealthStateFilter.ToNativeList(pinCollection, this.ServiceFilters); publicFilter.DeployedApplicationFilters = DeployedApplicationHealthStateFilter.ToNativeList(pinCollection, this.DeployedApplicationFilters); if (!string.IsNullOrEmpty(this.ApplicationTypeNameFilter)) { var ex1 = new NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER_EX1[1]; ex1[0].ApplicationTypeNameFilter = pinCollection.AddObject(this.ApplicationTypeNameFilter); ex1[0].Reserved = IntPtr.Zero; publicFilter.Reserved = pinCollection.AddBlittable(ex1); } }
internal static IntPtr ToNativeList(PinCollection pinCollection, IList <ApplicationHealthStateFilter> applicationList) { if (applicationList == null || applicationList.Count == 0) { return(IntPtr.Zero); } var nativeArray = new NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER[applicationList.Count]; for (int i = 0; i < applicationList.Count; i++) { applicationList[i].ToNative(pinCollection, ref nativeArray[i]); } var nativeList = new NativeTypes.FABRIC_APPLICATION_HEALTH_STATE_FILTER_LIST(); nativeList.Count = (uint)applicationList.Count; nativeList.Items = pinCollection.AddBlittable(nativeArray); return(pinCollection.AddBlittable(nativeList)); }