Пример #1
0
        public static void Decompress(string path, IPackageData data)
        {
            if (data is PackageDirectory directory)
            {
                if (directory.Children.Count > 0)
                {
                    // 폴더 내부 탐색
                    foreach (var subData in directory.Children)
                    {
                        Decompress(path, subData);
                    }
                }
                else
                {
                    // 단일 폴더 생성
                    CreateDirectory(Path.Combine(path, directory.Path));
                }
            }

            // 파일 데이터 해제
            if (data is PackageFile file)
            {
                var targetPath = Path.Combine(path, file.Path);
                CreateDirectory(Path.GetDirectoryName(targetPath));

                using (var streamWriter = File.Create(targetPath))
                {
                    var buffer = new byte[4096];
                    StreamUtils.Copy(file.Content, streamWriter, buffer);
                }
            }
        }
Пример #2
0
        public Default(
            IPackageData packageData
            )
        {
            kind  = IdentifierKind.Package;
            id    = AttributeOps.GetObjectId(this);
            group = AttributeOps.GetObjectGroup(this);

            if (packageData != null)
            {
                EntityOps.MaybeSetGroup(
                    this, packageData.Group);

                name            = packageData.Name;
                description     = packageData.Description;
                indexFileName   = packageData.IndexFileName;
                provideFileName = packageData.ProvideFileName;
                flags           = packageData.Flags;
                clientData      = packageData.ClientData;
                loaded          = packageData.Loaded;

                VersionStringDictionary ifNeeded = packageData.IfNeeded;

                if (ifNeeded != null)
                {
                    this.ifNeeded = ifNeeded; // use (or "attach to") their versions.
                }
                else
                {
                    this.ifNeeded = new VersionStringDictionary(); // brand new package, create new list.
                }
                token = packageData.Token;
            }
        }
 public FileDataProcessingStatusMark(IPackageData packageInfoProject,
                                     IProjectSettings projectSettings,
                                     IConverterClientPackageDataToDto converterClientPackageDataToDto,
                                     IConverterClientPackageDataFromDto converterClientPackageDataFromDto)
 {
     _packageInfoProject = packageInfoProject ?? throw new ArgumentNullException(nameof(packageInfoProject));
     _projectSettings    = projectSettings ?? throw new ArgumentNullException(nameof(projectSettings));
     _converterClientPackageDataToDto   = converterClientPackageDataToDto ?? throw new ArgumentNullException(nameof(converterClientPackageDataToDto));
     _converterClientPackageDataFromDto = converterClientPackageDataFromDto ?? throw new ArgumentNullException(nameof(converterClientPackageDataFromDto));
 }
Пример #4
0
 public Core(
     IPackageData packageData
     )
     : base(packageData)
 {
     //
     // NOTE: Which package are we actively trying to load?  This is an
     //       internal implementation detail and is not exposed via the
     //       IPackage interface.
     //
     loading = null;
 }
 public ApplicationGadzhi(IDialogService dialogService, IProjectSettings projectSettings,
                          IFileSystemOperations fileSystemOperations, IFilePathOperations filePathOperations,
                          IPackageData packageInfoProject, IWcfClientServicesFactory wcfClientServiceFactory,
                          IFileDataProcessingStatusMark fileDataProcessingStatusMark,
                          IStatusProcessingInformation statusProcessingInformation)
 {
     _dialogService                 = dialogService;
     _fileSystemOperations          = fileSystemOperations;
     _filePathOperations            = filePathOperations;
     _packageData                   = packageInfoProject;
     _projectSettings               = projectSettings;
     _wcfClientServiceFactory       = wcfClientServiceFactory;
     _fileDataProcessingStatusMark  = fileDataProcessingStatusMark;
     _statusProcessingInformation   = statusProcessingInformation;
     _statusProcessingSubscriptions = new CompositeDisposable();
 }
Пример #6
0
        protected void executePacket(IPackageData data)//UInt16 packetID, byte[] buffer, UInt16 bufferLen)
        {
            if (data.GetClassID() != m_nCurSocketID)
            {
                Debug.LogWarningFormat("executePacket: Ignore the old connection data");
                return;
            }

            PackageData packdata = (PackageData)data;

            try
            {
                m_MessageEventHandler.OnHandler(packdata.serverID, packdata.msgID, packdata.recivedata.item.data, packdata.recivedata.item.data.Length);
            }
            catch (LuaException e)
            {
                Debug.LogError(e.Message);
            }
        }
Пример #7
0
        private string ResolvePath(IPackageData data)
        {
            var builder = new StringBuilder();

            IPackageData currentData = data;

            while (currentData != null)
            {
                builder.Insert(0, currentData.Name);

                var nextData = currentData.Parent;
                if (nextData != null)
                {
                    builder.Insert(0, "\\");
                }

                currentData = nextData;
            }

            return(builder.ToString());
        }
Пример #8
0
        public static void Compress(ZipOutputStream zipStream, IPackageData data)
        {
            if (data is PackageDirectory directory)
            {
                if (directory.Children.Count > 0)
                {
                    // 폴더 내부 탐색
                    foreach (var subData in directory.Children)
                    {
                        Compress(zipStream, subData);
                    }
                }
                else
                {
                    // 단일 폴더 생성
                    var dirEntryName = $@"{ZipEntry.CleanName(directory.Path)}\";
                    zipStream.PutNextEntry(new ZipEntry(dirEntryName));
                    zipStream.CloseEntry();
                }
            }

            // 파일 데이터 압축
            if (data is PackageFile file)
            {
                var fileEntryName = ZipEntry.CleanName(file.Path);
                zipStream.PutNextEntry(new ZipEntry(fileEntryName)
                {
                    DateTime = file.LastWriteTime,
                    Size     = file.Size
                });

                var buffer = new byte[4096];
                StreamUtils.Copy(file.Content, zipStream, buffer);

                zipStream.CloseEntry();
            }
        }
 public StatusProcessingInformation(IPackageData packageInfoProject)
 {
     PackageInfoProject = packageInfoProject;
 }
Пример #10
0
 /// <summary>
 /// Конвертер пакета информации о файле из локальной модели в трансферную
 /// </summary>
 public async Task <IResultValue <PackageDataRequestClient> > ToPackageDataRequest(IPackageData packageData,
                                                                                   IConvertingSettings convertingSetting) =>
 await packageData.FilesData.Select(ToFileDataRequest).
 Map(Task.WhenAll).
 MapAsync(filesRequest =>
          filesRequest.ToResultCollection().
          ResultValueOk(requests => new PackageDataRequestClient(packageData.GenerateId(),
                                                                 ToConvertingSettingsRequest(convertingSetting),
                                                                 requests.ToList())));
Пример #11
0
 public PackageService(IPackageData packageData)
 {
     _packageData = packageData;
 }
Пример #12
0
 public void Remove(IPackageData data)
 {
     Datas.Remove(data);
     data.Dispose();
 }
Пример #13
0
 public void Add(IPackageData data)
 {
     Datas.Add(data);
 }