FastQuant.DataSeries.GetKey C# (CSharp) Method

GetKey() private method

private GetKey ( DateTime dateTime, DataKey key = null, IndexOption option = IndexOption.Null ) : DataKey
dateTime DateTime
key DataKey
option IndexOption
return DataKey
        internal DataKey GetKey(DateTime dateTime, DataKey key = null, IndexOption option = IndexOption.Null)
        {
            lock (Sync)
            {
                if (Count == 0 || dateTime > DateTime2)
                {
                    Console.WriteLine($"DataSeries::GetKey dateTime is out of range : {dateTime}");
                    return null;
                }
                if (key == null)
                    key = this.readKey;

                DataKey @class = null;
                DataKey class2 = null;
                if (dateTime <= DateTime1)
                    return GetFirstKey();

                if (key != null)
                {
                    if (key.dateTime1 <= dateTime && dateTime <= key.dateTime2)
                        return key;

                    if (dateTime > key.dateTime2)
                    {
                        class2 = key;
                        @class = GetNextKey(class2);
                    }
                }
                if (@class == null)
                    @class = GetFirstKey();

                while (option == IndexOption.Null || class2 == null || !(dateTime > class2.dateTime2) || !(dateTime < @class.dateTime1))
                {
                    if (@class.dateTime1 <= dateTime && dateTime <= @class.dateTime2)
                    {
                        return @class;
                    }
                    class2 = @class;
                    @class = GetNextKey(class2);
                }
                if (option == IndexOption.Next)
                {
                    return @class;
                }
                return class2;
            }
        }

Same methods

DataSeries::GetKey ( long index, DataKey key = null ) : DataKey