public static int TimeRefresh = 500;//refresh in 500 ms public static void CalSpeedAndTimeLeft(this Transfer transfer, long Group_TotalTransfer = -1) { long time_milisec_group = CurrentMillis.Millis - transfer.TimeStamp; if (time_milisec_group != 0 & time_milisec_group >= TimeRefresh) { TransferItem item = transfer as TransferItem; TransferGroup group = transfer as TransferGroup; if (group != null && Group_TotalTransfer < 0) { throw new Exception("Group_TotalTransfer < 0"); } long SizeWasTransfer = (item != null ? item.SizeWasTransfer : Group_TotalTransfer); transfer.TimeStamp = CurrentMillis.Millis; decimal speed = ((decimal)(SizeWasTransfer - transfer.OldTransfer)) * 1000 / time_milisec_group; transfer.OldTransfer = SizeWasTransfer; transfer.DataSource.Speed = UnitConventer.ConvertSize(speed, 2, UnitConventer.unit_speed); if (speed != 0) { long TotalSize = (item != null ? item.From.node.Info.Size : group.TotalFileLength); long length_left = TotalSize - SizeWasTransfer; long TimeLeft_sec = length_left / decimal.ToInt64(speed); transfer.DataSource.Estimated = CurrentMillis.GetTimeBySecond(TimeLeft_sec); } } }
TransferGroup GetParentItem(CloudManagerGeneralLib.Class.TransferItem item) { foreach (TreeNode node in treeList.Nodes) { foreach (CloudManagerGeneralLib.Class.TransferItem it in (node.Tag as TransferGroup).items) { if (it == item) { return(node.Tag as TransferGroup); } } } return(null); }
private void treeList_ContextMenuOpening(object sender, ContextMenuEventArgs e) { start.IsEnabled = false; waiting.IsEnabled = false; stop.IsEnabled = false; error.IsEnabled = false; remove.IsEnabled = false; numberOfParallelDownloads.IsEnabled = false; var seleecteditems = treeList.SelectedItems; if (seleecteditems != null) { if (seleecteditems.Count > 0) { remove.IsEnabled = true; } groups = new List <TransferGroup>(); items = new List <CloudManagerGeneralLib.Class.TransferItem>(); foreach (var item in seleecteditems) { TreeNode node = item as TreeNode; TransferGroup tg = node.Tag as TransferGroup; CloudManagerGeneralLib.Class.TransferItem ti = node.Tag as CloudManagerGeneralLib.Class.TransferItem; if (tg != null)//group { groups.Add(tg); SetIsEnableMenuTLV(tg as Transfer); foreach (CloudManagerGeneralLib.Class.TransferItem child in tg.items) { SetIsEnableMenuTLV(child as Transfer); } }//item else { items.Add(ti); SetIsEnableMenuTLV(ti as Transfer); } } if (groups.Count == 1 & items.Count == 0) { numberOfParallelDownloads.IsEnabled = true; } } }
public static int TimeRefresh = 500;//refresh in 500 ms public static void CalSpeedAndTimeLeft(this TransferItem transfer) { long mili = CurrentMillis.Millis; if (mili - transfer.TimeStamp < 500) { return; } decimal speed = ((decimal)(transfer.SizeWasTransfer - transfer.OldTransfer)) * 1000 / (mili - transfer.TimeStamp); transfer.OldTransfer = transfer.SizeWasTransfer; transfer.DataSource.Speed = UnitConventer.ConvertSize(speed, 2, UnitConventer.unit_speed); if (speed != 0) { long length_left = transfer.From.node.Info.Size - transfer.SizeWasTransfer; long TimeLeft_sec = length_left / decimal.ToInt64(speed); transfer.DataSource.Estimated = CurrentMillis.GetTimeBySecond(TimeLeft_sec); } else { transfer.DataSource.Estimated = ""; } }
public void AddTransferItem(TransferItem item) { item.Group = this; items.Add(item); }