Public Class Poller Public Property Host As String Public Property Exist As Boolean Public Property Contract As String End Class
<GridViewColumn Header="Hosts présents dans le fichier export" Width="200"> <GridViewColumn.CellTemplate> <DataTemplate> <TextBlock HorizontalAlignment="Center" Margin="80,0,0,0"> <TextBlock.Style> <Style TargetType="TextBlock"> <Setter Property="Text" Value="NOK" /> <Setter Property="Foreground" Value="Red" /> <Style.Triggers> <DataTrigger Binding="{Binding Exist}" Value="True"> <Setter Property="Text" Value="OK" /> <Setter Property="Foreground" Value="Green" /> </DataTrigger> </Style.Triggers> </Style> </TextBlock.Style> </TextBlock> </DataTemplate> </GridViewColumn.CellTemplate> </GridViewColumn>
For Each elem In pollers.Where(Function(x) x.Poller = poller) Dim checkhostexport = newList.Where(Function(x) x.ToString = elem.Host) Select Case checkhostexport.Count Case 1 itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = True, .Contract = elem.Customer}) Case Else itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = False, .Contract = elem.Customer}) End Select Next
<DataTrigger Binding="{Binding Exist}" Value="OK"devrait marcher aussi.
For Each elem In pollers.Where(Function(x) x.Poller = poller) Dim checkhostexport = newList.Where(Function(x) x.ToString = elem.Host) Select Case checkhostexport.Count Case 1 itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = True, .Contract = elem.Customer}) Case Else 'Else sous entend que 0, 2, 1000... conditionne pour que Exist soit false, ça ne me parait pas très logique. 0 d'accord, 2 10 ou 1000, dans ce cas Exist est mal nommé itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = False, .Contract = elem.Customer}) End Select Next
For Each elem In pollers.Where(Function(x) x.Poller = poller) itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = newList.Any(Function(x) x.ToString = elem.Host), .Contract = elem.Customer}) Next
itemsPoller = pollers.Where(Function(x) x.Poller = poller).Select(Function(elem) New Poller() With {.Host = elem.Host, .Exist = newList.Any(Function(x) x.ToString = elem.Host), .Contract = elem.Customer}).ToList()
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionDim pollers = ( From row In datapollers.AsEnumerable() Select New SheetHosts With { .Customer = row.Field(Of String)("Contrat"), .Host = row.Field(Of String)("Host"), .Poller = row.Field(Of String)("Poller") }).ToList
' Extraction nom des hosts dans le fichier export Dim item As Object = ListBoxFilesPoller.SelectedItem Dim poller As String = item.ToString.Substring(27).Replace(".txt", String.Empty) Dim linesexport As List(Of String) = System.IO.File.ReadAllLines(pathroot & "export_" & poller & ".txt").ToList Dim newList As List(Of String) = New List(Of String)() Dim pattern As String = "(?<host>^[a-zA-Z0-9-_]+)" For Each line In linesexport For Each m As Match In Regex.Matches(line.ToString, pattern) If newList.Contains(m.Value) = False Then newList.Add(m.Value) End If Next Next newList.Sort()
For Each elem In pollers.Where(Function(x) x.Poller = poller) Dim checkhostexport = newList.Where(Function(x) x.ToString = elem.Host) Select Case checkhostexport.Count Case 1 itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = True, .Contract = elem.Customer}) Case Else itemsPoller.Add(New Poller() With {.Host = elem.Host, .Exist = False, .Contract = elem.Customer}) End Select Next ' Chargement de la ListView With ListViewPoller .ItemsSource = itemsPoller .Items.Refresh() End With