/// <exception cref="ArgumentNullException">
        /// <paramref name="trainingProviderName"/> or
        /// <paramref name="mediaPath"/> or
        /// <paramref name="httpDownloadManager"/> or
        /// <paramref name="fileSystemProxy"/>
        /// is <see langword="null" />.</exception>
        internal TrainingCatalogMediaContentProcessor(int trainingProviderId, string trainingProviderName,
                                                      IMediaPath mediaPath,
                                                      IHttpDownloadManager httpDownloadManager, IFileSystemProxy fileSystemProxy)
        {
            if (trainingProviderName == null)
            {
                throw new ArgumentNullException("trainingProviderName");
            }

            if (mediaPath == null)
            {
                throw new ArgumentNullException("mediaPath");
            }

            if (mediaPath == null)
            {
                throw new ArgumentNullException("httpDownloadManager");
            }

            if (mediaPath == null)
            {
                throw new ArgumentNullException("fileSystemProxy");
            }

            _trainingProviderName = trainingProviderName;
            _trainingProviderId   = trainingProviderId;
            _mediaPath            = mediaPath;
            _httpDownloadManager  = httpDownloadManager;
            _fileSystemProxy      = fileSystemProxy;
        }
        public PathValidation Validate(IMediaPath path)
        {
            if (path == null)
                throw new ArgumentNullException("path");

            try
            {
                foreach (var invalidChar in Path.GetInvalidPathChars())
                {
                    if (path.AbsolutePath.Contains(invalidChar))
                        return new PathValidation(false, false);
                }
            }
            catch (Exception validationError)
            {
                return new PathValidation(false, false, validationError);
            }

            try
            {
                if (Directory.Exists(path.AbsolutePath))
                    return new PathValidation(true, true);
                else if (File.Exists(path.AbsolutePath))
                    return new PathValidation(true, true);
                else
                    return new PathValidation(true, false);
            }
            catch (Exception existenceError)
            {
                return new PathValidation(true, false, existenceError);
            }
        }
        public PathValidation Validate(IMediaPath path)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }

            Uri location;

            try
            {
                location = new Uri(path.AbsolutePath, UriKind.Absolute);
            }
            catch (Exception locationError)
            {
                return(new PathValidation(false, false, locationError));
            }

            try
            {
                var request  = HttpWebRequest.Create(location);
                var response = request.GetResponse();
                return(new PathValidation(true, true));
            }
            catch (Exception requestError)
            {
                return(new PathValidation(true, false, requestError));
            }
        }
예제 #4
0
        /// <exception cref="ArgumentNullException">
        /// <paramref name="trainingProviderName"/>  or
        /// <paramref name="host"/>  or
        /// <paramref name="updatesUriOrPath"/> or
        /// <paramref name="mediaPath"/> is <see langword="null" />.</exception>
        /// <exception cref="TrainingCatalogInitializationException"></exception>
        /// <exception cref="DirectoryNotFoundException"><param name="archiveDirectory"></param> not found.</exception>
        public virtual void Initialize(string trainingProviderName, int trainingProviderId, string host,
                                       string updatesUriOrPath, LocationType catalogLocation, IMediaPath mediaPath, string archiveDirectory)
        {
            if (trainingProviderName == null)
            {
                throw new ArgumentNullException("trainingProviderName");
            }

            if (host == null)
            {
                throw new ArgumentNullException("host");
            }

            if (updatesUriOrPath == null)
            {
                throw new ArgumentNullException("updatesUriOrPath");
            }

            if (mediaPath == null)
            {
                throw new ArgumentNullException("mediaPath");
            }

            if (!FileSystemProxy.IsDirectoryExists(archiveDirectory))
            {
                throw new DirectoryNotFoundException(
                          string.Format(Resources.TrainingCatalogException_ArchiveDirectoryNotFound, archiveDirectory));
            }


            TrainingProviderName = trainingProviderName;
            TrainingProviderId   = trainingProviderId;
            Host      = host;
            MediaPath = mediaPath;
            UpdateContentUriOrPath = updatesUriOrPath;
            UpdateContentLocation  = catalogLocation;

            try
            {
                ArchiveFolderPath = Path.Combine(archiveDirectory, TrainingProviderName);

                var utcNow = DateTime.UtcNow;
                var currentSaveDirectory = Path.Combine(ArchiveFolderPath, utcNow.ToString("yyyy"), utcNow.ToString("yyyy.MM"), utcNow.ToString("yyyy.MM.dd"));
                ArchiveCurrentSaveDirectory = Path.Combine(ArchiveFolderPath, currentSaveDirectory);

                if (!FileSystemProxy.IsDirectoryExists(ArchiveCurrentSaveDirectory))
                {
                    FileSystemProxy.CreateDirectory(ArchiveCurrentSaveDirectory);
                }

                _mediaContentProcessor = new TrainingCatalogMediaContentProcessor(TrainingProviderId, TrainingProviderName,
                                                                                  MediaPath, HttpDownloadManager, FileSystemProxy);

                IsInitialized = true;
            }
            catch (Exception ex)
            {
                throw new TrainingCatalogInitializationException(Resources.TrainingCatalogInitializationException_Message, ex);
            }
        }
        public PathValidation Validate(IMediaPath path)
        {
            if (path == null)
                throw new ArgumentNullException("path");

            Uri location;

            try
            {
                location = new Uri(path.AbsolutePath, UriKind.Absolute);
            }
            catch (Exception locationError)
            {
                return new PathValidation(false, false, locationError);
            }

            try
            {
                var request = HttpWebRequest.Create(location);
                var response = request.GetResponse();
                return new PathValidation(true, true);
            }
            catch (Exception requestError)
            {
                return new PathValidation(true, false, requestError);
            }
        }
        public PathValidation Validate(IMediaPath path)
        {
            if (path == null)
                throw new ArgumentNullException("path");

            var validator = path.IsLocal ?
                new LocalPathValidator() as IPathValidator
                : new RemotePathValidator() as IPathValidator;

            return validator.Validate(path);
        }
