private static void CopyMetadataToMetadataCollection(Metadata source, MetadataCollection destination) { foreach (var item in source) { destination.Add(item.Key.WithPrefix("x-amz-meta-").ToString(), item.Value); } }
public void CanDoQueryableNumeric() { var config = new SiteConfig() { RootUrl = String.Empty, Url = "http://www.example.com" }; var meta1 = new MetadataCollection(); meta1.Add("number", 1); var meta2 = new MetadataCollection(); meta2.Add("number", 20); var meta3 = new MetadataCollection(); meta3.Add("number", 3); var documents = new[] { new DocumentFile("1.html.md", Path.GetFullPath("documents"), "documents", "1", "1", String.Empty, null, meta1, null), new DocumentFile("20.html.md", Path.GetFullPath("documents"), "documents", "20", "20", String.Empty, null, meta2, null), new DocumentFile("3.html.md", Path.GetFullPath("documents"), "documents", "3", "3", String.Empty, null, meta3, null), }; var site = new Site(config, Enumerable.Empty<DataFile>(), documents, Enumerable.Empty<StaticFile>(), Enumerable.Empty<LayoutFile>()); var query = @"query documents where number gt 1 ascending number"; var p = QueryProcessor.Parse(site, query); var q = p.Results.ToList(); Assert.Equal(3, q[0].Number); Assert.Equal(20, q[1].Number); }
public static void CopyToMetadataCollection(this IDictionary <string, string> metaData, MetadataCollection metadataCollection, string originKey) { foreach (var data in metaData.Where(pair => pair.Key != originKey)) { metadataCollection.Add(data.Key, data.Value); } }
public MetadataDefinitionViewModel() : this(null) { add = new RelayCommand((o) => { if (FieldName != null && FieldName.Trim() != string.Empty) { return(true); } return(false); }, (o) => { DataObjectMetadata meta = FromCurrentToMetadata(); DataObjectMetadataViewModel metaVm = new DataObjectMetadataViewModel(meta); MetadataCollection.Add(metaVm); }); remove = new RelayCommand((o) => { if (o == null) { return(false); } int i = (int)o; return((i >= 0) && (i < MetadataCollection.Count)); }, (o) => { int i = (int)o; MetadataCollection.RemoveAt(i); }); }
public void Add_throws_ArgumentException_for_duplicate_identity() { var metadataCollection = new MetadataCollection<EntityType>(); var item = new EntityType("E", "N", DataSpace.CSpace); metadataCollection.Add(item); Assert.Equal(1, metadataCollection.Count); Assert.Contains( Strings.ItemDuplicateIdentity(item.Identity), Assert.Throws<ArgumentException>( () => metadataCollection.Add(item)).Message); Assert.Contains( Strings.ItemDuplicateIdentity(item.Identity), Assert.Throws<ArgumentException>( () => metadataCollection.Add( new EntityType("E", "N", DataSpace.CSpace))).Message); }
static void HealthSample() { MetadataCollection resourceIdentityDimensions = new MetadataCollection(); MetadataCollection resourceMetadataCollection = new MetadataCollection(); MetadataCollection watchdogMetadataCollection = new MetadataCollection(); resourceIdentityDimensions.Add("Name", "ABC"); bool result = IfxHealth.LogWatchdogHealthReport( "MonitoringAccount", "WatchdogName", "ResourceType", resourceIdentityDimensions, ResourceHealthStatus.Error, true, DateTime.UtcNow, "Message", "ArmResourceId", "IncarnationId", resourceMetadataCollection, watchdogMetadataCollection ); if (result) { Console.WriteLine("Successfully called IfxHealth.LogWatchdogHealthReport."); } else { Console.WriteLine("IfxHealth.LogWatchdogHealthReport call failed."); } MetadataCollection annotationMetadataCollection = new MetadataCollection(); result = IfxHealth.LogAnnotationHealthReport( "MonitoringAccount", "Content", "WatchdogName", "ResourceType", resourceIdentityDimensions, true, DateTime.UtcNow, "DisplayName", "ArmResourceId", annotationMetadataCollection ); if (result) { Console.WriteLine("Successfully called IfxHealth.LogAnnotationHealthReport."); } else { Console.WriteLine("IfxHealth.LogAnnotationHealthReport call failed."); } }
/// <summary> /// Update the request's ObjectMetadata with the necessary information for decrypting the object. /// </summary> /// <param name="request"> /// AmazonWebServiceRequest encrypted using the given instruction /// </param> /// <param name="instructions"> /// Non-null instruction used to encrypt the data in this AmazonWebServiceRequest . /// </param> internal static void UpdateMetadataWithEncryptionInstructions(AmazonWebServiceRequest request, EncryptionInstructions instructions) { byte[] keyBytesToStoreInMetadata = instructions.EncryptedEnvelopeKey; string base64EncodedEnvelopeKey = Convert.ToBase64String(keyBytesToStoreInMetadata); byte[] IVToStoreInMetadata = instructions.InitializationVector; string base64EncodedIV = Convert.ToBase64String(IVToStoreInMetadata); var putObjectRequest = request as PutObjectRequest; if (putObjectRequest != null) { MetadataCollection metadata = putObjectRequest.Metadata; metadata.Add(keyInMetadata, base64EncodedEnvelopeKey); metadata.Add(initVectorInMetadata, base64EncodedIV); Dictionary <string, string> materialsDescription = instructions.MaterialsDescription; if (materialsDescription.Count == 0) { metadata.Add(encryptionMaterialsDescription, "{}"); } putObjectRequest.Metadata = metadata; } var initiateMultipartrequest = request as InitiateMultipartUploadRequest; if (initiateMultipartrequest != null) { MetadataCollection metadata = initiateMultipartrequest.Metadata; metadata.Add(keyInMetadata, base64EncodedEnvelopeKey); metadata.Add(initVectorInMetadata, base64EncodedIV); Dictionary <string, string> materialsDescription = instructions.MaterialsDescription; if (materialsDescription.Count == 0) { metadata.Add(encryptionMaterialsDescription, "{}"); } initiateMultipartrequest.Metadata = metadata; } }
public void Can_remove_item_from_collection_and_identity_dictionary_updated() { var metadataCollection = new MetadataCollection<EntityType>(); for (var i = 0; i < 30; i++) { metadataCollection.Add(new EntityType("E" + i, "N", DataSpace.CSpace)); } for (var i = 0; i < metadataCollection.Count; i++) { // This will throw if the identity cache gets out of sync. var entityType = metadataCollection[i]; metadataCollection.Remove(entityType); metadataCollection.Add(entityType); } Assert.Equal(30, metadataCollection.Count); }
/// <summary> /// Update the request's ObjectMetadata with the necessary information for decrypting the object. /// </summary> /// <param name="request"> /// AmazonWebServiceRequest encrypted using the given instruction /// </param> /// <param name="instructions"> /// Non-null instruction used to encrypt the data in this AmazonWebServiceRequest . /// </param> /// <param name="encryptionClient">Encryption client used for put objects</param> internal static void UpdateMetadataWithEncryptionInstructionsV2(AmazonWebServiceRequest request, EncryptionInstructions instructions, AmazonS3EncryptionClientBase encryptionClient) { var keyBytesToStoreInMetadata = instructions.EncryptedEnvelopeKey; var base64EncodedEnvelopeKey = Convert.ToBase64String(keyBytesToStoreInMetadata); var ivToStoreInMetadata = instructions.InitializationVector; var base64EncodedIv = Convert.ToBase64String(ivToStoreInMetadata); MetadataCollection metadata = null; var putObjectRequest = request as PutObjectRequest; if (putObjectRequest != null) { metadata = putObjectRequest.Metadata; } var initiateMultipartrequest = request as InitiateMultipartUploadRequest; if (initiateMultipartrequest != null) { metadata = initiateMultipartrequest.Metadata; } if (metadata != null) { metadata.Add(XAmzWrapAlg, instructions.WrapAlgorithm); metadata.Add(XAmzTagLen, DefaultTagBitsLength.ToString()); metadata.Add(XAmzKeyV2, base64EncodedEnvelopeKey); metadata.Add(XAmzCekAlg, instructions.CekAlgorithm); metadata.Add(XAmzIV, base64EncodedIv); metadata.Add(XAmzMatDesc, JsonMapper.ToJson(instructions.MaterialsDescription)); } }
public static IMetadataCollection AsMetadataCollection(this IEnumerable <RecordMetadataModel> @this, Guid recordGuid) { var collection = new MetadataCollection(recordGuid); foreach (var metadata in @this) { collection.Add(new RecordMetadata(metadata.MetadataKey, metadata.MetadataValue, recordGuid)); } return(collection); }
public void Can_remove_item_from_collection() { var metadataCollection = new MetadataCollection<EntityType>(); var entityType = new EntityType("E", "N", DataSpace.CSpace); metadataCollection.Add(entityType); Assert.Equal(1, metadataCollection.Count); metadataCollection.Remove(entityType); Assert.Empty(metadataCollection); }
public void Can_replace_item_via_ordinal_indexer() { var metadataCollection = new MetadataCollection<EntityType>(); var entityType = new EntityType("E", "N", DataSpace.CSpace); metadataCollection.Add(entityType); Assert.Equal(1, metadataCollection.Count); var entityType2 = new EntityType("E", "N", DataSpace.CSpace); metadataCollection[0] = entityType2; Assert.Equal(1, metadataCollection.Count); Assert.Same(entityType2, metadataCollection[0]); }
public void AddRange_can_add_items_to_readonly_collection() { var metadataCollection = new MetadataCollection<EntityType>(); var item = new EntityType("E", "N", DataSpace.CSpace); metadataCollection.Add(item); Assert.Equal(1, metadataCollection.Count); metadataCollection.SetReadOnly(); Assert.True(metadataCollection.IsReadOnly); metadataCollection.AddRange( new List<EntityType> { new EntityType("F", "N", DataSpace.CSpace), new EntityType("G", "N", DataSpace.CSpace) }); Assert.Equal(3, metadataCollection.Count); Assert.True(metadataCollection.IsReadOnly); }
/// <summary> /// Explicitly casts <see cref="Lastfm.Services.Album"/> /// to <see cref="mp3tag.Metadata"/> /// </summary> /// <param name="album">Album tag to be casted</param> /// <returns>mp3tag.Tag object</returns> static public Metadata ToTag(this Lastfm.Services.Album album) { // Set album specific data Metadata Collection = new MetadataCollection(); Metadata Metadata = new Id3(); Metadata.Artist = album.Artist.Name; Metadata.Release = album.Name; Metadata.ReleaseYear = album.GetReleaseDate().Year.ToString(); Metadata.Art = album.GetImageURL(AlbumImageSize.ExtraLarge); // Invoke copy constructor on tag object // otherwirse all tags in the collection will have changes // applied. foreach (Track t in album.GetTracks()) { Metadata.Title = t.Title; Metadata.Track = (Collection.ToList<Metadata>().Count() + 1).ToString(); Collection.Add(new Id3(Metadata)); } // Return tag collection for album return Collection; }
/// <summary> /// Update the request's ObjectMetadata with the necessary information for decrypting the object. /// </summary> /// <param name="request"> /// AmazonWebServiceRequest encrypted using the given instruction /// </param> /// <param name="instructions"> /// Non-null instruction used to encrypt the data in this AmazonWebServiceRequest . /// </param> /// <param name="useV2Metadata"> /// If true use V2 metadata format, otherwise use V1. /// </param> internal static void UpdateMetadataWithEncryptionInstructions( AmazonWebServiceRequest request, EncryptionInstructions instructions, bool useV2Metadata) { byte[] keyBytesToStoreInMetadata = instructions.EncryptedEnvelopeKey; string base64EncodedEnvelopeKey = Convert.ToBase64String(keyBytesToStoreInMetadata); byte[] IVToStoreInMetadata = instructions.InitializationVector; string base64EncodedIV = Convert.ToBase64String(IVToStoreInMetadata); MetadataCollection metadata = null; var putObjectRequest = request as PutObjectRequest; if (putObjectRequest != null) { metadata = putObjectRequest.Metadata; } var initiateMultipartrequest = request as InitiateMultipartUploadRequest; if (initiateMultipartrequest != null) { metadata = initiateMultipartrequest.Metadata; } if (metadata != null) { if (useV2Metadata) { metadata.Add(XAmzKeyV2, base64EncodedEnvelopeKey); metadata.Add(XAmzWrapAlg, XAmzWrapAlgValue); metadata.Add(XAmzCEKAlg, XAmzCEKAlgValue); } else { metadata.Add(XAmzKey, base64EncodedEnvelopeKey); } metadata.Add(XAmzIV, base64EncodedIV); metadata.Add(XAmzMatDesc, JsonMapper.ToJson(instructions.MaterialsDescription)); } }
/// <summary> /// Converts musicbrainz metadata collection to /// <see cref="mp3tag.MetadataCollection"/>. /// </summary> /// <param name="album">Musicbrainz album object</param> /// <returns>Corresponding tag collection</returns> /// <remarks> /// Musicbrainz supports release types. This information /// in the case of non-album releases the data is appended /// to the album name. Date defaults to today if nothing /// is set. /// /// In the case of various artist, the artist is set to /// album artist first to locate album art & genre. /// Then artist is based on a per-track basis. /// </remarks> static public Metadata ToTag(this MusicBrainz.Release album) { Metadata Collection = new MetadataCollection(); Metadata Metadata = new Id3(); // If date is not set, use current date string ReleaseDate = String.Empty; try { ReleaseDate = album.GetEvents().First().Date.ToString(); } catch(Exception) { ReleaseDate = DateTime.Now.Year.ToString(); } // Build tag with search data Art Art = new Art(); Metadata.MusicBrainzReleaseArtistId = album.GetArtist().Id; Metadata.MusicBrainzReleaseId = album.Id; Metadata.MusicBrainzReleaseType = album.GetReleaseType().ToString(); Metadata.AlbumArtist = album.GetArtist(); Metadata.Release = album.GetTitle(); Metadata.AmazonId = album.GetAsin(); Metadata.ReleaseYear = ReleaseDate.Substring(0, 4); Metadata.Art = Art.Search(Metadata); // Search for genre; populate with default for now Metadata.Genre = "Hardcore"; //Metadata.Genre = ITunesService.SearchArtistGenre(Metadata); // Set track titles foreach (Track Trk in album.GetTracks()) { Metadata.Title = Trk.GetTitle(); Metadata.Artist = Trk.GetArtist(); Metadata.MusicBrainzArtistId = Trk.GetArtist().Id; Metadata.Track = (Collection.ToList<Metadata>().Count() + 1).ToString(); Collection.Add(new Id3(Metadata)); } return Collection; }
public int IndexTargetBaiKe(string category, int categoryid, string bot, string pageid, string groupname, string robject) { int indexCount = 0; FilterRequest request = new FilterRequest { Query = new { bot = bot }, Fields = new { bo = 1 }, Sort = new { boid = 1 } }; var botData = _bo2Service.GetBOT(bot); if (botData == null) { return(indexCount); } var bos = _bo2Service.FilterBOs(request); if (bos != null && bos.Count > 0) { MetadataCollection collection = new MetadataCollection(); // 获取默认模板 var defaultTemplate = _kManage2Service.GetDefaultTemplate(categoryid); foreach (var bo in bos) { // 获取bo的模板,如果没有,获取默认模板 var template = _kManage2Service.GetInstanceTemplate(bo.BO, bot); if (template == null) { template = defaultTemplate; } if (template == null) { template = category; } // 获取目录字符串 var catalogueStr = _kManage2Service.GetCatalogueStr(template); Metadata metadata = new Metadata(); var resourcekey = "勘探知识库\\" + category + "\\" + bo.BO; metadata.IIId = resourcekey.ToMD5(); metadata.IndexedDate = DateTime.Now; metadata.Thumbnail = null; metadata.Fulltext = catalogueStr; metadata.PageId = pageid; metadata.DataId = bo.BO; metadata["dsn"] = "勘探知识库"; metadata.ShowType = IndexShowType.Mixing.ToString(); metadata["title"] = bo.BO + robject + groupname; metadata["subject"] = null; metadata["abstract"] = null; metadata["catalogue"] = catalogueStr; metadata["author"] = null; metadata["submitter"] = null; metadata["auditor"] = null; metadata["createddate"] = DateTime.Now; metadata["submitteddate"] = null; metadata["auditteddate"] = null; metadata["status"] = "已审核"; metadata["frequency"] = null; metadata["period"] = null; metadata["basin"] = null; metadata["firstlevel"] = null; metadata["secondlevel"] = null; metadata["trap"] = null; metadata["well"] = null; metadata["swa"] = null; metadata["miningarea"] = null; metadata["cozone"] = null; metadata["project"] = null; metadata["pc"] = category; metadata["pt"] = template; metadata["bd"] = "勘探"; metadata["bt"] = groupname; metadata["bp"] = robject; metadata["ba"] = null; metadata["bf"] = null; metadata["system"] = "勘探知识库"; metadata["resourcetype"] = "勘探知识库\\" + category; metadata["resourcekey"] = resourcekey; metadata[botData.Code] = bo.BO; collection.Add(metadata); } IndexSaveRequest indexrequest = new IndexSaveRequest() { Replace = true, Metadatas = collection }; var iiids = _indexService.Save(indexrequest); indexCount = iiids.Count(); } return(indexCount); }
public void IndexInstance(int instanceId) { var instance = kCaseInputService.GetInstanceIndexModel(instanceId); if (instance == null) { return; } //获取实例信息 MetadataCollection collection = new MetadataCollection(); Metadata metadata = new Metadata(); var resourcekey = "勘探知识库\\知识案例\\" + instance.Id; metadata.IIId = resourcekey.ToMD5(); metadata.IndexedDate = DateTime.Now; metadata.Thumbnail = instance.Chart?.ToString(); metadata.Fulltext = instance.Description; metadata.PageId = "21"; metadata.DataId = instance.Id.ToString(); metadata["dsn"] = "勘探知识库"; metadata.ShowType = IndexShowType.Mixing.ToString(); metadata["title"] = instance.Name; metadata["subject"] = null; metadata["abstract"] = instance.Description; metadata["catalogue"] = instance.KCaseCategory; metadata["author"] = instance.Author; metadata["submitter"] = null; metadata["auditor"] = instance.Auditor; metadata["createddate"] = instance.CreateDate; metadata["submitteddate"] = null; metadata["auditteddate"] = null; metadata["status"] = "已审核"; metadata["frequency"] = null; metadata["period"] = null; metadata["basin"] = null; metadata["firstlevel"] = null; metadata["secondlevel"] = null; metadata["trap"] = null; metadata["well"] = null; metadata["swa"] = null; metadata["miningarea"] = null; metadata["cozone"] = null; metadata["project"] = null; metadata["pc"] = instance.KCaseCategory; metadata["pt"] = "知识案例"; metadata["bd"] = "勘探"; metadata["bt"] = "知识案例"; metadata["bp"] = instance.KCaseTheme; metadata["ba"] = null; metadata["bf"] = null; metadata["system"] = "勘探知识库"; metadata["resourcetype"] = "勘探知识库\\知识案例\\" + instance.KCaseCategory; metadata["resourcekey"] = resourcekey; collection.Add(metadata); IndexSaveRequest indexrequest = new IndexSaveRequest() { Replace = true, Metadatas = collection }; var iiids = _indexService.Save(indexrequest); var indexCount = iiids.Count(); }
public void Modifiers_throw_when_collection_is_readonly() { var metadataCollection = new MetadataCollection<EntityType>(); var item = new EntityType("E", "N", DataSpace.CSpace); metadataCollection.Add(item); Assert.Equal(1, metadataCollection.Count); metadataCollection.SetReadOnly(); Assert.True(metadataCollection.IsReadOnly); Assert.Equal( Strings.OperationOnReadOnlyCollection, Assert.Throws<InvalidOperationException>( () => metadataCollection.Add( new EntityType("E", "N", DataSpace.CSpace))).Message); Assert.Equal( Strings.OperationOnReadOnlyCollection, Assert.Throws<InvalidOperationException>( () => metadataCollection.Remove(item)).Message); Assert.Equal( Strings.OperationOnReadOnlyCollection, Assert.Throws<InvalidOperationException>( () => metadataCollection[0] = item).Message); }
public void Add_throws_ArgumentException_for_null_identity() { var metadataCollection = new MetadataCollection<EntityType>(); Assert.Equal( new ArgumentNullException("name").Message, Assert.Throws<ArgumentNullException>( () => metadataCollection.Add( new EntityType(null, null, DataSpace.CSpace))).Message); }
/// <summary> 创建索引 </summary> public void IndexData(List <StandardModel> list) { MetadataCollection collection = new MetadataCollection(); foreach (var item in list) { Metadata metadata = new Metadata(); var resourcekey = "勘探知识库\\标准规范\\外部链接\\" + item.Id; metadata.IIId = resourcekey.ToMD5(); metadata.IndexedDate = DateTime.Now; metadata.Thumbnail = null; metadata.Fulltext = null; metadata.PageId = "23"; metadata.DataId = item.Url; metadata["dsn"] = "勘探知识库"; metadata.ShowType = IndexShowType.Mixing.ToString(); metadata["title"] = item.Name; metadata["subject"] = null; metadata["abstract"] = item.Name; metadata["catalogue"] = item.Type; metadata["author"] = null; metadata["submitter"] = null; metadata["auditor"] = null; metadata["createddate"] = null; metadata["submitteddate"] = null; metadata["auditteddate"] = null; metadata["status"] = "已审核"; metadata["frequency"] = null; metadata["period"] = null; metadata["basin"] = null; metadata["firstlevel"] = null; metadata["secondlevel"] = null; metadata["trap"] = null; metadata["well"] = null; metadata["swa"] = null; metadata["miningarea"] = null; metadata["cozone"] = null; metadata["project"] = null; metadata["pc"] = item.Type; metadata["pt"] = "标准规范"; metadata["bd"] = "勘探"; metadata["bt"] = "标准规范"; metadata["bp"] = item.Type; metadata["ba"] = null; metadata["bf"] = null; metadata["system"] = "勘探知识库"; metadata["resourcetype"] = "勘探知识库\\标准规范\\外部链接\\" + item.Type; metadata["resourcekey"] = resourcekey; collection.Add(metadata); } if (collection.Count() > 0) { IndexSaveRequest indexrequest = new IndexSaveRequest() { Replace = true, Metadatas = collection }; var iiids = _indexService.Save(indexrequest); var indexCount = iiids.Count(); } }
private void AddObjectMetadata(MetadataCollection metadata, string tableName, string fieldName, string key) { metadata.Add("Table", tableName); metadata.Add("Field", fieldName); metadata.Add("KeyValue", StorageUtils.EncodeNonAsciiCharacters(key)); }
private static MetadataCollection ImportHTMLCustomMetaData(XElement customMetaDataItems) { MetadataCollection metaDataCollection = new MetadataCollection(); foreach (XElement customMetadataItem in customMetaDataItems.Elements()) { metaDataCollection.Add(customMetadataItem.Name.ToString(), customMetadataItem.Value); } return metaDataCollection; }