/// <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()); }
/// <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()); }