protected virtual void ParseTokens(XPathNavigator xPathNavigator, IList <ITokenDescription> tokens)
        {
            foreach (XPathNavigator tokenNavigator in xPathNavigator.SelectChildren("token", ""))
            {
                var selectionOptions = GetTokenSelectOptions(tokenNavigator);
                var tokenInputType   = selectionOptions.Any() ? TokenInputForm.Selection
          : Enum.TryParse(tokenNavigator.GetAttribute("input", ""), out TokenInputForm inputFormat) ? inputFormat : TokenInputForm.Text;

                var tokenDescription = new TokenDescription
                {
                    DisplayName      = tokenNavigator.GetAttribute("displayName", ""),
                    HelpText         = tokenNavigator.GetAttribute("helpText", ""),
                    Key              = tokenNavigator.GetAttribute("key", ""),
                    Default          = tokenNavigator.GetAttribute("default", ""),
                    InputType        = tokenInputType,
                    SelectionOptions = selectionOptions,
                    IsRequired       = GetBooleanAttribute("required", tokenNavigator, true)
                };

                var validatorType = tokenNavigator.GetAttribute("validationType", "");
                if (!string.IsNullOrEmpty(validatorType))
                {
                    tokenDescription.Validator = ManifestTypeInstantiator.CreateInstance <IValidateToken>(validatorType);
                }
                var suggestorType = tokenNavigator.GetAttribute("suggestType", "");

                if (!string.IsNullOrEmpty(suggestorType))
                {
                    tokenDescription.Suggestor = ManifestTypeInstantiator.CreateInstance <ISuggestToken>(suggestorType);
                }
                tokens.Add(tokenDescription);
            }
            ExpandDefaultValues(0, tokens);
        }
 public TokenFolderInput(TokenDescription tokenDescription)
 {
     InitializeComponent();
     TokenValueAsPathInputBox.TextChanged += InputChangedEventHandler;
     TokenDescription = tokenDescription;
     this.SetVisualStudioThemeStyles();
 }
        private void ParseReplacementTokens()
        {
            var replacemenTokenNavigator = GetRequiredNodeByXPath("/templateManifest/replacementTokens");

            foreach (XPathNavigator tokenNavigator in replacemenTokenNavigator.SelectChildren("token", ""))
            {
                var selectionOptions = GetTokenSelectOptions(tokenNavigator);
                var tokenInputType   = selectionOptions.Any() ? TokenInputForm.Selection
          :  Enum.TryParse(tokenNavigator.GetAttribute("input", ""), out TokenInputForm inputFormat) ? inputFormat : TokenInputForm.Text;

                var tokenDescription = new TokenDescription
                {
                    DisplayName      = tokenNavigator.GetAttribute("displayName", ""),
                    Key              = tokenNavigator.GetAttribute("key", ""),
                    Default          = tokenNavigator.GetAttribute("default", ""),
                    InputType        = tokenInputType,
                    SelectionOptions = selectionOptions,
                    IsRequired       = GetBooleanAttribute("required", tokenNavigator, true)
                };

                var validatorType = tokenNavigator.GetAttribute("validationType", "");
                if (!string.IsNullOrEmpty(validatorType))
                {
                    tokenDescription.Validator = ManifestTypeInstantiator.CreateInstance <IValidateToken>(validatorType);
                }
                var suggestorType = tokenNavigator.GetAttribute("suggestType", "");
                if (!string.IsNullOrEmpty(suggestorType))
                {
                    tokenDescription.Suggestor = ManifestTypeInstantiator.CreateInstance <ISuggestToken>(suggestorType);
                }
                Manifest.Tokens.Add(tokenDescription);
            }
            ExpandDefaultValues(0);
        }
 public TokenSelectionInput(TokenDescription tokenDescription)
 {
     InitializeComponent();
     TokenDescription = tokenDescription;
     TokenComboInput.SelectionChanged += InputChangedEventHandler;
     TokenComboInput.ItemsSource       = TokenDescription.SelectionOptions;
     TokenComboInput.DisplayMemberPath = "Value";
     TokenComboInput.SelectedValuePath = "Key";
 }
        private TokenInputControl GetTokenInputControl(TokenDescription tokenDescription)
        {
            switch (tokenDescription.InputType)
            {
            case TokenInputForm.Text:
                return(new TokenTextInput(tokenDescription));

            case TokenInputForm.Folder:
                return(new TokenFolderInput(tokenDescription));

            case TokenInputForm.Selection:
                return(new TokenSelectionInput(tokenDescription));

            default:
                return(new TokenTextInput(tokenDescription));
            }
        }
Esempio n. 6
0
        private TokenDescription GenerateToken(User user)
        {
            var tokenHandle = new JwtSecurityTokenHandler();
            var date        = DateTime.UtcNow;
            var expired     = date.AddMinutes(20);

            var modules = new List <Claim>();

            modules.Add(new Claim("id", user.Id.ToString()));
            modules.Add(new Claim("username", user.Username));
            foreach (var module in user.UsersModules)
            {
                modules.Add(new Claim("module", module.Module.Module));
            }
            try
            {
                var tokenDescriptor = new SecurityTokenDescriptor
                {
                    Subject  = new ClaimsIdentity(modules),
                    Expires  = expired,
                    Audience = _appSettings.Audience,
                    Issuer   = _appSettings.Issuer,
                    EncryptingCredentials = new X509EncryptingCredentials(new X509Certificate2(_appSettings.PublicKey)),
                };
                var token = new TokenDescription
                {
                    Value   = tokenHandle.CreateEncodedJwt(tokenDescriptor),
                    Now     = date,
                    Expired = expired
                };
                TokenDictionary.Add(user.Id, token);
                return(token);
            }
            catch (System.Exception)
            {
                return(null);
            }
        }
 public TokenCheckboxInput(TokenDescription tokenDescription)
 {
     InitializeComponent();
     TokenDescription = tokenDescription;
     this.SetVisualStudioThemeStyles();
 }
Esempio n. 8
0
 public TokenCheckboxInput(TokenDescription tokenDescription)
 {
     InitializeComponent();
     TokenDescription = tokenDescription;
 }
Esempio n. 9
0
 public void AddTokenDefinition(TokenDescription token) => _availableToken.Add(token);
Esempio n. 10
0
 public TokenFolderInput(TokenDescription tokenDescription)
 {
     InitializeComponent();
     TokenValueAsPathInputBox.TextChanged += InputChangedEventHandler;
     TokenDescription = tokenDescription;
 }