private void Init()
 {
     ShowCalendar = true;
     CalendarEventListBoxHeight = Calendar.ShowCalendarMaxLength;
     ShowMeetings            = true;
     ShowTasks               = false;
     ListOfMeetingsViewModel = new MeetingsListViewModel();
     ListOfTasksViewModel    = new TaskListViewModel();
 }
        public async Task <ViewResult> Index()
        {
            var model        = new MeetingsListViewModel();
            var meetingModel = new MeetingListViewModel();

            if (null == HttpContext.Cache.Get("AAMeetingList"))
            {
                var meetings = await _aaClient.GetMeetingsList();

                HttpContext.Cache.Insert("AAMeetingList", meetings, null, _dateToCache, Cache.NoSlidingExpiration);
            }
            var aaMeetingList = HttpContext.Cache.Get("AAMeetingList") as List <Meeting>;

            if (null == HttpContext.Cache.Get("CAMeetingList"))
            {
                var meetings = await _caClient.GetMeetingsList() as List <Meeting>;

                HttpContext.Cache.Insert("CAMeetingList", meetings, null, _dateToCache, Cache.NoSlidingExpiration);
            }
            var caMeetingList = HttpContext.Cache.Get("CAMeetingList") as List <Meeting>;
            var naList        = _naClient.GetMeetingsList();

            meetingModel.Title        = "AA möten";
            meetingModel.ListId       = "aa";
            meetingModel.MeetingsList = aaMeetingList;
            model.AAMeetingsList      = meetingModel;
            meetingModel              = new MeetingListViewModel();
            meetingModel.Title        = "CA möten";
            meetingModel.ListId       = "ca";
            meetingModel.MeetingsList = caMeetingList;
            model.CAMeetingsList      = meetingModel;
            meetingModel              = new MeetingListViewModel();
            meetingModel.Title        = "NA möten";
            meetingModel.ListId       = "na";
            meetingModel.MeetingsList = await _naClient.GetMeetingsList();

            model.NAMeetingsList = meetingModel;
            if (null == Session["AATodaysMeetingList"])
            {
                Session["AATodaysMeetingList"] = await _aaClient.GetUpcomingMeetingsList(aaMeetingList);
            }
            meetingModel              = new MeetingListViewModel();
            meetingModel.Title        = "Dagens möten";
            meetingModel.ListId       = "today";
            meetingModel.MeetingsList = Session["AATodaysMeetingList"] as List <Meeting>;
            var meetingListViewModel = new NearMeViewModel
            {
                UpcomingMeetingsList = meetingModel
            };

            meetingListViewModel.BingApiKey = _bingApiKey;

            /*UNCOMMENT TO ADD MAP
             * if (null == Session["AALocationLists"])
             * {
             *      Session["AALocationLists"] = await _bingClient.GetLocations(meetingListViewModel.UpcomingMeetingsList);
             * }
             * meetingListViewModel.LocationLists = Session["AALocationLists"] as LocationLists;
             */
            model.BingApiKey      = _bingApiKey;
            model.NearMeViewModel = meetingListViewModel;
            var d = await _aaClient.GetTimes(aaMeetingList);

            var aaFilter = new FilterSorting
            {
                CityList        = await _aaClient.GetCities(aaMeetingList),
                MeetingTypeList = await _aaClient.GetMeetingTypes(aaMeetingList),
                StartTimes      = Castings.CustomToList <TimeSpan>(d),
                MeetingsList    = aaMeetingList,
                BingApiKey      = _bingApiKey
            };

            model.FilterSorting = aaFilter;
            return(View(model));
        }