示例#1
0
        /// <summary>
        /// This method returns the entity items from the CSV data file collection.
        /// </summary>
        /// <typeparam name="T">The transit entity type.</typeparam>
        /// <param name="tType">The transit file type.</param>
        /// <param name="headersRequired">The required headers.</param>
        /// <param name="conv">The conversion function.</param>
        /// <returns>Returns an amalgamated collection of entities.</returns>
        private IEnumerable <T> TransitEntityEnum <T>(
            TransitFileType tType, IEnumerable <KeyValuePair <string, bool> > headers, Func <CSVRowItem, T> conv)
        {
            if (!HasTransitData(tType))
            {
                yield break;
            }

            using (Stream data = mData.GetStream(tType))
            {
                if (data == null)
                {
                    throw new ArgumentNullException();
                }

                CSVStreamOptions opts = new CSVStreamOptions(Encoding.UTF8, ',', true, false, null, null);

                CSVStreamEnumerator <T> item = new CSVStreamEnumerator <T>(data, conv, opts);

                foreach (var entity in item)
                {
                    yield return(entity);
                }
            }
        }
        public override bool HasStream(TransitFileType type)
        {
            switch (type)
            {
            case TransitFileType.Calendar_Dates:
                return(HasCalendarDates);

            case TransitFileType.Fare_Attributes:
                return(HasFareAttributes);

            case TransitFileType.Fare_Rules:
                return(HasFareRules);

            case TransitFileType.Frequencies:
                return(HasFrequencies);

            case TransitFileType.Transfers:
                return(HasTransfers);

            case TransitFileType.Shapes:
                return(HasShapes);

            default:
                return(true);
            }
        }
示例#3
0
 /// <summary>
 /// This function checks whether there is valid data for the specific transit type.
 /// </summary>
 /// <param name="tType">The transit type.</param>
 /// <returns>Returns true if there is valid data.</returns>
 private bool HasTransitData(TransitFileType tType)
 {
     return(mData.HasStream(tType));
 }
示例#4
0
 public virtual bool HasStream(TransitFileType type)
 {
     return(mStreams.ContainsKey(type));
 }
示例#5
0
 public Stream GetStream(TransitFileType type)
 {
     return(mStreams[type]());
 }
 public virtual bool HasStream(TransitFileType type)
 {
     return mStreams.ContainsKey(type);
 }
 public Stream GetStream(TransitFileType type)
 {
     return mStreams[type]();
 }
 public override bool HasStream(TransitFileType type)
 {
     switch(type)
     {
         case TransitFileType.Calendar_Dates:
             return HasCalendarDates;
         case TransitFileType.Fare_Attributes:
             return HasFareAttributes;
         case TransitFileType.Fare_Rules:
             return HasFareRules;
         case TransitFileType.Frequencies:
             return HasFrequencies;
         case TransitFileType.Transfers:
             return HasTransfers;
         case TransitFileType.Shapes:
             return HasShapes;
         default:
             return true;
     }
 }