public bool IsFinished()
 {
     if (this.OperationId == null)
     {
         if (!this.OperationResultTime.HasValue)
         {
             throw new Exception("opearion is not started");
         }
         return(true);
     }
     if (CompleteOperationProvider.IsFinished(this.OperationId))
     {
         CompleteOperationResult result = CompleteOperationProvider.GetResult(this.OperationId);
         if (result != null)
         {
             this.OperationId         = null;
             this.OperationResultTime = new DateTime?(result.ResultDate);
             this.OperationResultType = result.DataType;
             this.OperationResultData = result.Data;
             return(true);
         }
     }
     return(false);
 }
 public void Start()
 {
     this.Clear();
     this.OperationId = CompleteOperationProvider.Start();
 }