示例#1
0
        private async Task AddACRAReminderAsync(ICalendarIntegrationService nativeCalendarIntegrationService, List <GroupedMeetingViewModel> groupedMeetings)
        {
            // On ne fait rien de plus car le service n'est pas instancié
            if (nativeCalendarIntegrationService == null)
            {
                return;
            }

            if (ApplicationSettings.IsIntegrationToReminderEnabled)
            {
                var groupedOrderedMeetings = groupedMeetings.
                                             Where(gm => gm.Date.Month == DateTime.Today.Month).
                                             OrderByDescending(gm => gm.Date).
                                             ToList();

                DateTime?dateToRemind = null;

                foreach (var meetingsByDay in groupedOrderedMeetings)
                {
                    var day = meetingsByDay.Date.DayOfWeek;
                    if (day == DayOfWeek.Sunday || day == DayOfWeek.Saturday)
                    {
                        continue;
                    }

                    if (!meetingsByDay.Any(m =>
                                           m.MeetingSource.IsHoliday ||
                                           m.MeetingSource.Type == MeetingType.CP_RTT))
                    {
                        dateToRemind = meetingsByDay.Date.
                                       Date.
                                       AddHours(12).
                                       AddMinutes(30);
                        break;
                    }
                }


                if (dateToRemind.HasValue)
                {
                    await nativeCalendarIntegrationService.
                    AddReminder("ACRA - ENVOYER LA PROD",
                                "Envoi la PROD, c'est mieux pour tout le monde",
                                dateToRemind.Value.ToUniversalTime());
                }
                else
                {
                    //TODO : delete reminder
                }
            }
            else
            {
                //TODO : delete reminder
            }
        }
示例#2
0
        public void Initialize(
            INavigationService navigationService,
            ISqliteConnectionFactory sqliteConnectionFactory,
            IAuthentificationPlatformFactory plaformFactory,
            ICalendarIntegrationService calendarIntegrationService,
            IAlertService alertService,
            IBackgroundTaskService backgroundTaskService)
        {
            NavigationService          = navigationService;
            AlertService               = alertService;
            CalendarIntegrationService = calendarIntegrationService;
            BackgroundTaskService      = backgroundTaskService;

            SimpleIoc.Default.Register <IAuthentificationService>(() => new AuthentificationService(plaformFactory));
            if (_useMock)
            {
                SimpleIoc.Default.Register <IOnlineMeetingRepository>(() => new MyCompanyInThePocket.Core.Repositories.MockRepositories.MeetingRepository());
                SimpleIoc.Default.Register <IOnlineUseFullLinkRepository>(() => new MyCompanyInThePocket.Core.Repositories.MockRepositories.UseFullLinkRepository());
            }
            else
            {
                var authentificationService = SimpleIoc.Default.GetInstanceWithoutCaching <IAuthentificationService>();
                SimpleIoc.Default.Register <IOnlineMeetingRepository>(() => new MyCompanyInThePocket.Core.Repositories.OnlineRepositories.OnlineMeetingRepository(authentificationService));
                SimpleIoc.Default.Register <IOnlineUseFullLinkRepository>(() => new MyCompanyInThePocket.Core.Repositories.MockRepositories.UseFullLinkRepository());
                SimpleIoc.Default.Register <IOnlineUseFullDocumentRepository>(() => new MyCompanyInThePocket.Core.Repositories.OnlineRepositories.OnlineUseFullDocumentRepository(authentificationService));
            }


            SimpleIoc.Default.Register <IDatabaseService>(() => new DatabaseService(sqliteConnectionFactory));

            var databaseService = SimpleIoc.Default.GetInstanceWithoutCaching <IDatabaseService>();


            SimpleIoc.Default.Register <IDbMeetingRepository>(() => new DbMeetingRepository(sqliteConnectionFactory));

            var onlineMeetingRepository     = SimpleIoc.Default.GetInstanceWithoutCaching <IOnlineMeetingRepository>();
            var dbMeetingRepository         = SimpleIoc.Default.GetInstanceWithoutCaching <IDbMeetingRepository>();
            var onlineUseFullLinkRepository = SimpleIoc.Default.GetInstanceWithoutCaching <IOnlineUseFullLinkRepository>();
            var onlineDocumentsRepository   = SimpleIoc.Default.GetInstanceWithoutCaching <IOnlineUseFullDocumentRepository>();

            SimpleIoc.Default.Register <IMeetingService>(() => new MeetingsService(onlineMeetingRepository, dbMeetingRepository));
            SimpleIoc.Default.Register <IUseFullLinkService>(() => new UseFullLinkService(onlineUseFullLinkRepository));
            SimpleIoc.Default.Register <IUseFullDocumentService>(() => new UseFullDocumentService(onlineDocumentsRepository));

            IsInitialized = true;
        }