private async Task MapTwoNewTasks(TaskStatus projectTaskStatus, string taskStatus, string tasksFolderName, Func <IOutlookTaskFolderRequestBuilder, IObservable <Unit> > afterAssert = null)
        {
            using (var application = Platform.Win.TodoModule().Application){
                (IOutlookTaskFolderRequestBuilder requestBuilder, Frame frame)builder = await application.InitializeService(tasksFolderName);

                try{
                    await builder.frame.View.ObjectSpace.Map_Two_New_Entity(
                        (space, i) => space.NewTask(projectTaskStatus, i), Timeout,
                        space => TodoService.Updated.TakeUntilDisposed(application),
                        (task, outlookTask, i) => {
                        application.ObjectSpaceProvider.AssertTask(typeof(OutlookTask), task, outlookTask.Subject,
                                                                   outlookTask.Body.Content,
                                                                   DateTime.Parse(outlookTask.DueDateTime.DateTime, CultureInfo.InvariantCulture),
                                                                   taskStatus,
                                                                   $"{outlookTask.Status}", outlookTask.Id, task.Subject);
                    });
                }
                finally{
                    if (afterAssert != null)
                    {
                        await afterAssert(builder.requestBuilder);
                    }
                }
            }
        }
示例#2
0
 public static Task NewTask(this XafApplication application, TaskStatus taskStatus)
 {
     using (var objectSpace = application.CreateObjectSpace()){
         var task = objectSpace.NewTask(taskStatus);
         objectSpace.CommitChanges();
         return(task);
     }
 }
示例#3
0
        public static Task NewTask(this IObjectSpace objectSpace, TaskStatus taskStatus, int index = 0)
        {
            var task = objectSpace.CreateObject <Task>();

            task.Subject     = $"Subject{index}";
            task.Description = "Description";
            task.StartDate   = DateTime.Now.AddMinutes(1);
            task.DueDate     = DateTime.Now.AddMinutes(2);
            task.Status      = taskStatus;
            return(task);
        }
示例#4
0
        public static async Task <IList <(Task task, OutlookTask outlookTask)> > CreateExistingObjects(
            this XafApplication application, string title, TaskStatus taskStatus = TaskStatus.InProgress, int count = 1)
        {
            var builder = await application.ObjectSpaceProvider.NewGraphServiceClient();

            var folder = await builder.Me.Outlook.TaskFolders.GetFolder(TasksFolderName, true);

            await builder.Me.Outlook.TaskFolders[folder.Id].DeleteAllTasks();

            return(await Observable.Range(0, count).SelectMany(i => {
                return builder.Me.Outlook.TaskFolders[folder.Id].NewFolderTasks(1, title)
                .SelectMany(lst => lst).Select(outlookTask1 => (application.NewTask(taskStatus), outlookTask1));
            }).Buffer(count));
        }
示例#5
0
        public override async Task Map_Existing_Two_Times(TaskStatus projectTaskStatus, string taskStatus)
        {
            using var application = Platform.Win.TasksModule().Application;
            var builderData = await application.InitializeService();

            var existingObjects = (await application.CreateExistingObjects(nameof(Map_Existing_Two_Times), projectTaskStatus)).First();

            await builderData.frame.View.ObjectSpace.Map_Existing_Entity_Two_Times(existingObjects.task,
                                                                                   (pmeTask, i) => pmeTask.Modify_Task(projectTaskStatus, i), existingObjects.cloudTask
                                                                                   , space => GoogleTasksService.Updated.When(MapAction.Update).Select(_ => _.cloud).TakeUntilDisposed(application),
                                                                                   (localTask, cloudTask) => {
                cloudTask.Title.ShouldBe(localTask.Subject);
                cloudTask.Status.ToString().ShouldBe(taskStatus);
                return(Task.CompletedTask);
            }, Timeout);
        }
        public override async Task Map_Existing_Two_Times(TaskStatus projectTaskStatus, string taskStatus)
        {
            using (var application = Platform.Win.TodoModule().Application){
                var builderData = await application.InitializeService();

                var existingObjects = (await application.CreateExistingObjects(nameof(Map_Existing_Two_Times), projectTaskStatus)).First();

                await builderData.frame.View.ObjectSpace.Map_Existing_Entity_Two_Times(existingObjects.task,
                                                                                       (pmeTask, i) => pmeTask.Modify_Task(projectTaskStatus, i), existingObjects.outlookTask
                                                                                       , space => TodoService.Updated.TakeUntilDisposed(application),
                                                                                       (task, outlookTask) => {
                    outlookTask.Subject.ShouldBe(task.Subject);
                    outlookTask.Status.ToString().ShouldBe(taskStatus);
                    return(Task.CompletedTask);
                }, Timeout);
            }
        }
示例#7
0
        private async Task MapTwoNewTasks(TaskStatus projectTaskStatus, string expectedStatus, string tasksFolderName, Func <global::Google.Apis.Tasks.v1.TasksService, IObservable <Unit> > afterAssert = null, bool keepTaskFolder = false)
        {
            using var application = Platform.Win.TasksModule().Application;
            var builder = await application.InitializeService(tasksFolderName, keepTaskFolder : keepTaskFolder);

            await builder.frame.View.ObjectSpace.Map_Two_New_Entity(
                (space, i) => space.NewTask(projectTaskStatus, i), Timeout,
                space => GoogleTasksService.Updated.TakeUntilDisposed(application), async (task, _, i) => {
                if (afterAssert != null)
                {
                    await afterAssert(builder.service);
                }
                else
                {
                    application.ObjectSpaceProvider.AssertTask(typeof(global::Google.Apis.Tasks.v1.Data.Task), task, _.cloud.Title,
                                                               _.cloud.Notes, DateTime.Parse(_.cloud.Due), expectedStatus, $"{_.cloud.Status}", _.cloud.Id, task.Subject);
                }
            });
        }
        private async Task MapTwoNewTasks(TaskStatus projectTaskStatus, string taskStatus, string tasksFolderName, Func <IOutlookTaskFolderRequestBuilder, IObservable <Unit> > afterAssert = null, bool keepTaskFolder = false)
        {
            using var application = Platform.Win.TodoModule().Application;
            var builder = await application.InitializeService(tasksFolderName, keepTaskFolder : keepTaskFolder);

            await builder.frame.View.ObjectSpace.Map_Two_New_Entity(
                (space, i) => space.NewTask(projectTaskStatus, i), Timeout,
                space => MicrosoftTodoService.Updated.TakeUntilDisposed(application), async (task, _, i) => {
                if (afterAssert != null)
                {
                    await afterAssert(builder.requestBuilder);
                }
                else
                {
                    application.ObjectSpaceProvider.AssertTask(typeof(OutlookTask), task, _.cloud.Subject,
                                                               _.cloud.Body.Content, DateTime.Parse(_.cloud.DueDateTime.DateTime, CultureInfo.InvariantCulture), taskStatus,
                                                               $"{_.cloud.Status}", _.cloud.Id, task.Subject);
                }
            });
        }
 public override async Task Map_Two_New_Tasks(TaskStatus projectTaskStatus, string taskStatus)
 {
     await MapTwoNewTasks(projectTaskStatus, taskStatus, TodoTestExtensions.TasksFolderName);
 }
示例#10
0
 public abstract Task Map_Two_New_Tasks(DevExpress.Persistent.Base.General.TaskStatus projectTaskStatus, string taskStatus);
示例#11
0
 public abstract Task Map_Existing_Two_Times(DevExpress.Persistent.Base.General.TaskStatus projectTaskStatus, string taskStatus);