示例#1
0
        private void CalculatePercentComplete(DataSentArgs e)
        {
            long soFar = e.BytesSent;
            long total = e.BytesTotal;

            int percentComplete = (int)Math.Ceiling((double)soFar / (double)total * 100);

            Session["percentComplete"] = percentComplete;
        }
示例#2
0
        void CompareService_OnDataSent(object sender, DataSentArgs e)
        {
            try
            {
                CalculateDataRate(e);
                CalculatePercentComplete(e);

                if (e.BytesSent == e.BytesTotal)
                {
                    MarkComplete();
                }
            }
            catch (Exception ex)
            {
                ShowMessage(ex.Message);
            }
        }
示例#3
0
        private void CalculateDataRate(DataSentArgs e)
        {
            long bytespersec     = 0;
            long mbytesperminute = 0;

            if (e.BytesSent == 0)
            {
                _startTime      = DateTime.Now;
                bytespersec     = 0;
                mbytesperminute = 0;
            }
            else
            {
                DateTime currentTime = DateTime.Now;
                TimeSpan diffrence   = currentTime - _startTime;

                double second = diffrence.TotalSeconds;

                if (second != 0)
                {
                    double kbbytes = e.BytesSent / 1024;

                    bytespersec     = (long)(kbbytes / second);
                    mbytesperminute = (bytespersec * 60) / 1024;
                }
                else
                {
                    bytespersec     = (long)Session["bytesPerSec"];
                    mbytesperminute = (long)Session["MbytesPerMin"];
                }
            }

            //To accomodate hight data rate in case of namedPipe protocol
            bytespersec     = bytespersec / _divideFactor;
            mbytesperminute = mbytesperminute / _divideFactor;

            Session["bytesPerSec"]  = bytespersec;
            Session["MbytesperMin"] = mbytesperminute;
        }
        /// <summary>
        /// Fired by CompareService after sending each chunk of data. We use this event to calculate the
        /// progress of data transfer to the Compare Service. It is only for data transfer purposes.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void CompareService_OnDataSent(object sender, DataSentArgs e)
        {
            UploadInfo uploadInfo = Session["UploadInfo"] as UploadInfo;

            if (uploadInfo == null)
            {
                return;
            }

            uploadInfo.IsReady = true;

            long soFar           = e.BytesSent;
            long total           = e.BytesTotal;
            int  percentComplete = 0;

            if (total > 0)
            {
                percentComplete = (int)Math.Ceiling((double)soFar / total * 100);
            }

            uploadInfo.PercentComplete = percentComplete;
            string msg = "Chunking {0} - Number of bytes sent: {1} Bytes";

            if (e.IsOriginalFile)
            {
                msg = string.Format(msg, "Original file [ {0} ]", e.BytesSent);
                msg = string.Format(msg, _originalFileName);
            }
            else
            {
                msg = string.Format(msg, "Modified file [ {0} ]", e.BytesSent);
                msg = string.Format(msg, _modifiedFileName);
            }

            uploadInfo.Message = msg;
        }
示例#5
0
        private void comparer_CompareProgress(object sender, DataSentArgs e)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new CompareProgressDelegate(comparer_CompareProgress), new object[] { sender, e });
                return;
            }

            if (e.IsOriginalFile)
            {
                if (e.BytesSent == 0)
                {
                    this.timeStartSendingOriginal      = System.DateTime.Now;
                    this.labelOriginalBytesPerSec.Text = "0";
                    this.labelOriginalBytesSent.Text   = "0 / 0";

                    System.Diagnostics.Trace.WriteLine("Starting to send original file");
                }
                else
                {
                    double numMSecondsEllapsed = (System.DateTime.Now - this.timeStartSendingOriginal).TotalMilliseconds;
                    System.Diagnostics.Trace.WriteLine("Send original file: " + e.BytesSent + " bytes in " + numMSecondsEllapsed + " ms");

                    if (numMSecondsEllapsed > 0)
                    {
                        int bytesPerMSecond = (int)((double)e.BytesSent / numMSecondsEllapsed);

                        this.labelOriginalBytesPerSec.Text = (bytesPerMSecond * 1000 / 1024).ToString();
                    }
                    else
                    {
                        this.labelOriginalBytesPerSec.Text = "~";
                    }

                    this.labelOriginalBytesSent.Text = e.BytesSent + " / " + e.BytesTotal;
                    this.progressOriginal.Value      = (int)(this.progressOriginal.Maximum * e.BytesSent / e.BytesTotal);

                    if (e.BytesSent == e.BytesTotal)
                    {
                        this.butStart.Enabled = true;
                    }
                }
            }
            else
            {
                if (e.BytesSent == 0)
                {
                    this.progressModified.Value        = this.progressModified.Minimum;
                    this.timeStartSendingModified      = System.DateTime.Now;
                    this.labelModifiedBytesPerSec.Text = "0";
                    this.labelModifiedBytesSent.Text   = "0 / 0";

                    System.Diagnostics.Trace.WriteLine("Starting to send modified file");
                }
                else
                {
                    double numMSecondsEllapsed = (System.DateTime.Now - this.timeStartSendingModified).TotalMilliseconds;
                    System.Diagnostics.Trace.WriteLine("Send modified file: " + e.BytesSent + " bytes in " + numMSecondsEllapsed + " ms");

                    if (numMSecondsEllapsed > 0)
                    {
                        int bytesPerMSecond = (int)((double)e.BytesSent / numMSecondsEllapsed);

                        this.labelModifiedBytesPerSec.Text = (bytesPerMSecond * 1000 / 1024).ToString();
                    }
                    else
                    {
                        this.labelModifiedBytesPerSec.Text = "~";
                    }

                    this.labelModifiedBytesSent.Text = e.BytesSent + " / " + e.BytesTotal;
                    this.progressModified.Value      = (int)(this.progressModified.Maximum * e.BytesSent / e.BytesTotal);
                }
            }
        }