private void Init() { Interactions.Where(_ => _.Value.Interaction == Interaction.Check && (bool?)_.Value.Value == true).Subscribe(_ => { Checked.Add(_.Key); if (Unchecked.Contains(_.Key)) { Unchecked.Remove(_.Key); } }); ChildSubject.Where(_ => _.Value.Interaction == Interaction.Check && (bool?)_.Value.Value == true).Subscribe(_ => { Checked.Add(_.Key); if (Unchecked.Contains(_.Key)) { Unchecked.Remove(_.Key); } }); Interactions.Where(_ => _.Value.Interaction == Interaction.Check && !((bool?)_.Value.Value == true)).Subscribe(_ => { Unchecked.Add(_.Key); if (Checked.Contains(_.Key)) { Checked.Remove(_.Key); } }); ChildSubject.Where(_ => _.Value.Interaction == Interaction.Check && !((bool?)_.Value.Value == true)).Subscribe(_ => { Unchecked.Add(_.Key); if (Checked.Contains(_.Key)) { Checked.Remove(_.Key); } }); }
public void OnFileCheckChanged() { foreach (var f in FileItems) { if (f.Check) { if (Unchecked.Contains(f.Fid)) { Unchecked.Remove(f.Fid); } } else if (!Unchecked.Contains(f.Fid)) { Unchecked.Add(f.Fid); } } if (QueryResults == null || QueryResults.Count == 0) { return; } HitItems.Clear(); ProcessQueryResults(); }
public async Task <bool> UpdateFiles() { QueryResults = null; HitItems.Clear(); FileItems.Clear(); if (Group != null) { var api = IndexApiClient.Create(cts.Token); var results = await api.GetFiles(Group); if (results is FileInfo[] entries) { foreach (var entry in entries.OrderBy(x => x.Path.ToUpperInvariant())) { FileItems.Add(new FileItem(entry.Fid, entry.Path, entry.Size, !Unchecked.Contains(entry.Fid))); } return(true); } else { return(false); } } else { return(true); } }