47 lines
1015 B
C#
47 lines
1015 B
C#
|
|
using System;
|
|||
|
|
using System.Collections.Generic;
|
|||
|
|
using System.Linq;
|
|||
|
|
using System.Text;
|
|||
|
|
using System.Threading.Tasks;
|
|||
|
|
|
|||
|
|
namespace DTS.Common.Import.Persist
|
|||
|
|
{
|
|||
|
|
public class PersistCalculator : IPersistCalculator
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
private double _done;
|
|||
|
|
private double _total;
|
|||
|
|
|
|||
|
|
public double ProgressValue { get => _done / _total; }
|
|||
|
|
|
|||
|
|
public void AddDone(double value)
|
|||
|
|
{
|
|||
|
|
_done += value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void AddDone()
|
|||
|
|
{
|
|||
|
|
_done++;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public void AddToTotal(double value)
|
|||
|
|
{
|
|||
|
|
if (value < 0)
|
|||
|
|
{
|
|||
|
|
throw new ArgumentOutOfRangeException("value", "value should not be less or equal to zero.");
|
|||
|
|
}
|
|||
|
|
_total += value;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
public interface IPersistCalculator
|
|||
|
|
{
|
|||
|
|
void AddDone();
|
|||
|
|
void AddDone(double value);
|
|||
|
|
double ProgressValue { get; }
|
|||
|
|
void AddToTotal(double value);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|