コード例 #1
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
        public static void Count
        (
            [Required] string fileStorageName
        )
        {
            try
            {
                ProgressNotifier progressNotifier = new ProgressNotifier("Count");

                DateTime    startDateTime   = DateTime.Now;
                List <Guid> dataIdentifiers = FileStorageFacade.GetAllDataIdentifiersBasedUponFileStorageIndexFile(fileStorageName, new FileStorageHandler.ExposeProgressDelegate(progressNotifier.ShowProgress));
                Console.WriteLine(string.Format("{0} files found", dataIdentifiers.LongCount()));
                TimeSpan timeSpan = DateTime.Now - startDateTime;
                Console.WriteLine(string.Format("This operation took {0} msecs", (Int64)timeSpan.TotalMilliseconds));
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("An error occured; {0}", e.Message));
            }
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
 public static void Get
 (
     [Required] string fileStorageName,
     [Required] string fileExtension,
     [Required] string fileIdenticationGuid
 )
 {
     try
     {
         var startDateTime      = DateTime.Now;
         var fileIdentification = new Guid(fileIdenticationGuid);
         var outputFile         = fileIdenticationGuid + "." + fileExtension;
         Console.WriteLine(string.Format("Dumping {0} ...", outputFile));
         FileStorageFacade.ExportToFile(fileStorageName, fileIdentification, outputFile, ExportFileBehaviour.ThrowExceptionWhenAlreadyExists);
         var timeSpan = DateTime.Now - startDateTime;
         Console.WriteLine(string.Format("This operation took {0} msecs", (Int64)timeSpan.TotalMilliseconds));
     }
     catch (Exception e)
     {
         Console.WriteLine(string.Format("An error occured; {0}", e.Message));
     }
 }
コード例 #3
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
        public static void RestoreIndexFile
        (
            [Required] string fileStorageName
        )
        {
            try
            {
                var startDateTime = DateTime.Now;

                var progressNotifier = new ProgressNotifier("RestoreIndexFile");
                FileStorageFacade.RestoreIndexFile(fileStorageName, AddFileBehaviour.OverrideWhenAlreadyExists, new FileStorageHandler.ExposeProgressDelegate(progressNotifier.ShowProgress));

                var timeSpan = DateTime.Now - startDateTime;
                Console.WriteLine(string.Format("This operation took {0} msecs", (Int64)timeSpan.TotalMilliseconds));

                Console.WriteLine("[Index is restored succesfully]");
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("An error occured; {0}", e.Message));
            }
        }
コード例 #4
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
        private static void AddObjects()
        {
            {
                DummyObject object1 = new DummyObject()
                {
                    Color = "blue",
                    Name  = "sky"
                };

                Guid dataIdentifier = Guid.NewGuid();
                FileStorageFacade.StoreObject(fileStorageName, dataIdentifier, object1, null, AddFileBehaviour.OverrideWhenAlreadyExists);
            }
            {
                DummyObject object2 = new DummyObject()
                {
                    Color = "green",
                    Name  = "grass"
                };

                Guid dataIdentifier = Guid.NewGuid();
                FileStorageFacade.StoreObject(fileStorageName, dataIdentifier, object2, null, AddFileBehaviour.OverrideWhenAlreadyExists);
            }
        }
コード例 #5
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
        public static void Upgrade
        (
            [Required] string sourceFileStorageName,
            [Required] string destinationFileStorageName
        )
        {
            try
            {
                var startDateTime          = DateTime.Now;
                var progressNotifierPhase1 = new ProgressNotifier("Reading indexes");
                var progressNotifierPhase2 = new ProgressNotifier("Writing");

                FileStorageFacade.Upgrade(sourceFileStorageName, destinationFileStorageName, progressNotifierPhase1.ShowProgress, progressNotifierPhase2.ShowProgress);

                var timeSpan = DateTime.Now - startDateTime;
                Console.WriteLine();
                Console.WriteLine(string.Format("File storage upgrade finished"));
                Console.WriteLine(string.Format("This operation took {0} msecs", (Int64)timeSpan.TotalMilliseconds));
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("An error occured; {0}", e.Message));
            }
        }
コード例 #6
0
 public byte[] Get(Guid uniqueIdentifier)
 {
     return(FileStorageFacade.GetFileByteData(FileStorageName, uniqueIdentifier));
 }
コード例 #7
0
 public void StoreBytes(Guid uniqueIdentifier, byte[] data)
 {
     FileStorageFacade.StoreBytes(FileStorageName, uniqueIdentifier, data, null, AddFileBehaviour.OverrideWhenAlreadyExists);
 }
コード例 #8
0
 public void StoreFileByUrl(string url, Guid uniqueIdentifier)
 {
     FileStorageFacade.StoreHttpRequest(FileStorageName, uniqueIdentifier, url, null, AddFileBehaviour.OverrideWhenAlreadyExists, "NFileStorage");
 }
