AspNetIntro2016.Models.CalendarFetcher.GetCalender C# (CSharp) Метод

GetCalender() публичный Метод

public GetCalender ( ) : List
Результат List
        public List<Day> GetCalender()
        {
            var jsonData = String.Empty;
            var days = new List<Day>();

            using (WebClient wc = new WebClient())
            {
                try
                {
                    jsonData = wc.DownloadString(Link); //move to GetJsonString?
                    //insert the catch here instead?
                    var jsonObj = JObject.Parse(jsonData);

                    //like this
                    //JArray jsonDaysArr = (JArray)jsonObj["dagar"];
                    //var jsonDays = jsonDaysArr.Children();
                    //or like this
                    var jsonDs = jsonObj["dagar"].Children();

                    foreach (var dayObj in jsonDs)
                    {
                        days.Add(new Day(
                           date: dayObj["datum"].ToString(),
                           weekDay: dayObj["veckodag"].ToString(),
                           workFreeDay: dayObj["arbetsfri dag"].ToString(),
                           redDay: dayObj["r\u00F6d dag"].ToString(),
                           holiday: (null != dayObj["helgdag"]) ? dayObj["helgdag"].ToString() : null, //if dayObj["helgdag"] exists then holiday should be set to it. Null otherwise
                           namesDays: dayObj["namnsdag"].Children().Values<string>().ToList<string>()
                        ));
                        var v = dayObj["namnsdag"].Children().Values<string>().ToList<string>();
                    }
                }
                catch (Exception e) //needs to capture a more precise exception
                {
                    System.Console.WriteLine("JSON problems");
                    System.Console.WriteLine(e.StackTrace);
                }

                return days;
            }
        }

Usage Example

        public CalendarViewModel GetDays2(int year, int month)
        {
            int y = (IsYear(year)) ? (int)year : DateTime.Now.Year;
            int m = (IsMonth(month)) ? (int)month : DateTime.Now.Month;

            CalendarFetcher fetcher;

            var date = new DateTime(y, m, 1);

            fetcher = new CalendarFetcher(y, m);
            var days = fetcher.GetCalender();

            return new CalendarViewModel(date, days);
        }