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 } }
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; }