213 lines
7.2 KiB
C#
213 lines
7.2 KiB
C#
using System;
|
|||
|
|
using System.ComponentModel;
|
||
|
|
using System.Drawing;
|
||
|
|
using System.IO;
|
||
|
|
using System.Windows.Forms;
|
||
|
|
using MaterialSkin;
|
||
|
|
using MaterialSkin.Controls;
|
||
|
|
using Server.Connectings;
|
||
|
|
using Server.Helper;
|
||
|
|
|
||
|
|
namespace Server.Forms;
|
||
|
|
|
||
|
|
public class FormUpload : FormMaterial
|
||
|
|
{
|
||
|
|
public string path;
|
||
|
|
|
||
|
|
public string pathto;
|
||
|
|
|
||
|
|
public byte[] bytes;
|
||
|
|
|
||
|
|
public long sends;
|
||
|
|
|
||
|
|
public long Secound;
|
||
|
|
|
||
|
|
public Clients client;
|
||
|
|
|
||
|
|
public Clients parrent;
|
||
|
|
|
||
|
|
private IContainer components;
|
||
|
|
|
||
|
|
private MaterialProgressBar materialProgressBar1;
|
||
|
|
|
||
|
|
private MaterialLabel materialLabel1;
|
||
|
|
|
||
|
|
private MaterialLabel materialLabel2;
|
||
|
|
|
||
|
|
private MaterialLabel materialLabel3;
|
||
|
|
|
||
|
|
private MaterialLabel materialLabel4;
|
||
|
|
|
||
|
|
public Timer timer2;
|
||
|
|
|
||
|
|
private MaterialLabel materialLabel5;
|
||
|
|
|
||
|
|
public Timer timer1;
|
||
|
|
|
||
|
|
public FormUpload()
|
||
|
|
{
|
||
|
|
InitializeComponent();
|
||
|
|
base.FormClosing += Closing1;
|
||
|
|
}
|
||
|
|
|
||
|
|
private void Closing1(object sender, EventArgs e)
|
||
|
|
{
|
||
|
|
if (client != null)
|
||
|
|
{
|
||
|
|
client.Disconnect();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
private void FormUpload_Load(object sender, EventArgs e)
|
||
|
|
{
|
||
|
|
timer1.Start();
|
||
|
|
bytes = File.ReadAllBytes(path);
|
||
|
|
materialProgressBar1.Maximum = bytes.Length;
|
||
|
|
materialLabel3.Text = "File: " + Path.GetFileName(path);
|
||
|
|
materialLabel4.Text = "Size: " + Methods.BytesToString(bytes.LongLength);
|
||
|
|
}
|
||
|
|
|
||
|
|
public void Connected()
|
||
|
|
{
|
||
|
|
timer2.Start();
|
||
|
|
Clients clients = client;
|
||
|
|
clients.Sents = (Clients.Delegate)Delegate.Combine(clients.Sents, (Clients.Delegate)delegate(long item)
|
||
|
|
{
|
||
|
|
Program.form.Invoke((MethodInvoker)delegate
|
||
|
|
{
|
||
|
|
sends += item;
|
||
|
|
Secound += item;
|
||
|
|
if (sends <= bytes.Length)
|
||
|
|
{
|
||
|
|
materialProgressBar1.Value = (int)sends;
|
||
|
|
materialLabel5.Text = "Size Sents: " + Methods.BytesToString(sends);
|
||
|
|
client.lastPing.Last();
|
||
|
|
}
|
||
|
|
});
|
||
|
|
});
|
||
|
|
}
|
||
|
|
|
||
|
|
private void timer2_Tick(object sender, EventArgs e)
|
||
|
|
{
|
||
|
|
materialLabel2.Text = Methods.BytesToString(Secound) + "\\sec";
|
||
|
|
Secound = 0L;
|
||
|
|
materialLabel1.Text = GetPercent(bytes.Length, sends) + "% done";
|
||
|
|
}
|
||
|
|
|
||
|
|
public static long GetPercent(long b, long a)
|
||
|
|
{
|
||
|
|
if (b == 0L)
|
||
|
|
{
|
||
|
|
return 0L;
|
||
|
|
}
|
||
|
|
return (long)((decimal)a / ((decimal)b / 100m));
|
||
|
|
}
|
||
|
|
|
||
|
|
private void timer1_Tick(object sender, EventArgs e)
|
||
|
|
{
|
||
|
|
if (!parrent.itsConnect)
|
||
|
|
{
|
||
|
|
Close();
|
||
|
|
}
|
||
|
|
if (client != null && !client.itsConnect)
|
||
|
|
{
|
||
|
|
Close();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
protected override void Dispose(bool disposing)
|
||
|
|
{
|
||
|
|
if (disposing && components != null)
|
||
|
|
{
|
||
|
|
components.Dispose();
|
||
|
|
}
|
||
|
|
base.Dispose(disposing);
|
||
|
|
}
|
||
|
|
|
||
|
|
private void InitializeComponent()
|
||
|
|
{
|
||
|
|
this.components = new System.ComponentModel.Container();
|
||
|
|
this.materialProgressBar1 = new MaterialSkin.Controls.MaterialProgressBar();
|
||
|
|
this.materialLabel1 = new MaterialSkin.Controls.MaterialLabel();
|
||
|
|
this.materialLabel2 = new MaterialSkin.Controls.MaterialLabel();
|
||
|
|
this.materialLabel3 = new MaterialSkin.Controls.MaterialLabel();
|
||
|
|
this.materialLabel4 = new MaterialSkin.Controls.MaterialLabel();
|
||
|
|
this.timer2 = new System.Windows.Forms.Timer(this.components);
|
||
|
|
this.materialLabel5 = new MaterialSkin.Controls.MaterialLabel();
|
||
|
|
this.timer1 = new System.Windows.Forms.Timer(this.components);
|
||
|
|
base.SuspendLayout();
|
||
|
|
this.materialProgressBar1.Anchor = System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right;
|
||
|
|
this.materialProgressBar1.Depth = 0;
|
||
|
|
this.materialProgressBar1.Location = new System.Drawing.Point(6, 121);
|
||
|
|
this.materialProgressBar1.MouseState = MaterialSkin.MouseState.HOVER;
|
||
|
|
this.materialProgressBar1.Name = "materialProgressBar1";
|
||
|
|
this.materialProgressBar1.Size = new System.Drawing.Size(323, 5);
|
||
|
|
this.materialProgressBar1.TabIndex = 0;
|
||
|
|
this.materialLabel1.AutoSize = true;
|
||
|
|
this.materialLabel1.Depth = 0;
|
||
|
|
this.materialLabel1.Font = new System.Drawing.Font("Roboto", 14f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||
|
|
this.materialLabel1.Location = new System.Drawing.Point(6, 129);
|
||
|
|
this.materialLabel1.MouseState = MaterialSkin.MouseState.HOVER;
|
||
|
|
this.materialLabel1.Name = "materialLabel1";
|
||
|
|
this.materialLabel1.Size = new System.Drawing.Size(61, 19);
|
||
|
|
this.materialLabel1.TabIndex = 1;
|
||
|
|
this.materialLabel1.Text = "0% done";
|
||
|
|
this.materialLabel2.AutoSize = true;
|
||
|
|
this.materialLabel2.Depth = 0;
|
||
|
|
this.materialLabel2.Font = new System.Drawing.Font("Roboto", 14f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||
|
|
this.materialLabel2.Location = new System.Drawing.Point(243, 129);
|
||
|
|
this.materialLabel2.MouseState = MaterialSkin.MouseState.HOVER;
|
||
|
|
this.materialLabel2.Name = "materialLabel2";
|
||
|
|
this.materialLabel2.Size = new System.Drawing.Size(50, 19);
|
||
|
|
this.materialLabel2.TabIndex = 2;
|
||
|
|
this.materialLabel2.Text = "0b/sec";
|
||
|
|
this.materialLabel3.AutoSize = true;
|
||
|
|
this.materialLabel3.Depth = 0;
|
||
|
|
this.materialLabel3.Font = new System.Drawing.Font("Roboto", 14f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||
|
|
this.materialLabel3.Location = new System.Drawing.Point(6, 95);
|
||
|
|
this.materialLabel3.MouseState = MaterialSkin.MouseState.HOVER;
|
||
|
|
this.materialLabel3.Name = "materialLabel3";
|
||
|
|
this.materialLabel3.Size = new System.Drawing.Size(91, 19);
|
||
|
|
this.materialLabel3.TabIndex = 3;
|
||
|
|
this.materialLabel3.Text = "File: none.txt";
|
||
|
|
this.materialLabel4.AutoSize = true;
|
||
|
|
this.materialLabel4.Depth = 0;
|
||
|
|
this.materialLabel4.Font = new System.Drawing.Font("Roboto", 14f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||
|
|
this.materialLabel4.Location = new System.Drawing.Point(6, 73);
|
||
|
|
this.materialLabel4.MouseState = MaterialSkin.MouseState.HOVER;
|
||
|
|
this.materialLabel4.Name = "materialLabel4";
|
||
|
|
this.materialLabel4.Size = new System.Drawing.Size(71, 19);
|
||
|
|
this.materialLabel4.TabIndex = 4;
|
||
|
|
this.materialLabel4.Text = "Size: 0mb";
|
||
|
|
this.timer2.Interval = 1000;
|
||
|
|
this.timer2.Tick += new System.EventHandler(timer2_Tick);
|
||
|
|
this.materialLabel5.AutoSize = true;
|
||
|
|
this.materialLabel5.Depth = 0;
|
||
|
|
this.materialLabel5.Font = new System.Drawing.Font("Roboto", 14f, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Pixel);
|
||
|
|
this.materialLabel5.Location = new System.Drawing.Point(119, 73);
|
||
|
|
this.materialLabel5.MouseState = MaterialSkin.MouseState.HOVER;
|
||
|
|
this.materialLabel5.Name = "materialLabel5";
|
||
|
|
this.materialLabel5.Size = new System.Drawing.Size(115, 19);
|
||
|
|
this.materialLabel5.TabIndex = 5;
|
||
|
|
this.materialLabel5.Text = "Size Sents: 0mb";
|
||
|
|
this.timer1.Interval = 1000;
|
||
|
|
this.timer1.Tick += new System.EventHandler(timer1_Tick);
|
||
|
|
base.AutoScaleDimensions = new System.Drawing.SizeF(6f, 13f);
|
||
|
|
base.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||
|
|
base.ClientSize = new System.Drawing.Size(335, 162);
|
||
|
|
base.Controls.Add(this.materialLabel5);
|
||
|
|
base.Controls.Add(this.materialLabel4);
|
||
|
|
base.Controls.Add(this.materialLabel3);
|
||
|
|
base.Controls.Add(this.materialLabel2);
|
||
|
|
base.Controls.Add(this.materialLabel1);
|
||
|
|
base.Controls.Add(this.materialProgressBar1);
|
||
|
|
this.MaximumSize = new System.Drawing.Size(335, 162);
|
||
|
|
this.MinimumSize = new System.Drawing.Size(335, 162);
|
||
|
|
base.Name = "FormUpload";
|
||
|
|
this.Text = "Upload";
|
||
|
|
base.Load += new System.EventHandler(FormUpload_Load);
|
||
|
|
base.ResumeLayout(false);
|
||
|
|
base.PerformLayout();
|
||
|
|
}
|
||
|
|
}
|