Example #1
0
        static void Main(string[] args)
        {
            DateTime now = DateTime.Now;
            TimeAndDateDataAccess timeAndDateDataAccess = new TimeAndDateDataAccess("usa", "philadelphia", now.Month, now.Year);
            SunriseSunsetTimes    sunriseSunsetTimes    = timeAndDateDataAccess.GetSunriseSunsetTimesForMonth();

            SunriseSunsetTimes.SunriseSunsetTime dayData = sunriseSunsetTimes.DateToSunriseSunsetTime[now.Date];
            Console.WriteLine($"day length {dayData.DayLength}, difference {dayData.DayLengthDifference}, sunrise {dayData.Sunrise}, sunset {dayData.Sunset}");
        }
Example #2
0
        public SunriseSunsetTimes GetSunriseSunsetTimesForMonth()
        {
            FileSerializer fileSerializer = new FileSerializer();

            SunriseSunsetTimes cachedData = (SunriseSunsetTimes)fileSerializer.Load(CacheFilePath);

            if (cachedData == null || !(cachedData.Country == Country && cachedData.City == City &&
                                        cachedData.DateToSunriseSunsetTime.Keys.Count > 0 && cachedData.DateToSunriseSunsetTime.ContainsKey(new DateTime(Year, Month, 1)))) // TODO redesign
            {
                cachedData = GetSunriseSunsetTimesForMonthWithNoCache();
                fileSerializer.Save(CacheFilePath, cachedData);
            }

            return(cachedData);
        }
Example #3
0
        public SunriseSunsetTimes GetSunriseSunsetTimesForMonthWithNoCache()
        {
            HtmlDocument document = new HtmlWeb().Load($"{URL}/{Country}/{City}?month={Month}&year={Year}");
            var          dayNodes = document.DocumentNode.SelectNodes("//tr[@data-day]");

            SunriseSunsetTimes sunriseSunsetTimes = new SunriseSunsetTimes();

            sunriseSunsetTimes.Country = Country;
            sunriseSunsetTimes.City    = City;
            sunriseSunsetTimes.DateToSunriseSunsetTime = new Dictionary <DateTime, SunriseSunsetTimes.SunriseSunsetTime>();
            foreach (HtmlNode node in dayNodes)
            {
                int      dayOfMonth = Convert.ToInt32(node.Attributes["data-day"].Value);
                DateTime date       = new DateTime(Year, Month, dayOfMonth);
                string   sunrise    = node.ChildNodes[1].InnerText;
                string   sunset     = node.ChildNodes[2].InnerText;
                string   dayLength  = node.ChildNodes[3].InnerText;
                string   difference = node.ChildNodes[4].InnerText;
                sunriseSunsetTimes.DateToSunriseSunsetTime.Add(date, new SunriseSunsetTimes.SunriseSunsetTime(sunrise, sunset, dayLength, difference));
            }

            return(sunriseSunsetTimes);
        }