コード例 #1
0
        public CalendarGroupViewModel(XamScheduleDataManager dataManager, ICalendarService calendarService, IEventAggregator eventAggragator, IApplicationCommands applicationCommands)
        {
            CalendarUnselectedCommand         = new DelegateCommand <object>(CalendarUnselectedCommandExecuted);
            DateNavigatorSelectedDatesCommand = new DelegateCommand <ObservableCollection <DateTime> >(OnDateNavigatorSelectedDates);

            CalendarService = calendarService;
            EventAggregator = eventAggragator;

            ApplicationCommands = applicationCommands;

            DataManager = dataManager;

            GenerateMenu();

            _unselectedCalendarChangedEvent = EventAggregator.GetEvent <UnselectedCalendarChangedEvent>();
            _selectedCalendarChangedEvent   = eventAggragator.GetEvent <SelectedCalendarChangedEvent>();
            _selectedCalendarChangedEvent.Subscribe(OnSelectedCalendarChanged);

            _calendarClosedEvent = EventAggregator.GetEvent <CalendarClosedEvent>();
            _calendarClosedEvent.Subscribe(OnCalendarClosed);

            _dateNavigatorSelectedDatesChanged = EventAggregator.GetEvent <DateNavigatorSelectedDatesChanged>();

            _outlookDateNavigatorSelectedDatesChanged = EventAggregator.GetEvent <OutlookDateNavigatorSelectedDatesChanged>();
            _outlookDateNavigatorSelectedDatesChanged.Subscribe(OnOutlookDateNavigatorSelectedDatesChanged);
            _canExecuteDateNavigatorSelectedDatesCommand = true;
        }
コード例 #2
0
        private void RegisterDataManager()
        {
            var xamScheduleDataManager = new XamScheduleDataManager {
            };

            Container.RegisterInstance <XamScheduleDataManager>(xamScheduleDataManager);
        }
コード例 #3
0
        public CalendarViewBase(IEventAggregator eventAggragator, IDialogService dialogService, ICalendarService calendarService, ICategoryService categoryService, XamScheduleDataManager dataManager)
        {
            DataManager     = dataManager;
            EventAggregator = eventAggragator;
            DialogService   = dialogService;
            CalendarService = calendarService;
            CategoryService = categoryService;

            CurrentViewMode = OutlookCalendarViewMode.DayViewWorkWeek;

            DeleteCommand = new DelegateCommand(Delete, IsActivitySelected);
            ShowRecurrenceDialogCommand = new DelegateCommand(ShowRecurrenceDialog, IsActivitySelected);

            IconSource = "pack://application:,,,/IgOutlook.Core;component/Images/Calendar.ico";
        }
コード例 #4
0
        public override FrameworkElement CreateActivityDialog(FrameworkElement container, XamScheduleDataManager dataManager, ActivityBase activity, bool allowModifications, bool allowRemove)
        {
            string view = "AppointmentView";

            if (activity.DataItem != null)
            {
                if (activity.Metadata["IsMeetingRequest"] != null && (bool)activity.Metadata["IsMeetingRequest"] == true)
                {
                    view = "MeetingView";
                }
            }
            else
            {
                if (IsAppointmentMeetingRequest)
                {
                    activity.Metadata["IsMeetingRequest"] = true;
                    view = "MeetingView";
                }
            }

            IsAppointmentMeetingRequest = false;

            NavigationParameters parameters = new NavigationParameters();

            parameters.Add(Parameters.ActivityIdKey, activity.Id ?? "1");

            switch (activity.ActivityType)
            {
            case ActivityType.Appointment:
            {
                var evn = EventAggragator.GetEvent <ActivityChangedEvent>();
                DialogService.ShowDialog(view, parameters);
                evn.Publish(activity);

                return(DialogService.GetDialogInstance());
            }

            default:
            {
                return(null);
            }
            }
        }
コード例 #5
0
        public MeetingViewModel(IEventAggregator eventAggragator, IDialogService dialogService, ICalendarService calendarService, ICategoryService categoryService, IContactService contactService, IMessageBoxService messageBoxService, XamScheduleDataManager dataManager)
            : base(eventAggragator, dialogService, calendarService, categoryService, messageBoxService, dataManager)
        {
            LocationsList = CalendarService.GetSharedResourceCalendars();
            ResourcesList = CalendarService.GetResources();
            Contacts      = new ObservableCollection <Business.Contacts.Contact>(contactService.GetContacts());

            _locationsEmails = new List <string>();

            foreach (var locationContact in contactService.GetLocationContacts())
            {
                Contacts.Add(locationContact);
                _locationsEmails.Add(locationContact.Email);
            }

            CancelMeetingCommand = new DelegateCommand(CancelMeeting);
        }
