示例#1
0
        public async Task UpdatePageAndTaskResult(AppPage page, AppTask task, CbtScreenshot result)
        {
            // update page
            UpdateDefinition <AppPage> pageUpdate = null;
            var resultId = result.screenshot_test_id.ToString();

            if (task.Type == AppTaskType.Desktop)
            {
                if (page.DesktopResultId != resultId)
                {
                    pageUpdate = Builders <AppPage> .Update.Set(d => d.DesktopResultId, resultId);
                }
            }
            else
            {
                if (page.MobileResultId != resultId)
                {
                    pageUpdate = Builders <AppPage> .Update.Set(d => d.MobileResultId, resultId);
                }
            }

            if (pageUpdate != null)
            {
                var pageFilter = Builders <AppPage> .Filter.Eq(d => d.Id, page.Id);

                await pageCollection.UpdateOneAsync(pageFilter, pageUpdate);
            }

            // update task
            var filter = Builders <AppTask> .Filter.Eq(d => d.Id, task.Id);

            var update = Builders <AppTask> .Update.Set(d => d.State, AppTaskState.Executed)
                         .Set(d => d.FinishedAt, DateTime.UtcNow);

            await taskCollection.UpdateOneAsync(filter, update);
        }