Exemplo n.º 1
0
        /// <returns>
        /// <see cref="ServiceResponsePlanSummaryModel"/>
        /// </returns>
        protected override async Task <string> RunAsync(HttpClient client)
        {
            var sourceCredential = new SharePointCredential
            {
                AccountName = sourceSharePointAccount,
            };

            var destinationCredential = new SharePointCredential
            {
                AccountName = destinationSharePointAccount,
            };

            var siteLevelMappingContent = new SharePointMappingContent
            {
                Source = new SharePointObject
                {
                    Url   = "<sharepoint site url>",
                    Level = "Site",
                },
                Destination = new SharePointObject
                {
                    Url   = "<sharepoint site url>",
                    Level = "Site"
                },
                Method = "Combine",
            };

            var siteCollectionLevelMappingContent = new SharePointMappingContent
            {
                Source = new SharePointObject
                {
                    Url   = "<sharepoint site collection url>",
                    Level = "SiteCollection",
                },
                Destination = new SharePointObject
                {
                    Url   = "<sharepoint site collection url>",
                    Level = "SiteCollection"
                },
                Method = "Combine",
            };

            var mappings = new SharePointMappingModel
            {
                SourceCredential      = sourceCredential,
                DestinationCredential = destinationCredential,
                Contents = new List <SharePointMappingContent>
                {
                    siteLevelMappingContent,
                    siteCollectionLevelMappingContent
                },
            };

            var planSettings = new SharePointPlanSettingsModel
            {
                NameLabel = new PlanNameLabel
                {
                    Name         = $"CSharp_SP_Plan_{DateTime.Now.ToString("yyyyMMddHHmmss")}",
                    BusinessUnit = "<BusinessUnit name>",
                    Wave         = "<Wave name>"
                },
                DatabaseId    = migrationDatabaseId,
                MigrationMode = "HighSpeed",
                PolicyId      = migrationPolicyId,
                Schedule      = new ScheduleModel
                {
                    IntervalType = "OnlyOnce",
                    StartTime    = DateTime.Now.AddMinutes(2),
                },
                PlanGroups = new List <string>(),
            };

            var plan = new SharePointPlanModel
            {
                Mappings = mappings,
                Settings = planSettings,
            };

            plan.Validate();

            var requestContent = JsonConvert.SerializeObject(plan);

            var content = new StringContent(requestContent, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("/api/sharepoint/plans", content);

            return(await response.Content.ReadAsStringAsync());
        }
Exemplo n.º 2
0
        /// <returns>
        /// <see cref="ServiceResponsePlanSummaryModel"/>
        /// </returns>
        protected override async Task <string> RunAsync(HttpClient client)
        {
            var sourceAccount = new AccountModel
            {
                Username = "******",
                Password = "******",
            };

            var destinationAccount = new AccountModel
            {
                Username = "******",
                Password = "******",
            };

            var siteLevelMappingContent = new SharePointMappingContent
            {
                Source = new SharePointObject
                {
                    Url   = "<sharepoint site url>",
                    Level = "Site",
                },
                Destination = new SharePointObject
                {
                    Url   = "<sharepoint site url>",
                    Level = "Site"
                },
                Method = "Combine"
            };

            var siteCollectionLevelMappingContent = new SharePointMappingContent
            {
                Source = new SharePointObject
                {
                    Url   = "<sharepoint site collection url>",
                    Level = "SiteCollection",
                },
                Destination = new SharePointObject
                {
                    Url   = "<sharepoint site collection url>",
                    Level = "SiteCollection"
                },
                Method = "Combine"
            };

            var mappings = new SharePointMappingModel
            {
                SourceAccount      = sourceAccount,
                DestinationAccount = destinationAccount,
                Contents           = new List <SharePointMappingContent>
                {
                    siteLevelMappingContent,
                    siteCollectionLevelMappingContent
                },
            };

            var settings = new SharePointJobExecutionSettingsModel
            {
                MigrationMode = "HighSpeed",
                PolicyId      = "Default_SP07To10MigrationOnlineMapping_Profile",
                Schedule      = new ScheduleModel
                {
                    IntervalType = "OnlyOnce",
                    StartTime    = DateTime.Now.AddMinutes(2),
                },
            };

            var model = new SharePointJobExecutionModel
            {
                Mappings = mappings,
                Settings = settings,
            };

            var requestContent = JsonConvert.SerializeObject(model);

            var content = new StringContent(requestContent, Encoding.UTF8, "application/json");

            var response = await client.PostAsync("/api/sharepoint/jobs", content);

            return(await response.Content.ReadAsStringAsync());
        }