예제 #7
0
        public PathValidation Validate(IMediaPath path)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }

            var validator = path.IsLocal ?
                            new LocalPathValidator() as IPathValidator
                : new RemotePathValidator() as IPathValidator;

            return(validator.Validate(path));
        }
        public PathValidation Validate(IMediaPath path)
        {
            if (path == null)
            {
                throw new ArgumentNullException("path");
            }

            try
            {
                foreach (var invalidChar in Path.GetInvalidPathChars())
                {
                    if (path.AbsolutePath.Contains(invalidChar))
                    {
                        return(new PathValidation(false, false));
                    }
                }
            }
            catch (Exception validationError)
            {
                return(new PathValidation(false, false, validationError));
            }

            try
            {
                if (Directory.Exists(path.AbsolutePath))
                {
                    return(new PathValidation(true, true));
                }
                else if (File.Exists(path.AbsolutePath))
                {
                    return(new PathValidation(true, true));
                }
                else
                {
                    return(new PathValidation(true, false));
                }
            }
            catch (Exception existenceError)
            {
                return(new PathValidation(true, false, existenceError));
            }
        }
      /// <exception cref="ArgumentNullException">
      /// <paramref name="trainingProviderName"/> or
      /// <paramref name="mediaPath"/> or
      /// <paramref name="httpDownloadManager"/> or
      /// <paramref name="fileSystemProxy"/> 
      /// is <see langword="null" />.</exception>
      internal TrainingCatalogMediaContentProcessor(int trainingProviderId, string trainingProviderName,
         IMediaPath mediaPath,
         IHttpDownloadManager httpDownloadManager, IFileSystemProxy fileSystemProxy)
      {
         if (trainingProviderName == null)
            throw new ArgumentNullException("trainingProviderName");

         if (mediaPath == null)
            throw new ArgumentNullException("mediaPath");

         if (mediaPath == null)
            throw new ArgumentNullException("httpDownloadManager");

         if (mediaPath == null)
            throw new ArgumentNullException("fileSystemProxy");

         _trainingProviderName = trainingProviderName;
         _trainingProviderId = trainingProviderId;
         _mediaPath = mediaPath;
         _httpDownloadManager = httpDownloadManager;
         _fileSystemProxy = fileSystemProxy;
      }
예제 #10
0
        /// <exception cref="ArgumentNullException">
        /// <paramref name="trainingProviderName"/>  or
        /// <paramref name="host"/>  or
        /// <paramref name="updatesUriOrPath"/> or
        /// <paramref name="mediaPath"/> is <see langword="null" />.</exception>
        /// <exception cref="TrainingCatalogInitializationException"></exception>
        public override void Initialize(string trainingProviderName, int trainingProviderId, string host,
                                        string updatesUriOrPath, LocationType catalogLocation, IMediaPath mediaPath, string archiveDirectory)
        {
            base.Initialize(trainingProviderName, trainingProviderId, host, updatesUriOrPath, catalogLocation, mediaPath, archiveDirectory);

            if (_parser == null)
            {
                var nodeSelector = new PluralsightNodeSelector();
                var nodeParser   = new PluralsightNodeParser(Host, nodeSelector);
                _parser = new PluralsightCatalogParser(nodeSelector, nodeParser);
            }
        }
 /// <exception cref="ArgumentNullException">
 /// <paramref name="trainingProviderName"/> or
 /// <paramref name="mediaPath" /> or
 /// <paramref name="httpDownloadManager" />
 /// is <see langword="null" />.</exception>
 public TrainingCatalogMediaContentProcessor(int trainingProviderId, string trainingProviderName, IMediaPath mediaPath,
                                             IHttpDownloadManager httpDownloadManager)
     : this(trainingProviderId, trainingProviderName, mediaPath, httpDownloadManager, FileSystemProxy.Instance)
 {
 }
예제 #12
0
 private static PathValidation Validate(IMediaPath path)
 {
     var validator = new UniversalPathValidator();
     
     return validator.Validate(path);
 }
예제 #13
0
        private static PathValidation Validate(IMediaPath path)
        {
            var validator = new UniversalPathValidator();

            return(validator.Validate(path));
        }
 /// <exception cref="ArgumentNullException">
 /// <paramref name="trainingProviderName"/> or
 /// <paramref name="mediaPath" /> or
 /// <paramref name="httpDownloadManager" />
 /// is <see langword="null" />.</exception>
 public TrainingCatalogMediaContentProcessor(int trainingProviderId,string trainingProviderName, IMediaPath mediaPath,
    IHttpDownloadManager httpDownloadManager)
    : this(trainingProviderId,trainingProviderName, mediaPath, httpDownloadManager, FileSystemProxy.Instance)
 {
 }