/// <summary> /// <see cref="File"/> 정보를 조회하기 위한 Criteria를 빌드합니다. /// </summary> /// <param name="fileMapping">파일 매핑 정보</param> /// <param name="resourceId">리소스 Id</param> /// <param name="resourceKind">리소스 종류</param> /// <param name="ownerCode">소유자 (부서|사원|그룹) 의 코드</param> /// <param name="ownerKind">소유자의 종류 (부서|사원|그룹 등)</param> /// <param name="category">분류</param> /// <param name="fileName">파일명</param> /// <param name="fileType">파일 종류</param> /// <param name="fileGroup">파일 그룹</param> /// <param name="fileFloor">파일 Floor</param> /// <returns></returns> public DetachedCriteria BuildCriteriaOfFile(FileMapping fileMapping, string resourceId, string resourceKind, string ownerCode, ActorKinds? ownerKind, string category, string fileName, string fileType, int? fileGroup, int? fileFloor) { return BuildQueryOverOfFile(fileMapping, resourceId, resourceKind, ownerCode, ownerKind, category, fileName, fileType, fileGroup, fileFloor) .DetachedCriteria; }
/// <summary> /// <see cref="File"/> 정보를 조회하기 위한 QueryOver를 빌드합니다. /// </summary> /// <param name="fileMapping">파일 매핑 정보</param> /// <param name="resourceId">리소스 Id</param> /// <param name="resourceKind">리소스 종류</param> /// <param name="ownerCode">소유자 (부서|사원|그룹) 의 코드</param> /// <param name="ownerKind">소유자의 종류 (부서|사원|그룹 등)</param> /// <param name="category">분류</param> /// <param name="fileName">파일명</param> /// <param name="fileType">파일 종류</param> /// <param name="fileGroup">파일 그룹</param> /// <param name="fileFloor">파일 Floor</param> /// <returns></returns> public QueryOver<File, File> BuildQueryOverOfFile(FileMapping fileMapping, string resourceId, string resourceKind, string ownerCode, ActorKinds? ownerKind, string category, string fileName, string fileType, int? fileGroup, int? fileFloor) { if(IsDebugEnabled) log.Debug(@"파일 정보를 조회하기 위한 QueryOver를 빌드합니다... " + @"fileMapping={0}, resourceId={1}, resourceKind={2}, ownerCode={3}, ownerKind={4}, " + @"category={5}, fileName={6}, fileType={7}, fileGroup={8}, fileFloor={9}", fileMapping, resourceId, resourceKind, ownerCode, ownerKind, category, fileName, fileType, fileGroup, fileFloor); var query = QueryOver.Of<File>(); query.AddEqOrNull(f => f.FileMapping, fileMapping); if(resourceId.IsNotWhiteSpace()) query.AddWhere(f => f.ResourceId == resourceId); if(resourceKind.IsNotWhiteSpace()) query.AddWhere(f => f.ResourceKind == resourceKind); if(ownerCode.IsNotWhiteSpace()) query.AddWhere(f => f.OwnerCode == ownerCode); if(ownerKind.HasValue) query.AddWhere(f => f.OwnerKind == ownerKind.Value); if(category.IsNotWhiteSpace()) query.AddWhere(f => f.Category == category); if(fileName.IsNotWhiteSpace()) query.AddWhere(f => f.FileName == fileName); if(fileType.IsNotWhiteSpace()) query.AddWhere(f => f.FileType == fileType); if(fileGroup.HasValue) query.AddWhere(f => f.FileGroup == fileGroup); if(fileFloor.HasValue) query.AddWhere(f => f.FileFloor == fileFloor); return query; }
public Stream GetStream() { if (_fontUri.IsFile) { FileMapping fileMapping = new FileMapping(); DemandFileIOPermission(); fileMapping.OpenFile(_fontUri.LocalPath); return fileMapping; } byte[] bits; // Try our cache first. lock (_resourceCache) { bits = _resourceCache.Get(_fontUri); } if (bits != null) return new MemoryStream(bits); WebRequest request = PackWebRequestFactory.CreateWebRequest(_fontUri); WebResponse response = request.GetResponse(); Stream fontStream = response.GetResponseStream(); if (String.Equals(response.ContentType, ObfuscatedContentType, StringComparison.Ordinal)) { // The third parameter makes sure the original stream is closed // when the deobfuscating stream is disposed. fontStream = new DeobfuscatingStream(fontStream, _fontUri, false); } return fontStream; }
public void TestFileOpenable() { if (_fontUri.IsFile) { FileMapping fileMapping = new FileMapping(); DemandFileIOPermission(); fileMapping.OpenFile(_fontUri.LocalPath); fileMapping.Close(); } }
public UnmanagedMemoryStream GetUnmanagedStream() { if (_fontUri.IsFile) { FileMapping fileMapping = new FileMapping(); DemandFileIOPermission(); fileMapping.OpenFile(_fontUri.LocalPath); return fileMapping; } byte[] bits; // Try our cache first. lock (_resourceCache) { bits = _resourceCache.Get(_fontUri); } if (bits == null) { WebResponse response = WpfWebRequestHelper.CreateRequestAndGetResponse(_fontUri); Stream fontStream = response.GetResponseStream(); if (String.Equals(response.ContentType, ObfuscatedContentType, StringComparison.Ordinal)) { // The third parameter makes sure the original stream is closed // when the deobfuscating stream is disposed. fontStream = new DeobfuscatingStream(fontStream, _fontUri, false); } UnmanagedMemoryStream unmanagedStream = fontStream as UnmanagedMemoryStream; if (unmanagedStream != null) return unmanagedStream; bits = StreamToByteArray(fontStream); fontStream.Close(); lock (_resourceCache) { _resourceCache.Add(_fontUri, bits, false); } } return ByteArrayToUnmanagedStream(bits); }
void Deserialize( BinaryReader ds ) { Magic = ds.ReadUInt32(); if (Magic != MAGIC) { throw new InvalidDataException("data is not a valid steam3 manifest: incorrect magic."); } Version = ds.ReadUInt32(); DepotID = ds.ReadUInt32(); ManifestGID = ds.ReadUInt64(); CreationTime = Utils.DateTimeFromUnixTime(ds.ReadUInt32()); AreFileNamesEncrypted = ds.ReadUInt32() != 0; TotalUncompressedSize = ds.ReadUInt64(); TotalCompressedSize = ds.ReadUInt64(); ChunkCount = ds.ReadUInt32(); FileEntryCount = ds.ReadUInt32(); FileMappingSize = ds.ReadUInt32(); Mapping = new List<FileMapping>( ( int )FileMappingSize ); EncryptedCRC = ds.ReadUInt32(); DecryptedCRC = ds.ReadUInt32(); Flags = ds.ReadUInt32(); for (uint i = FileMappingSize; i > 0; ) { long start = ds.BaseStream.Position; FileMapping mapping = new FileMapping(); mapping.Deserialize(ds); Mapping.Add(mapping); i -= (uint)(ds.BaseStream.Position - start); } }
/// <summary> /// 지정된 파일매핑 정보를 가진 모든 File 정보를 삭제합니다. /// </summary> /// <param name="fileMapping"></param> public void DeleteAllFileByFileMapping(FileMapping fileMapping) { if(fileMapping == null) return; if(IsDebugEnabled) log.Debug(@"FileMapping 정보와 관련된 File들을 삭제합니다... " + fileMapping); Repository<File>.DeleteAll(QueryOver.Of<File>().AddWhere(f => f.FileMapping == fileMapping)); }
/// <summary> /// 지정한 <see cref="FileMapping"/> 정보와 연관된 File 정보를 조회합니다. /// </summary> /// <param name="fileMapping">파일 매핑 정보</param> /// <returns></returns> public IList<File> FindAllFileByFileMapping(FileMapping fileMapping) { fileMapping.ShouldNotBeNull("fileMapping"); if(IsDebugEnabled) log.Debug(@"지정한 FileMapping 정보를 가진 File 정보를 조회합니다... fileMapping=" + fileMapping); return Repository<File>.FindAll(QueryOver.Of<File>().AddEqOrNull(f => f.FileMapping, fileMapping)); }
/// <summary> /// 새로운 FileMapping 정보를 생성합니다. /// </summary> /// <param name="productCode">제품 코드</param> /// <param name="systemId">시스템 ID</param> /// <param name="subId">시스템 서브 ID</param> /// <returns>생성된 FileMapping 인스턴스</returns> public FileMapping CreateFileMapping(string productCode, string systemId, string subId) { productCode.ShouldNotBeWhiteSpace("productCode"); if(IsDebugEnabled) log.Debug(@"새로운 FileMapping 정보를 생성합니다. productCode={0}, systemId={1}, subId={2}", productCode, systemId, subId); var fileMapping = new FileMapping(productCode, systemId, subId); return Repository<FileMapping>.SaveOrUpdate(fileMapping); }
/// <summary> /// 새로운 파일 정보를 생성합니다. /// </summary> /// <param name="fileMapping">파일 매핑 정보</param> /// <param name="category">분류</param> /// <param name="fileName">파일명</param> /// <returns></returns> public File CreateFile(string category, string fileName, FileMapping fileMapping) { fileMapping.ShouldNotBeNull("fileMapping"); if(IsDebugEnabled) log.Debug(@"새로운 File 정보를 생성합니다. category={0}, fileName={1}, fileMapping={2}", category, fileName, fileMapping); var file = new File(category, fileName, fileMapping); return Repository<File>.SaveOrUpdate(file); }
/// <summary> /// Group FileMappings to a dictionary using VersionName as the key. /// As default version has no VersionName, using empty string as the key. /// </summary> private static Dictionary <string, FileMappingParameters> GroupFileMappings(FileMapping content, FileMapping overwrite, FileMapping resource) { var result = new Dictionary <string, FileMappingParameters> { [string.Empty] = new FileMappingParameters() }; AddFileMappingTypeGroup(result, content, FileMappingType.Content); AddFileMappingTypeGroup(result, overwrite, FileMappingType.Overwrite); AddFileMappingTypeGroup(result, resource, FileMappingType.Resource); return(result); }
private static void AddFileMapping(FileCollection fileCollection, DocumentType type, FileMapping mapping) { if (mapping != null) { foreach (var item in mapping.Items) { fileCollection.Add( type, item.Files, item.SourceFolder, item.DestinationFolder); } } }
private static void AddFileMapping(FileCollection fileCollection, string baseDirectory, DocumentType type, FileMapping mapping) { if (mapping != null) { foreach (var item in mapping.Items) { fileCollection.Add( type, item.Files, s => RewritePath(baseDirectory, s, item)); } } }