/// <summary> /// Create a copy of <see cref="SecurityLookupMessage"/>. /// </summary> /// <returns>Copy.</returns> public override Message Clone() { var clone = new SecurityLookupMessage(); CopyTo(clone); return(clone); }
/// <summary> /// Initialize <see cref="SecurityLookupMessage.SecurityTypes"/>. /// </summary> /// <param name="message">Message security lookup for specified criteria.</param> /// <param name="type">Security type.</param> /// <param name="types">Securities types.</param> public static void SetSecurityTypes(this SecurityLookupMessage message, SecurityTypes?type, IEnumerable <SecurityTypes> types = null) { if (message == null) { throw new ArgumentNullException(nameof(message)); } if (type != null) { message.SecurityType = type.Value; } else if (types != null) { var set = types.ToHashSet(); if (set.Count <= 0) { return; } if (set.Count == 1) { message.SecurityType = set.First(); } else { message.SecurityTypes = set.ToArray(); } } }
/// <summary> /// Copy the message into the <paramref name="destination" />. /// </summary> /// <param name="destination">The object, to which copied information.</param> public void CopyTo(SecurityLookupMessage destination) { if (destination == null) { throw new ArgumentNullException(nameof(destination)); } destination.TransactionId = TransactionId; destination.SecurityTypes = SecurityTypes?.ToArray(); base.CopyTo(destination); }
/// <summary> /// Create a copy of <see cref="SecurityLookupMessage"/>. /// </summary> /// <returns>Copy.</returns> public override Message Clone() { var clone = new SecurityLookupMessage { TransactionId = TransactionId, SecurityTypes = SecurityTypes, }; CopyTo(clone); return(clone); }
/// <summary> /// Get <see cref="SecurityLookupMessage.SecurityTypes"/>. /// </summary> /// <param name="message">Message security lookup for specified criteria.</param> /// <returns>Securities types.</returns> public static HashSet <SecurityTypes> GetSecurityTypes(this SecurityLookupMessage message) { if (message == null) { throw new ArgumentNullException(nameof(message)); } var types = new HashSet <SecurityTypes>(); if (message.SecurityType != null) { types.Add(message.SecurityType.Value); } else if (message.SecurityTypes != null) { types.AddRange(message.SecurityTypes); } return(types); }