コード例 #6
0
        public AppointmentViewModel(IEventAggregator eventAggragator, IDialogService dialogService, ICalendarService calendarService, ICategoryService categoryService, IMessageBoxService messageBoxService, XamScheduleDataManager dataManager)
            : base(eventAggragator, dialogService, calendarService, categoryService, dataManager)
        {
            MessageBoxService = messageBoxService;
            var activityAddedEvent = eventAggragator.GetEvent <ActivityChangedEvent>();
            var converter          = new ActivityUtcToLocalTimeConverter();

            TimeZoneChoosersVisibility = Visibility.Collapsed;

            activityAddedEvent.Subscribe(OnActivityChanged);

            SaveAndCloseCommand   = new DelegateCommand(SaveAndClose);
            DeleteAndCloseCommand = new DelegateCommand(DeleteAndClose);
            ToggleTimeZoneChoosersVisibilityCommand = new DelegateCommand(ToggleTimeZoneChoosersVisibility);

            AppointmetTypeName = ResourceStrings.Appointment_Text;
        }
コード例 #7
0
        public CalendarViewModel(IEventAggregator eventAggragator, IDialogService dialogService, ICalendarService calendarService, ICategoryService categoryService, XamScheduleDataManager dataManager)
            : base(eventAggragator, dialogService, calendarService, categoryService, dataManager)
        {
            var unselectedCalendarChangedEvent = eventAggragator.GetEvent <UnselectedCalendarChangedEvent>();
            var selectedCalendarChangedEvent   = eventAggragator.GetEvent <SelectedCalendarChangedEvent>();

            calendarClosedEvent        = eventAggragator.GetEvent <CalendarClosedEvent>();
            viewItemsCountChangedEvent = EventAggregator.GetEvent <ViewItemsCountChangedEvent>();
            outlookDateNavigatorSelectedDatesChanged = EventAggregator.GetEvent <OutlookDateNavigatorSelectedDatesChanged>();

            this.DateNavigator = new OutlookDateNavigator();

            eventAggragator.GetEvent <DateNavigatorSelectedDatesChanged>().Subscribe(OnDateNavigatorSelectedDatesChanged);

            this.DateNavigator.SelectedDatesChanged += DateNavigator_SelectedDatesChanged;

            this.DataManager.DialogFactory = new CustomAppointmentDialogFactory(DialogService, eventAggragator);

            resourceCalendars = calendarService.GetResourceCalendars();

            var listScheduleDataConnector = new ListScheduleDataConnector();

            listScheduleDataConnector.ResourceCalendarPropertyMappings = new ResourceCalendarPropertyMappingCollection {
                UseDefaultMappings = true
            };
            listScheduleDataConnector.ResourcePropertyMappings = new ResourcePropertyMappingCollection {
                UseDefaultMappings = true
            };
            listScheduleDataConnector.AppointmentPropertyMappings = new AppointmentPropertyMappingCollection {
                UseDefaultMappings = true
            };
            listScheduleDataConnector.ActivityCategoryPropertyMappings = new ActivityCategoryPropertyMappingCollection {
                UseDefaultMappings = true
            };
            listScheduleDataConnector.AppointmentPropertyMappings.MetadataPropertyMappings = new Infragistics.MetadataPropertyMappingCollection();
            listScheduleDataConnector.AppointmentPropertyMappings.MetadataPropertyMappings.Add("IsMeetingRequest", "IsMeetingRequest");
            listScheduleDataConnector.AppointmentPropertyMappings.MetadataPropertyMappings.Add("AppointmentIds", "AppointmentIds");
            listScheduleDataConnector.AppointmentPropertyMappings.MetadataPropertyMappings.Add("To", "To");
            listScheduleDataConnector.AppointmentPropertyMappings.MetadataPropertyMappings.Add("IsNewVariance", "IsNewVariance");

            listScheduleDataConnector.ResourceItemsSource         = calendarService.GetResources();
            listScheduleDataConnector.ResourceCalendarItemsSource = resourceCalendars;
            listScheduleDataConnector.AppointmentItemsSource      = calendarService.GetAppointments();
            listScheduleDataConnector.ActivityCategoryItemsSource = categoryService.GetCategories();


            this.DataManager.DataConnector = listScheduleDataConnector;
            this.DataManager.CurrentUserId = "davids";
            this.DataManager.CalendarGroups.Add(new CalendarGroup {
                InitialCalendarIds = "davids[davidsCalendar]", InitialSelectedCalendarId = "davids[davidsCalendar]"
            });

            this.DataManager.ActivityRemoved  += DataManager_ActivityRemoved;
            this.DataManager.ActivityAdded    += DataManager_ActivityAdded;
            this.DataManager.ActivityChanging += DataManager_ActivityChanging;
            this.DataManager.ActivityChanged  += DataManager_ActivityChanged;

            //     selectedCalendarChangedEvent.Publish("Calendar");

            foreach (var calendar in resourceCalendars)
            {
                calendar.PropertyChanged += OnCalendarIsVisiblePropertyChanged;
            }

            unselectedCalendarChangedEvent.Subscribe(OnUnselectedCalendarChanged);

            SelectedTimeRangeChangedCommand = new DelegateCommand <Infragistics.DateRange?>(SelectedTimeRangeChanged);
            NewAppointmentCommand           = new DelegateCommand(NewAppointment);
            NewMeetingCommand = new DelegateCommand(NewMeeting);
        }