예제 #1
0
        /// <summary>
        /// Init mail service.
        /// </summary>
        /// <param name="token">Task service token.</param>
        /// <returns>Mail service itself.</returns>
        public IMailService InitMailService(string token)
        {
            var service     = new MailService();
            var mailService = service.InitAsync(token).Result;

            return(mailService);
        }
예제 #2
0
        protected async Task <ITaskService> InitListTypeIds(WaterfallStepContext sc)
        {
            var state = await ToDoStateAccessor.GetAsync(sc.Context);

            if (!state.ListTypeIds.ContainsKey(state.ListType))
            {
                var emailService = await MailService.InitAsync(state.MsGraphToken);

                var senderMailAddress = await emailService.GetSenderMailAddressAsync();

                var recovered = await RecoverListTypeIdsAsync(sc, senderMailAddress);

                if (!recovered)
                {
                    if (ServiceManager is OneNoteService)
                    {
                        await sc.Context.SendActivityAsync(sc.Context.Activity.CreateReply(ToDoSharedResponses.SettingUpOneNoteMessage));
                    }
                    else
                    {
                        await sc.Context.SendActivityAsync(sc.Context.Activity.CreateReply(ToDoSharedResponses.SettingUpOutlookMessage));
                    }

                    var service = await ServiceManager.InitAsync(state.MsGraphToken, state.ListTypeIds);

                    var taskWebLink = await service.GetTaskWebLink();

                    var emailContent = string.Format(ToDoStrings.EmailContent, taskWebLink);
                    await emailService.SendMessageAsync(emailContent, ToDoStrings.EmailSubject);

                    if (ServiceManager is OneNoteService)
                    {
                        await sc.Context.SendActivityAsync(sc.Context.Activity.CreateReply(ToDoSharedResponses.AfterOneNoteSetupMessage));
                    }
                    else
                    {
                        await sc.Context.SendActivityAsync(sc.Context.Activity.CreateReply(ToDoSharedResponses.AfterOutlookSetupMessage));
                    }

                    await StoreListTypeIdsAsync(sc, senderMailAddress);

                    return(service);
                }
            }

            return(await ServiceManager.InitAsync(state.MsGraphToken, state.ListTypeIds));
        }