public async Task <IActionResult> ManageProfileAsync(string profileId, string action) { if (manager == null) { manager = new SdsManager(await GetAccessTokenAsync()); } _logger.LogInformation($"Attempting {action} profile {profileId}"); var manageRequest = action != "delete" ? await manager.ManageProfileAsync(profileId, action) : await manager.DeleteProfileAsync(profileId); var resultContent = await manageRequest.Content.ReadAsStringAsync(); var result = JObject.Parse(resultContent); var formattedResult = result.ToString(Formatting.Indented); if (result.ContainsKey("error")) { TempData["manageProfileError"] = formattedResult; _logger.LogError("Error while managing profile:\r\n" + formattedResult); return(RedirectToAction("ProfilesAsync", new { profileId })); } _logger.LogInformation($"Manage result (URL: {manageRequest.RequestMessage.RequestUri.AbsoluteUri}, StatusCode: {manageRequest.StatusCode})\r\n: {formattedResult}"); return(RedirectToAction("ProfilesAsync", new { profileId })); }
public async Task <IActionResult> ProfilesAsync(string profileId) { if (manager == null) { manager = new SdsManager(await GetAccessTokenAsync()); } var manageError = TempData["manageProfileError"]; if (manageError != null) { ViewBag.manageProfileError = manageError; } ViewBag.profileId = profileId; var profileRequest = string.IsNullOrWhiteSpace(profileId) ? await manager.QueryAllProfilesAsync() : await manager.QueryProfileAsync(profileId); var profile = await profileRequest.Content.ReadAsStringAsync(); var profileDes = JsonConvert.DeserializeObject(profile); var profileSer = JsonConvert.SerializeObject(profileDes, Formatting.Indented); ViewBag.profile = profileSer; if (!string.IsNullOrWhiteSpace(profileId)) { var profileStatusRequest = await manager.QueryProfileStatusAsync(profileId); var profileStatus = await profileStatusRequest.Content.ReadAsStringAsync(); var profileStatusDes = JsonConvert.DeserializeObject(profileStatus); var profileStatusSer = JsonConvert.SerializeObject(profileStatusDes, Formatting.Indented); ViewBag.profileStatus = profileStatusSer; } else { ViewBag.profileStatus = string.Empty; } return(View("Profiles")); }
public async Task <IActionResult> CsvAsync(List <IFormFile> files) { if (files.Count < 6) { return(BadRequest()); } if (manager == null) { manager = new SdsManager(await GetAccessTokenAsync()); } var profile = await GetProfileAsync("csv"); if (profile["error"] != null) { var err = profile["error"]["message"]; ViewBag.Message = $"CSV connector failed with error \"{err}\""; ViewBag.Result = "error"; return(View("Csv")); } var profileId = (string)profile["id"]; var uploadSas = await manager.GetCsvUploadUrl(profileId); await UploadToUrl(files, uploadSas); await StartCsvSyncSafely(profileId); profile = await GetProfileAsync("csv"); if (profile["error"] != null) { var err = profile["error"]["message"]; ViewBag.Message = $"CSV connector failed with error \"{err}\""; ViewBag.Result = "error"; return(View("Csv")); } ViewBag.Message = $"CSV connector has id {profile["id"]} and status {profile["state"]}"; ViewBag.Result = "success"; return(View("Csv")); }
public async Task <IActionResult> RestAsync() { if (manager == null) { manager = new SdsManager(await GetAccessTokenAsync()); } var profile = await GetProfileAsync("rest"); if (profile["error"] != null) { var err = profile["error"]["message"]; ViewBag.Message = $"OneRoster REST connector failed with error \"{err}\""; ViewBag.Result = "error"; } else { ViewBag.Message = $"OneRoster REST connector has id {profile["id"]} and status {profile["state"]}"; ViewBag.Result = "success"; } return(View("Rest")); }
private async Task <JObject> GetProfileAsync(string profileName) { if (manager == null) { manager = new SdsManager(await GetAccessTokenAsync()); } // find existing matching profile var res = await manager.QueryAllProfilesAsync(); var profiles = (JArray)JObject.Parse(await res.Content.ReadAsStringAsync())["value"]; foreach (var profile in profiles) { if ((string)profile["displayName"] == profileName) { return((JObject)profile); } } return(null); }