コード例 #1
0
        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);
                }
            });
        }
コード例 #2
0
 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();
 }
コード例 #3
0
        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);
            }
        }