Exemple #1
0
        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);
        }
Exemple #2
0
        public async Task <ActionResult> UpdateAssignment(DnsDTO item)
        {
            string labCode  = Session["labCode"].ToString();
            string teamCode = Session["teamCode"].ToString();

            var data = await LabRepo.GetDomAssignment(labCode, teamCode);

            var test = ContinueEditingAssignment(data);

            if (test != null)
            {
                ViewBag.ErrorHeader = test.ErrorHeader;
                ViewBag.Error       = test.Error;
                ViewBag.IsLive      = true;
                return(View("Index"));
            }
            try
            {
                //updating DNS record
                using (var dns = new DnsAdmin())
                {
                    var domGroup = await _repo.GetGroup(data.Lab.AzureSubscriptionId, data.Lab.DnsZoneRG);

                    await dns.InitAsync();

                    dns.SetClient(domGroup);
                    await dns.SetTxtRecord(item.TxtRecord, data.TeamAssignment.DomainName);
                };
                //updating
                data.TeamAssignment.DnsTxtRecord = item.TxtRecord;
                await LabRepo.UpdateDnsRecord(data);
            }
            catch (Exception ex)
            {
                ViewBag.ErrorHeader = "DNS Update Failed";
                ViewBag.Error       = ex.Message;
                item.TxtRecord      = "";
            }
            item.DomainName = data.TeamAssignment.DomainName;
            item.LabId      = data.Lab.Id;
            return(View("Index", item));
        }