Ejemplo n.º 1
0
 protected override void PostExecute()
 {
     if (_compressed && !File.Compressed)
     {
         File = _fileProvider.Compress(File);
     }
 }
Ejemplo n.º 2
0
 public ArchiveSave(Entities.Archive model, Commons.Utilities.File file)
     : base(model)
 {
     _file         = file;
     _fileProvider = (Commons.Utilities.FileProvider)Activator.CreateInstance(Type.GetType(_model.ProviderClass));
     _fileProvider.SetCredentials(_model.ProviderArgs);
 }
Ejemplo n.º 3
0
 protected override void Execute()
 {
     File = _fileProvider.Get(_model.StorageFileName, _model.Path);
     if (File.Compressed && (!_compressed || _model.StorageStrategy != Entities.StorageStrategy.Compressed))
     {
         File      = _fileProvider.UnCompress(File, _model.LockKey);
         File.Name = _model.Name;
     }
 }
Ejemplo n.º 4
0
        protected override void PrepareExecute()
        {
            base.PrepareExecute();
            if (_model.IsRecorded && _model.StorageStrategy != Entities.StorageStrategy.Versioned)
            {
                Marvin.Actions.GenericSelect <Entities.Archive> selectFacade = new Marvin.Actions.GenericSelect <Entities.Archive>(new Dictionary <string, object>()
                {
                    { "Id", _model.Id }
                });
                if (selectFacade.DoAction() && selectFacade.Result != null)
                {
                    Commons.Utilities.FileProvider oldFileProvider = (Commons.Utilities.FileProvider)Activator.CreateInstance(Type.GetType(selectFacade.Result.ProviderClass));
                    if (!string.IsNullOrEmpty(selectFacade.Result.ProviderArgs))
                    {
                        oldFileProvider.SetCredentials(selectFacade.Result.ProviderArgs);
                    }
                    oldFileProvider.Delete(selectFacade.Result.StorageFileName, selectFacade.Result.Path);
                }
            }

            Commons.Utilities.File fileToSave = _file;
            switch (_model.StorageStrategy)
            {
            case Entities.StorageStrategy.Compressed:
                fileToSave = _fileProvider.Compress(_file, _model.LockKey);
                break;

            case Entities.StorageStrategy.Locked:
                if (string.IsNullOrEmpty(_model.LockKey))
                {
                    _model.LockKey = _model.Name;
                }
                fileToSave = _fileProvider.Compress(new Commons.Utilities.File("file", _file.Content), _model.LockKey, Guid.NewGuid().ToString() + ".lock");
                break;

            //TODO:implementar algoritimo de versionamento
            case Entities.StorageStrategy.Versioned:
                fileToSave = _fileProvider.Compress(new Commons.Utilities.File("last", _file.Content), _model.LockKey, _model.Name + ".ver");
                break;
            }
            _model.StorageFileName = fileToSave.Name;
            _fileProvider.Save(fileToSave, _model.Path);
            _model.StorageAddress = _fileProvider.GetFullPath(fileToSave.Name, _model.Path);
        }