예제 #1
0
        private void UpdateUserCalendarPreferences()
        {
            var userCalendars   = userCalendarPreferences.UserCalendars;
            var googleCalendars = calendar.GetCalendars();

            // Add mising calendars to preferences
            foreach (var googleCalendar in googleCalendars)
            {
                if (userCalendars.FindAll(x => x.Id == googleCalendar.Id).ToList().Count == 0)
                {
                    userCalendars.Add(googleCalendar);
                }
            }

            // Remove old calendars from preferences
            var calendarsForRemove = new List <UserCalendar>();

            foreach (var userCalendar in userCalendars)
            {
                if (googleCalendars.FindAll(x => x.Id == userCalendar.Id).ToList().Count == 0)
                {
                    calendarsForRemove.Add(userCalendar);
                }
            }

            foreach (var calendarForRemove in calendarsForRemove)
            {
                userCalendars.Remove(calendarForRemove);
            }

            // Update AGC with new calendars list
            userCalendarPreferences.UserCalendars = userCalendars;
            repository.SetUserCalendarsPreferences(userCalendarPreferences);
            userCalendarPreferences.Save();
        }
예제 #2
0
        private void SaveUserCalendarPreferences()
        {
            foreach (var userCalendar in userCalendarPreferences.UserCalendars)
            {
                userCalendar.IsVisible = userCalendars[userCalendar.Name];
            }

            userCalendarPreferences.ShowEmptyDays     = ShowEmptyDays;
            userCalendarPreferences.ShowEmptyWeekends = ShowEmptyWeekends;

            if (userCalendarPreferences.Save())
            {
                messanger.Success("Saved", false);
                repository.SetUserCalendarsPreferences(userCalendarPreferences);
            }
            else
            {
                messanger.Error("Failed to save User Calendars preferences. Please check log file for a detailed information about the error.", false);
            }
        }