public Airport(TimeZoneLocation timeZoneLocation, string code, AirportImportance importance)
 {
     TimeZoneLocation = timeZoneLocation;
     Code             = code;
     Importance       = importance;
     Id = Guid.NewGuid();
 }
Esempio n. 2
0
 private TimeZoneLocation CloneTimeZoneLocation(TimeZoneLocation timeZone)
 {
     return(new TimeZoneLocation
     {
         Id = timeZone.Id,
         TimeOffset = timeZone.TimeOffset,
         Boundaries = timeZone.Boundaries
     });
 }
Esempio n. 3
0
        private List <TimeZoneLocation> LoadTimeZones()
        {
            using (var sourceStream = _repositoryFiles.GetTimeZonesDataStream())
            {
                using (var reader = new BinaryReader(sourceStream))
                {
                    var timeZonesCount = reader.ReadInt32();
                    var result         = new List <TimeZoneLocation>(timeZonesCount);

                    for (int timeZoneIndex = 0; timeZoneIndex < timeZonesCount; timeZoneIndex++)
                    {
                        var id             = reader.ReadInt32();
                        var timeOffset     = reader.ReadSingle();
                        var latitudesCount = reader.ReadInt32();

                        var timeZone = new TimeZoneLocation()
                        {
                            Id         = -id,
                            TimeOffset = timeOffset
                        };
                        result.Add(timeZone);

                        var latitudes = new IEnumerable <Range <float> > [latitudesCount];
                        for (int latitudeIndex = 0; latitudeIndex < latitudesCount; latitudeIndex++)
                        {
                            var linesCount = reader.ReadByte();
                            if (linesCount > 0)
                            {
                                var lines = new List <Range <float> >(linesCount);
                                for (int lineIndex = 0; lineIndex < linesCount; lineIndex++)
                                {
                                    var start = reader.ReadSingle();
                                    var end   = reader.ReadSingle();
                                    lines.Add(new Range <float>(Deg2Rad(start), Deg2Rad(end)));
                                }

                                latitudes[latitudeIndex] = lines.ToImmutableArray();
                            }
                        }

                        timeZone.Boundaries = latitudes.ToImmutableArray();
                    }

                    return(result);
                }
            }
        }