Пример #1
0
        public void WriteDataInFile(object sender, DictChangedEventArgs <int, byte[]> e)
        {
            if (nextIndex > e.Key)
            {
                throw new Exception("Элемент с таким ключём уже обработан");
            }
            while (true)
            {
                if (e.Key == nextIndex)
                {
                    using (var memory = new MemoryStream(e.Value))
                    {
                        memory.WriteTo(fileStream);
                    }

                    writeBytes.Remove(nextIndex);
                    nextIndex++;
                }
                else if (writeBytes.ContainsKey(nextIndex))
                {
                    using (var memory = new MemoryStream(writeBytes[nextIndex]))
                    {
                        memory.WriteTo(fileStream);
                    }
                    writeBytes.Remove(nextIndex);
                    nextIndex++;
                }
                else
                {
                    writeBytes[e.Key] = e.Value;
                    return;
                }
            }
        }
Пример #2
0
        private void Changed <T, TV>(DictChangedEventArgs <T, TV> e)
        {
            switch (e.Type)
            {
            case TypeE.AddItem:    break;

            case TypeE.RemoveItem: break;

            case TypeE.Clear:      break;

            default:               return;
            }

            ListView ls = null;

            if (typeof(T) == typeof(string))
            {
                ls = typeof(TV) == typeof(RememberType) ? this._RememberList : this._RegList;
            }
            else if (typeof(T) == typeof(string))
            {
                ls = this._TokenList;
            }
            else if (typeof(T) == typeof(int))
            {
                ls = this._idStreamMap;
            }

            switch (e.Type)
            {
            case TypeE.AddItem:
                AddListItem(ls, e);
                break;

            case TypeE.RemoveItem:
                RemoveListItem(ls, e);
                break;

            case TypeE.Clear:
                ClearListItems(ls);
                break;

            default: throw new ArgumentOutOfRangeException();
            }
        }
Пример #3
0
        private ListViewItem CreateFromDictChange <T, TV>(DictChangedEventArgs <T, TV> e)
        {
            var key = CreateName(e.Key.ToString());

            var it = new ListViewItem(key);

            it.Name     = key;
            it.ImageKey = key;
            try {
                if (typeof(TV) == typeof(RegInfo) && e.Value is RegInfo rg)
                {
                    it.SubItems.Add(rg.Extension.ToString());
                    it.SubItems.Add((rg.Position.ToString()));
                    it.SubItems.Add((rg.SenderAuth));
                    it.SubItems.Add((rg.SaveFilePath));
                }
                else if (typeof(TV) == typeof(TokenItem) && e.Value is TokenItem ti)
                {
                    it.SubItems.Add(ti.Trusted.ToString());
                    it.SubItems.Add((ti.Remember.ToString()));
                    it.SubItems.Add((ti.Description));
                }
                else if (typeof(TV) == typeof(RememberType) && e.Value is RememberType rm)
                {
                    it.SubItems.Add(rm.Type.ToString());
                    it.SubItems.Add((rm.Value.ToString()));
                    it.SubItems.Add((rm.Description));
                }
                else if (typeof(TV) == typeof(TypeHolder) && e.Value is TypeHolder th)
                {
                    it.SubItems.Add(th.CloseFileStream.ToString());
                    it.SubItems.Add((th.UserConfirm.ToString()));
                    it.SubItems.Add((th.OpenWith));
                    it.SubItems.Add((th.Arguments));
                    it.SubItems.Add((th.Description));
                }
            } catch { it.SubItems.AddRange(new[] { "error", "error", "error", "error", "error" }); }

            return(it);
        }
Пример #4
0
 private void AddListItem <T, TV>(ListView ls, DictChangedEventArgs <T, TV> e)
 {
     ListViewAdd(ls, CreateFromDictChange(e));
 }
Пример #5
0
        private void RemoveListItem <T, TV>(ListView ls, DictChangedEventArgs <T, TV> e)
        {
            var x = ListViewFind(ls, CreateName(e.Key.ToString()), true);

            ListViewRemove(ls, x);
        }
Пример #6
0
 private void IdStreamsMapOnDictionaryChanged(object sender, DictChangedEventArgs <int, RegInfo> e)
 {
     Changed(e);
 }
Пример #7
0
 private void RegListOnOnDictionaryChanged(object sender, DictChangedEventArgs <string, TypeHolder> e)
 {
     Changed(e);
 }
Пример #8
0
 private void TokenListOnOnDictionaryChanged(object sender, DictChangedEventArgs <string, TokenItem> e)
 {
     Changed(e);
 }
Пример #9
0
 private void RememberTypeOnOnDictionaryChanged(object sender, DictChangedEventArgs <string, RememberType> e)
 {
     Changed(e);
 }