protected override void DoExecute()
        {
            if (!_directoryAdapter.Exists(_srcDirPathProvider.Value))
            {
                throw new DeploymentTaskException(string.Format("Source directory doesn't exist: '{0}'.", _srcDirPathProvider));
            }

            if (!_directoryAdapter.Exists(_dstDirPath.Value))
            {
                _directoryAdapter.CreateDirectory(_dstDirPath.Value);
            }

            _directoryAdapter.CopyAll(_srcDirPathProvider.Value, _dstDirPath.Value);
        }
        protected override void DoExecute()
        {
            if (_directoryAdapter.Exists(_dstDirPath.Value))
            {
                RetryUtils.RetryOnException(
                    new[] { typeof(UnauthorizedAccessException) },
                    _DeleteDstDirRetriesCount,
                    _DeleteDstDirRetryDelay,
                    () =>
                {
                    _directoryAdapter.GetDirectories(_dstDirPath.Value)
                    .Where(x => !_excludedDirs.Any(s => x.EndsWith(s, StringComparison.CurrentCultureIgnoreCase)))
                    .ToList()
                    .ForEach(dirPath => _directoryAdapter.Delete(dirPath, true));

                    _directoryAdapter.GetFiles(_dstDirPath.Value)
                    .ToList()
                    .ForEach(_fileAdapter.Delete);
                });
            }
            else
            {
                _directoryAdapter.CreateDirectory(_dstDirPath.Value);
            }
        }