コード例 #9
0
 public void StoreFile(string filename, Guid uniqueIdentifier)
 {
     FileStorageFacade.StoreFile(FileStorageName, uniqueIdentifier, filename, null, AddFileBehaviour.OverrideWhenAlreadyExists);
 }
コード例 #10
0
 protected FileStorageRepository(string path)
 {
     FileStorageName = path;
     FileStorageFacade.Create(FileStorageName, CreateFileStorageBehaviour.IgnoreWhenExists);
     Api = new LastfmApiWrapper();
 }
コード例 #11
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
        public static void Dir
        (
            [Required] string fileStorageName,
            [Required] string quickOrVerbose
        )
        {
            bool verbose = quickOrVerbose.ToLower().Equals("verbose");

            var sourceFileStorageHandler = FileStorageHandler.Open(fileStorageName);
            var features = FileStorageFeatureFactory.CreateFileStorageFeatureList(sourceFileStorageHandler.DataFileHeaderStruct.fileStorageFeatures);

            if (verbose && !sourceFileStorageHandler.SupportsFeature(FileStorageFeatureEnum.StoreMetaData))
            {
                Console.WriteLine();
                Console.WriteLine("The datastore does not support metadata feature and thus the verbose output is not available.");
                Console.WriteLine("Hint: Use the replicate option to promote this FileStorage to one that does support this feature.");
                Console.WriteLine("Press a key to continue outputting quick dir");
                Console.ReadKey();
                verbose = false;
            }
            else
            {
                Console.WriteLine(sourceFileStorageHandler.DataFileHeaderStruct.fileStorageFeatures);
            }

            Int64 totalSize = 0;

            try
            {
                ProgressNotifier progressNotifier = new ProgressNotifier("Dir");
                var         count           = 0;
                DateTime    startDateTime   = DateTime.Now;
                List <Guid> dataIdentifiers = FileStorageFacade.GetAllDataIdentifiersBasedUponFileStorageIndexFile(fileStorageName, new FileStorageHandler.ExposeProgressDelegate(progressNotifier.ShowProgress));

                if (verbose)
                {
                    Console.WriteLine("Data identifier                      | Text identifier  | Creation date     | Size ");
                    Console.WriteLine("-------------------------------------+------------------+-------------------+-----------------");
                }
                else
                {
                    Console.WriteLine("Data identifier                      | Text identifier   ");
                    Console.WriteLine("-------------------------------------+-------------------");
                }


                foreach (Guid currentDataIdentifier in dataIdentifiers)
                {
                    string interpretedString = currentDataIdentifier.ToNFileStorageOrigFileName();

                    if (verbose)
                    {
                        var   metaDataContainer = FileStorageFacade.GetMetaData(fileStorageName, currentDataIdentifier);
                        Int64 binarySizeInBytes = metaDataContainer.BinarySizeInBytes;
                        totalSize += binarySizeInBytes;
                        DateTime creationDate = metaDataContainer.CreationDateUTC;
                        Console.WriteLine(string.Format("{0} | {1} | {2} | {3:0,0,0,0}", currentDataIdentifier, interpretedString, creationDate.ToString("yyyyMMdd hh:mm:ss"), binarySizeInBytes));
                    }
                    else
                    {
                        Console.WriteLine(string.Format("{0} | {1} | ", currentDataIdentifier, interpretedString));
                    }

                    count++;
                }

                if (verbose)
                {
                    Console.WriteLine(string.Format("{0} files found ({1:0,0,0,0} bytes)", count, (int)totalSize));
                }
                else
                {
                    Console.WriteLine(string.Format("{0} files found", count));
                }

                TimeSpan timeSpan = DateTime.Now - startDateTime;
                Console.WriteLine(string.Format("This operation took {0} msecs", (Int64)timeSpan.TotalMilliseconds));
            }
            catch (Exception e)
            {
                Console.WriteLine(string.Format("An error occured; {0}", e.Message));
                Console.WriteLine(string.Format("An error occured; {0}", e.StackTrace));
            }
        }
コード例 #12
0
ファイル: Program.cs プロジェクト: lnaie/nfiletorage
 public static void CreateContainer()
 {
     FileStorageFacade.Create(fileStorageName, CreateFileStorageBehaviour.ThrowExceptionWhenExists);
     Console.WriteLine(FileStorageFacade.GetInfo(fileStorageName));
 }
コード例 #13
0
 private void RedrawPicturesInFileStorage()
 {
     FileStorageContentRepeater.DataSource = FileStorageFacade.GetAllDataIdentifiersBasedUponFileStorageIndexFile(fileStorageName).Take(maxAllowed);
     FileStorageContentRepeater.DataBind();
 }
コード例 #14
0
 protected void Page_Load(object sender, EventArgs e)
 {
     FileStorageFacade.Create(fileStorageName, CreateFileStorageBehaviour.IgnoreWhenExists);
     InfoLabel.Text = "";
     RedrawPicturesInFileStorage();
 }