< Summary

Class:Azure.Storage.Blobs.ChangeFeed.BlobChangeFeedEventData
Assembly:Azure.Storage.Blobs.ChangeFeed
File(s):C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Blobs.ChangeFeed\src\Models\BlobChangeFeedEventData.cs
Covered lines:36
Uncovered lines:4
Coverable lines:40
Total lines:129
Line coverage:90% (36 of 40)
Covered branches:7
Total branches:12
Branch coverage:58.3% (7 of 12)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor()-0%100%
.ctor(...)-88.46%58.33%
get_BlobOperationName()-100%100%
get_ClientRequestId()-100%100%
get_RequestId()-100%100%
get_ETag()-100%100%
get_ContentType()-100%100%
get_ContentLength()-100%100%
get_BlobType()-100%100%
get_ContentOffset()-100%100%
get_DestinationUri()-100%100%
get_SourceUri()-100%100%
get_Uri()-100%100%
get_Recursive()-100%100%
get_Sequencer()-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Blobs.ChangeFeed\src\Models\BlobChangeFeedEventData.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Collections.Generic;
 6using Azure.Storage.Blobs.Models;
 7
 8namespace Azure.Storage.Blobs.ChangeFeed
 9{
 10    /// <summary>
 11    /// BlobChangeFeedEventData.
 12    /// </summary>
 13    public class BlobChangeFeedEventData
 14    {
 15        /// <summary>
 16        /// Internal constructor.
 17        /// </summary>
 018        internal BlobChangeFeedEventData() { }
 19
 2958420        internal BlobChangeFeedEventData(Dictionary<string, object> record)
 21        {
 2958422            BlobOperationName = new BlobOperationName((string)record[Constants.ChangeFeed.EventData.Api]);
 2958423            ClientRequestId = Guid.Parse((string)record[Constants.ChangeFeed.EventData.ClientRequestId]);
 2958424            RequestId = Guid.Parse((string)record[Constants.ChangeFeed.EventData.RequestId]);
 2958425            ETag = new ETag((string)record[Constants.ChangeFeed.EventData.Etag]);
 2958426            ContentType = (string)record[Constants.ChangeFeed.EventData.ContentType];
 2958427            ContentLength = (long)record[Constants.ChangeFeed.EventData.ContentLength];
 2958428            BlobType = ((string)record[Constants.ChangeFeed.EventData.BlobType]) switch
 2958429            {
 5916830                Constants.ChangeFeed.EventData.BlockBlob => BlobType.Block,
 031                Constants.ChangeFeed.EventData.PageBlob => BlobType.Page,
 032                Constants.ChangeFeed.EventData.AppendBlob => BlobType.Append,
 033                _ => default
 2958434            };
 2958435            record.TryGetValue(Constants.ChangeFeed.EventData.ContentOffset, out object contentOffset);
 2958436            ContentOffset = (long?)contentOffset;
 2958437            record.TryGetValue(Constants.ChangeFeed.EventData.DestinationUrl, out object destinationUrl);
 2958438            DestinationUri = !string.IsNullOrEmpty((string)destinationUrl) ? new Uri((string)destinationUrl) : null;
 2958439            record.TryGetValue(Constants.ChangeFeed.EventData.SourceUrl, out object sourceUrl);
 2958440            SourceUri = !string.IsNullOrEmpty((string)sourceUrl) ? new Uri((string)sourceUrl) : null;
 2958441            record.TryGetValue(Constants.ChangeFeed.EventData.Url, out object url);
 2958442            Uri = !string.IsNullOrEmpty((string)url) ? new Uri((string)url) : null;
 2958443            record.TryGetValue(Constants.ChangeFeed.EventData.Recursive, out object recursive);
 2958444            Recursive = (bool?)recursive;
 2958445            Sequencer = (string)record[Constants.ChangeFeed.EventData.Sequencer];
 2958446        }
 47
 48        /// <summary>
 49        /// The operation that triggered the event.
 50        /// </summary>
 2958851        public BlobOperationName BlobOperationName { get; internal set; }
 52
 53        /// <summary>
 54        /// A client-provided request id for the storage API operation. This id can be used to correlate to Azure Storag
 55        /// diagnostic logs using the "client-request-id" field in the logs, and can be provided in client requests usin
 56        /// the "x-ms-client-request-id" header.
 57        /// </summary>
 2958858        public Guid ClientRequestId { get; internal set; }
 59
 60        /// <summary>
 61        /// Service-generated request id for the storage API operation. Can be used to correlate to Azure Storage diagno
 62        /// logs using the "request-id-header" field in the logs and is returned from initiating API call in the
 63        /// 'x-ms-request-id' header.
 64        /// </summary>
 2958865        public Guid RequestId { get; internal set; }
 66
 67        /// <summary>
 68        /// The value that you can use to perform operations conditionally.
 69        /// </summary>
 2958870        public ETag ETag { get; internal set; }
 71
 72        /// <summary>
 73        /// The content type specified for the blob.
 74        /// </summary>
 2958875        public string ContentType { get; internal set; }
 76
 77        /// <summary>
 78        /// The size of the blob in bytes.
 79        /// </summary>
 2958880        public long ContentLength { get; internal set; }
 81
 82        /// <summary>
 83        /// The type of blob. Valid values are either BlockBlob or PageBlob.
 84        /// </summary>
 2958885        public BlobType BlobType { get; internal set; }
 86
 87        /// <summary>
 88        /// The offset in bytes of a write operation taken at the point where the event-triggering application completed
 89        /// writing to the file.
 90        /// Appears only for events triggered on blob storage accounts that have a hierarchical namespace.
 91        /// </summary>
 2958892        public long? ContentOffset { get; internal set; }
 93
 94        /// <summary>
 95        /// The url of the file that will exist after the operation completes. For example, if a file is renamed,
 96        /// the destinationUrl property contains the url of the new file name.
 97        /// Appears only for events triggered on blob storage accounts that have a hierarchical namespace.
 98        /// </summary>
 2958899        public Uri DestinationUri { get; internal set; }
 100
 101        /// <summary>
 102        /// The url of the file that exists prior to the operation. For example, if a file is renamed, the sourceUrl
 103        /// contains the url of the original file name prior to the rename operation.
 104        /// Appears only for events triggered on blob storage accounts that have a hierarchical namespace.
 105        /// </summary>
 29588106        public Uri SourceUri { get; internal set; }
 107
 108        /// <summary>
 109        /// The path to the blob.
 110        /// If the client uses a Blob REST API, then the url has this structure:
 111        /// (storage-account-name).blob.core.windows.net/(container-name)/(file-name)
 112        /// If the client uses a Data Lake Storage REST API, then the url has this structure:
 113        /// (storage-account-name).dfs.core.windows.net/(file-system-name)/(file-name).
 114        /// </summary>
 29588115        public Uri Uri { get; internal set; }
 116
 117        /// <summary>
 118        /// True to perform the operation on all child directories; otherwise False.
 119        /// Appears only for events triggered on blob storage accounts that have a hierarchical namespace.
 120        /// </summary>
 29588121        public bool? Recursive { get; internal set; }
 122
 123        /// <summary>
 124        /// An opaque string value representing the logical sequence of events for any particular blob name.
 125        /// Users can use standard string comparison to understand the relative sequence of two events on the same blob 
 126        /// </summary>
 29588127        public string Sequencer { get; internal set; }
 128    }
 129}