private static void Copy(Stream srcStream, Stream destStream, Stream destStream2, Action <int, object> progressReporter, MediaFileStorage locationCategory, MediaFileStorage locationCategory2) { byte[] buffer = new byte[1024]; int count = srcStream.Read(buffer, 0, buffer.Length); long total = 0; long length = srcStream.Length; int percent = 0; while (count > 0) { destStream.Write(buffer, 0, count); destStream2.Write(buffer, 0, count); total += count; var newPercent = (int)(((double)total * 100.0) / ((double)length)); if (newPercent != percent) { percent = newPercent; //progressReporter((int)percent, locationCategory); progressReporter(percent, locationCategory); progressReporter(percent, locationCategory2); } count = srcStream.Read(buffer, 0, buffer.Length); } }
private static void UploadFile(Stream srcStream, string destFileName, Action <int, object> progressReporter, MediaFileStorage locationCategory) { using (Stream destStream = CreateDestinationStream(destFileName, locationCategory)) { Copy(srcStream, destStream, progressReporter, locationCategory); } }
void IUploadProgressFeedback.Report(int progress, MediaFileStorage locationCategory) { switch (locationCategory) { case MediaFileStorage.Primary: this.pb1.Value = progress; break; case MediaFileStorage.Secondary: this.pb2.Value = progress; break; } }
public void Delete(string destFileName, MediaFileStorage fileStorage) { var path = ResolvePath(destFileName, fileStorage); try { if (File.Exists(path)) { File.Delete(path); } } catch { } }
protected override void ConfigureContainer() { base.ConfigureContainer(); this.Container.RegisterInstance <IUserService>(new UserServiceAdapter()); this.Container.RegisterInstance(new InteractionRequests()); MediaFileStorage currentStorage = (MediaFileStorage)Enum.Parse(typeof(MediaFileStorage), ConfigurationManager.AppSettings["storageType"], true); this.Container.RegisterInstance <IMediaFilePathResolver>(new MediaFilePathResolver(currentStorage)); this.Container.RegisterInstance <IMediaFileImageResolver>(new MediaFileImageResolver()); this.Container.RegisterInstance <IPlayoutConfiguration>(PlayoutConfiguration.Current); this.Container.RegisterInstance(PlayoutRepository.GetMPlaylistSettings()); this.Container.RegisterType <PlayItemCollection>(new ContainerControlledLifetimeManager()); this.Container.RegisterType <IPlaylist3, Playlist3>(); this.Container.RegisterInstance <ObservableCollection <BindablePlayItem> >("playedCollection", new ObservableCollection <BindablePlayItem>()); this.Container.RegisterInstance <IMediaFileService>(new DefaultMediaFileService(null)); }
private Stream CreateDestinationStream(string destFileName, MediaFileStorage fileStorage) { return(DestinationStreamCreator.Create(destFileName, fileStorage)); }
private void DeleteDestinationStream(string destFileName, MediaFileStorage fileStorage) { DestinationStreamCreator.Delete(destFileName, fileStorage); }
public void Report(int progress, MediaFileStorage locationCategory) { }
private string ResolvePath(string destFileName, MediaFileStorage fileStorage) { return(_mediaFilePathResolver.Resolve(destFileName, fileStorage)); }
public Stream Create(string destFileName, MediaFileStorage fileStorage) { return(new FileStream(ResolvePath(destFileName, fileStorage), FileMode.CreateNew, FileAccess.Write, FileShare.None)); }
public MediaFilePathResolver(MediaFileStorage currentStorage) { this.CurrentStorage = currentStorage; }
public string GetDirectory(MediaFileStorage fileStorage) { return(fileStorage == MediaFileStorage.Primary ? System.Configuration.ConfigurationManager.AppSettings["primaryStorage"] : System.Configuration.ConfigurationManager.AppSettings["secondaryStorage"]); }
public static string Resolve(this IMediaFilePathResolver resolver, string filename, MediaFileStorage fileStorage) { return(System.IO.Path.Combine(resolver.GetDirectory(fileStorage), filename)); }