public bool OwnerExist(OwnerOption ownerToLookFor)
 {
     if (ownerToLookFor == OwnerOption.None)
     {
         return(true);
     }
     return(GetOwner(ownerToLookFor) == null);
 }
        private static Window GetOwner(OwnerOption ownerOption)
        {
            switch (ownerOption)
            {
            case OwnerOption.None:
                return(null);

            case OwnerOption.MainWindow:
                return(Application.Current.MainWindow);

            case OwnerOption.ActiveWindow:
                return(AllWindows.LastOrDefault(window => window.IsActive && window.IsVisible));

            case OwnerOption.MostRecentlyOpen:
                return(AllWindows.LastOrDefault(window => window.IsVisible));

            default:
                throw new ArgumentException("The OwnerOption is not valid", "ownerOption");
            }
        }
示例#3
0
    internal override void ParseRecordData(ReadOnlySpan <byte> resultData, int startPosition, int length)
    {
        int endPosition = startPosition + length;

        Options = new List <EDnsOptionBase>();
        while (startPosition < endPosition)
        {
            EDnsOptionType type       = (EDnsOptionType)DnsMessageBase.ParseUShort(resultData, ref startPosition);
            ushort         dataLength = DnsMessageBase.ParseUShort(resultData, ref startPosition);

            EDnsOptionBase option;

            switch (type)
            {
            case EDnsOptionType.LongLivedQuery:
                option = new LongLivedQueryOption();
                break;

            case EDnsOptionType.UpdateLease:
                option = new UpdateLeaseOption();
                break;

            case EDnsOptionType.NsId:
                option = new NsIdOption();
                break;

            case EDnsOptionType.Owner:
                option = new OwnerOption();
                break;

            case EDnsOptionType.DnssecAlgorithmUnderstood:
                option = new DnssecAlgorithmUnderstoodOption();
                break;

            case EDnsOptionType.DsHashUnderstood:
                option = new DsHashUnderstoodOption();
                break;

            case EDnsOptionType.Nsec3HashUnderstood:
                option = new Nsec3HashUnderstoodOption();
                break;

            case EDnsOptionType.ClientSubnet:
                option = new ClientSubnetOption();
                break;

            case EDnsOptionType.Expire:
                option = new ExpireOption();
                break;

            case EDnsOptionType.Cookie:
                option = new CookieOption();
                break;

            default:
                option = new UnknownOption(type);
                break;
            }

            option.ParseData(resultData, startPosition, dataLength);
            Options.Add(option);
            startPosition += dataLength;
        }
    }
        public bool?ShowDialog(string popupKey, object viewModel, OwnerOption ownerOption)
        {
            var owner = GetOwner(ownerOption);

            return(ShowDialog(popupKey, owner, viewModel));
        }
        public bool Show(string popupKey, object viewModel, EventHandler <UICompletedEventArgs> completedProc, OwnerOption ownerOption)
        {
            var owner = GetOwner(ownerOption);

            return(Show(popupKey, owner, viewModel, completedProc));
        }