Example #1
0
 private DomainSecurityInfo CreateOrganistionDomainSecurityInfo(DomainSecurityInfo domainSecurityInfo,
                                                                DomainSecurityInfo orgDomainSecurityInfo)
 {
     return(new DomainSecurityInfo(
                domainSecurityInfo.Domain,
                orgDomainSecurityInfo.HasDmarc,
                domainSecurityInfo.TlsStatus,
                orgDomainSecurityInfo.DmarcStatus,
                domainSecurityInfo.SpfStatus));
 }
        private DomainSecurityInfo UpdateTlsStatus(List <CertificateEvaluatorApiResponse> response, DomainSecurityInfo domainSecurityInfo)
        {
            CertificateEvaluatorApiResponse evaluatorResult = response.FirstOrDefault(_ => _.DomainName == domainSecurityInfo.Domain.Name);

            if (evaluatorResult == null)
            {
                return(domainSecurityInfo);
            }

            int maxCertificateErrorSeverity = evaluatorResult.HostResults
                                              .Where(_ => _.HostName != null)
                                              .SelectMany(_ => _.Errors)
                                              .Select(_ => (int)_.ErrorType)
                                              .DefaultIfEmpty(0)
                                              .Max();

            return((int)domainSecurityInfo.TlsStatus >= maxCertificateErrorSeverity
                ? domainSecurityInfo
                : new DomainSecurityInfo(
                       domainSecurityInfo.Domain,
                       domainSecurityInfo.HasDmarc,
                       (Status)maxCertificateErrorSeverity,
                       domainSecurityInfo.DmarcStatus,
                       domainSecurityInfo.SpfStatus));
        }