public async Task <LabSettingsDTO> ResetTxtAssignment(TeamDTO team) { var res = new LabSettingsDTO(); try { var data = await LabRepo.GetDomAssignment(team.Lab.LabCode, team.TeamAssignment.TeamAuth); //remove zone record from zone using (var dns = new DnsAdmin()) { var domGroup = await _repo.GetGroup(data.Lab.AzureSubscriptionId, data.Lab.DnsZoneRG); await dns.InitAsync(); dns.SetClient(domGroup); await dns.ClearTxtRecord(team.TeamAssignment.DomainName); } //update record in Cosmos var assignment = await LabRepo.GetDomAssignment(team.Lab.LabCode, team.TeamAssignment.TeamAuth); assignment.TeamAssignment.DnsTxtRecord = null; await LabRepo.UpdateTeamAssignment(assignment.TeamAssignment); res.ResponseMessage = "TXT record reset"; res.Settings = await LabRepo.GetLabAndSettings(team.Lab.Id); } catch (Exception ex) { res.ResponseMessage = "ERROR: " + ex.Message; } return(res); }
public async Task <LabSettingsDTO> UnlinkDomain(TeamDTO team) { var res = new LabSettingsDTO(); try { //detach domain from tenant var control = await AADLinkControl.CreateAsync(team.TeamAssignment.AssignedTenantId, new HttpContextWrapper(HttpContext.Current)); var adalResponse = await control.DeleteDomain(team.TeamAssignment.DomainName); if (adalResponse.Message == "ObjectInUse") { var references = await control.GetDomainReferences(team.TeamAssignment.DomainName); res.Object = references.Object; } res.ResponseMessage += string.Format("Domain operation {0}, message: {1}", ((adalResponse.Successful) ? "successful" : "failed"), adalResponse.Message); res.Settings = await LabRepo.GetLabAndSettings(team.Lab.Id); if (adalResponse.Message != "ObjectInUse" && adalResponse.Successful) { var res2 = await ResetTxtAssignment(team); res.Settings = res2.Settings; } } catch (Exception ex) { res.ResponseMessage = "ERROR: " + ex.Message; } return(res); }
public async Task <LabSettingsDTO> CheckDomainAssignment(TeamDTO team) { var res = new LabSettingsDTO(); try { var control = await AADLinkControl.CreateAsync(team.TeamAssignment.AssignedTenantId, new HttpContextWrapper(HttpContext.Current)); var adalResponse = await control.GetDomain(team.TeamAssignment.DomainName); if (adalResponse.Successful) { res.ResponseMessage = adalResponse.ResponseContent; } else { res.ResponseMessage += string.Format("Domain operation {0}, message: {1}", ((adalResponse.Successful) ? "successful" : "failed"), adalResponse.Message); } } catch (Exception ex) { res.ResponseMessage = "ERROR: " + ex.Message; } return(res); }
public async Task <LabSettingsDTO> ResetTeamCode(TeamDTO team) { var res = new LabSettingsDTO(); try { //update record in Cosmos var assignment = await LabRepo.ResetTeamCode(team); res.Settings = await LabRepo.GetLabAndSettings(team.Lab.Id); res.ResponseMessage = assignment.TeamAssignment.TeamAuth; } catch (Exception ex) { res.ResponseMessage = "ERROR: " + ex.Message; } return(res); }
public async Task <LabSettingsDTO> DeleteDirectoryObject(DelObjectDTO team) { var res = new LabSettingsDTO(); try { //detach domain from tenant var control = await AADLinkControl.CreateAsync(team.TeamAssignment.AssignedTenantId, new HttpContextWrapper(HttpContext.Current)); var adalResponse = await control.DeleteObject(team.DelObjId); res.ResponseMessage += string.Format("Delete operation {0}, message: {1}", ((adalResponse.Successful) ? "successful" : "failed"), adalResponse.Message); res.Settings = await LabRepo.GetLabAndSettings(team.Lab.Id); } catch (Exception ex) { res.ResponseMessage = "ERROR: " + ex.Message; } return(res); }