Ejemplo n.º 1
0
        public EventsCreateViewModel(IGoogleCalendar googleCalendar, IRecurrenceSettings recurrenceSettings, IRepository commonRepository, IMessanger commonMessanger)
        {
            try
            {
                log.Debug("Loading EventsCreate view model...");

                calendar   = googleCalendar;
                repository = commonRepository;
                messanger  = commonMessanger;
                recurrence = recurrenceSettings;

                CreateEventCommand       = new RelayCommand(CreateEvent);
                UpdateEventCommand       = new RelayCommand(UpdateEvent);
                QuickActionCommand       = new RelayCommand(QuickAction);
                CancelUpdateEventCommand = new RelayCommand(CancelUpdateEvent);

                // For Update Events
                eventUpdater = repository.GetEventUpdater();
                if (eventUpdater.Type != GoogleCalendar.ActionType.none)
                {
                    IsUpdate = true;
                    SetUpdateEventSettings(eventUpdater);
                }

                log.Debug("EventsCreate view model was succssfully loaded");
            }
            catch (Exception ex)
            {
                log.Error("Failed to load EventsCreate view model:", ex);
            }
        }
Ejemplo n.º 2
0
        public EventsCreateViewModel(IGoogleCalendar googleCalendar, IRecurrenceSettings recurrenceSettings, IRepository commonRepository, IMessanger commonMessanger)
        {
            try
            {
                log.Debug("Loading EventsCreate view model...");

                calendar = googleCalendar;
                repository = commonRepository;
                messanger = commonMessanger;
                recurrence = recurrenceSettings;

                CreateEventCommand = new RelayCommand(CreateEvent);
                UpdateEventCommand = new RelayCommand(UpdateEvent);
                QuickActionCommand = new RelayCommand(QuickAction);
                CancelUpdateEventCommand = new RelayCommand(CancelUpdateEvent);

                // For Update Events
                eventUpdater = repository.GetEventUpdater();
                if (eventUpdater.Type != GoogleCalendar.ActionType.none)
                {
                    IsUpdate = true;
                    SetUpdateEventSettings(eventUpdater);
                }

                log.Debug("EventsCreate view model was succssfully loaded");
            }
            catch(Exception ex)
            {
                log.Error("Failed to load EventsCreate view model:", ex);
            }
        }
Ejemplo n.º 3
0
        private void SetUpdateEventSettings(CalendarEventUpdater eventUpdater)
        {
            CalendarEvent ev = eventUpdater.CalendarEvent;

            recurrence = eventUpdater.Recurrence == null ? recurrence : eventUpdater.Recurrence;

            // Set general events settings
            Title    = ev.Title;
            Content  = ev.Content;
            Location = ev.Location;

            IsFullDayEvent   = ev.IsFullDateEvent;
            IsRecurringEvent = ev.IsRecurrenceEvent;

            StartDate        = ev.Start;
            StartTimeHours   = ev.Start.Hour;
            StartTimeMinutes = ev.Start.Minute;

            DateTime end = ev.End ?? ev.Start;

            EndDate        = end;
            EndTimeHours   = end.Hour;
            EndTimeMinutes = end.Minute;

            // Disable recurrence settings if update single instace option was selected
            if (eventUpdater.Type == GoogleCalendar.ActionType.single && IsRecurringEvent)
            {
                IsRecurringEvent    = false;
                IsRecurrenceEnabled = false;
                return;
            }

            SetUpdateEventRecurrenceSettings();
        }
Ejemplo n.º 4
0
        private void SetUpdateEventSettings(CalendarEventUpdater eventUpdater)
        {
            CalendarEvent ev = eventUpdater.CalendarEvent;
            recurrence = eventUpdater.Recurrence == null ? recurrence : eventUpdater.Recurrence;

            // Set general events settings
            Title = ev.Title;
            Content = ev.Content;
            Location = ev.Location;

            IsFullDayEvent = ev.IsFullDateEvent;
            IsRecurringEvent = ev.IsRecurrenceEvent;

            StartDate = ev.Start;
            StartTimeHours = ev.Start.Hour;
            StartTimeMinutes = ev.Start.Minute;

            DateTime end = ev.End ?? ev.Start;
            EndDate = end;
            EndTimeHours = end.Hour;
            EndTimeMinutes = end.Minute;
                        
            // Disable recurrence settings if update single instace option was selected
            if (eventUpdater.Type == GoogleCalendar.ActionType.single && IsRecurringEvent)
            {
                IsRecurringEvent = false;
                IsRecurrenceEnabled = false;
                return;
            }

            SetUpdateEventRecurrenceSettings();
        }