internal void SliceReceived(string fileUniqueKey, uint receivedSlice) { if (!TransferStatus.ContainsKey(fileUniqueKey)) { throw new KeyNotFoundException($"FileSendInfo '{fileUniqueKey}' was not registered in FileReceiveProgressCalculator."); } // Might go backwards (in case of a full file redownload), and that's ok. TransferStatus[fileUniqueKey].NextSlice = receivedSlice + 1; InvokeProgressEvent(); }
internal void SliceRequestReceived(FileSliceSender sender, SliceRequestedEventArgs e) { if (!TransferStatus.ContainsKey(sender.UniqueKey)) { throw new KeyNotFoundException($"FileSliceSender '{sender.UniqueKey}' was not registered in FileSendProgressCalculator."); } var nextSlice = e.RequestedSlice + 1; if (TransferStatus[sender.UniqueKey].NextSlice < nextSlice) { TransferStatus[sender.UniqueKey].NextSlice = nextSlice; } TransferStarted = true; timeoutCountSinceLastSlice = 0; UpdateTimer(); InvokeProgressEvent(); }