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; } } }
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(); } }
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); }
private void AddListItem <T, TV>(ListView ls, DictChangedEventArgs <T, TV> e) { ListViewAdd(ls, CreateFromDictChange(e)); }
private void RemoveListItem <T, TV>(ListView ls, DictChangedEventArgs <T, TV> e) { var x = ListViewFind(ls, CreateName(e.Key.ToString()), true); ListViewRemove(ls, x); }
private void IdStreamsMapOnDictionaryChanged(object sender, DictChangedEventArgs <int, RegInfo> e) { Changed(e); }
private void RegListOnOnDictionaryChanged(object sender, DictChangedEventArgs <string, TypeHolder> e) { Changed(e); }
private void TokenListOnOnDictionaryChanged(object sender, DictChangedEventArgs <string, TokenItem> e) { Changed(e); }
private void RememberTypeOnOnDictionaryChanged(object sender, DictChangedEventArgs <string, RememberType> e) { Changed(e); }