public void ProgressChanged(decimal progress, string?status = null)
        {
            if (progress != CurrentProcess.Progress || status != CurrentProcess.Status)
            {
                CurrentProcess.Progress = progress;
                CurrentProcess.Status   = status;
                var ic = CurrentProcess.FullIntegrityCheck();
                if (ic != null)
                {
                    throw new IntegrityCheckException(ic);
                }

                CurrentProcess.InDB()
                .UnsafeUpdate()
                .Set(a => a.Progress, a => progress)
                .Set(a => a.Status, a => status)
                .Execute();
            }
        }