public ThreatListUpdateRequest(IEnumerable <ThreatListUpdateQuery> queries, ClientMetadata clientMetadata)
        {
            Guard.ThrowIf(nameof(queries), queries).Null();

            this.ClientMetadata = clientMetadata ?? ClientMetadata.Default;
            this.Queries        = new HashSet <ThreatListUpdateQuery>(queries);
        }
Exemplo n.º 2
0
        /// <summary>
        ///     Create a Client Metadata.
        /// </summary>
        static ClientMetadata()
        {
            ClientMetadata.Default = CreateDefault();

            // <summary>
            //      Create Default Client Metadata.
            // </summary>
            ClientMetadata CreateDefault()
            {
                var thisAssembly     = Assembly.GetExecutingAssembly();
                var thisAssemblyName = thisAssembly.GetName();
                var clientMetadata   = new ClientMetadata(thisAssemblyName.Name, thisAssemblyName.Version);

                return(clientMetadata);
            }
        }
Exemplo n.º 3
0
        public FullHashRequest(IEnumerable <string> sha256HashPrefixes, IEnumerable <FullHashQuery> queries, ClientMetadata clientMetadata)
        {
            Guard.ThrowIf(nameof(sha256HashPrefixes), sha256HashPrefixes).Null();

            this.ClientMetadata     = clientMetadata ?? ClientMetadata.Default;
            this.Queries            = new HashSet <FullHashQuery>(queries);
            this.Sha256HashPrefixes = CreateSha256HashPrefixes(sha256HashPrefixes);

            // <summary>
            //      Create SHA256 Hash Prefixes.
            // </summary>
            IEnumerable <string> CreateSha256HashPrefixes(IEnumerable <string> cSha256HashPrefixes)
            {
                var cNewSha256HashPrefixes = new HashSet <string>();

                foreach (var cSha256HashPrefix in cSha256HashPrefixes)
                {
                    // ...
                    //
                    // Throws an exception if the operation fails.
                    var cIsSha256HashPrefixHexadecimalEncoded = cSha256HashPrefix.IsHexadecimalEncoded();
                    if (!cIsSha256HashPrefixHexadecimalEncoded)
                    {
                        var cDetailMessage = $"A SHA256 hash prefix ({cSha256HashPrefix}) is not hexadecimal encoded.";
                        throw new FormatException(cDetailMessage);
                    }

                    cNewSha256HashPrefixes.Add(cSha256HashPrefix);
                }

                return(cNewSha256HashPrefixes);
            }
        }
Exemplo n.º 4
0
 /// <summary>
 ///     Set Client Metadata.
 /// </summary>
 /// <param name="value">
 ///     The <see cref="Clients.ClientMetadata" /> of the client making the full hash request. A null reference
 ///     indicates the metadata of the client is unknown.
 /// </param>
 /// <returns>
 ///     This full hash request builder.
 /// </returns>
 public FullHashRequestBuilder SetClientMetadata(ClientMetadata value)
 {
     this.ClientMetadata = value ?? ClientMetadata.Default;
     return(this);
 }
Exemplo n.º 5
0
 /// <summary>
 ///     Set Client Metadata.
 /// </summary>
 /// <param name="value">
 ///     The metadata of the client making the threat list update request. A null reference indicates the
 ///     client's metadata is unknown.
 /// </param>
 /// <returns>
 ///     This threat list update request builder.
 /// </returns>
 public ThreatListUpdateRequestBuilder SetClientMetadata(ClientMetadata value)
 {
     this.ClientMetadata = value ?? ClientMetadata.Default;
     return(this);
 }